
    /jI                    b    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dZ	 G d de          Z
dS )    )annotationsN)Base)expectdata
np.ndarrayshape	allowzeroint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_indexs        h/home/longshao/multi-rider-rag/.venv/lib/python3.11/site-packages/onnx/backend/test/case/node/reshape.py reshape_reference_implementationr      sZ    
 IA~~huz**!#$*!5!5k!B	+:dI&&&    c                  >    e Zd Zedd            Zedd            ZdS )Reshaper   Nonec                    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   reshaped)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	   r0   r1   r3   r=   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   N)r   r   )__name__
__module____qualname__staticmethodrB   rE    r   r   r   r      sR           \>    \  r   r   )r   )r   r   r   r   r	   r
   r   r   )
__future__r   numpyr   r:   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r   r   rJ   r   r   <module>rO      s    # " " " " "      , , , , , , . . . . . . ;<	' 	' 	' 	' 	'9 9 9 9 9d 9 9 9 9 9r   