o
    toi                     @  sj   d dl mZ d dlZd dlZd dlZd dlZd dlZd dlmZ G dd dej	Z
edkr3e  dS dS )    )annotationsN)helperc                   @  sX   e Zd ZdddZejg dddd	Zdd
dZdddZdddZ	dddZ
dS )TestAutomaticDowngradeopstrc                 O  s$   | j |g|R i |ddi d S )N
is_upgradeF)_test_op_conversion)selfr   argskwargs r   h/home/ubuntu/.local/lib/python3.10/site-packages/onnx/test/version_converter/automatic_downgrade_test.py_test_op_downgrade   s   $z)TestAutomaticDowngrade._test_op_downgrade)
ReduceL1ReduceL2ReduceLogSumReduceLogSumExp
ReduceMean	ReduceMax	ReduceMin
ReduceProd	ReduceSumReduceSumSquarereturnNonec                 C  sZ   t jdtjjdgtg dd}| j|dg ddggg dgtjjtjjg|gd d S )	Nb   )r         )dimsvals   )r         )r   r   r   )
from_opsetinput_shapesoutput_shapesinput_typesinitializer)	r   make_tensoronnxTensorProtoINT64nparrayr   FLOAT)r	   r   axesr   r   r   test_reduce_ops   s   
z&TestAutomaticDowngrade.test_reduce_opsc                 C     | j ddd d S )N   z
            <ir_version: 9, opset_import: [ "" : 20]>
            dft_no_axis (float[N, M, 1] x) => (float[N, M, 2] y)
            {
                y = DFT (x)
            }
        to_opsetmodel_test_model_conversionr	   r   r   r   test_dft20_no_axis6      
z)TestAutomaticDowngrade.test_dft20_no_axisc                 C  r2   )Nr3   z
            <ir_version: 9, opset_import: [ "" : 20]>
            dft_no_axis (float[N, M, 1] x, int64 dft_length) => (float[N, K, 2] y)
            <int64 axis = {1}>
            {
                y = DFT (x, dft_length, axis)
            }
        r4   r7   r9   r   r   r   test_dft20_initializer_axisB   r;   z2TestAutomaticDowngrade.test_dft20_initializer_axisc                 C  r2   )Nr3   a  
            <ir_version: 9, opset_import: [ "" : 20]>
            dft_no_axis (float[N, M, 1] x, int64 dft_length) => (float[N, K, 2] y)
            {
                axis = Constant <value = int64{1}>()
                y = DFT (x, dft_length, axis)
            }
        r4   r7   r9   r   r   r   test_dft20_constant_axisO   r;   z/TestAutomaticDowngrade.test_dft20_constant_axisc                 C  r2   )Nr3   z
            <ir_version: 9, opset_import: [ "" : 20]>
            dft_no_axis (float[N, M, 1] x, int64 dft_length, int64 axis) => (float[P, K, 2] y)
            {
                y = DFT (x, dft_length, axis)
            }
        r4   )_test_model_conversion_failsr9   r   r   r   test_dft20_unknown_axis\   r;   z.TestAutomaticDowngrade.test_dft20_unknown_axisN)r   r   )r   r   )__name__
__module____qualname__r   parameterizedexpandr1   r:   r<   r=   r?   r   r   r   r   r      s    



r   __main__)
__future__r   unittestautomatic_conversion_test_basenumpyr-   rC   r*   r   TestAutomaticConversionr   r@   mainr   r   r   r   <module>   s   T