o
    soi                     @  sH   d dl mZ d dlZd dlZd dlmZ d dlmZ G dd deZ	dS )    )annotationsN)Base)expectc                   @  s6   e Zd Zed
ddZed
ddZed
ddZd	S )FlattenreturnNonec                  C  s   d} t j| t j}tt| D ]6}tjj	ddgdg|d}|dkr&dnt 
| d| tdf}t ||}t||g|gd	t| d
 qd S )N            r   abinputsoutputsaxisr   )   r   test_flatten_axisr   r   name)nprandomrandom_sampleastypefloat32rangelenonnxhelper	make_nodeprodintreshaper   strshaper   inode	new_shaper    r+   W/home/ubuntu/.local/lib/python3.10/site-packages/onnx/backend/test/case/node/flatten.pyexport   s   (zFlatten.exportc                  C  sV   t jjddgdgd} d}tj|tj}d}t||}t	| |g|gdd d S )	Nr   r   r   )r   r   )r   r   r
   r	   )r      test_flatten_default_axisr   )
r   r    r!   r   r   r   r   r   r$   r   )r)   r'   r   r*   r   r+   r+   r,    export_flatten_with_default_axis   s   z(Flatten.export_flatten_with_default_axisc               	   C  s   d} t j| t j}tt|  dD ]2}tjj	ddgdg|d}t 
| d| tdf}t ||}t||g|gdtt| d	 qd S )
Nr   r   r   r   r   r   r   test_flatten_negative_axisr   )r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r   r%   absr&   r+   r+   r,   export_flatten_negative_axis-   s$   z$Flatten.export_flatten_negative_axisN)r   r   )__name__
__module____qualname__staticmethodr-   r0   r3   r+   r+   r+   r,   r      s    r   )

__future__r   numpyr   r   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r   r+   r+   r+   r,   <module>   s   