U
    r±Ëh0  ã                   @  sP   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„ Z	G dd„ deƒZ
dS )	é    )ÚannotationsN)ÚBase)Úexpectc                 C  s   t  | |¡ | j¡}|S )N)ÚnpÚpowerÚastypeZdtype)ÚxÚyÚz© r   úC/tmp/pip-unpacked-wheel-xnis5xre/onnx/backend/test/case/node/pow.pyÚpow   s    r   c                   @  sB   e Zd Zeddœdd„ƒZeddœdd„ƒZeddœdd„ƒZd	S )
ÚPowÚNone)Úreturnc                  C  sÀ   t jjdddgdgd} t dddg¡ tj¡}t d	d
dg¡ tj¡}t||ƒ}t| ||g|gdd t 	d¡ 
dd	d
¡ tj¡}tj dd	d
¡ tj¡}t||ƒ}t| ||g|gdd d S )Nr   r   r	   r
   ©ÚinputsÚoutputsé   é   é   é   é   é   Ztest_pow_example©r   r   Únameé<   Ztest_pow)ÚonnxÚhelperÚ	make_noder   Úarrayr   Úfloat32r   r   ZarangeZreshapeÚrandomZrandn©Únoder   r	   r
   r   r   r   Úexport   s    ý

z
Pow.exportc                  C  sØ   t jjdddgdgd} t dddg¡ tj¡}t d¡ tj¡}t||ƒ}t| ||g|gd	d
 t jjdddgdgd} t dddgdddgg¡ tj¡}t dddg¡ tj¡}t||ƒ}t| ||g|gdd
 d S )Nr   r   r	   r
   r   r   r   r   Ztest_pow_bcast_scalarr   r   r   r   Ztest_pow_bcast_array)	r   r   r   r   r    r   r!   r   r   r#   r   r   r   Úexport_pow_broadcast%   s$    ý
ý"
zPow.export_pow_broadcastc                  C  sœ  t jjdddgdgd} t dddg¡ tj¡}t d	d
dg¡ tj¡}t||ƒ}t	| ||g|gdd t dddg¡ tj¡}t d	d
dg¡ tj¡}t||ƒ}t	| ||g|gdd t dddg¡ tj¡}t d	d
dg¡ tj
¡}t||ƒ}t	| ||g|gdd t dddg¡ tj
¡}t d	d
dg¡ tj¡}t||ƒ}t	| ||g|gdd t dddg¡ tj¡}t d	d
dg¡ tj¡}t||ƒ}t	| ||g|gdd t dddg¡ tj¡}t d	d
dg¡ tj¡}t||ƒ}t	| ||g|gdd t dddg¡ tj¡}t d	d
dg¡ tj¡}t||ƒ}t	| ||g|gdd t dddg¡ tj
¡}t d	d
dg¡ tj
¡}t||ƒ}t	| ||g|gdd d S )Nr   r   r	   r
   r   r   r   r   r   r   r   Ztest_pow_types_float32_int64r   Ztest_pow_types_int64_float32Ztest_pow_types_float32_int32Ztest_pow_types_int32_float32Ztest_pow_types_float32_uint64Ztest_pow_types_float32_uint32Ztest_pow_types_int64_int64Ztest_pow_types_int32_int32)r   r   r   r   r    r   r!   Zint64r   r   Zint32Zuint64Zuint32r#   r   r   r   Úexport_types=   sJ    ý







zPow.export_typesN)Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr%   r&   r'   r   r   r   r   r      s   r   )Ú
__future__r   Znumpyr   r   Zonnx.backend.test.case.baser   Zonnx.backend.test.case.noder   r   r   r   r   r   r   Ú<module>   s   