
    
Ng                         d dl Z d dlZd dlZd dlmZ d dlZd dlZd dl	Zd dlm
Z
mZmZmZmZmZmZ  G d dej                  Zedk    r ej                     dS dS )    N)Sequence)
GraphProtoSparseTensorProtoTensorProtocheckerhelpernumpy_helpershape_inferencec                      e Zd Zedefd            Z	 d3dee         dee         dee         dee         dede	fd	Z
d4dZd4dZd4dZd4dZd4dZd4dZd4dZd4dZd4dZd4dZd4dZd4dZd4dZd4dZd4dZd4dZd4dZd4dZd4dZd4dZedefd            Zd4d Z d4d!Z!d4d"Z"d4d#Z#d4d$Z$d4d%Z%d4d&Z&d4d'Z'd4d(Z(d4d)Z)d4d*Z*d4d+Z+d4d,Z,d4d-Z-d4d.Z.d4d/Z/d4d0Z0d1 Z1d2 Z2d
S )5TestCheckerreturnc                 
   t           j                            dd                              t           j                  }t          j        dt          j        d|	                    d          
                                          S )N      test)r   r      name	data_typedimsvalsnprandomrandnastypefloat32r   make_tensorr   FLOATreshapetolistselfnp_arrays     R/var/www/html/ai-engine/env/lib/python3.11/site-packages/onnx/test/checker_test.py_sample_float_tensorz TestChecker._sample_float_tensor   j    9??1a((//
;;!!'!!!$$++--	
 
 
 	
    spvalshapevaluesindices_shapeindicesr   c                 Z   t                      }|j                            |           t          |          }|j                            t          j        |t          j	        |f|                     |j
                            t          j        dt          j	        ||                     |S )Nspind)r   r   extendlenr+   CopyFromr   r   r   INT64r-   )r#   r*   r+   r,   r-   r   sparsennzs           r%   make_sparsezTestChecker.make_sparse#   s     #$$5!!!&kkt[%6GG	
 	
 	
 	w(9='RR	
 	
 	
 r(   Nc                 b    t          j        ddgdgd          }t          j        |           d S )NReluXYr   r   r   	make_noder   
check_noder#   nodes     r%   test_check_nodezTestChecker.test_check_node7   s6    u6BBB4     r(   c                 F   t          j        dg dgd          }t          j        |           t          j        ddgdgd          }t          j        |           t          j        ddgdgd          }|                     t          j        t          j        |           d S )NGivenTensorFillr:   r   r;    r8   )r   r=   r   r>   assertRaisesValidationErrorr?   s     r%   %test_check_node_input_marked_optionalz1TestChecker.test_check_node_input_marked_optional<   s     12u6JJJ4     1B4#VLLL4    se&AAA'173EtLLLLLr(   c                 f   d}t          j        dd          t          j        |d          g}d}ddg}dg}t          j        d	dgd
g|          t          j        d	dgdg|          t          j        dd
dgdg|          g}t          j        ||||||          }t	          j        |           d S )NlocalrD         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_nodesrL   s           r%   test_check_function_nestedz&TestChecker.test_check_function_nestedI   s    B''Q//%
!
 )C%+.*',/5(_sedVKPPP_sedVKPPPZ$u[QQQ*
