
    bIg                        d dl mZ d dlZd dlZd dlZd dlZdZ G d dej                  j                        Z	 G d dej                        Z G d d	ej                        Zy)
    )annotationsNaH  <
    ir_version: 8,
    opset_import: ["" : 17, "local" : 1]
>
agraph (float[N] X) => (float[N] Y) {
    Y = local.foo (X)
}

<opset_import: ["" : 17, "local" : 1], domain: "local">
foo (x) => (y) {
    temp = Add(x, x)
    y = local.bar(temp)
}

<opset_import: ["" : 17], domain: "local">
bar (x) => (y) {
    y = Mul (x, x)
}c                  6    e Zd ZdZdZ edh      ZddZddZy)	_OnnxTestTextualSerializerz:Serialize and deserialize the ONNX textual representation.onnxtextz	.onnxtextc                b    t         j                  j                  |      }|j                  d      S )Nutf-8)onnxprinterto_textencode)selfprototexts      Y/var/www/html/answerous/venv/lib/python3.12/site-packages/onnx/test/serialization_test.pyserialize_protoz*_OnnxTestTextualSerializer.serialize_proto'   s%    ||##E*{{7##    c                   |j                  d      }t        |t        j                        rt        j                  j                  |      S t        |t        j                        rt        j                  j                  |      S t        |t        j                        rt        j                  j                  |      S t        |t        j                        rt        j                  j                  |      S t        dt        |             )Nr   zUnsupported proto type: )decode
isinstancer	   
ModelProtoparserparse_model
GraphProtoparse_graphFunctionProtoparse_function	NodeProto
parse_node
ValueErrortype)r   
serializedr   r   s       r   deserialize_protoz,_OnnxTestTextualSerializer.deserialize_proto+   s      )eT__-;;**400eT__-;;**400eT//0;;--d33eT^^,;;))$//3DK=ABBr   N)returnbytes)r!   r$   )	__name__
__module____qualname____doc__supported_format	frozensetfile_extensionsr   r"    r   r   r   r   !   s"    D!.O$
Cr   r   c                  ,    e Zd ZddZddZddZddZy)TestRegistryc                    t               | _        t        j                  j                  j                  | j                         y )N)r   
serializerr	   serializationregistryregisterr   s    r   setUpzTestRegistry.setUp9   s*    46##,,T__=r   c                    t         j                  j                  j                  d      }| j	                  || j
                         y )Nr   )r	   r1   r2   getassertIsr0   )r   r0   s     r   (test_get_returns_the_registered_instancez5TestRegistry.test_get_returns_the_registered_instance=   s0    ''0044Z@
j$//2r   c                    | j                  t              5  t        j                  j                  j                  d       d d d        y # 1 sw Y   y xY w)Nunsupported)assertRaisesr   r	   r1   r2   r7   r4   s    r   &test_get_raises_for_unsupported_formatz3TestRegistry.test_get_raises_for_unsupported_formatA   s?    z* 	;''++M:	; 	; 	;s   *A		Ac                `   t         j                  j                  t              }t	        j
                         5 }t        j                  j                  |d      }t        j                  ||d       t        |d      5 }|j                         }| j                  |t         j                  j                  |             d d d        t        j                  |d      }| j                  |j!                  d      |j!                  d             d d d        y # 1 sw Y   [xY w# 1 sw Y   y xY w)Nz
model.onnxr   )formatr   )encodingTdeterministic)r	   r   r   _TEST_MODELtempfileTemporaryDirectoryospathjoin
save_modelopenreadassertEqualr
   r   
load_modelSerializeToString)r   modeltmpdir
model_pathfcontentloaded_models          r   4test_onnx_save_load_model_uses_the_custom_serializerzATestRegistry.test_onnx_save_load_model_uses_the_custom_serializerE   s    ''4((* 	ffl;JOOE:jA j73 Gq&&(  $,,*>*>u*EFG  ??:jIL''d';..T.B	 	
G G	 	s&   AD$>A D>AD$D!	D$$D-Nr#   None)r%   r&   r'   r5   r9   r=   rU   r,   r   r   r.   r.   8   s    >3;r   r.   c                      e Zd ZddZy)TestCustomSerializerc                ,   t               }t        j                  j                  t              }|j                  |      }|j                  |t        j                               }| j                  |j                  d      |j                  d             y )NTrA   )
r   r	   r   r   rC   r   r"   r   rL   rN   )r   r0   rO   r!   deserializeds        r    test_serialize_deserialize_modelz5TestCustomSerializer.test_serialize_deserialize_modelY   sw    /1
''4//6
!33J@QR##$#7***>	
r   NrV   )r%   r&   r'   r\   r,   r   r   rY   rY   X   s    
r   rY   )
__future__r   rF   rD   unittestr	   rC   r1   ProtoSerializerr   TestCaser.   rY   r,   r   r   <module>ra      s\    # 	   *C!3!3!C!C C.8$$ @	
8,, 	
r   