
    Si|                    p    S SK Jr  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)	    )annotationsN)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
             a/var/www/html/ai-image-ml/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   c                 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   r4   r/   r0   r1   r2   r   r   		axisValuer5   r6   r7   r8   r   r   r   r%   s	            r   export_with_axisOneHot.export_with_axis2   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@   rA   test_onehot_negative_indicesr,   )	r   r4   r/   r0   r1   r2   r3   r   r   rD   s	            r   export_with_negative_indices#OneHot.export_with_negative_indicesJ   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@   rA   test_onehot_with_negative_axisr,   rC   rD   s	            r   export_with_negative_axis OneHot.export_with_negative_axish   s    		jj{{$$1E	 % 
 ((QFQF+2::>

29/{CGFI%&2F+C1		
r    N)returnNone)
__name__
__module____qualname____firstlineno__staticmethodr9   rF   rJ   rO   __static_attributes__rQ   r   r   r   r      sP    
 
& 
 
. 
 
: 
 
r   r   )
__future__r   numpyr   r/   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r4   r   r   rQ   r   r   <module>r^      s4    #   , . "$2:: 6 a
T a
r   