
    Si!                    X    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                   UR                   S   [        U R                   5      ::  d   eUR                   UR                   S S U R                   UR                   S   S  -   :X  d   e[        R                  " U 5      n[        R                  " UR                   S S 5       H  nUS:X  a  U[        X   5      ==   X%   -  ss'   M%  US:X  a  U[        X   5      ==   X%   -  ss'   MG  US:X  a.  [        R                  " XAU      X%   5      U[        X   5      '   M{  US:X  a.  [        R                  " XAU      X%   5      U[        X   5      '   M  X%   U[        X   5      '   M     U$ )Naddmulmaxmin)shapelennpcopyndindextuplemaximumminimum)dataindicesupdates	reductionoutputis         d/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/onnx/backend/test/case/node/scatternd.pyscatter_nd_implr      s;   ==DJJ///==GMM#2.GMM"<M<O1PPPPP WWT]FZZcr*+5$%3%%5$%3%%(*

6!*3Ewz(RF5$%%(*

6!*3Ewz(RF5$%(/
F5$% , M    c                  x    \ 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	S j5       r	Sr
g)
	ScatterND#   c            
        [         R                  R                  S/ SQS/S9n [        R                  " / SQ/ SQ/ SQ/ SQ// SQ/ SQ/ SQ/ SQ// SQ/ SQ/ SQ/ SQ// SQ/ SQ/ SQ/ SQ//[        R
                  S	9n[        R                  " S
/S//[        R                  S	9n[        R                  " / SQ/ SQ/ SQ/ SQ// SQ/ SQ/ SQ/ SQ//[        R
                  S	9n[        XU5      n[        U XU/U/SS9  g )Nr   r   r   r   y)inputsoutputs                        r.   r-   r,   r+   r)   r(   r'   r&   dtyper   r'   r+   r+   r+   r+   r,   r,   r,   r,   r-   r-   r-   r-   r.   r.   r.   r.   r&   r&   r&   r&   r'   r'   r'   r'   r(   r(   r(   r(   r)   r)   r)   r)   test_scatterndr#   r$   name	onnxhelper	make_noder   arrayfloat32int64r   r   noder   r   r   r   s        r   export_scatterndScatterND.export_scatternd$   s    {{$$1E % 

 xx|\<H|\<H|\<H|\<H	 **
 ((QC!:RXX6((|\<H|\<H **
 !87+H!		
r   c            
        [         R                  R                  S/ SQS/SS9n [        R                  " / SQ/ SQ/ SQ/ S	Q// SQ/ SQ/ SQ/ S	Q// SQ/ S	Q/ SQ/ SQ// SQ/ S	Q/ SQ/ SQ//[        R
                  S
9n[        R                  " S/S//[        R                  S
9n[        R                  " / SQ/ SQ/ SQ/ SQ// SQ/ SQ/ SQ/ SQ//[        R
                  S
9n[        XUSS9n[        U XU/U/SS9  g )Nr   r!   r"   r   r#   r$   r   r%   r*   r/   r0   r1   r   r3   r4   r5   r6   r7   r8   r9   r:   r   test_scatternd_addr<   r>   rE   s        r   export_scatternd_addScatterND.export_scatternd_addI       {{$$1E	 % 
 xx|\<H|\<H|\<H|\<H	 **
 ((QC!:RXX6((|\<H|\<H **
 !5I7+H%		
r   c            
        [         R                  R                  S/ SQS/SS9n [        R                  " / SQ/ SQ/ SQ/ S	Q// SQ/ SQ/ SQ/ S	Q// SQ/ S	Q/ SQ/ SQ// SQ/ S	Q/ SQ/ SQ//[        R
                  S
9n[        R                  " S/S//[        R                  S
9n[        R                  " / SQ/ SQ/ SQ/ SQ// SQ/ SQ/ SQ/ SQ//[        R
                  S
9n[        XUSS9n[        U XU/U/SS9  g )Nr   r!   r"   r	   rJ   r%   r*   r/   r0   r1   r   r3   r4   r5   r6   r7   r8   r9   r:   rK   test_scatternd_multiplyr<   r>   rE   s        r   export_scatternd_multiply#ScatterND.export_scatternd_multiplyo   s    {{$$1E	 % 
 xx|\<H|\<H|\<H|\<H	 **
 ((QC!:RXX6((|\<H|\<H **
 !5I7+H*		
r   c            
        [         R                  R                  S/ SQS/SS9n [        R                  " / SQ/ SQ/ SQ/ S	Q// SQ/ SQ/ SQ/ S	Q// SQ/ S	Q/ SQ/ SQ// SQ/ S	Q/ SQ/ SQ//[        R
                  S
9n[        R                  " S/S//[        R                  S
9n[        R                  " / SQ/ SQ/ SQ/ SQ// SQ/ SQ/ SQ/ SQ//[        R
                  S
9n[        XUSS9n[        U XU/U/SS9  g )Nr   r!   r"   r
   rJ   r%   r*   r/   r0   r1   r   r3   r4   r5   r6   r7   r8   r9   r:   rK   test_scatternd_maxr<   r>   rE   s        r   export_scatternd_maxScatterND.export_scatternd_max   rO   r   c            
        [         R                  R                  S/ SQS/SS9n [        R                  " / SQ/ SQ/ SQ/ S	Q// SQ/ SQ/ SQ/ S	Q// SQ/ S	Q/ SQ/ SQ// SQ/ S	Q/ SQ/ SQ//[        R
                  S
9n[        R                  " S/S//[        R                  S
9n[        R                  " / SQ/ SQ/ SQ/ SQ// SQ/ SQ/ SQ/ SQ//[        R
                  S
9n[        XUSS9n[        U XU/U/SS9  g )Nr   r!   r"   r   rJ   r%   r*   r/   r0   r1   r   r3   r4   r5   r6   r7   r8   r9   r:   rK   test_scatternd_minr<   r>   rE   s        r   export_scatternd_minScatterND.export_scatternd_min   rO   r    N)returnNone)__name__
__module____qualname____firstlineno__staticmethodrG   rM   rR   rV   rZ   __static_attributes__r\   r   r   r   r   #   sh    "
 "
H #
 #
J #
 #
J #
 #
J #
 #
r   r   )none)
__future__r   numpyr   r?   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r   r   r\   r   r   <module>rj      s)    #   , .,|
 |
r   