
    Si                        S SK Jr  S SKrS SKrS SKrS SKJr  S SKrS SK	r
S SKr
S SK
JrJrJrJrJrJrJr  \(       a  S SKJr   " S S\R*                  5      r\S:X  a  \R0                  " 5         gg)	    )annotationsN)TYPE_CHECKING)
GraphProtoSparseTensorProtoTensorProtocheckerhelpernumpy_helpershape_inference)Sequencec                     \ rS rSr\S0S j5       r S1           S2S jjrS3S jrS3S jrS3S jr	S3S jr
S3S jrS3S	 jrS3S
 jrS3S jrS3S jrS3S jrS3S jrS3S jrS3S jrS3S jrS3S jrS3S jrS3S jrS3S jrS3S jrS3S jr\S0S j5       rS3S jrS3S jrS3S jrS3S jrS3S jr S3S jr!S3S jr"S3S  jr#S3S! jr$S3S" jr%S3S# jr&S3S$ jr'S3S% jr(S3S& jr)S3S' jr*S3S( jr+S3S) jr,S* r-S+ r.S, r/S- r0S.r1g/)4TestChecker   c                    [         R                  R                  SS5      R                  [         R                  5      n[
        R                  " S[        R                  SUR                  S5      R                  5       S9$ )N      test)r   r      name	data_typedimsvalsnprandomrandnastypefloat32r	   make_tensorr   FLOATreshapetolistselfnp_arrays     U/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/onnx/test/checker_test.py_sample_float_tensor TestChecker._sample_float_tensor   ^    99??1a(//

