
    
Ng%                        d dl Z d dlZd dlZd dl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
 de	j        fdZde	j        fdZ ej        ddiddidd	idd
ig           G d dej                              Z ej        ddiddidd	ig           G d dej                              Z G d dej                  Z G d dej                  Zedk    r ej                     dS dS )    N)serializationreturnc                  t    t          j                    } t           j        | _        d| _        d| j        _        | S )Nz	onnx-testtest)onnx
ModelProto
IR_VERSION
ir_versionproducer_namegraphname)models    P/var/www/html/ai-engine/env/lib/python3.11/site-packages/onnx/test/basic_test.py_simple_modelr      s0    OEE%EEKL    c            	          t           j                            dt           j        j        dd t          d          D                       } | S )Nztest-tensor)         c                     g | ]}|d z   S )g      ? ).0xs     r   
<listcomp>z"_simple_tensor.<locals>.<listcomp>    s    )))!a#g)))r      )r   	data_typedimsvals)r   helpermake_tensorTensorProtoFLOATrange)tensors    r   _simple_tensorr%      sK    [$$"())uRyy)))	 %  F Mr   formatprotobuf	textprotojsononnxtxtc                   :    e Zd ZU eed<   ddZddZddZddZdS )	TestIOr&   r   Nc                     t                      }t          j                            | j                                      |          }t          j        || j                  }|                     ||           d S Nr&   )	r   r   registrygetr&   serialize_protor   load_model_from_stringassertEqualselfprotoproto_stringloaded_protos       r   #test_load_model_when_input_is_bytesz*TestIO.test_load_model_when_input_is_bytes0   sd    $-11$+>>NNuUU2<TTT-----r   c                    t                      }t          j                            d                              |          }t          j                    }t          j        ||| j	                   t          j
        t          j        |                                          | j	                  }|                     ||           d S )Nr'   r/   )r   r   r0   r1   r2   ioBytesIOr   
save_modelr&   
load_modelgetvaluer4   )r6   r7   r8   fr9   s        r   5test_save_and_load_model_when_input_has_read_functionz<TestIO.test_save_and_load_model_when_input_has_read_function6   s     %-11*==MMeTTJLLa<<<<rz!**,,'?'?TTT-----r   c                 T   t                      }t          j                    5 }t          j                            |d          }t          j        ||| j                   t          j	        || j                  }| 
                    ||           d d d            d S # 1 swxY w Y   d S Nz
model.onnxr/   )r   tempfileTemporaryDirectoryospathjoinr   r>   r&   r?   r4   r6   r7   temp_dir
model_pathr9   s        r   0test_save_and_load_model_when_input_is_file_namez7TestIO.test_save_and_load_model_when_input_is_file_nameA   s    (** 	2hh==JOE:dkBBBB?:dkJJJLUL111		2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2   A.BB!$B!c                 >   t                      }t          j                    5 }t          j        |d          }t          j        ||| j                   t          j        || j                  }| 	                    ||           d d d            d S # 1 swxY w Y   d S rD   )
r   rE   rF   pathlibPathr   r>   r&   r?   r4   rJ   s        r   /test_save_and_load_model_when_input_is_pathlikez6TestIO.test_save_and_load_model_when_input_is_pathlikeI   s    (** 	2h h==JOE:dkBBBB?:dkJJJLUL111		2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2   A#BBBr   N)	__name__
__module____qualname__str__annotations__r:   rB   rM   rR   r   r   r   r,   r,   %   sq          KKK. . . .	. 	. 	. 	.2 2 2 22 2 2 2 2 2r   r,   c                   >    e Zd ZU dZeed<   d	dZd	dZd	dZd	dZ	dS )
TestIOTensorz'Test loading and saving of TensorProto.r&   r   Nc                     t                      }t          j                            | j                                      |          }t          j        || j                  }|                     ||           d S r.   )	r%   r   r0   r1   r&   r2   r   load_tensor_from_stringr4   r5   s       r   $test_load_tensor_when_input_is_bytesz1TestIOTensor.test_load_tensor_when_input_is_bytes_   sf      $-11$+>>NNuUU3LUUU-----r   c                 *   t                      }t          j                    }t          j        ||| j                   t          j        t          j        |                                          | j                  }|                     ||           d S r.   )	r%   r<   r=   r   save_tensorr&   load_tensorr@   r4   )r6   r7   rA   r9   s       r   6test_save_and_load_tensor_when_input_has_read_functionzCTestIOTensor.test_save_and_load_tensor_when_input_has_read_functione   sw      JLL$+6666'
1::<<(@(@UUU-----r   c                 T   t                      }t          j                    5 }t          j                            |d          }t          j        ||| j                   t          j	        || j                  }| 
                    ||           d d d            d S # 1 swxY w Y   d S rD   )r%   rE   rF   rG   rH   rI   r   r`   r&   ra   r4   rJ   s        r   1test_save_and_load_tensor_when_input_is_file_namez>TestIOTensor.test_save_and_load_tensor_when_input_is_file_namem   s      (** 	2hh==JUJt{CCCC+Jt{KKKLUL111		2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2rN   c                 >   t                      }t          j                    5 }t          j        |d          }t          j        ||| j                   t          j        || j                  }| 	                    ||           d d d            d S # 1 swxY w Y   d S rD   )
