
    Ng                     ^    d dl Zd dlZd dlmZ d dlmZ d dlmZ ddZ G d de          Z	dS )	    N)helper)Base)expectc           	        	 dk     r
| j         z   j        d          j        dz   d          z   d d 		fdt          j                           D             }t          t	          j        |d                    }|                    |                                           t          |          }|                               |                    t	          j        t	          j	        j                           t	          j
                                       t	          j        |           }|t          |                   |t          |          <   |S )Nr      c                 @    t          d           g| j        z  }|||<   |S )N)slicendim)arraxisislcs       _/var/www/html/ai-engine/env/lib/python3.11/site-packages/onnx/backend/test/case/node/scatter.py
make_slicezscatter.<locals>.make_slice   s$    T{{mch&D	
    c                 j    | d         }t          dt          |                     D ]}|| |         f}|S )Nr   r   )rangelen)packedunpackedr   s      r   unpackzscatter.<locals>.unpack   s?    !9q#f++&& 	+ 	+A*HHr   c                     g | ]u} t          j                                      j        d z
  d                    t	           |                                                 d d          d         gvS )r   r   )npindicesreshaper
   tuple).0r   r   idx_xsection_shaper   r   r   s     r   
<listcomp>zscatter.<locals>.<listcomp>!   s       
  F2:01199',:JBOOPPE**WdA66778@@BGGJ	
  r   r   )r
   shaper   listr   concatenateinsertpoprepeatarangeprodcopyr   )
datar   updatesr   idxupdates_idx	scatteredr   r   r   s
    ` `   @@@r   scatterr0      s|   axxy4 uu-dQhjj0II  
         
 w}T*++  C r~c***
+
+CJJtSWWYY s))KOODbi	'-"566@R8S8STT   I#E+$6$67IeCjjr   c                   >    e Zd Zedd            Zedd            ZdS )ScatterreturnNc            
         t           j                            dg ddg          } t          j        dt          j                  }t          j        g dg dgt          j                  }t          j        g d	g d
gt          j                  }t          |||          }t          | |||g|gdt          j
        dd          g           d S )Nr2   r+   r   r,   y)inputsoutputs)   r9   dtype)r   r      )r   r<   r   )      ?皙?g333333?)       @ @g@test_scatter_without_axis 
   r7   r8   nameopset_imports)onnxr   	make_noder   zerosfloat32arrayint64r0   r   make_opsetid)noder+   r   r,   r6   s        r   export_scatter_without_axisz#Scatter.export_scatter_without_axis8   s    {$$111E % 
 

 xbj111(IIIyyy1BBB(OOO___=RZPPPD'7++ 	'7+C,!.r2667	
 	
 	
 	
 	
 	
r   c            
         d} t           j                            dg ddg|           }t          j        g dgt          j                  }t          j        ddggt          j                  }t          j        d	d
ggt          j                  }t          ||||           }t          ||||g|gdt          j	        dd          g           d S )Nr   r2   r5   r6   )r7   r8   r   )r=   r?   g      @g      @g      @r:   r9   r>   r@   r!   test_scatter_with_axisrB   rC   rD   )
rG   r   rH   r   rK   rJ   rL   r0   r   rM   )r   rN   r+   r   r,   r6   s         r   export_scatter_with_axisz Scatter.export_scatter_with_axisQ   s    {$$111E	 % 
 
 x22232:FFF(QF828444(S#J<rz:::D'7666 	'7+C)!.r2667	
 	
 	
 	
 	
 	
r   )r3   N)__name__
__module____qualname__staticmethodrO   rR    r   r   r2   r2   7   sR        
 
 
 \
0 
 
 
 \
 
 
r   r2   )r   )
numpyr   rG   r   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r0   r2   rW   r   r   <module>r[      s   
            , , , , , , . . . . . .& & & &R1
 1
 1
 1
 1
d 1
 1
 1
 1
 1
r   