
    hi                     d    S SK rS SKrS SKJr  S SKJr  S\R                  4S jr " S S\5      r	g)    N)Base)expectc                    [         R                  " U 5      n[        UR                  5      n[         R                  " U5      nUS:  a  X%S-   -  nUR                  SU nUR                  X% n[         R
                  " US[        U5      -  UR                  -   S[        U5      -  -   5      n	[         R
                  " [         R                  " XA5      / UQSPUQ75      n[         R                  " X:H  US9$ )z/Compute one hot from indices at a specific axisr      )r   dtype)npasarraylenshapearangereshapemod)
indicesdepthaxisr	   valuesrankdepth_rangelsrstargetss
             \/var/www/fran/franai/venv/lib/python3.13/site-packages/onnx/backend/test/case/node/onehot.pyone_hotr      s    ZZ Fv||D))E"Kaxq	a	B	d	 BjjTCG^k&7&77$R.HG ZZv-}}Q}}=F::g'u55    c                   d    \ rS rSr\SS j5       r\SS j5       r\SS j5       r\SS j5       rSr	g)	OneHot   Nc                  X   Sn Sn[         R                  n[        R                  R	                  S/ SQS/S9n[         R
                  " / SQ[         R                  S9n[         R                  " S	5      n[         R
                  " X/US9n[        XEUS9nXpU-
  -  U-   n[        UXEU/U/S
S9  g )N      r   r   r   r   y)inputsoutputs)r         r      test_onehot_without_axisr%   r&   name)
r
   int32onnxhelper	make_nodearrayint64float32r   r   )on_value	off_valueoutput_typenoder   r   r   r$   s           r   export_without_axisOneHot.export_without_axis   s    	hh{{$$;cU % 
 ((9BHH5

29/{CG+6I%&2F+C+		
r   c                  f   Sn SnSn[         R                  n[        R                  R	                  S/ SQS/U S9n[         R
                  " SS/SS	//[         R                  S
9n[         R                  " S5      n[         R
                  " X!/US
9n[        XVXS9nXU-
  -  U-   n[        UXVU/U/SS9  g )Nr      r   r#   r$   r%   r&   r   	   r"      r   
   r   r	   test_onehot_with_axisr+   r
   r3   r.   r/   r0   r1   r   r   		axisValuer4   r5   r6   r7   r   r   r   r$   s	            r   export_with_axisOneHot.export_with_axis1   s    		jj{{$$1E	 % 
 ((QFQF+2::>

29/{CGFI%&2F+C(		
r   c                  ^   Sn SnSn[         R                  n[        R                  R	                  S/ SQS/U S9n[         R
                  " / SQ[         R                  S9n[         R                  " S	5      n[         R
                  " X!/US9n[        XVXS
9nXU-
  -  U-   n[        UXVU/U/SS9  g )Nr   r;   r   r#   r$   r<   )r   iir   r?   r@   test_onehot_negative_indicesr+   )	r
   r3   r.   r/   r0   r1   r2   r   r   rC   s	            r   export_with_negative_indices#OneHot.export_with_negative_indicesI   s    		jj{{$$1E	 % 
 ((;bhh7 

29/{CGFI%&2F+C/		
r   c                  f   Sn SnSn[         R                  n[        R                  R	                  S/ SQS/U S9n[         R
                  " SS/S	S
//[         R                  S9n[         R                  " S5      n[         R
                  " X!/US9n[        XVXS9nXU-
  -  U-   n[        UXVU/U/SS9  g )Nr;   r   r   r#   r$   r<   r=   r"   r>   r   r?   r@   test_onehot_with_negative_axisr+   rB   rC   s	            r   export_with_negative_axis OneHot.export_with_negative_axisg   s    		jj{{$$1E	 % 
 ((QFQF+2::>

29/{CGFI%&2F+C1		
r    )returnN)
__name__
__module____qualname____firstlineno__staticmethodr8   rE   rI   rN   __static_attributes__rP   r   r   r   r      sP    
 
& 
 
. 
 
: 
 
r   r   )
numpyr
   r.   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r3   r   r   rP   r   r   <module>r[      s1   
   , . "$2:: 6 a
T a
r   