&
 $*#7)+,*%$
 $
  	788888r(   c                    t           j                                        d_        dt          j                                        i_        t           j                                        dt          dd ffd}t          j        ddgdgd	
          }t          j        |gd	t          j        dt          j        ddg          gt          j        dt          j        ddg          g          } ||           |j                            | j        g           d|j        d         _        |                     t           j        ||           d|j        d         _         ||           d S )Nr   rD   gr   c                 4    t          j        |            d S N)r   check_graph)r`   ctxlex_ctxs    r%   check_ir_version_3zETestChecker.test_check_graph_ir_version_3.<locals>.check_ir_version_3i   s    300000r(   r8   r9   r:   r   r;   rK   r   no-existr   )r   CCheckerContext
ir_versiononnxdefsonnx_opset_versionopset_importsLexicalScopeContextr   r   r=   
make_graphmake_tensor_value_infor   r   initializerr0   r&   r   rE   rF   )r#   rf   r@   graphrd   re   s       @@r%   test_check_graph_ir_version_3z)TestChecker.test_check_graph_ir_version_3b   sq   i&&((!=!=!?!?@)//11	1* 	1 	1 	1 	1 	1 	1 	1 	1 u6BBB!F*30AAq6JJK*30AAq6JJK	
 
 	5!!!  $";!<===$.!!'13EuMMM$'!!5!!!!!r(   c                    t          j        ddgdgd          }t          j        |gdt          j        dt          j        ddg          gt          j        dt          j        ddg          g          }t          j        |           |j        	                    | j
        g           d|j        d	         _        t          j        |           d|j        d	         _        t          j        |           d S )
Nr8   r9   r:   r   r;   rK   r   rg   r   )r   r=   rp   rq   r   r   r   rc   rr   r0   r&   r   r#   r@   rs   s      r%   test_check_graphzTestChecker.test_check_graph~   s    u6BBB!F*30AAq6JJK*30AAq6JJK	
 
 	E"""  $";!<===$.!!E"""$'!!E"""""r(   c                    t          j        dddgdgd          }t          j        ddgdgd	          }t          j        ||gd
t          j        dt          j        ddg          t          j        dt          j        ddg          gt          j        dt          j        ddg          g          }t          j        |d
          }|                     t          j
        t          j        |d           t          j        |           t          j        ||gd
t          j        dt          j        ddg          t          j        dt          j        ddg          gt          j        dt          j        ddg          g          }t          j        |d
          }|                     t          j
        t          j        |d           t          j        |           d S )NDivr9   r:   Ztest_divr;   IdentityWtest_identityr   rK   r   producer_nameT)r   r=   rp   rq   r   r   BOOL
make_modelrE   r
   InferenceErrorr   check_modelrc   INT32)r#   node_divnode_identityrs   models        r%   test_check_graph_typesz"TestChecker.test_check_graph_types   s   
 #EC:u:NNN(cUSEXXX!}%-c;3Dq!fMM-c;3CaVLL
 *30AAq6JJK	
 	
 !%v>>>*G,?	
 	
 	
 	E"""!}%-c;3Dq!fMM-c;3Dq!fMM
 *30AAq6JJK	
 	
 !%v>>>*G,?	
 	
 	
 	E"""""r(   c                    t          j        ddgdgd          }t          j        |gdt          j        dt          j        ddg          gt          j        dt          j        ddg          g          }t          j        |           |j        	                    | j
        g           d|j        d	         _        |                     t          j        t          j        |           d S )
Nr8   r9   r:   r   r;   rK   r   rD   r   )r   r=   rp   rq   r   r   r   rc   rr   r0   r&   r   rE   rF   rv   s      r%   'test_check_graph_empty_initializer_namez3TestChecker.test_check_graph_empty_initializer_name   s    u6BBB!F*30AAq6JJK*30AAq6JJK	
 
 	E""" 	  $";!<===$&!!'173FNNNNNr(   c                    t          j        ddgdgd          }t          j        |gdt          j        dt          j        ddg          gt          j        dt          j        ddg          g          }t          j        |           |                     dgg d	d
gg dd          }|j	        
                    |g           |                     t          j        t          j        |           d S )Nr8   r9   r:   r   r;   rK   r   d            r   	      Q   rD   )r   r=   rp   rq   r   r   r   rc   r6   sparse_initializerr0   rE   rF   r#   r@   rs   r4   s       r%   .test_check_graph_empty_sparse_initializer_namez:TestChecker.test_check_graph_empty_sparse_initializer_name   s    u6BBB!F*30AAq6JJK*30AAq6JJK	
 
 	E""" !!3%sKKKLL ''111'173FNNNNNr(   c                 D   t          j        ddgdgd          }t          j        |gdt          j        dt          j        ddg          gt          j        dt          j        ddg          g          }t          j        |           |j        	                    | j
        g           d|j        d         _        |                     d	gg d
dgg dd          }|j        	                    |g           |                     t          j        t          j        |           d S )Nr8   r9   r:   r   r;   rK   r   r   r   r   r   r   )r   r=   rp   rq   r   r   r   rc   rr   r0   r&   r   r6   r   rE   rF   r   s       r%   %test_check_graph_duplicate_init_namesz1TestChecker.test_check_graph_duplicate_init_names   s   u6BBB!F*30AAq6JJK*30AAq6JJK	
 
 	E"""  $";!<===$'!! !!3%sKKKMM ''111'173FNNNNNr(   c                     t          j        ddgdgd          }t          j        |gdg t          j        dt          j        ddg          g          }t          j        |           d S )NrC   rD   r:   r   r;   rK   r   )r   r=   rp   rq   r   r   r   rc   rv   s      r%   test_check_graph_optional_inputz+TestChecker.test_check_graph_optional_input   sr     1B4#VLLL!F*30AAq6JJK	
 
 	E"""""r(   c                    t          j        ddgdgd          }t          j        ddgdgd          }t          j        ||gdt          j        dt          j        d	d
g          t          j        dt          j        d	d
g          gt          j        dt          j        d	d
g          g          }|                     t          j        t          j	        |           d S )Nr8   r9   rz   relu1r;   r:   relu2r   rK   r   inputsoutputs
r   r=   rp   rq   r   r   rE   r   rF   rc   )r#   r   r   rs   s       r%   test_check_graph_ssaz TestChecker.test_check_graph_ssa   s     #GDDD #GDDD!EN-c;3Dq!fMM-c;3Dq!fMM 238IAq6RRS
 
 
 	'173FNNNNNr(   c                    t          j        ddgdgdd          }t          j        ddgdgdd	          }t          j        ||gd
t          j        dt          j        ddg          gt          j        dt          j        ddg          g          }|                     t          j        t          j	        |           d S )NScaler9   r:          @n1scaler   rz         @n2r   rK   r   r   r   )r#   r   r   rs   s       r%   %test_check_graph_topologically_sortedz1TestChecker.test_check_graph_topologically_sorted  s    guse3TJJJguse3TJJJ!H1#{7H1a&QQR238IAq6RRS	
 
 
 	'173FNNNNNr(   c                 B   t          j        ddgdgd          }t          j        |gdt          j        dt          j        ddg          gt          j        dt          j        ddg          g          }t          j        |d          }t          j        |           d S 	Nr8   r9   r:   r   r;   rK   r   r   )	r   r=   rp   rq   r   r   r   r   r   r#   r@   rs   r   s       r%   test_check_modelzTestChecker.test_check_model  s    u6BBB!F*30AAq6JJK*30AAq6JJK	
 
 !%v>>>E"""""r(   c                 f   t          j        ddgdgd          }t          j        |gdt          j        dt          j        ddg          gt          j        dt          j        ddg          g          }t          j        |d          }t          j        |	                                           d S r   )
r   r=   rp   rq   r   r   r   r   r   SerializeToStringr   s       r%   test_check_serialized_modelz'TestChecker.test_check_serialized_model   s    u6BBB!F*30AAq6JJK*30AAq6JJK	
 
 !%v>>>E335566666r(   c                 p   t          j        ddgdgd          }t          j        |gdt          j        dt          j        ddg          gt          j        dt          j        ddg          g          }t          j        d	d          }t          j        |d|g
          }t          j	        |           d S )NPadr9   r:   )r   r   r   r   )paddingsr   rK   r   rD   r   rn   
r   r=   rp   rq   r   r   rU   r   r   r   r#   r@   rs   onnx_idr   s        r%   test_check_old_modelz TestChecker.test_check_old_model,  s    uselKKK!F*30AAq6JJK*30AAq6JJK	
 
 %b!,,!%vgYWWWE"""""r(   c                 :   | j         }t          j        |           t          j                            dd                              t          j                                                  |_	        | 
                    t          j        t          j        |           d S )Nr   r   )r&   r   check_tensorr   r   r   r   r   tobytesraw_datarE   rF   r#   tensors     r%   test_check_tensorzTestChecker.test_check_tensor9  sr    *V$$$)//!Q//66rzBBJJLL'173GPPPPPr(   c                 L   t                      }t           j        |_        |j                            d           |j                            d           t          j        |           |j        d d = d|_        | 	                    t          j
        t          j        |           d S )NrK   s   Test)r   STRINGr   r   appendstring_datar   r   r   rE   rF   r   s     r%   test_check_string_tensorz$TestChecker.test_check_string_tensor@  s    &-1!!'***V$$$qqq!!'173GPPPPPr(   c                     | j         }t          j        |_        |                     t
          j        t
          j        |           d S rb   )r&   r   r   r   rE   r   rF   r   r   s     r%   "test_check_tensor_mismatched_fieldz.TestChecker.test_check_tensor_mismatched_fieldL  s9    *&,'173GPPPPPr(   c                 <   t          j        ddgdgdd          }t          j        ddgdgdd	          }t          j        ||gd
g t          j        dt          j        ddg          g          }t          j        ddgdg||          }t          j        |gdt          j        dt          j        dg          t          j        dt          j        ddg          gt          j        dt          j        ddg          g          }t          j        |           d S Nr   r9   r:   r   r   r   rz   r   r   nestedrK   r   r   Ifcond)then_branchelse_branchr   )	r   r=   rp   rq   r   r   r   r   rc   )r#   r   r   rs   i1s        r%   test_nested_graphzTestChecker.test_nested_graphQ  s5   guse3TJJJguse3TJJJ!H238IAq6RRS	
 
 
 6(SEu%
 
 
 !D-fk6FLL-c;3Dq!fMM 238IAq6RRS
 
 
 	E"""""r(   c                 p   t          j        ddgdgdd          }t          j        ddgdgdd	          }t          j                    }d|_        t          j        ||gd
g t          j        dt          j        ddg          g          }t          j        ddgdg||          }t          j        |gdt          j        dt          j	        dg          t          j        dt          j        ddg          gt          j        dt          j        ddg          g          }t          j        |           d S r   )r   r=   rk   ValueInfoProtor   rp   rq   r   r   r   r   rc   )r#   r   r   input_xrs   r   s         r%   .test_nested_graph_without_subgraph_input_shapez:TestChecker.test_nested_graph_without_subgraph_input_shapel  sJ   guse3TJJJguse3TJJJ%''!H238IAq6RRS	
 
 
 6(SEu%
 
 
 !D-fk6FLL-c;3Dq!fMM 238IAq6RRS
 
 
 	E"""""r(   c                 
   t           j                            dd                              t           j                  }t          j        dt          j        d|	                    d          
                                          S )Nr   r   r   )r   r   r   r   r"   s     r%   _sample_0_elem_tensorz!TestChecker._sample_0_elem_tensor  r'   r(   c                 <    | j         }t          j        |           d S rb   )r   r   r   r   s     r%   test_check_tensor_zero_elemz'TestChecker.test_check_tensor_zero_elem  s!    +V$$$$$r(   c                 f    t          j        dg dgdddg          }t          j        |           d S )NConstantFillr:   r   rK   r   )r   r*   r<   r?   s     r%   "test_check_removed_experimental_opz.TestChecker.test_check_removed_experimental_op  s;    SEqRSfUUU4     r(   c                 r   t          j        ddgdgdd          }t          j        |gdt          j        dt          j        ddg          gt          j        dt          j        ddg          g          }t          j        dd          }t          j        |d|g	          }t          j	        |           d S )
N
NonExistOpr9   r:   r   ztest.domain)r   rR   rK   r   r   r   r   s        r%   -test_skip_schema_check_on_non_standard_domainz9TestChecker.test_skip_schema_check_on_non_standard_domain  s    3%#VM
 
 
 !F*30AAq6JJK*30AAq6JJK	
 
 %mQ77!%vgYWWWE"""""r(   c                 j    |                      dgg ddgg d          }t          j        |           d S )Nr   r   r   r   r6   r   check_sparse_tensorr#   r4   s     r%   test_check_sparse_tensorz$TestChecker.test_check_sparse_tensor  s>    !!3%sKKKHH#F+++++r(   c                     |                      dgg ddgg d          }|                     t          j        t          j        |           d S )Nr   r   r   )r   r      r6   rE   r   rF   r   r   s     r%   &test_check_sparse_tensor_invalid_indexz2TestChecker.test_check_sparse_tensor_invalid_index  sL    !!3%sLLLII'173NPVWWWWWr(   c                     |                      dgg ddgg d          }|                     t          j        t          j        |           d S )Nr   r   r   )r   r   r   r   r   s     r%   "test_check_sparse_tensor_unorderedz.TestChecker.test_check_sparse_tensor_unordered  sL    !!3%sKKKHH'173NPVWWWWWr(   c                 n    |                      ddgg dddgg d          }t          j        |           d S )N
   r   r   r   r   r   r         rK   r   r   s     r%   #test_check_sparse_tensor_coo_formatz/TestChecker.test_check_sparse_tensor_coo_format  sE    !!2r(LLL1a&BTBTBTUU#F+++++r(   c                     |                      ddgg dddgg d          }|                     t          j        t          j        |           d S )Nr   r   r   r   )r   r   r   r   r   rK   r   r   s     r%   1test_check_sparse_tensor_coo_format_invalid_indexz=TestChecker.test_check_sparse_tensor_coo_format_invalid_index  sS    !!2r(LLL1a&BUBUBUVV'173NPVWWWWWr(   c                     |                      ddgg dddgg d          }|                     t          j        t          j        |           d S )Nr   r   r   r   r   r   r   s     r%   1test_check_sparse_tensor_coo_format_invalid_shapez=TestChecker.test_check_sparse_tensor_coo_format_invalid_shape  sS    !!2r(LLL1a&BTBTBTUU'173NPVWWWWWr(   c                     |                      ddgg dddgg d          }|                     t          j        t          j        |           d S )Nr   r   r   rK   )r   rK   r   r   r   s     r%   0test_check_sparse_tensor_coo_format_invalid_dim2z<TestChecker.test_check_sparse_tensor_coo_format_invalid_dim2  sP    !!2r(LLL1a&)))LL'173NPVWWWWWr(   c                    d}d}t          j        dt          j        |g          }|                     ||gg ddgg d          }t          j        dg dg|	          }t          j        d
t          j        |g          }t          j        dddgd
g          }t          j        ||gd|g|g          }t          j        |           d S )N   r   r9   )r   r   rK   r   )r      %   Constantrh   )sparse_valuer:   MatMulsparse_matmul)	r   rq   r   r   r6   r=   rp   r   rc   )	r#   MNr9   sparse_tensornode1r:   node2rs   s	            r%   test_check_sparse_matmulz$TestChecker.test_check_sparse_matmul  s    )#{/@1#FF((!QQCMM R#]SSS)#{/@1#FF C:u==!5%./A3LLE"""""r(   c                    d}t          j        dt          j        |g          }t          j        dt          j        |g          }t          j        dt          j        |g          }t          j        dd          }t          j        dddgdg          }t          j        |gd||g|g          }t          j        |d	|g
          }| 	                    t          j        t          j        |d           d S Nr   r9   r:   rz   rD   r   Addtest_add_inputr   r   T)r   rq   r   r   r   rU   r=   rp   r   rE   r
   r   r   r   	r#   r  r9   r:   rz   r   r@   rs   r   s	            r%   'test_check_model_unsupported_input_typez3TestChecker.test_check_model_unsupported_input_type  s    )#{/?!EE)#{/@1#FF)#{/@1#FF%b!,,SzC599!4&*:QFQCHH!%vgYWWW*G,?	
 	
 	
 	
 	
r(   c                    d}t          j        dt          j        |g          }t          j        dt          j        |g          }t          j        dt          j        |g          }t          j        dd          }t          j        dddgdg          }t          j        |gd||g|g          }t          j        |d	|g
          }| 	                    t          j        t          j        |d           d S r  )r   rq   r   r   r   rU   r=   rp   r   rE   r
   r   r   r   r  s	            r%   "test_check_model_inconsistent_typez.TestChecker.test_check_model_inconsistent_type  s    )#{/@1#FF)#{/@1#FF)#{/@1#FF%b!,,SzC599!4&*:QFQCHH!%vgYWWW*G,?	
 	
 	
 	
 	
r(   c                    d}t          j        dt          j        |g          }t          j        dt          j        |g          }t          j        dt          j        |g          }t          j        dd          }t          j        dddgdg          }t          j        |gd||g|g          }t          j        |d	|g
          }| 	                    t          j        t          j        |d           d S r  )r   rq   r   r   r   rU   r=   rp   r   rE   r
   r   r   r   r  s	            r%   (test_check_model_unsupported_output_typez4TestChecker.test_check_model_unsupported_output_type  s    )#{/@1#FF)#{/@1#FF)#{/?!EE%b!,,SzC599!4&*:QFQCHH!%vgYWWW*G,?	
 	
 	
 	
 	
r(   c           #         t          j        t          j        dd          gdt          j        dt          j        dt
          j        dg          t          j        dt
          j        g           t          j        d	t
          j        dg          t          j        d
t
          j        g           t          j        dt
          j        dg          gt          j        dt
          j        dg          gt          j
        t          j        dt          j                  d          t          j
        t          j        dgt          j                  d	          t          j
        t          j        dt          j                  d
          t          j
        t          j        dgt          j                  d          gt          j        ddgdgddt
          j                  t          j        ddd
gdgdd          t          j        ddgdgdd          t          j        dg ddd gd!t          j        d"t          j        d#t
          j        g           t          j        d$t
          j        g           t          j        d%t
          j        dg          t          j        d&t
          j        dg          t          j        d't
          j        g           gt          j        d(t
          j        g           t          j        d)t
          j        dg          t          j        d&t
          j        dg          gt          j
        t          j        dt          j                  d'          gt          j        d*d%d&gd)gd+,          t          j        dd)gd-gd.dt
          j                  t          j        dd-d'gd/gd0d          t          j        dd/gd(gd1d          g2          3          t          j        d4dgd5gd6d7g8          t          j        d9d5d	gdgd9,          g2          :          }t%          j        |d;<           d S )=NrD   r   r   	test-loopinput_0rK   r*   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   rR   toLesswhile_cond_158_while_Less_0while_cond_158_while_Lessr   r   r   rR   Squeezewhile_cond_158_while_Squeeze_0while_cond_158_while_SqueezeLoopr  r)  r  r  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_0r	  	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   rr   nodesr   r   r   body	UnsqueezeReshape_tensor_0Reshape_tensorr   r   r   r   axesReshapern   rj   rs   T
full_check)r   r   make_operatorsetidrp   rq   r   r   r3   r   r	   
from_arrayr   arrayint64r   int32r=   r   r   r   r#   r   s     r%   /test_loop_with_same_initializer_input_below_ir4z;TestChecker.test_loop_with_same_initializer_input_below_ir4  sq   
 !!4R;;<# 1!;#4QC   14k6Gr   1,k.?s   1,k.?r   1!;#4QC  $ 1"K$5aS   !+!4BHEEE9   !+"RX666=Q   !+RZ888?S   !+!BH555I    $ ){!B C<!&,   $=0  "? ?8!	 	 	 $! =>!A B;!   $      "0 @)#.!- & =$@$/$5*,!" !" !"
 !' =$0+2B"!" !" !" !' =$9;;LUVTW!" !" !" !' =$9;;LUVTW!" !" !" !' =$8+:KSU!" !" !"$( !' =$W$/$4*,!" !" !"
 !' =$8+:KTUSV!" !" !" !' =$9;;LUVTW!" !" !"% !- 7$&HT$D$D$D)=!" !" !") !' 0$)(=(=,& .B,B)4!" !" !" !' 0$*,@+A-F,G)@+-'2'8!" !" !" !' 0$*(A(<,& .C,C)<+-	!" 	!" 	!" !' 0$-,A+B([-& *@+-!" !" !"9%#QN N NY Y Yt $# ./!3 4-S   $! 24HI!+&	  wAOi i im
 m
 m
^ 	Ed333333r(   c           "         t          j        t          j        dd          gdt          j        dt          j        dt
          j        dg          t          j        dt
          j        g           t          j        d	t
          j        dg          t          j        d
t
          j        g           t          j        dt
          j        dg          gt          j        dt
          j        dg          gt          j
        t          j        dt          j                  d          t          j
        t          j        dgt          j                  d	          t          j
        t          j        dt          j                  d
          t          j
        t          j        dgt          j                  d          gt          j        ddgdgddt
          j                  t          j        ddd
gdgdd          t          j        ddgdgdd          t          j        dg ddd gd!t          j        d"t          j        d#t
          j        g           t          j        d$t
          j        g           t          j        d%t
          j        dg          t          j        d&t
          j        dg          t          j        d	t
          j        g           gt          j        d't
          j        g           t          j        d(t
          j        dg          t          j        d&t
          j        dg          gg t          j        d)d%d&gd(gd*+          t          j        dd(gd,gd-dt
          j                  g.          /          t          j        d0dgd1gd2d3g4          t          j        d5d1d	gdgd5+          g.          6          }|                     t&          j        t*          j        |d7           d S )8NrD   r   r   r  r  rK   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/  r0  r1  r2  r3  r4  r6  r7  r	  r8  r9  r:  r;  r?  rA  rC  rD  rE  r   rF  rH  rI  Tr   r   rL  rp   rq   r   r   r3   r   r	   rM  r   rN  rO  r   rP  r=   r   rE   r
   r   r   r   rQ  s     r%   4test_loop_with_different_initializer_input_below_ir4z@TestChecker.test_loop_with_different_initializer_input_below_ir4  s   
 !!4R;;<# 1!;#4QC   14k6Gr   1,k.?s   1,k.?r   1!;#4QC  $ 1"K$5aS   !+!4BHEEE9   !+"RX666=Q   !+RZ888?S   !+!BH555I    $ ){!B C<!&,   $=0  "? ?8!	 	 	 $! =>!A B;!   $      "0 @)#.!- & =$@$/$5*,!" !" !"
 !' =$0+2B"!" !" !" !' =$9;;LUVTW!" !" !" !' =$9;;LUVTW!" !" !" !' =$8+:KSU!" !" !"!$* !' =$W$/$4*,!" !" !"
 !' =$8+:KTUSV!" !" !" !' =$9;;LUVTW!" !" !"% )+ & 0$)(=(=,& .B,B)4!" !" !" !' 0$*,@+A-F,G)@+-'2'8!" !" !"#I7 7 7B B BF $# ./!3 4-S   $! 24HI!+&	  IjOR R RV
 V
 V
n 	*G,?	
 	
 	
 	
 	
r(   c           #         t          j        t          j        dd          gdt          j        dt          j        dt
          j        dg          t          j        dt
          j        g           t          j        d	t
          j        dg          t          j        d
t
          j        g           t          j        dt
          j        dg          gt          j        dt
          j        dg          gt          j
        t          j        dt          j                  d          t          j
        t          j        dgt          j                  d	          t          j
        t          j        dt          j                  d
          t          j
        t          j        dgt          j                  d          gt          j        ddgdgddt
          j                  t          j        ddd
gdgdd          t          j        ddgdgdd          t          j        dg ddd gd!t          j        d"t          j        d#t
          j        g           t          j        d$t
          j        g           t          j        d%t
          j        dg          t          j        d&t
          j        dg          gt          j        d't
          j        g           t          j        d(t
          j        dg          t          j        d&t
          j        dg          gt          j
        t          j        d)t          j                  d#          gt          j        d*d%d&gd(gd+,          t          j        dd(gd-gd.dt
          j                  t          j        dd-d#gd/gd0d          t          j        dd/gd'gd1d          g2          3          t          j        d4dgd5gd6d7g8          t          j        d9d5d	gdgd9,          g2          :          }|                     t&          j        t*          j        |d;           d S )<NrD   r   r   r  r  rK   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/  r0  r1  r2  r3  r4  r6  r7  r   r	  r8  r9  r:  r;  r<  r=  r>  r?  rA  rC  rD  rE  r   rF  rH  rI  TrT  rQ  s     r%   /test_loop_with_same_initializer_input_above_ir4z;TestChecker.test_loop_with_same_initializer_input_above_ir4U  sd    !!4R<<=# 1!;#4QC   14k6Gr   1,k.?s   1,k.?r   1!;#4QC  $ 1"K$5aS   !+!4BHEEE9   !+"RX666=Q   !+RZ888?S   !+!BH555I    $ ){!B C<!&,   $=0  "? ?8!	 	 	 $! =>!A B;!   $      "0 @)#.!- & =$@$/$5*,!" !" !"
 !' =$0+2B"!" !" !" !' =$9;;LUVTW!" !" !" !' =$9;;LUVTW!" !" !"$" !' =$W$/$4*,!" !" !"
 !' =$8+:KTUSV!" !" !" !' =$9;;LUVTW!" !" !"% !- 7$&HRrx$@$@$@)E!" !" !") !' 0$)(=(=,& .B,B)4!" !" !" !' 0$*,@+A-F,G)@+-'2'8!" !" !" !' 0$*(A(D,& .C,C)<+-	!" 	!" 	!" !' 0$-,A+B([-& *@+-!" !" !"9%#ML L LW W Wp $# ./!3 4-S   $! 24HI!+&	  sOg g gk
 k
 k
X 	*G,?	
 	
 	
 	
 	
r(   c                     t           j                            d          }t          j        |d           t           j                            d          }t          j        |d           d S )Nz
            <
                ir_version: 7,
                opset_import: [ "" : 17]
            >
            agraph (float[N] x) => (int64[M] y)
            {
                y = Constant <value_ints: ints = []>()
            }
        TrJ  z
            <
                ir_version: 7,
                opset_import: [ "" : 17]
            >
            agraph (float[N] x) => (float[M] y)
            {
                y = Constant <value_floats: floats = []>()
            }
        )rk   parserparse_modelr   r   rQ  s     r%   test_empty_list_attributez%TestChecker.test_empty_list_attribute	  sp    ''	
 
 	Ed3333''	
 
 	Ed333333r(   c                    t          j        dt          j        j        dg          }t          j        dt          j        j        dg          }t          j        ddgdg          }t          j        |gd|g|g          }t          j        |d          }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inputrK   outputr|   r   r   u   模型モデル모델✨.onnxTrJ  )r   rq   rk   r   r   r=   rp   r   tempfileTemporaryDirectoryospathjoinsaver   r   )r#   input_tensoroutput_tensorr@   rs   r   temp_dirunicode_model_paths           r%   &test_check_model_supports_unicode_pathz2TestChecker.test_check_model_supports_unicode_path'  sU   4T%+aS
 
 5d&,qc
 
 
WIzBB!4&&<.=/RR!%v>>>(** 	Eh!#h8W!X!XIe/000 2tDDDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	Es   (ADDD)r)   )r   N)3__name__
__module____qualname__propertyr   r&   r   intstrr   r6   rA   rG   r^   rt   rw   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  r  rR  rU  rW  r[  ri   r(   r%   r   r      s       
k 
 
 
 X
  }   }	
 #  
   (! ! ! !
M M M M9 9 9 92" " " "8# # # #$,# ,# ,# ,#\O O O OO O O OO O O O$	# 	# 	# 	#O O O O
O 
O 
O 
O
# 
# 
# 
#
7 
7 
7 
7# # # #Q Q Q Q
Q 
Q 
Q 
QQ Q Q Q
# # # #6# # # #: 
{ 
 
 
 X
% % % %! ! ! !# # # #, , , ,X X X X
X X X X
, , , ,X X X XX X X XX X X X# # # #"
 
 
 

 
 
 

 
 
 
t4 t4 t4 t4l^
 ^
 ^
 ^
@r
 r
 r
 r
h4 4 4<E E E E Er(   r   __main__)ra  r_  unittesttypingr   numpyr   	onnx.defsrk   onnx.parserr   r   r   r   r   r	   r
   TestCaser   rj  mainrp  r(   r%   <module>ry     s   
			                                     ]E ]E ]E ]E ]E(# ]E ]E ]E@! zHMOOOOO r(   