r%   rE   rF   rP   rQ   r   r`   r&   ra   r4   rJ   s        r   0test_save_and_load_tensor_when_input_is_pathlikez=TestIOTensor.test_save_and_load_tensor_when_input_is_pathlikev   s      (** 	2h h==JUJt{CCCC+Jt{KKKLUL111		2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2rS   rT   )
rU   rV   rW   __doc__rX   rY   r^   rb   rd   rf   r   r   r   r[   r[   R   sw          21KKK. . . .. . . .2 2 2 22 2 2 2 2 2r   r[   c                   F    e Zd Zd	dZd	dZd	dZd	dZ	 	 d	dZ	 	 d	dZdS )
TestSaveAndLoadFileExtensionsr   Nc                 <   t                      }t          j                    5 }t          j                            |d          }t          j        ||           t          j        |d          }| 	                    ||           d d d            d S # 1 swxY w Y   d S Nmodel.textprotor(   r/   
r   rE   rF   rG   rH   rI   r   r>   r?   r4   rJ   s        r   3test_save_model_picks_correct_format_from_extensionzQTestSaveAndLoadFileExtensions.test_save_model_picks_correct_format_from_extension   s    (** 	2hh0ABBJOE:...?:kJJJLUL111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2   A"BBBc                 <   t                      }t          j                    5 }t          j                            |d          }t          j        ||d           t          j        |          }| 	                    ||           d d d            d S # 1 swxY w Y   d S rk   rm   rJ   s        r   3test_load_model_picks_correct_format_from_extensionzQTestSaveAndLoadFileExtensions.test_load_model_picks_correct_format_from_extension   s    (** 	2hh0ABBJOE:kBBBB?:66LUL111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2ro   c                    t                      }t          j                    5 }t          j                            |d          }t          j        ||d           t          j        |d          }| 	                    ||           | 
                    t          j        j        j                  5  t          j        |           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nrl   r'   r/   )r   rE   rF   rG   rH   rI   r   r>   r?   r4   assertRaisesgoogler'   text_format
ParseErrorrJ   s        r   0test_save_model_uses_format_when_it_is_specifiedzNTestSaveAndLoadFileExtensions.test_save_model_uses_format_when_it_is_specified   sS   (** 	,hh0ABBJOE:jAAAA?:jIIILUL111""6?#>#IJJ , ,
+++, , , , , , , , , , , , , , ,	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,s6   BC(/CC(C	C(C	C((C,/C,c                    t                      }t          j                    5 }t          j                            |d          }t          j        ||           |                     t          j
        j        j                  5  t          j        |d           d d d            n# 1 swxY w Y   t          j        |d          }|                     ||           d d d            d S # 1 swxY w Y   d S )Nzmodel.protobufr(   r/   r'   r   rE   rF   rG   rH   rI   r   r>   rs   rt   r'   ru   rv   r?   r4   rJ   s        r   0test_load_model_uses_format_when_it_is_specifiedzNTestSaveAndLoadFileExtensions.test_load_model_uses_format_when_it_is_specified   sh   (** 		2hh0@AAJOE:...""6?#>#IJJ @ @ 
;????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @
  ?:jIIILUL111		2 		2 		2 		2 		2 		2 		2 		2 		2 		2 		2 		2 		2 		2 		2 		2 		2 		2s6   AC(B$C($B(	(C(+B(	,/C((C,/C,c                    t                      }t          j                    5 }t          j                            |d          }t          j        ||d           |                     t          j
        j        j                  5  t          j        |           d d d            n# 1 swxY w Y   t          j        |d          }|                     ||           d d d            d S # 1 swxY w Y   d S )Nr   r(   r/   )r   rE   rF   rG   rH   rI   r   r>   rs   rt   r'   messageDecodeErrorr?   r4   rJ   s        r   Ftest_load_and_save_model_to_path_without_specifying_extension_succeedszdTestSaveAndLoadFileExtensions.test_load_and_save_model_to_path_without_specifying_extension_succeeds   sX    (** 
	2hh88JOE:kBBBB""6?#:#FGG , , 
+++, , , , , , , , , , , , , , ,
  ?:kJJJLUL111
	2 
	2 
	2 
	2 
	2 
	2 
	2 
	2 
	2 
	2 
	2 
	2 
	2 
	2 
	2 
	2 
	2 
	2s6   A!C(B$C($B(	(C(+B(	,/C((C,/C,c                 >   t                      }t          j                    5 }t          j                            |d          }t          j        ||           |                     t          j
        j        j                  5  t          j        |d           d d d            n# 1 swxY w Y   t          j        |          }|                     ||           t          j        |d          }|                     ||           d d d            d S # 1 swxY w Y   d S )Nr   r(   r/   r'   ry   )r6   r7   rK   rL   r9   #loaded_proto_as_explicitly_protobufs         r   Ttest_load_and_save_model_without_specifying_extension_or_format_defaults_to_protobufzrTestSaveAndLoadFileExtensions.test_load_and_save_model_without_specifying_extension_or_format_defaults_to_protobuf   s    (** 	Ihh88JOE:...""6?#>#IJJ @ @
;????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @  ?:66LUL11126/:3 3 3/ U$GHHH	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	Is7   ADB$D$B(	(D+B(	,ADDDrT   )	rU   rV   rW   rn   rq   rw   rz   r~   r   r   r   r   ri   ri      s        2 2 2 22 2 2 2
, 
, 
, 
,2 2 2 22	2 2 2 2 I	I I I I I Ir   ri   c                       e Zd ZddZddZdS )TestBasicFunctionsr   Nc                 f    t           j        }t           j        }t           j        }t           j        }d S )N)r   AttributeProto	NodeProto
GraphProtor   )r6   _s     r   test_protos_existz$TestBasicFunctions.test_protos_exist   s#    NOOr   c                    t          j                    }|                     |                    d                     t           j        |_        |                                }|                    |           |                     |                    d                     | 	                    |j        t           j                   d S )Nr
   )
r   r   assertFalseHasFieldr	   r
   SerializeToStringParseFromString
assertTruer4   )r6   r   model_strings      r   test_version_existsz&TestBasicFunctions.test_version_exists   s    !!55666  ?..00l+++|44555)4?;;;;;r   rT   )rU   rV   rW   r   r   r   r   r   r   r      s<           < < < < < <r   r   __main__)r<   rG   rP   rE   unittestgoogle.protobuf.messagert   google.protobuf.text_formatparameterizedr   r   r   r   r!   r%   parameterized_classTestCaser,   r[   ri   r   rU   mainr   r   r   <module>r      s  
 
			 				        " " " "           t    (     #"	:	;	6	9	 "2 "2 "2 "2 "2X "2 "2 "2J #"	:	;	6 #2 #2 #2 #2 #28$ #2 #2 #2LMI MI MI MI MIH$5 MI MI MI`< < < < <* < < <, zHMOOOOO r   