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                   @  s   e Zd ZeddddZdS )QLinearMatMulNone)returnc                  C  s  dD ]} t t| }dD ]}t t|}tjjddddddd	d
dgdgd}tddddgddddgg}|tjkr||d8 }||}tjdg|d}tj|tjkrdgndg|d}tdddgdddgddd gdd!d"gg}|tjkr|d8 }||}tjd#g|d}	tj|tjkr"d$gnd%g|d}
tjd&g|d}tj|tjkrTd'gnd(g|d}|tjkrtd)d*d'gd+d,d-gg}ntd.d/dgd+d0d1gg}||}t||||||	|
||g|gd2|  d3| d4 tddddgddddggddddgddddggg}|tjkr$|d8 }||}tjdg|d}tj|tjkrTdgndg|d}tdddgdddgddd gdd!d"ggdddgdddgddd gdd!d"ggg}|tjkr|d8 }||}tjd#g|d}	tjd%g|d}
tjd&g|d}tj|tjkrd'gnd(g|d}|tjkr|tj	krftd5d6d7gd/d8d9ggd5d6d7gd/d8d9ggg}n.td5d:d;gd/d8d9ggd5d:d;gd/d8d9ggg}n.td.d/dgd+d0d1ggd.d/dgd+d0d1ggg}||}t||||||	|
||g|gd<|  d3| d4 qqd S )=N)Zuint8int8)float32Zfloat16r   aa_scalea_zero_pointbb_scaleb_zero_pointy_scaley_zero_pointy)inputsoutputs      r                     gF%u{?)dtypeiq      3      <               g!u|?ir   g'?iv   )   i   i      s   B      Ztest_qlinearmatmul_2D__)r   r   nameiu   x   '   it   w   Ztest_qlinearmatmul_3D_)
getattrnponnxhelperZ	make_nodearrayr   Zastyper   r	   )Zquant_type_nameZ
quant_typeZ
dtype_namer   noder
   r   r   r   r   r   r   r   output r>   M/tmp/pip-unpacked-wheel-xnis5xre/onnx/backend/test/case/node/qlinearmatmul.py
export_int   s    






 "

  


 ""
 

zQLinearMatMul.export_intN)__name__
__module____qualname__staticmethodr@   r>   r>   r>   r?   r      s   r   )

__future__r   Znumpyr8   r9   Zonnx.backend.test.case.baser   Zonnx.backend.test.case.noder   r   r>   r>   r>   r?   <module>   s
   