
    Si                    h    S SK Jr  S SKrS SKrS SKJr  S SKJr          SS jr	 " S S\5      r
g)	    )annotationsN)Base)expectc                r   [        U R                  5      nUR                  S   U::  d   e/ nSn[        U5       H2  nUR                  UR                  U   5        XQR                  U   -  nM4     UR                  S   X2-
  :X  a  U[	        UR                  5      US -   OBU[	        UR                  5      US -   [	        U R                  5      X!R                  S   -   S  -   n/ nUR                  USUR                  S   5      n	U R                  U/U R                  US  Q75      n
[        U	R                  S   5       HI  n[        U	R                  S   5       H*  n[        X   U   5      nUR                  X/UQ7   5        M,     MK     [        R                  " XR                  S9R                  U5      $ )N   r   dtype)
lenshaperangeappendlistreshapetuplenpasarrayr
   )dataindices
batch_dims	data_rankbatch_dims_shapebatch_dims_sizeioutput_shapeoutput_data_bufferreshaped_indicesreshaped_data	batch_dim	outer_dimgather_indexs                 c/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/onnx/backend/test/case/node/gathernd.pygather_nd_implr#      s    DJJI ==	)))  O :a 01==++  MM"!77 	4.z"==
w}}
j
,-
tzz
:b(99;
<=   GMM"<MN LL/!LDJJz{4K!LMM +11!45	/55a89I !1!<Y!GHL%%m4N4N&OP : 6 ::(

;CCLQQ    c                  P    \ rS rSr\SS j5       r\SS j5       r\SS j5       rSrg)GatherND=   c                    [         R                  R                  SSS/S/S9n [        R                  " SS/SS	//[        R
                  S
9n[        R                  " SS/SS//[        R                  S
9n[        XS5      n[        R                  " SS	/[        R
                  S
9n[        R                  " X45      (       d   e[        U X/U/SS9  g )Nr&   r   r   outputinputsoutputsr   r         r	   test_gathernd_example_int32r+   r,   name
onnxhelper	make_noder   arrayint32int64r#   array_equalr   noder   r   r)   expected_outputs        r"   export_int32GatherND.export_int32>   s    {{$$I&J % 
 xx!Q!Q(9((QFQF+288<q1((Aq6:~~f6666?H.		
r$   c                    [         R                  R                  SSS/S/S9n [        R                  " SS/SS	//S
S/SS///[        R
                  S9n[        R                  " SS//SS///[        R                  S9n[        XS5      n[        R                  " SS	//S
S///[        R
                  S9n[        R                  " X45      (       d   e[        U X/U/SS9  g )Nr&   r   r   r)   r*   r   r   r-   r.               r	   test_gathernd_example_float32r0   )
r3   r4   r5   r   r6   float32r8   r#   r9   r   r:   s        r"   export_float32GatherND.export_float32R   s    {{$$I&J % 
 xx1a&1a&)QFQF+;<BJJO((aVH1vh/rxx@q1((aVH1vh#7rzzJ~~f6666?H0		
r$   c                    [         R                  R                  SSS/S/SS9n [        R                  " SS/SS	//S
S/SS///[        R
                  S9n[        R                  " S/S//[        R                  S9n[        XS5      n[        R                  " SS	/S
S//[        R
                  S9n[        R                  " X45      (       d   e[        U X/U/SS9  g )Nr&   r   r   r)   r   )r+   r,   r   r   r-   r.   r@   rA   rB   rC   r	   &test_gathernd_example_int32_batch_dim1r0   r2   r:   s        r"   export_int32_batchdim_1 GatherND.export_int32_batchdim_1f   s    {{$$I&J	 % 
 xx1a&1a&)QFQF+;<BHHM((QC!:RXX6q1((QFQF#3288D~~f6666?H9		
r$    N)returnNone)	__name__
__module____qualname____firstlineno__staticmethodr=   rF   rJ   __static_attributes__rL   r$   r"   r&   r&   =   s<    
 
& 
 
& 
 
r$   r&   )r   
np.ndarrayr   rU   r   intrM   rU   )
__future__r   numpyr   r3   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r#   r&   rL   r$   r"   <module>r[      sM    #   , .-R
-R)-R7:-R-R`<
t <
r$   