U
    rh|                     @  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                   @  sf   e Zd ZeddddZeddddZeddddZeddd	d
ZeddddZdS )ReduceL2None)returnc                  C  s   dddg} t jdgt jd}d}tjjdddgdg|d	}t t jd
t | d
 t j	d| }t 
t jt |t||d
kd}t|||g|gdd t jd t jdd| t j	}t 
t jt |t||d
kd}t|||g|gdd d S )N      Zdtyper   r   dataaxesreducedinputsoutputskeepdims   aZaxisr   Z&test_reduce_l2_do_not_keepdims_exampler   r   name
   Z%test_reduce_l2_do_not_keepdims_randomnparrayint64onnxhelper	make_nodereshapearangeprodfloat32sqrtsumsquaretupler   randomseeduniformastypeshaper   r   noder   r    r/   H/tmp/pip-unpacked-wheel-xnis5xre/onnx/backend/test/case/node/reducel2.pyexport_do_not_keepdims   s<    
$zReduceL2.export_do_not_keepdimsc                  C  s   dddg} t jdgt jd}d}tjjdddgdg|d	}t t jdt | d t j	d| }t 
t jt |t||dkd
}t|||g|gdd t jd t jdd| t j	}t 
t jt |t||dkd
}t|||g|gdd d S )Nr   r	   r
   r   r   r   r   r   r   r   Z test_reduce_l2_keep_dims_exampler   r   r   r   Ztest_reduce_l2_keep_dims_randomr   r,   r/   r/   r0   export_keepdims;   s<    
$zReduceL2.export_keepdimsc                  C  s   dddg} t jg t jd}d}tjjdddgdg|d	}t t jdt | d t j	d| }t 
t jt |d |dkd
}t|||g|gdd t jd t jdd| t j	}t 
t jt |d |dkd
}t|||g|gdd d S )Nr   r	   r
   r   r   r   r   r   r   r   Z,test_reduce_l2_default_axes_keepdims_exampler   r   r   r   Z+test_reduce_l2_default_axes_keepdims_random)r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r   r(   r)   r*   r+   r,   r/   r/   r0   export_default_axes_keepdimsh   s4    
   $  z%ReduceL2.export_default_axes_keepdimsc                  C  s   dddg} t jdgt jd}d}tjjdddgd	g|d
}t t jdt | d t j	d| }t 
t jt |t||dkd}t|||g|gdd t jd t jdd| t j	}t 
t jt |t||dkd}t|||g|gdd d S )Nr   r	   r
   r   r   r   r   r   r   r   Z.test_reduce_l2_negative_axes_keep_dims_exampler   r   r   r   Z-test_reduce_l2_negative_axes_keep_dims_randomr   r,   r/   r/   r0   export_negative_axes_keepdims   s<    
$z&ReduceL2.export_negative_axes_keepdimsc                  C  s   dddg} d}dddg}t jjdddgdg|d	}tjg tjd
| }tjdgtjd
}ttj|tjd
}t	|||g|gdd d S )Nr	   r      r   r   r   r   r   r   r
   Ztest_reduce_l2_empty_setr   )
r   r   r   r   r   r#   r    r   zerosr   )r-   r   Zreduced_shaper.   r   r   r   r/   r/   r0   export_empty_set   s$    

zReduceL2.export_empty_setN)	__name__
__module____qualname__staticmethodr1   r2   r3   r5   r8   r/   r/   r/   r0   r      s   ,,#,r   )

__future__r   Znumpyr   r   Zonnx.backend.test.case.baser   Zonnx.backend.test.case.noder   r   r/   r/   r/   r0   <module>   s
   