U
    q±ËhÍ  ã                   @  sj   d dl mZ d dlZd dlZd dlZd dlZd dlZd dlmZmZ G dd„ dej	ƒZ
edkrfe ¡  dS )é    )ÚannotationsN)ÚTensorProtoÚhelperc                   @  s   e Zd Zddœdd„ZdS )ÚTestUtilityFunctionsÚNone)Úreturnc                 C  s.  dd„ }|dƒ}|dƒ}|dƒ}|dƒ}|dƒ}|dƒ}|d	ƒ}|d
ƒ}	t  dddgdg¡}
t  dddgdg¡}t  dddgdg¡}t  dddgdg¡}t  dddgd	g¡}t  ddd	gd
g¡}t  |
|||||gd||g|	g¡}t j|dd}t ¡ }tj |d¡}t	 
||¡ tj |d¡}dddg}dd	g}t	j ||||¡ t	 |¡}|  |jd¡ |  |j|j¡ |  |j|j¡ |  t|jjƒd¡ |  t|jjƒd¡ |  t|jjƒd¡ |  |jjd |¡ |  |jjd |¡ |  |jjd |¡ |  |jjd |¡ |  |jjd |¡ tj|dd d S )Nc                 S  s   t  | tjddg¡S )Né   é   )r   Zmake_tensor_value_infor   ÚFLOAT)Úname© r   ú8/tmp/pip-unpacked-wheel-xnis5xre/onnx/test/utils_test.pyÚcreate_tensor   s    z>TestUtilityFunctions.test_extract_model.<locals>.create_tensorÚA0ÚA1ÚB0ÚB1ÚB2ÚC0ÚC1ÚD0ZAddZSubZMulÚtest)Úproducer_namezoriginal.onnxzextracted.onnxzonnx.utils.extract_modelr	   é   r   r   T)Úignore_errors)r   Z	make_nodeZ
make_graphZ
make_modelÚtempfileÚmkdtempÚosÚpathÚjoinÚonnxÚsaveÚutilsZextract_modelÚloadÚassertEqualr   Z
ir_versionZopset_importÚlenÚgraphÚnodeÚinputÚoutputÚshutilÚrmtree)Úselfr   r   r   r   r   r   r   r   r   ZL0_0ZL0_1ZL0_2ZL1_0ZL1_1ZL2_0Zg0Zm0ZtdirZp0Úp1Zinput_namesZoutput_namesÚm1r   r   r   Útest_extract_model   sT       ÿ

z'TestUtilityFunctions.test_extract_modelN)Ú__name__Ú
__module__Ú__qualname__r/   r   r   r   r   r      s   r   Ú__main__)Ú
__future__r   r   r*   r   Zunittestr    r   r   ZTestCaser   r0   Úmainr   r   r   r   Ú<module>   s   0