
    h%                        S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK	J
r
  S\	R                  4S jrS\	R                  4S jr\R                  " SS0SS0SS	0SS
0/5       " S S\R                   5      5       r\R                  " SS0SS0SS	0/5       " S S\R                   5      5       r " S S\R                   5      r " S S\R                   5      r\S:X  a  \R,                  " 5         gg)    N)serializationreturnc                      [         R                  " 5       n [         R                  U l        SU l        SU R
                  l        U $ )Nz	onnx-testtest)onnx
ModelProto
IR_VERSION
ir_versionproducer_namegraphname)models    N/var/www/fran/franai/venv/lib/python3.13/site-packages/onnx/test/basic_test.py_simple_modelr      s3    OOEE%EEKKL    c            
          [         R                  R                  S[         R                  R                  S[        S5       V s/ s H  o S-   PM	     sn S9nU$ s  sn f )Nztest-tensor)            g      ?)r   	data_typedimsvals)r   helpermake_tensorTensorProtoFLOATrange)xtensors     r   _simple_tensorr!      sT    [[$$""(($Ry)y!#gy)	 % F M *s   Aformatprotobuf	textprotojsononnxtxtc                   H    \ rS rSr% \\S'   S	S jrS	S jrS	S jrS	S jr	Sr
g)
TestIO%   r"   Nc                     [        5       n[        R                  R                  U R                  5      R                  U5      n[        R                  " X R                  S9nU R                  X5        g 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_bytes*TestIO.test_load_model_when_input_is_bytes0   sP    $--11$++>NNuU22<T-r   c                    [        5       n[        R                  R                  S5      R	                  U5      n[
        R                  " 5       n[        R                  " X#U R                  S9  [        R                  " [
        R                  " UR                  5       5      U R                  S9nU R                  X5        g )Nr#   r,   )r   r   r-   r.   r/   ioBytesIOr   
save_modelr"   
load_modelgetvaluer1   )r3   r4   r5   fr6   s        r   5test_save_and_load_model_when_input_has_read_function<TestIO.test_save_and_load_model_when_input_has_read_function6   sz     %--11*=MMeTJJL<rzz!**,'?T-r   c                 R   [        5       n[        R                  " 5        n[        R                  R                  US5      n[        R                  " XU R                  S9  [        R                  " X0R                  S9nU R                  X5        S S S 5        g ! , (       d  f       g = fNz
model.onnxr,   )r   tempfileTemporaryDirectoryospathjoinr   r<   r"   r=   r1   r3   r4   temp_dir
model_pathr6   s        r   0test_save_and_load_model_when_input_is_file_name7TestIO.test_save_and_load_model_when_input_is_file_nameA   si    ((*hh=JOOEdkkB??:kkJLU1	 +**   A/B
B&c                 @   [        5       n[        R                  " 5        n[        R                  " US5      n[
        R                  " XU R                  S9  [
        R                  " X0R                  S9nU R                  X5        S S S 5        g ! , (       d  f       g = frC   )
r   rD   rE   pathlibPathr   r<   r"   r=   r1   rI   s        r   /test_save_and_load_model_when_input_is_pathlike6TestIO.test_save_and_load_model_when_input_is_pathlikeI   se    ((*h h=JOOEdkkB??:kkJLU1	 +**   A&B
B r   N)__name__
__module____qualname____firstlineno__str__annotations__r7   r@   rL   rR   __static_attributes__rU   r   r   r(   r(   %   s     K.	.22r   r(   c                   L    \ rS rSr% Sr\\S'   S
S jrS
S jrS
S jr	S
S jr
S	rg)TestIOTensorR   z'Test loading and saving of TensorProto.r"   Nc                     [        5       n[        R                  R                  U R                  5      R                  U5      n[        R                  " X R                  S9nU R                  X5        g r+   )	r!   r   r-   r.   r"   r/   r   load_tensor_from_stringr1   r2   s       r   $test_load_tensor_when_input_is_bytes1TestIOTensor.test_load_tensor_when_input_is_bytes_   sQ     $--11$++>NNuU33LU-r   c                 $   [        5       n[        R                  " 5       n[        R                  " XU R
                  S9  [        R                  " [        R                  " UR                  5       5      U R
                  S9nU R                  X5        g r+   )	r!   r:   r;   r   save_tensorr"   load_tensorr>   r1   )r3   r4   r?   r6   s       r   6test_save_and_load_tensor_when_input_has_read_functionCTestIOTensor.test_save_and_load_tensor_when_input_has_read_functione   s\     JJL$++6''

1::<(@U-r   c                 R   [        5       n[        R                  " 5        n[        R                  R                  US5      n[        R                  " XU R                  S9  [        R                  " X0R                  S9nU R                  X5        S S S 5        g ! , (       d  f       g = frC   )r!   rD   rE   rF   rG   rH   r   rf   r"   rg   r1   rI   s        r   1test_save_and_load_tensor_when_input_is_file_name>TestIOTensor.test_save_and_load_tensor_when_input_is_file_namem   sn     ((*hh=JUt{{C++J{{KLU1	 +**rN   c                 @   [        5       n[        R                  " 5        n[        R                  " US5      n[
        R                  " XU R                  S9  [
        R                  " X0R                  S9nU R                  X5        S S S 5        g ! , (       d  f       g = frC   )
r!   rD   rE   rP   rQ   r   rf   r"   rg   r1   rI   s        r   0test_save_and_load_tensor_when_input_is_pathlike=TestIOTensor.test_save_and_load_tensor_when_input_is_pathlikev   sj     ((*h h=JUt{{C++J{{KLU1	 +**rT   rU   rV   )rW   rX   rY   rZ   __doc__r[   r\   rc   rh   rk   rn   r]   rU   r   r   r_   r_   R   s      2K..22r   r_   c                   X    \ rS rSrS
S jrS
S jrS
S jrS
S jr  S
S jr  S
S jr	S	r
g)TestSaveAndLoadFileExtensions   Nc                 .   [        5       n[        R                  " 5        n[        R                  R                  US5      n[        R                  " X5        [        R                  " USS9nU R                  X5        S S S 5        g ! , (       d  f       g = fNmodel.textprotor$   r,   
r   rD   rE   rF   rG   rH   r   r<   r=   r1   rI   s        r   3test_save_model_picks_correct_format_from_extensionQTestSaveAndLoadFileExtensions.test_save_model_picks_correct_format_from_extension   sb    ((*hh0ABJOOE.??:kJLU1 +**   AB
Bc                 .   [        5       n[        R                  " 5        n[        R                  R                  US5      n[        R                  " XSS9  [        R                  " U5      nU R                  X5        S S S 5        g ! , (       d  f       g = fru   rw   rI   s        r   3test_load_model_picks_correct_format_from_extensionQTestSaveAndLoadFileExtensions.test_load_model_picks_correct_format_from_extension   sb    ((*hh0ABJOOEkB??:6LU1 +**rz   c                    [        5       n[        R                  " 5        n[        R                  R                  US5      n[        R                  " XSS9  [        R                  " USS9nU R                  X5        U R                  [        R                  R                  R                  5         [        R                  " U5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nrv   r#   r,   )r   rD   rE   rF   rG   rH   r   r<   r=   r1   assertRaisesgoogler#   text_format
ParseErrorrI   s        r   0test_save_model_uses_format_when_it_is_specifiedNTestSaveAndLoadFileExtensions.test_save_model_uses_format_when_it_is_specified   s    ((*hh0ABJOOEjA??:jILU1""6??#>#>#I#IJ
+ K +* KJ +*s$   BC(/CC(
C%	!C((
C6c                    [        5       n[        R                  " 5        n[        R                  R                  US5      n[        R                  " X5        U R                  [        R                  R                  R                  5         [        R                  " USS9  S S S 5        [        R                  " USS9nU R                  X5        S S S 5        g ! , (       d  f       N== f! , (       d  f       g = f)Nzmodel.protobufr$   r,   r#   r   rD   rE   rF   rG   rH   r   r<   r   r   r#   r   r   r=   r1   rI   s        r   0test_load_model_uses_format_when_it_is_specifiedNTestSaveAndLoadFileExtensions.test_load_model_uses_format_when_it_is_specified   s    ((*hh0@AJOOE.""6??#>#>#I#IJ 
;? K
  ??:jILU1 +* KJ +*s$   A*C(
C .C(
C%	!C((
C6c                    [        5       n[        R                  " 5        n[        R                  R                  US5      n[        R                  " XSS9  U R                  [        R                  R                  R                  5         [        R                  " U5        S S S 5        [        R                  " USS9nU R                  X5        S S S 5        g ! , (       d  f       N== f! , (       d  f       g = f)Nr   r$   r,   )r   rD   rE   rF   rG   rH   r   r<   r   r   r#   messageDecodeErrorr=   r1   rI   s        r   Ftest_load_and_save_model_to_path_without_specifying_extension_succeedsdTestSaveAndLoadFileExtensions.test_load_and_save_model_to_path_without_specifying_extension_succeeds   s     ((*hh8JOOEkB""6??#:#:#F#FG 
+ H
  ??:kJLU1 +* HG	 +*s$   A)C(	C .C(
C%	!C((
C6c                 @   [        5       n[        R                  " 5        n[        R                  R                  US5      n[        R                  " X5        U R                  [        R                  R                  R                  5         [        R                  " USS9  S S S 5        [        R                  " U5      nU R                  X5        [        R                  " USS9nU R                  X5        S S S 5        g ! , (       d  f       Nd= f! , (       d  f       g = f)Nr   r$   r,   r#   r   )r3   r4   rJ   rK   r6   #loaded_proto_as_explicitly_protobufs         r   Ttest_load_and_save_model_without_specifying_extension_or_format_defaults_to_protobufrTestSaveAndLoadFileExtensions.test_load_and_save_model_without_specifying_extension_or_format_defaults_to_protobuf   s     ((*hh8JOOE.""6??#>#>#I#IJ
;? K  ??:6LU126//:3/ UH +* KJ	 +*s%   A*D
C> AD>
D	D
DrU   rV   )rW   rX   rY   rZ   rx   r|   r   r   r   r   r]   rU   r   r   rr   rr      s2    22
,22	2 I	Ir   rr   c                   (    \ rS rSrSS jrSS jrSrg)TestBasicFunctions   Nc                     [         R                  n[         R                  n[         R                  n[         R                  ng )N)r   AttributeProto	NodeProto
GraphProtor   )r3   _s     r   test_protos_exist$TestBasicFunctions.test_protos_exist   s(    NNOOOOr   c                 n   [         R                  " 5       nU R                  UR                  S5      5        [         R                  Ul        UR                  5       nUR                  U5        U R                  UR                  S5      5        U R                  UR
                  [         R                  5        g )Nr
   )
r   r   assertFalseHasFieldr	   r
   SerializeToStringParseFromString
assertTruer1   )r3   r   model_strings      r   test_version_exists&TestBasicFunctions.test_version_exists   s~    !56  ??..0l+|45))4??;r   rU   rV   )rW   rX   rY   rZ   r   r   r]   rU   r   r   r   r      s    <r   r   __main__)r:   rF   rP   rD   unittestgoogle.protobuf.messager   google.protobuf.text_formatparameterizedr   r   r   r   r   r!   parameterized_classTestCaser(   r_   rr   r   rW   mainrU   r   r   <module>r      s$  
 
 	     "   t ((  ""	:	;	6	9	"2X "2"2J ""	:	;	6#28$$ #2#2LMIH$5$5 MI`<** <, zMMO r   