o
    q::j<  ã                   @  sR   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	d
„Z	G dd„ deƒZ
dS )é    )ÚannotationsN)ÚBase)ÚexpectÚxú
np.ndarrayÚyÚreturnc                 C  s   t  | |¡ | j¡S )N)ÚnpÚpowerÚastypeÚdtype)r   r   © r   úf/home/nk/hobo-godmode/plappi-mvp/.venv/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 )ÚPowr   Ú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.   r1   r>   r   r   r   r   r      s    r   )r   r   r   r   r   r   )Ú
__future__r   Únumpyr	   r#   Úonnx.backend.test.case.baser   Úonnx.backend.test.case.noder   r   r   r   r   r   r   Ú<module>   s   
