
    bIg!                    V    d dl mZ d dlZd dlZd dlmZ d dlmZ ddZ	 G d de      Z
y)	    )annotationsN)Base)expectc                   |j                   d   t        | j                         k  sJ |j                   |j                   d d | j                   |j                   d   d  z   k(  sJ t        j                  |       }t        j                  |j                   d d       D ]  }|dk(  r|t        ||         xx   ||   z  cc<   %|dk(  r|t        ||         xx   ||   z  cc<   G|dk(  r/t        j                  |||      ||         |t        ||         <   {|dk(  r/t        j                  |||      ||         |t        ||         <   ||   |t        ||         <    |S )Naddmulmaxmin)shapelennpcopyndindextuplemaximumminimum)dataindicesupdates	reductionoutputis         b/var/www/html/answerous/venv/lib/python3.12/site-packages/onnx/backend/test/case/node/scatternd.pyscatter_nd_implr      sX   ==DJJ///==GMM#2.GMM"<M<O1PPPPP WWT]FZZcr*+ 35$%3%%5$%3%%(*

6'!*3Ewqz(RF5$%%(*

6'!*3Ewqz(RF5$%(/
F5$%3 M    c                  f    e Zd Zedd       Zedd       Zedd       Zedd       Zedd       Zy)	ScatterNDc            
        t         j                  j                  dg ddg      } t        j                  g dg dg dg dgg dg dg dg dgg dg dg dg dgg dg dg dg dggt        j
                  	      }t        j                  d
gdggt        j                  	      }t        j                  g dg dg dg dgg dg dg dg dggt        j
                  	      }t        |||      }t        | |||g|gd       y )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_scatterndzScatterND.export_scatternd$   s    {{$$1E % 

 xx|\<H|\<H|\<H|\<H	 **
 ((QC!:RXX6((|\<H|\<H **
 !w8'7+H!		
r   c            
        t         j                  j                  dg ddgd      } t        j                  g dg dg dg d	gg dg dg dg d	gg dg d	g dg dgg dg d	g dg dggt        j
                  
      }t        j                  dgdggt        j                  
      }t        j                  g dg dg dg dgg dg dg dg dggt        j
                  
      }t        |||d      }t        | |||g|gd       y )Nr   r    r!   r   r"   r#   r   r$   r)   r.   r/   r0   r   r2   r3   r4   r5   r6   r7   r8   r9   r   test_scatternd_addr;   r=   rD   s        r   export_scatternd_addzScatterND.export_scatternd_addI       {{$$1E	 % 
 xx|\<H|\<H|\<H|\<H	 **
 ((QC!:RXX6((|\<H|\<H **
 !w5I'7+H%		
r   c            
        t         j                  j                  dg ddgd      } t        j                  g dg dg dg d	gg dg dg dg d	gg dg d	g dg dgg dg d	g dg dggt        j
                  
      }t        j                  dgdggt        j                  
      }t        j                  g dg dg dg dgg dg dg dg dggt        j
                  
      }t        |||d      }t        | |||g|gd       y )Nr   r    r!   r	   rH   r$   r)   r.   r/   r0   r   r2   r3   r4   r5   r6   r7   r8   r9   rI   test_scatternd_multiplyr;   r=   rD   s        r   export_scatternd_multiplyz#ScatterND.export_scatternd_multiplyo   s    {{$$1E	 % 
 xx|\<H|\<H|\<H|\<H	 **
 ((QC!:RXX6((|\<H|\<H **
 !w5I'7+H*		
r   c            
        t         j                  j                  dg ddgd      } t        j                  g dg dg dg d	gg dg dg dg d	gg dg d	g dg dgg dg d	g dg dggt        j
                  
      }t        j                  dgdggt        j                  
      }t        j                  g dg dg dg dgg dg dg dg dggt        j
                  
      }t        |||d      }t        | |||g|gd       y )Nr   r    r!   r
   rH   r$   r)   r.   r/   r0   r   r2   r3   r4   r5   r6   r7   r8   r9   rI   test_scatternd_maxr;   r=   rD   s        r   export_scatternd_maxzScatterND.export_scatternd_max   rL   r   c            
        t         j                  j                  dg ddgd      } t        j                  g dg dg dg d	gg dg dg dg d	gg dg d	g dg dgg dg d	g dg dggt        j
                  
      }t        j                  dgdggt        j                  
      }t        j                  g dg dg dg dgg dg dg dg dggt        j
                  
      }t        |||d      }t        | |||g|gd       y )Nr   r    r!   r   rH   r$   r)   r.   r/   r0   r   r2   r3   r4   r5   r6   r7   r8   r9   rI   test_scatternd_minr;   r=   rD   s        r   export_scatternd_minzScatterND.export_scatternd_min   rL   r   N)returnNone)	__name__
__module____qualname__staticmethodrF   rK   rO   rR   rU    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>rb      s)    #   , .,|
 |
r   