
    bIga                    h    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
y)
    )annotationsN)Base)expectc                    t        j                  |      }|dk(  r=t        j                  |dk(        }t        j                  | j                        |   ||<   t        j
                  | |      }|S )Nr   )npcopywherearrayshapereshape)datar   	allowzero	new_shapezeros_indexreshapeds         `/var/www/html/answerous/venv/lib/python3.12/site-packages/onnx/backend/test/case/node/reshape.py reshape_reference_implementationr      s[    
 IA~hhuz*!#$**!5k!B	+zz$	*HO    c                  0    e Zd Zedd       Zedd       Zy)Reshapec                    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                  j	                  |       j                  t         j                        }|j                         D ]K  \  }}t        j                  j                  dddgdg      }t        ||      }t        |||g|gd|z          M y )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   sN   ""$((9BHH"E#%88IRXX#FHHaWBHH=XXl"((CxxBHH5HHZrxx@&(hh}BHH&MRXX>%'XXm288%L


 yy&&~6==bjjI * 0 0 2 	Iu;;(((# ) D 8eDHe}!
$y0		r   c                    g d} dt        j                  g dt         j                        i}t         j                  j	                  |       j                  t         j                        }|j                         D ]N  \  }}t        j                  j                  dddgdgd	
      }t        ||d	      }t        |||g|gd|z          P y )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    "!288IRXX#F

 yy&&~6==bjjI * 0 0 2 	Iu;;(((#	 ) D 8eqQHe}!
$y0		r   N)returnNone)__name__
__module____qualname__staticmethodr>   rA    r   r   r   r      s(     >  r   r   )r   )r   
np.ndarrayr   rI   r   intrB   rI   )
__future__r   numpyr   r6   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r   r   rH   r   r   <module>rO      sL    #   , . ;<


'
47

9d 9r   