
    Ng>              	           d dl Zd dlZd dlmZ d dlmZ 	 ddej        dej        dedej        fdZ	 G d	 d
e          Z
dS )    N)Base)expectdatashape	allowzeroreturnc                     t          j        |          }|dk    r:t          j        |dk              }t          j        | j                  |         ||<   t          j        | |          }|S )Nr   )npcopywherearrayr   reshape)r   r   r   	new_shapezeros_indexreshapeds         _/var/www/html/ai-engine/env/lib/python3.11/site-packages/onnx/backend/test/case/node/reshape.py reshape_reference_implementationr      s^    
 IA~~huz**!#$*!5!5k!B	+z$	**HO    c                   >    e Zd Zedd            Zedd            ZdS )Reshaper   Nc                     g d} t          j        g dt           j                  t          j        g dt           j                  t          j        ddgt           j                  t          j        g dt           j                  t          j        dgt           j                  t          j        g d	t           j                  t          j        g d
t           j                  t          j        g dt           j                  t          j        g dt           j                  d	}t           j                            |                               t           j                  }|                                D ]S\  }}t          j	        
                    dddgdg          }t          ||          }t          |||g|gd|z              Td S )N)         )r   r   r   dtype)r   r   r   r      )r   r   r   r      )r   r   )r   r   r   r   )r   r   r      )r   r   r    r   )	reordered_all_dimsreordered_last_dimsreduced_dimsextended_dimsone_dimnegative_dimnegative_extended_dimszero_dimzero_and_negative_dimr   r   r   r   )inputsoutputstest_reshape_r*   r+   namer
   r   int64randomrandom_sampleastypefloat32itemsonnxhelper	make_noder   r   original_shape
test_casesr   	test_namer   noder   s          r   export_reshapezReshape.export_reshape   s   ""$(999BH"E"E"E#%8IIIRX#F#F#FHaWBH===Xlll"(CCCxBH555HZZZrx@@@&(h}}}BH&M&M&MRX>>>%'Xmmm28%L%L%L

 


 y&&~66==bjII * 0 0 2 2 	 	Iu;(((# )  D 8eDDHe}!
$y0	    	 	r   c                     g d} dt          j        g dt           j                  i}t           j                            |                               t           j                  }|                                D ]V\  }}t          j	        
                    dddgdgd	
          }t          ||d	          }t          |||g|gd|z              Wd S )N)r   r   r   allowzero_reordered)r   r   r   r   r   r   r   r   r    )r*   r+   r   )r   r,   r-   r/   r9   s          r   export_allowzerozReshape.export_allowzero:   s    "!28IIIRX#F#F#F

 y&&~66==bjII * 0 0 2 2 	 	Iu;(((#	 )  D 8eqQQQHe}!
$y0	    	 	r   )r   N)__name__
__module____qualname__staticmethodr>   rA    r   r   r   r      sR           \>    \  r   r   )r   )numpyr
   r6   onnx.backend.test.case.baser   onnx.backend.test.case.noder   ndarrayintr   r   rF   r   r   <module>rL      s   
      , , , , , , . . . . . . ;<
 

*
Z
47
Z
 
 
 
9 9 9 9 9d 9 9 9 9 9r   