o
    so™i&  ã                   @  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ÚastypeÚdtype)ÚxÚy© r   úS/home/ubuntu/.local/lib/python3.10/site-packages/onnx/backend/test/case/node/pow.pyÚpow   s   r   c                   @  s6   e Zd Zed
dd„ƒZed
dd„ƒZed
dd„ƒZd	S )ÚPowÚreturnÚNonec                  C  s¼   t jjdddgdgd} t g d¢¡ tj¡}t g d¢¡ 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
   Úz©ÚinputsÚoutputs©é   é   é   ©é   é   é   Útest_pow_example©r   r   Únameé<   r   r   r   Útest_pow)ÚonnxÚhelperÚ	make_noder   Úarrayr   Úfloat32r   r   ÚarangeÚreshapeÚrandomÚ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 g d¢¡ tj¡}t d¡ tj¡}t||ƒ}t| ||g|gdd	 t jjdddgdgd} t g d¢g d
¢g¡ tj¡}t g d¢¡ tj¡}t||ƒ}t| ||g|gdd	 d S )Nr   r	   r
   r   r   r   r   Útest_pow_bcast_scalarr   r   Ú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 g d¢¡ tj¡}t g d¢¡ tj¡}t||ƒ}t	| ||g|gdd	 t g d¢¡ tj¡}t g d¢¡ tj¡}t||ƒ}t	| ||g|gd
d	 t g d¢¡ tj¡}t g d¢¡ tj
¡}t||ƒ}t	| ||g|gdd	 t g d¢¡ tj
¡}t g d¢¡ tj¡}t||ƒ}t	| ||g|gdd	 t g d¢¡ tj¡}t g d¢¡ tj¡}t||ƒ}t	| ||g|gdd	 t g d¢¡ tj¡}t g d¢¡ tj¡}t||ƒ}t	| ||g|gdd	 t g d¢¡ tj¡}t g d¢¡ tj¡}t||ƒ}t	| ||g|gdd	 t g d¢¡ tj
¡}t g d¢¡ tj
¡}t||ƒ}t	| ||g|gdd	 d S )Nr   r	   r
   r   r   r   r   Útest_pow_types_float32_int64r   Útest_pow_types_int64_float32Útest_pow_types_float32_int32Útest_pow_types_int32_float32Útest_pow_types_float32_uint64Útest_pow_types_float32_uint32Útest_pow_types_int64_int64Útest_pow_types_int32_int32)r"   r#   r$   r   r%   r   r&   Úint64r   r   Úint32Úuint64Úuint32r+   r   r   r   Úexport_types<   sJ   ý







zPow.export_typesN)r   r   )Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr-   r0   r=   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   r   Ú<module>   s   