;!!!''!!!$++-	
 	
    c                f   [        5       nUR                  R                  U5        [        U5      nUR                  R                  [        R                  " U[        R                  U4U5      5        UR                  R                  [        R                  " S[        R                  X45      5        U$ )Nspind)r   r   extendlenvaluesCopyFromr	   r    r   INT64indices)r%   shaper0   indices_shaper3   r   sparsennzs           r'   make_sparseTestChecker.make_sparse(   s     #$5!&kt[%6%6G	
 	w(9(9=R	
 r+   c                b    [         R                  " SS/S/SS9n[        R                  " U5        g )NReluXYr   r   r	   	make_noder   
check_noder%   nodes     r'   test_check_nodeTestChecker.test_check_node<   s*    u6B4 r+   c                N   [         R                  " S/ S/SS9n[        R                  " U5        [         R                  " SS/S/SS9n[        R                  " U5        [         R                  " SS/S/SS9nU R	                  [        R
                  [        R                  U5        g )NGivenTensorFillr=   r   r>    r;   )r	   r@   r   rA   assertRaisesValidationErrorrB   s     r'   %test_check_node_input_marked_optional1TestChecker.test_check_node_input_marked_optionalA   s     12u6J4   1B4#VL4  se&A'1173E3EtLr+   c           	     n   Sn[         R                  " SS5      [         R                  " US5      /nSnSS/nS/n[         R                  " S	S/S
/US9[         R                  " S	S/S/US9[         R                  " SS
S/S/US9/n[         R                  " UUUUUU5      n[        R
                  " U5        g )NlocalrH         func_nested_identity_addabcfunc_identitya1)domainb1func_add)r	   make_opsetidr@   make_functionr   check_function)r%   func_domainfunc_nested_opset_importsfunc_nested_identity_add_namefunc_nested_identity_add_inputs func_nested_identity_add_outputsfunc_nested_identity_add_nodesrQ   s           r'   test_check_function_nested&TestChecker.test_check_function_nestedN   s    B'Q/%
!
 )C%+.*',/5(_sedVKP_sedVKPZ$u[Q*
&
 $*#7#7)+,*%$
  	78r+   c                  ^^ [         R                  R                  5       mSTl        S[        R
                  R                  5       0Tl        [         R                  R                  5       mSUU4S jjn[        R                  " SS/S/SS9n[        R                  " U/S[        R                  " S[        R                  S	S
/5      /[        R                  " S[        R                  S	S
/5      /5      nU" U5        UR                  R!                  U R"                  /5        SUR                  S   l        U R'                  [         R(                  X5        SUR                  S   l        U" U5        g )Nr   rH   c                6   > [         R                  " U TT5        g N)r   check_graph)gctxlex_ctxs    r'   check_ir_version_3ETestChecker.test_check_graph_ir_version_3.<locals>.check_ir_version_3n   s    30r+   r;   r<   r=   r   r>   rP   r   no-existr   )ri   r   returnNone)r   CCheckerContext
ir_versiononnxdefsonnx_opset_versionopset_importsLexicalScopeContextr	   r@   
make_graphmake_tensor_value_infor   r!   initializerr.   r(   r   rI   rJ   )r%   rl   rC   graphrj   rk   s       @@r'   test_check_graph_ir_version_3)TestChecker.test_check_graph_ir_version_3g   s0   ii&&(!=!=!?@))//1	1 	1 u6B!!F**30A0AAq6JK**30A0AAq6JK	
 	5!  $";";!<=$.!!'113EM$'!!5!r+   c                &   [         R                  " SS/S/SS9n[         R                  " U/S[         R                  " S[        R
                  SS/5      /[         R                  " S[        R
                  SS/5      /5      n[        R                  " U5        UR                  R                  U R                  /5        SUR                  S	   l        [        R                  " U5        SUR                  S	   l        [        R                  " U5        g )
Nr;   r<   r=   r   r>   rP   r   rn   r   )r	   r@   ry   rz   r   r!   r   rh   r{   r.   r(   r   r%   rC   r|   s      r'   test_check_graphTestChecker.test_check_graph   s    u6B!!F**30A0AAq6JK**30A0AAq6JK	
 	E"  $";";!<=$.!!E"$'!!E"r+   c                   [         R                  " SSS/S/SS9n[         R                  " SS/S/S	S9n[         R                  " X/S
[         R                  " S[        R
                  SS/5      [         R                  " S[        R                  SS/5      /[         R                  " S[        R
                  SS/5      /5      n[         R                  " US
S9nU R                  [        R                  [        R                  US5        [        R                  " U5        [         R                  " X/S
[         R                  " S[        R
                  SS/5      [         R                  " S[        R                  SS/5      /[         R                  " S[        R
                  SS/5      /5      n[         R                  " US
S9nU R                  [        R                  [        R                  US5        [        R                  " U5        g )NDivr<   r=   Ztest_divr>   IdentityWtest_identityr   rP   r   producer_nameT)r	   r@   ry   rz   r   r!   BOOL
make_modelrI   r   InferenceErrorr   check_modelrh   INT32)r%   node_divnode_identityr|   models        r'   test_check_graph_types"TestChecker.test_check_graph_types   s   
 ##EC:u:N((cUSEX!!%--c;3D3Dq!fM--c;3C3CaVL
 **30A0AAq6JK	
 !!%v>**G,?,?	
 	E"!!%--c;3D3Dq!fM--c;3D3Dq!fM
 **30A0AAq6JK	
 !!%v>**G,?,?	
 	E"r+   c                   [         R                  " SS/S/SS9n[         R                  " U/S[         R                  " S[        R
                  SS/5      /[         R                  " S[        R
                  SS/5      /5      n[        R                  " U5        UR                  R                  U R                  /5        SUR                  S	   l        U R                  [        R                  [        R                  U5        g )
Nr;   r<   r=   r   r>   rP   r   rH   r   )r	   r@   ry   rz   r   r!   r   rh   r{   r.   r(   r   rI   rJ   r   s      r'   'test_check_graph_empty_initializer_name3TestChecker.test_check_graph_empty_initializer_name   s    u6B!!F**30A0AAq6JK**30A0AAq6JK	
 	E" 	  $";";!<=$&!!'1173F3FNr+   c                   [         R                  " SS/S/SS9n[         R                  " U/S[         R                  " S[        R
                  SS/5      /[         R                  " S[        R
                  SS/5      /5      n[        R                  " U5        U R                  S// S	QS
// SQS5      nUR                  R                  U/5        U R                  [        R                  [        R                  U5        g )Nr;   r<   r=   r   r>   rP   r   d            r   	      Q   rH   )r	   r@   ry   rz   r   r!   r   rh   r8   sparse_initializerr.   rI   rJ   r%   rC   r|   r6   s       r'   .test_check_graph_empty_sparse_initializer_name:TestChecker.test_check_graph_empty_sparse_initializer_name   s    u6B!!F**30A0AAq6JK**30A0AAq6JK	
 	E" !!3%sKL  ''1'1173F3FNr+   c                r   [         R                  " SS/S/SS9n[         R                  " U/S[         R                  " S[        R
                  SS/5      /[         R                  " S[        R
                  SS/5      /5      n[        R                  " U5        UR                  R                  U R                  /5        SUR                  S   l        U R                  S	// S
QS// SQS5      nUR                  R                  U/5        U R                  [        R                  [        R                  U5        g )Nr;   r<   r=   r   r>   rP   r   r   r   r   r   r   )r	   r@   ry   rz   r   r!   r   rh   r{   r.   r(   r   r8   r   rI   rJ   r   s       r'   %test_check_graph_duplicate_init_names1TestChecker.test_check_graph_duplicate_init_names   s   u6B!!F**30A0AAq6JK**30A0AAq6JK	
 	E"  $";";!<=$'!! !!3%sKM  ''1'1173F3FNr+   c                    [         R                  " SS/S/SS9n[         R                  " U/S/ [         R                  " S[        R
                  SS/5      /5      n[        R                  " U5        g )NrG   rH   r=   r   r>   rP   r   )r	   r@   ry   rz   r   r!   r   rh   r   s      r'   test_check_graph_optional_input+TestChecker.test_check_graph_optional_input   sg     1B4#VL!!F**30A0AAq6JK	
 	E"r+   c                   [         R                  " SS/S/SS9n[         R                  " SS/S/SS9n[         R                  " X/S[         R                  " S[        R
                  S	S
/5      [         R                  " S[        R
                  S	S
/5      /[         R                  " S[        R
                  S	S
/5      /S9nU R                  [        R                  [        R                  U5        g )Nr;   r<   r   relu1r>   r=   relu2r   rP   r   inputsoutputs
r	   r@   ry   rz   r   r!   rI   r   rJ   rh   )r%   r   r   r|   s       r'   test_check_graph_ssa TestChecker.test_check_graph_ssa   s      #GD  #GD!!N--c;3D3Dq!fM--c;3D3Dq!fM 2238I8IAq6RS
 	'1173F3FNr+   c                   [         R                  " SS/S/SSS9n[         R                  " SS/S/SS	S9n[         R                  " X!/S
[         R                  " S[        R
                  SS/5      /[         R                  " S[        R
                  SS/5      /S9nU R                  [        R                  [        R                  U5        g )NScaler<   r=          @n1scaler   r         @n2r   rP   r   r   r   )r%   r   r   r|   s       r'   %test_check_graph_topologically_sorted1TestChecker.test_check_graph_topologically_sorted  s    guse3TJguse3TJ!!H11#{7H7H1a&QR2238I8IAq6RS	
 	'1173F3FNr+   c                \   [         R                  " SS/S/SS9n[         R                  " U/S[         R                  " S[        R
                  SS/5      /[         R                  " S[        R
                  SS/5      /5      n[         R                  " USS9n[        R                  " U5        g 	Nr;   r<   r=   r   r>   rP   r   r   )	r	   r@   ry   rz   r   r!   r   r   r   r%   rC   r|   r   s       r'   test_check_modelTestChecker.test_check_model  s    u6B!!F**30A0AAq6JK**30A0AAq6JK	
 !!%v>E"r+   c                x   [         R                  " SS/S/SS9n[         R                  " U/S[         R                  " S[        R
                  SS/5      /[         R                  " S[        R
                  SS/5      /5      n[         R                  " USS9n[        R                  " UR                  5       5        g r   )
r	   r@   ry   rz   r   r!   r   r   r   SerializeToStringr   s       r'   test_check_serialized_model'TestChecker.test_check_serialized_model%  s    u6B!!F**30A0AAq6JK**30A0AAq6JK	
 !!%v>E3356r+   c                   [         R                  " SS/S/SS9n[         R                  " U/S[         R                  " S[        R
                  SS/5      /[         R                  " S[        R
                  SS/5      /5      n[         R                  " S	S5      n[         R                  " USU/S
9n[        R                  " U5        g )NPadr<   r=   )r   r   r   r   )paddingsr   rP   r   rH   r   rw   
r	   r@   ry   rz   r   r!   rZ   r   r   r   r%   rC   r|   onnx_idr   s        r'   test_check_old_model TestChecker.test_check_old_model1  s    uselK!!F**30A0AAq6JK**30A0AAq6JK	
 %%b!,!!%vgYWE"r+   c                h   U R                   n[        R                  " U5        [        R                  R                  SS5      R                  [        R                  5      n[        R                  R                  U5      Ul        U R                  [        R                  [        R                  U5        g )Nr   r   )r(   r   check_tensorr   r   r   r   r   rt   r
   tobytes_little_endianraw_datarI   rJ   )r%   tensorinput_nps      r'   test_check_tensorTestChecker.test_check_tensor>  st    **V$99??1a(//

;++AA(K'1173G3GPr+   c                d   [        5       n[         R                  Ul        UR                  R	                  S5        UR
                  R	                  S5        [        R                  " U5        UR
                  S S 2	 SUl        U R                  [        R                  [        R                  U5        g )NrP   s   Test)r   STRINGr   r   appendstring_datar   r   r   rI   rJ   r%   r   s     r'   test_check_string_tensor$TestChecker.test_check_string_tensorG  s~    &--1!!'*V$q!!'1173G3GPr+   c                    U R                   n[        R                  Ul        U R	                  [
        R                  [
        R                  U5        g rg   )r(   r   r   r   rI   r   rJ   r   r   s     r'   "test_check_tensor_mismatched_field.TestChecker.test_check_tensor_mismatched_fieldS  s9    **&,,'1173G3GPr+   c                `   [         R                  " SS/S/SSS9n[         R                  " SS/S/SS	S9n[         R                  " X/S
/ [         R                  " S[        R
                  SS/5      /S9n[         R                  " SS/S/X3S9n[         R                  " U/S[         R                  " S[        R                  S/5      [         R                  " S[        R
                  SS/5      /[         R                  " S[        R
                  SS/5      /S9n[        R                  " U5        g Nr   r<   r=   r   r   r   r   r   r   nestedrP   r   r   Ifcond)then_branchelse_branchr   )	r	   r@   ry   rz   r   r!   r   r   rh   )r%   r   r   r|   i1s        r'   test_nested_graphTestChecker.test_nested_graphX  s   guse3TJguse3TJ!!H2238I8IAq6RS	
 6(SEu
 !!D--fk6F6FL--c;3D3Dq!fM 2238I8IAq6RS
 	E"r+   c                   [         R                  " SS/S/SSS9n[         R                  " SS/S/SS	S9n[        R                  " 5       nSUl        [         R
                  " X/S
/ [         R                  " S[        R                  SS/5      /S9n[         R                  " SS/S/XDS9n[         R
                  " U/S[         R                  " S[        R                  S/5      [         R                  " S[        R                  SS/5      /[         R                  " S[        R                  SS/5      /S9n[        R                  " U5        g r   )r	   r@   rt   ValueInfoProtor   ry   rz   r   r!   r   r   rh   )r%   r   r   input_xr|   r   s         r'   .test_nested_graph_without_subgraph_input_shape:TestChecker.test_nested_graph_without_subgraph_input_shapes  s.   guse3TJguse3TJ%%'!!H2238I8IAq6RS	
 6(SEu
 !!D--fk6F6FL--c;3D3Dq!fM 2238I8IAq6RS
 	E"r+   c                    [         R                  R                  SS5      R                  [         R                  5      n[
        R                  " S[        R                  SUR                  S5      R                  5       S9$ )Nr   r   r   )r   r   r   r   r$   s     r'   _sample_0_elem_tensor!TestChecker._sample_0_elem_tensor  r*   r+   c                H    U R                   n[        R                  " U5        g rg   )r   r   r   r   s     r'   test_check_tensor_zero_elem'TestChecker.test_check_tensor_zero_elem  s    ++V$r+   c                f    [         R                  " S/ S/SSS/S9n[        R                  " U5        g )NConstantFillr=   r   rP   r   )r   r4   r?   rB   s     r'   "test_check_removed_experimental_op.TestChecker.test_check_removed_experimental_op  s/    SEqRSfU4 r+   c                   [         R                  " SS/S/SSS9n[         R                  " U/S[         R                  " S[        R
                  SS/5      /[         R                  " S[        R
                  SS/5      /5      n[         R                  " SS5      n[         R                  " USU/S	9n[        R                  " U5        g )
N
NonExistOpr<   r=   r   ztest.domain)r   rW   rP   r   r   r   r   s        r'   -test_skip_schema_check_on_non_standard_domain9TestChecker.test_skip_schema_check_on_non_standard_domain  s    3%#VM
 !!F**30A0AAq6JK**30A0AAq6JK	
 %%mQ7!!%vgYWE"r+   c                d    U R                  S// SQS// SQ5      n[        R                  " U5        g )Nr   r   r   r   r8   r   check_sparse_tensorr%   r6   s     r'   test_check_sparse_tensor$TestChecker.test_check_sparse_tensor  s*    !!3%sKH##F+r+   c                    U R                  S// SQS// SQ5      nU R                  [        R                  [        R                  U5        g )Nr   r   r   )r   r      r8   rI   r   rJ   r  r  s     r'   &test_check_sparse_tensor_invalid_index2TestChecker.test_check_sparse_tensor_invalid_index  s;    !!3%sLI'1173N3NPVWr+   c                    U R                  S// SQS// SQ5      nU R                  [        R                  [        R                  U5        g )Nr   r   r   )r   r   r   r	  r  s     r'   "test_check_sparse_tensor_unordered.TestChecker.test_check_sparse_tensor_unordered  s;    !!3%sKH'1173N3NPVWr+   c                h    U R                  SS// SQSS// SQ5      n[        R                  " U5        g )N
   r   r   r   r   r   r         rP   r  r  s     r'   #test_check_sparse_tensor_coo_format/TestChecker.test_check_sparse_tensor_coo_format  s/    !!2r(L1a&BTU##F+r+   c                    U R                  SS// SQSS// SQ5      nU R                  [        R                  [        R                  U5        g )Nr  r   r   r   )r   r   r   r   r  rP   r	  r  s     r'   1test_check_sparse_tensor_coo_format_invalid_index=TestChecker.test_check_sparse_tensor_coo_format_invalid_index  s@    !!2r(L1a&BUV'1173N3NPVWr+   c                    U R                  SS// SQSS// SQ5      nU R                  [        R                  [        R                  U5        g )Nr  r   r   r   r  r	  r  s     r'   1test_check_sparse_tensor_coo_format_invalid_shape=TestChecker.test_check_sparse_tensor_coo_format_invalid_shape  s@    !!2r(L1a&BTU'1173N3NPVWr+   c                    U R                  SS// SQSS// SQ5      nU R                  [        R                  [        R                  U5        g )Nr  r   r   rP   )r   rP   r   r	  r  s     r'   0test_check_sparse_tensor_coo_format_invalid_dim2<TestChecker.test_check_sparse_tensor_coo_format_invalid_dim2  s?    !!2r(L1a&)L'1173N3NPVWr+   c                   SnSn[         R                  " S[        R                  U/5      nU R	                  X// SQS// SQ5      n[         R
                  " S/ S/US	9n[         R                  " S
[        R                  U/5      n[         R
                  " SSS/S
/5      n[         R                  " XW/SU/U/5      n[        R                  " U5        g )N   r  r<   )r   r   rP   r   )r      %   Constantrq   )sparse_valuer=   MatMulsparse_matmul)	r	   rz   r   r!   r8   r@   ry   r   rh   )	r%   MNr<   sparse_tensornode1r=   node2r|   s	            r'   test_check_sparse_matmul$TestChecker.test_check_sparse_matmul  s    ))#{/@/@1#F((!QCM  R#]S))#{/@/@1#F  C:u=!!5./A3LE"r+   c                   Sn[         R                  " S[        R                  U/5      n[         R                  " S[        R                  U/5      n[         R                  " S[        R                  U/5      n[         R
                  " SS5      n[         R                  " SSS/S/5      n[         R                  " U/SX#/U/5      n[         R                  " US	U/S
9nU R                  [        R                  [        R                  US5        g Nr  r<   r=   r   rH   r   Addtest_add_inputr   r   T)r	   rz   r   r   r!   rZ   r@   ry   r   rI   r   r   r   r   	r%   r(  r<   r=   r   r   rC   r|   r   s	            r'   'test_check_model_unsupported_input_type3TestChecker.test_check_model_unsupported_input_type  s    ))#{/?/?!E))#{/@/@1#F))#{/@/@1#F%%b!,SzC59!!4&*:QFQCH!!%vgYW**G,?,?	
r+   c                   Sn[         R                  " S[        R                  U/5      n[         R                  " S[        R                  U/5      n[         R                  " S[        R                  U/5      n[         R
                  " SS5      n[         R                  " SSS/S/5      n[         R                  " U/SX#/U/5      n[         R                  " US	U/S
9nU R                  [        R                  [        R                  US5        g r/  )r	   rz   r   r!   r   rZ   r@   ry   r   rI   r   r   r   r   r2  s	            r'   "test_check_model_inconsistent_type.TestChecker.test_check_model_inconsistent_type  s    ))#{/@/@1#F))#{/@/@1#F))#{/@/@1#F%%b!,SzC59!!4&*:QFQCH!!%vgYW**G,?,?	
r+   c                   Sn[         R                  " S[        R                  U/5      n[         R                  " S[        R                  U/5      n[         R                  " S[        R                  U/5      n[         R
                  " SS5      n[         R                  " SSS/S/5      n[         R                  " U/SX#/U/5      n[         R                  " US	U/S
9nU R                  [        R                  [        R                  US5        g r/  )r	   rz   r   r!   r   rZ   r@   ry   r   rI   r   r   r   r   r2  s	            r'   (test_check_model_unsupported_output_type4TestChecker.test_check_model_unsupported_output_type  s    ))#{/@/@1#F))#{/@/@1#F))#{/?/?!E%%b!,SzC59!!4&*:QFQCH!!%vgYW**G,?,?	
r+   c           $     	   [         R                  " [         R                  " SS5      /S[         R                  " S[         R                  " S[
        R                  S/S9[         R                  " S[
        R                  / S9[         R                  " S	[
        R                  S/S9[         R                  " S
[
        R                  / S9[         R                  " S[
        R                  S/S9/[         R                  " S[
        R                  S/S9/[        R                  " [        R                  " S[        R                  S9SS9[        R                  " [        R                  " S/[        R                  S9S	S9[        R                  " [        R                  " S[        R                  S9S
S9[        R                  " [        R                  " S/[        R                  S9SS9/[         R                   " SS/S/SS[
        R                  S9[         R                   " SSS
/S/SSS9[         R                   " SS/S/SSS9[         R                   " S/ SQSS /S![         R                  " S"[         R                  " S#[
        R                  / S9[         R                  " S$[
        R"                  / S9[         R                  " S%[
        R                  S/S9[         R                  " S&[
        R                  S/S9[         R                  " S'[
        R                  / S9/[         R                  " S([
        R"                  / S9[         R                  " S)[
        R                  S/S9[         R                  " S&[
        R                  S/S9/[        R                  " [        R                  " S[        R                  S9S'S9/[         R                   " S*S%S&/S)/S+S,9[         R                   " SS)/S-/S.S[
        R                  S9[         R                   " SS-S'/S//S0SS9[         R                   " SS//S(/S1SS9/S29S39[         R                   " S4S/S5/S6S7/S89[         R                   " S9S5S	/S/S9S,9/S29S:9n[$        R&                  " US;S<9  g )=NrH   r  r   	test-loopinput_0rP   r4   while_maximum_iterations_0const_fold_opt__18const_fold_opt__17Const_0output_0    dtyper>         $@Castwhile_cond_158_while_Less__13_0while_cond_158_while_Less__13r   r   r   rW   toLesswhile_cond_158_while_Less_0while_cond_158_while_Lessr   r   r   rW   Squeezewhile_cond_158_while_Squeeze_0while_cond_158_while_SqueezeLoopr?  rS  r=  rB  while_loop_0while_loop_1
while_loop
while_bodywhile_while_loop_counter_0
cond__15_0while_placeholder_0while_add_const_0_0const_fold_opt__191cond___while_Identity_graph_outputs_Identity__3_0while_Identity_2_0r0  	while_Addr   r   r   cond___while_Less__13_0cond___while_Less__13cond___while_Less_0cond___while_Lesscond___while_Squeezer   r   r   r{   nodesr   r   r   body	UnsqueezeReshape_tensor_0Reshape_tensorr   r   r   r   axesReshaperw   rs   r|   T
full_check)r	   r   make_operatorsetidry   rz   r   r   r2   r!   r
   
from_arrayr   arrayint64r   int32r@   r   r   r   r%   r   s     r'   /test_loop_with_same_initializer_input_below_ir4;TestChecker.test_loop_with_same_initializer_input_below_ir4  s   
 !!!44R;<## 11!;#4#4QC 114k6G6Gr 11,k.?.?s 11,k.?.?r 11!;#4#4QC$ 11"K$5$5aS !++!4BHHE9 !++"RXX6=Q !++RZZ8?S !++!BHH5I  $$ ){!B C<!&,, $$=0  "? ?8!	 $$! =>!A B;! $$  "0 @)#..!- & = =$@$/$5$5*,!"
 !' = =$0+2B2B"!" !' = =$9;;L;LUVTW!" !' = =$9;;L;LUVTW!" !' = =$8+:K:KSU!"$( !' = =$W$/$4$4*,!"
 !' = =$8+:K:KTUSV!" !' = =$9;;L;LUVTW!"% !- 7 7$&HHT$D)=!") !' 0 0$)(=(=,& .B,B)4!" !' 0 0$*,@+A-F,G)@+-'2'8'8!" !' 0 0$*(A(<,& .C,C)<+-	!" !' 0 0$-,A+B([-& *@+-!"9%#QNYt $$# ./!3 4-S $$! 24HI!+&	wAOim
^ 	Ed3r+   c           #     x   [         R                  " [         R                  " SS5      /S[         R                  " S[         R                  " S[
        R                  S/S9[         R                  " S[
        R                  / S9[         R                  " S	[
        R                  S/S9[         R                  " S
[
        R                  / S9[         R                  " S[
        R                  S/S9/[         R                  " S[
        R                  S/S9/[        R                  " [        R                  " S[        R                  S9SS9[        R                  " [        R                  " S/[        R                  S9S	S9[        R                  " [        R                  " S[        R                  S9S
S9[        R                  " [        R                  " S/[        R                  S9SS9/[         R                   " SS/S/SS[
        R                  S9[         R                   " SSS
/S/SSS9[         R                   " SS/S/SSS9[         R                   " S/ SQSS /S![         R                  " S"[         R                  " S#[
        R                  / S9[         R                  " S$[
        R"                  / S9[         R                  " S%[
        R                  S/S9[         R                  " S&[
        R                  S/S9[         R                  " S	[
        R                  / S9/[         R                  " S'[
        R"                  / S9[         R                  " S([
        R                  S/S9[         R                  " S&[
        R                  S/S9// [         R                   " S)S%S&/S(/S*S+9[         R                   " SS(/S'/S,S[
        R"                  S9/S-9S.9[         R                   " S/S/S0/S1S2/S39[         R                   " S4S0S	/S/S4S+9/S-9S59nU R%                  [&        R(                  [*        R,                  US65        g )7NrH   r  r   r<  r=  rP   r>  r?  r@  rA  rB  rC  rD  rE  r>   rG  rH  rI  rJ  rK  rL  rN  rO  rP  rQ  rR  rS  rT  rU  rV  rW  rX  rY  rZ  r[  r\  r]  r^  rd  ra  r0  rb  rc  re  ri  rk  rm  rn  ro  r   rp  rr  rs  Tr	   r   rv  ry   rz   r   r   r2   r!   r
   rw  r   rx  ry  r   rz  r@   r   rI   r   r   r   r   r{  s     r'   4test_loop_with_different_initializer_input_below_ir4@TestChecker.test_loop_with_different_initializer_input_below_ir4  s-   
 !!!44R;<## 11!;#4#4QC 114k6G6Gr 11,k.?.?s 11,k.?.?r 11!;#4#4QC$ 11"K$5$5aS !++!4BHHE9 !++"RXX6=Q !++RZZ8?S !++!BHH5I  $$ ){!B C<!&,, $$=0  "? ?8!	 $$! =>!A B;! $$  "0 @)#..!- & = =$@$/$5$5*,!"
 !' = =$0+2B2B"!" !' = =$9;;L;LUVTW!" !' = =$9;;L;LUVTW!" !' = =$8+:K:KSU!"!$* !' = =$=$/$4$4*,!"
 !' = =$8+:K:KTUSV!" !' = =$9;;L;LUVTW!"% )+ & 0 0$)(=(=,& .B,B)4!" !' 0 0$*,@+A-F,G)@+-'2'7'7!"#I7BF $$# ./!3 4-S $$! 24HI!+&	IjORV
n 	**G,?,?	
r+   c           $     	   [         R                  " [         R                  " SS5      /S[         R                  " S[         R                  " S[
        R                  S/S9[         R                  " S[
        R                  / S9[         R                  " S	[
        R                  S/S9[         R                  " S
[
        R                  / S9[         R                  " S[
        R                  S/S9/[         R                  " S[
        R                  S/S9/[        R                  " [        R                  " S[        R                  S9SS9[        R                  " [        R                  " S/[        R                  S9S	S9[        R                  " [        R                  " S[        R                  S9S
S9[        R                  " [        R                  " S/[        R                  S9SS9/[         R                   " SS/S/SS[
        R                  S9[         R                   " SSS
/S/SSS9[         R                   " SS/S/SSS9[         R                   " S/ SQSS /S![         R                  " S"[         R                  " S#[
        R                  / S9[         R                  " S$[
        R"                  / S9[         R                  " S%[
        R                  S/S9[         R                  " S&[
        R                  S/S9/[         R                  " S'[
        R"                  / S9[         R                  " S([
        R                  S/S9[         R                  " S&[
        R                  S/S9/[        R                  " [        R                  " S)[        R                  S9S#S9/[         R                   " S*S%S&/S(/S+S,9[         R                   " SS(/S-/S.S[
        R                  S9[         R                   " SS-S#/S//S0SS9[         R                   " SS//S'/S1SS9/S29S39[         R                   " S4S/S5/S6S7/S89[         R                   " S9S5S	/S/S9S,9/S29S:9nU R%                  [&        R(                  [*        R,                  US;5        g )<NrH   r!  r   r<  r=  rP   r>  r?  r@  rA  rB  rC  rD  rE  r>   rG  rH  rI  rJ  rK  rL  rN  rO  rP  rQ  rR  rS  rT  rU  rV  rW  rX  rY  rZ  r[  r\  r]  r^  r`  ra  r  r0  rb  rc  rd  re  rf  rg  rh  ri  rk  rm  rn  ro  r   rp  rr  rs  Tr  r{  s     r'   /test_loop_with_same_initializer_input_above_ir4;TestChecker.test_loop_with_same_initializer_input_above_ir4\  s    !!!44R<=## 11!;#4#4QC 114k6G6Gr 11,k.?.?s 11,k.?.?r 11!;#4#4QC$ 11"K$5$5aS !++!4BHHE9 !++"RXX6=Q !++RZZ8?S !++!BHH5I  $$ ){!B C<!&,, $$=0  "? ?8!	 $$! =>!A B;! $$  "0 @)#..!- & = =$@$/$5$5*,!"
 !' = =$0+2B2B"!" !' = =$9;;L;LUVTW!" !' = =$9;;L;LUVTW!"$" !' = =$W$/$4$4*,!"
 !' = =$8+:K:KTUSV!" !' = =$9;;L;LUVTW!"% !- 7 7$&HHRrxx$@)E!") !' 0 0$)(=(=,& .B,B)4!" !' 0 0$*,@+A-F,G)@+-'2'8'8!" !' 0 0$*(A(D,& .C,C)<+-	!" !' 0 0$-,A+B([-& *@+-!"9%#MLWp $$# ./!3 4-S $$! 24HI!+&	sOgk
X 	**G,?,?	
r+   c                    [         R                  R                  S5      n[        R                  " USS9  [         R                  R                  S5      n[        R                  " USS9  g )Nz
            <
                ir_version: 7,
                opset_import: [ "" : 17]
            >
            agraph (float[N] x) => (int64[M] y)
            {
                y = Constant <value_ints: ints = []>()
            }
        Trt  z
            <
                ir_version: 7,
                opset_import: [ "" : 17]
            >
            agraph (float[N] x) => (float[M] y)
            {
                y = Constant <value_floats: floats = []>()
            }
        )rt   parserparse_modelr   r   r{  s     r'   test_empty_list_attribute%TestChecker.test_empty_list_attribute  sX    ''	
 	Ed3''	
 	Ed3r+   c                R   [         R                  " S[        R                  R                  S/5      n[         R                  " S[        R                  R                  S/5      n[         R
                  " SS/S/5      n[         R                  " U/SU/U/5      n[         R                  " USS9n[        R                  " 5        n[        R                  R                  US5      n[        R                  " XW5        [        R                  " USS	9  S S S 5        g ! , (       d  f       g = f)
NinputrP   outputr   r   r   u   模型モデル모델✨.onnxTrt  )r	   rz   rt   r   r!   r@   ry   r   tempfileTemporaryDirectoryospathjoinsaver   r   )r%   input_tensoroutput_tensorrC   r|   r   temp_dirunicode_model_paths           r'   &test_check_model_supports_unicode_path2TestChecker.test_check_model_supports_unicode_path.  s    44T%%++aS
 55d&&,,qc
 
WIzB!!4&&<.=/R!!%v>((*h!#h8W!XIIe0 2tD +**s   AD
D&c                    [         R                  R                  S5      nU R                  [        R
                  [        R                  U5        g )Nz
            <ir_version: 7, opset_import: [ "" : 17]>
            agraph (float[N] x) => (float[N] y, float[N] z)
            {
                y = Add(x, x)
            }
            # Error: z is not defined
        rt   r  r  rI   r   rJ   r   r{  s     r'   test_graph_output_is_defined(TestChecker.test_graph_output_is_defined>  s;    ''	
 	'1173F3FNr+   c                    [         R                  R                  S5      nU R                  [        R
                  [        R                  U5        g )Nap  
            <ir_version: 7, opset_import: [ "" : 17]>
            agraph (float[N] x, bool cond) => (float[N] y)
            {
                sum = Add (x, x)
                prod = Mul (x, x)
                y = If (cond) <
                    then_branch = then_graph () => (sum) {},
                    else_branch = else_graph () => (prod) {}
                >
            }
            # Error: sum/prod are accessible inside if-then-else branches, but cannot
            # be used as outputs of the then/else branch implicitly.
            # An explicit "Identity(sum)" must be used to return sum as output.
        r  r{  s     r'   -test_graph_output_is_defined_within_sub_graph9TestChecker.test_graph_output_is_defined_within_sub_graphK  s;    ''
" 	'1173F3FNr+    N)ro   r   )spval)r4   Sequence[int]r0   r  r5   r  r3   r  r   strro   r   )ro   rp   )2__name__
__module____qualname____firstlineno__propertyr(   r8   rD   rK   rc   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r
  r  r  r  r  r  r,  r3  r6  r9  r|  r  r  r  r  r  r  __static_attributes__r  r+   r'   r   r      sQ   
 
   %	
   
(!
M92"8#$,#\OOO$	#O
O
#
7#Q
QQ
#6#: 
 
%!#,X
X
,XXX#"


t4l^
@r
h4<E OOr+   r   __main__)
__future__r   r  r  unittesttypingr   numpyr   	onnx.defsrt   onnx.parserr   r   r   r   r	   r
   r   collections.abcr   TestCaser   r  mainr  r+   r'   <module>r     se    # 	          (@O(## @OF" zMMO r+   