U
    rh1                     @  s\   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	dddZ
G d	d
 d
eZdS )    )annotationsN)Base)expectc                 C  s   t | |S N)npZtriuxk r
   E/tmp/pip-unpacked-wheel-xnis5xre/onnx/backend/test/case/node/trilu.pytriu_reference_implementation   s    r   c                 C  s   t | |S r   )r   Ztrilr   r
   r
   r   tril_reference_implementation   s    r   c                   @  sP  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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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eddd!d"Zeddd#d$Zeddd%d&Zd'S )(TriluNone)returnc                  C  sN   t jjddgdgd} tjjdddtj}t|}t	| |g|gdd	 d S )
Nr   r   yinputsoutputs
         sizeZ	test_triur   r   name
onnxhelper	make_noder   randomrandintastypeint64r   r   noder   r   r
   r
   r   export_triu   s    zTrilu.export_triuc                  C  sj   t jjdddgdgd} tjjdddtj}td	tj}t	|t
|}t| ||g|gd
d d S )Nr   r   r	   r   r   r   r   r   Ztest_triu_negr   r   r   r    r   r!   r"   r#   r$   arrayr   intr   r&   r   r	   r   r
   r
   r   export_triu_neg,   s    zTrilu.export_triu_negc                  C  sj   t jjdddgdgd} tjjdddtj}td	tj}t	|t
|}t| ||g|gd
d d S )Nr   r   r	   r   r   r   r   r   Ztest_triu_out_neg_outr   r)   r,   r
   r
   r   export_triu_out_neg_outC   s    zTrilu.export_triu_out_neg_outc                  C  sj   t jjdddgdgd} tjjdddtj}td	tj}t	|t
|}t| ||g|gd
d d S )Nr   r   r	   r   r   r   r   r      Ztest_triu_posr   r)   r,   r
   r
   r   export_triu_posZ   s    zTrilu.export_triu_posc                  C  sj   t jjdddgdgd} tjjdddtj}td	tj}t	|t
|}t| ||g|gd
d d S )Nr   r   r	   r   r   r   r   r      Ztest_triu_out_posr   r)   r,   r
   r
   r   export_triu_out_posq   s    zTrilu.export_triu_out_posc                  C  sN   t jjddgdgd} tjjdddtj}t|}t	| |g|gdd	 d S )
Nr   r   r   r   r   r0      r5   r   Ztest_triu_squarer   r   r%   r
   r
   r   export_triu_square   s    zTrilu.export_triu_squarec                  C  sj   t jjdddgdgd} tjjdddtj}td	tj}t	|t
|}t| ||g|gd
d d S )Nr   r   r	   r   r   r   r4   r   r(   Ztest_triu_square_negr   r)   r,   r
   r
   r   export_triu_square_neg   s    zTrilu.export_triu_square_negc                  C  sj   t jjdddgdgd} tjjdddtj}td	tj}t	|t
|}t| ||g|gd
d d S )Nr   r   r	   r   r   r   r5      r   r   r9   Ztest_triu_one_rowr   r)   r,   r
   r
   r   export_triu_one_row   s    zTrilu.export_triu_one_rowc                  C  sj   t jjdddgdgd} tjjdddtj}td	tj}t	|t
|}t| ||g|gd
d d S )Nr   r   r	   r   r   r   )r   r   r   r2   Ztest_triu_zeror   r)   r,   r
   r
   r   export_triu_zero   s    zTrilu.export_triu_zeroc                  C  sP   t jjddgdgdd} tjjdddtj}t|}t	| |g|gd	d
 d S )Nr   r   r   r   r   r   upperr   r   r   Z	test_trilr   
r   r   r    r   r!   r"   r#   r$   r   r   r%   r
   r
   r   export_tril   s    zTrilu.export_trilc                  C  sl   t jjdddgdgdd} tjjddd	tj}td
tj}t	|t
|}t| ||g|gdd d S )Nr   r   r	   r   r   r<   r   r   r   r(   Ztest_tril_negr   r   r   r    r   r!   r"   r#   r$   r*   r   r+   r   r,   r
   r
   r   export_tril_neg  s    zTrilu.export_tril_negc                  C  sl   t jjdddgdgdd} tjjddd	tj}td
tj}t	|t
|}t| ||g|gdd d S )Nr   r   r	   r   r   r<   r   r   r   r.   Ztest_tril_out_negr   r@   r,   r
   r
   r   export_tril_out_neg  s    zTrilu.export_tril_out_negc                  C  sl   t jjdddgdgdd} tjjddd	tj}td
tj}t	|t
|}t| ||g|gdd d S )Nr   r   r	   r   r   r<   r   r   r   r0   Ztest_tril_posr   r@   r,   r
   r
   r   export_tril_pos2  s    zTrilu.export_tril_posc                  C  sl   t jjdddgdgdd} tjjddd	tj}td
tj}t	|t
|}t| ||g|gdd d S )Nr   r   r	   r   r   r<   r   r   r   r2   Ztest_tril_out_posr   r@   r,   r
   r
   r   export_tril_out_posJ  s    zTrilu.export_tril_out_posc                  C  sP   t jjddgdgdd} tjjdddtj}t|}t	| |g|gd	d
 d S )Nr   r   r   r   r<   r   r4   r   Ztest_tril_squarer   r>   r%   r
   r
   r   export_tril_squarea  s    zTrilu.export_tril_squarec                  C  sl   t jjdddgdgdd} tjjddd	tj}td
tj}t	|t
|}t| ||g|gdd d S )Nr   r   r	   r   r   r<   r   r4   r   r(   Ztest_tril_square_negr   r@   r,   r
   r
   r   export_tril_square_neg~  s    zTrilu.export_tril_square_negc                  C  sP   t jjddgdgdd} tjjdddtj}t|}t	| |g|gd	d
 d S )Nr   r   r   r   r<   r   r8   r   Ztest_tril_one_row_negr   r>   r%   r
   r
   r   export_tril_one_row  s    zTrilu.export_tril_one_rowc                  C  sl   t jjdddgdgdd} tjjddd	tj}td
tj}t	|t
|}t| ||g|gdd d S )Nr   r   r	   r   r   r<   r   )r5   r   r   r   r2   Ztest_tril_zeror   r@   r,   r
   r
   r   export_tril_zero  s    zTrilu.export_tril_zeroN)__name__
__module____qualname__staticmethodr'   r-   r/   r1   r3   r6   r7   r:   r;   r?   rA   rB   rC   rD   rE   rF   rG   rH   r
   r
   r
   r   r      sH   r   )r   )r   )
__future__r   Znumpyr   r   Zonnx.backend.test.case.baser   Zonnx.backend.test.case.noder   r   r   r   r
   r
   r
   r   <module>   s   

