
    h                         S SK r S SKrS SKrS SKJrJr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JrJrJrJr   " S S\R.                  5      r " S S\R.                  5      r " S S	\R.                  5      r " S
 S\R.                  5      r " S S\R.                  5      r\
R:                  R=                  S\R>                  " 5        V s/ s He  n U \R@                  \RB                  \RD                  \RF                  \RH                  \RJ                  \RL                  \RN                  1;  d  Mc  U PMg     sn S S9S\(SS4S j5       r)\
R:                  R=                  S\R>                  " 5        V s/ s HO  n U \R@                  \RJ                  \RB                  \RD                  \RF                  \RH                  1;  d  MM  U PMQ     sn S S9S\(SS4S j5       r* " S S\R.                  5      r+ " S S\R.                  5      r,\-S:X  a%  \R\                  " 5         \
R\                  " \//5        ggs  sn f s  sn f )    N)AnyListTuple)AttributeProto
GraphProto
ModelProtoOptionalProtoSequenceProtoTensorProto	TypeProtocheckerdefshelpernumpy_helperc                       \ 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S	 j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S jrSS jrSS jrSS jrSrg)TestHelperAttributeFunctions   Nc                    [         R                  " SS5      nU R                  UR                  S5        U R                  UR                  S5        [
        R                  " U5        [         R                  " SS5      nU R                  UR                  S5        U R                  UR                  S5        [
        R                  " U5        g )Nfloat      ?g    _B)r   make_attributeassertEqualnamefr   check_attributeselfattrs     O/var/www/fran/franai/venv/lib/python3.13/site-packages/onnx/test/helper_test.pytest_attr_float,TestHelperAttributeFunctions.test_attr_float   s    $$Wc2G,%%$$Wd3G,&%    c                 ,   [         R                  " SS5      nU R                  UR                  S5        U R                  UR                  S5        [
        R                  " U5        [         R                  " SS5      nU R                  UR                  S5        U R                  UR                  S5        [
        R                  " U5        [         R                  " SS5      nU R                  UR                  S5        U R                  UR                  S5        [
        R                  " U5        [         R                  " SS5      nU R                  UR                  S5        U R                  UR                  S5        [
        R                  " U5        g )Nint      i  i  )r   r   r   r   ir   r   r   s     r   test_attr_int*TestHelperAttributeFunctions.test_attr_int+   s"   $$UA.E*#%$$UA.E*#%$$UF3E*(%$$UF3E*(%r"   c                 B   [         R                  " SS5      nU R                  UR                  S5        U R                  UR                  S5        [         R                  " SSS5      nU R                  UR                  S5        U R                  UR                  S5        g )Navalue doc)r   r   r   r   
doc_stringr   s     r   test_attr_doc_string1TestHelperAttributeFunctions.test_attr_doc_stringA   sx    $$S'2C("-$$S'59C(%0r"   c                 @   [         R                  " SS5      nU R                  UR                  S5        U R                  UR                  S5        [
        R                  " U5        [         R                  " SS5      nU R                  UR                  S5        U R                  UR                  S5        [
        R                  " U5        [         R                  " SS5      nU R                  UR                  S5        U R                  UR                  S5        [
        R                  " U5        [         R                  " SS5      nU R                  UR                  S5        U R                  [         R                  " U5      S5        [
        R                  " U5        g )Nstrs   testtestr-   r"   )r   r   r   r   sr   r   get_attribute_valuer   s     r   test_attr_string-TestHelperAttributeFunctions.test_attr_stringI   s)   $$UG4E*)%$$UF3E*)%$$UF3E*)%$$UB/E*33D93?%r"   c                     [         R                  " SSS/5      nU R                  UR                  S5        U R                  [	        UR
                  5      SS/5        [        R                  " U5        g )Nfloatsr          @r   r   r   r   listr:   r   r   r   s     r   test_attr_repeated_float5TestHelperAttributeFunctions.test_attr_repeated_float_   sW    $$XSz:H-dkk*S#J7%r"   c                     [         R                  " SSS/5      nU R                  UR                  S5        U R                  [	        UR
                  5      SS/5        [        R                  " U5        g )Nints      )r   r   r   r   r=   rA   r   r   r   s     r   test_attr_repeated_int3TestHelperAttributeFunctions.test_attr_repeated_inte   sV    $$VaV4F+dii1a&1%r"   c                     [         R                  " S/ SQ5      nU R                  UR                  S5        U R                  [	        UR
                  5      / SQ5        [        R                  " U5        g )Nmixed)rB   rC         @      @)r   r;   rH   rI   r<   r   s     r   (test_attr_repeated_mixed_floats_and_intsETestHelperAttributeFunctions.test_attr_repeated_mixed_floats_and_intsk   sQ    $$W.>?G,dkk*,@A%r"   c                     [         R                  " SSS/5      nU R                  UR                  S5        U R                  [	        UR
                  5      SS/5        [        R                  " U5        g )Nstringsstr1str2s   str1s   str2)r   r   r   r   r=   rM   r   r   r   s     r   test_attr_repeated_str3TestHelperAttributeFunctions.test_attr_repeated_strq   sY    $$Y0@AI.dll+gw-?@%r"   c           	         [         R                  " S[        R                  S[        R
                  " S5      S9[         R                  " S[        R                  S[        R
                  " S5      S9/n[         R                  " SU5      nU R                  UR                  S5        U R                  [        UR                  5      U5        [        R                  " U5        g )Nr+   )rB   rB   r   	data_typedimsvalsbtensors)r   make_tensorr   FLOATnponesr   r   r   r=   rX   r   r   )r   rX   r   s      r   test_attr_repeated_tensor_proto<TestHelperAttributeFunctions.test_attr_repeated_tensor_protow   s    K$5$5Drwwqz K$5$5Drwwqz	
 $$Y8I.dll+W5%r"   c                    SS/n/ SQn[         R                  " S[        R                  [	        U5      /[
        R                  " U5      R                  [
        R                  5      SS9n/ SQn[         R                  " S[        R                  [	        U5      /[
        R                  " U5      R                  [
        R                  5      SS9n[         R                  " X5U5      n[         R                  " SU5      nU R                  UR                  S5        [        R                   " [         R"                  " U5      5        [        R$                  " U5        g )	Nr%   g    9?g    -?g   `Q?sparse_valuesFr   rT   rU   rV   rawrC   r%   r&   indicessparse_attr)r   rY   r   rZ   lenr[   arrayastypefloat32INT64int64make_sparse_tensorr   r   r   r   check_sparse_tensorr6   r   )r   dense_shapera   values_tensorlinear_indicesindices_tensorsparse_tensorr   s           r   test_attr_sparse_tensor_proto:TestHelperAttributeFunctions.test_attr_sparse_tensor_proto   s   !fS** !''m$%-(//

;
 #++!''n%&.)00:
 11;
 $$]MBM2##F$>$>t$DE%r"   c                    SS/n/ SQn[         R                  " S[        R                  [	        U5      /[
        R                  " U5      R                  [
        R                  5      SS9n/ SQn[         R                  " S[        R                  [	        U5      /[
        R                  " U5      R                  [
        R                  5      SS9n[         R                  " X5U5      nXf/n[         R                  " SU5      nU R                  UR                  S5        [        R                   " U5        [         R"                  " U5       H  n	[        R$                  " U	5        M     g )	Nr%   r`   ra   Frb   rd   re   sparse_attrs)r   rY   r   rZ   rg   r[   rh   ri   rj   rk   rl   rm   r   r   r   r   r   r6   rn   )
r   ro   ra   rp   rq   rr   rs   repeated_sparser   r5   s
             r   'test_attr_sparse_tensor_repeated_protosDTestHelperAttributeFunctions.test_attr_sparse_tensor_repeated_protos   s   !fS** !''m$%-(//

;
 #++!''n%&.)00:
 11;
 )8$$^_EN3%++D1A''* 2r"   c                 0   [        5       [        5       /nSUS   l        SUS   l        [        R                  " SU5      nU R	                  UR                  S5        U R	                  [        UR                  5      U5        [        R                  " U5        g )Nr+   r   rW   rB   graphs)	r   r   r   r   r   r=   r|   r   r   )r   r|   r   s      r   test_attr_repeated_graph_proto;TestHelperAttributeFunctions.test_attr_repeated_graph_proto   ss    ,
-q	q	$$Xv6H-dkk*F3%r"   c                 6   [        5       n[        R                  " SU5      nU R                  UR                  S5        U R                  UR
                  U5        U R                  UR                  [        R                  5        [        5       [        5       /n[        R                  " SU5      nU R                  UR                  S5        U R                  [        UR                  5      U5        U R                  UR                  [        R                  5        g )N
type_prototype_protos)r   r   r   r   r   tptyper   
TYPE_PROTOr=   r   TYPE_PROTOS)r   r   r   typess       r   test_attr_type_proto1TestHelperAttributeFunctions.test_attr_type_proto   s    [
$$\:>L1*-N$=$=>ik*$$]E:M2d../7N$>$>?r"   c                 6   [         R                  " S/ [        R                  S9nU R	                  UR
                  [        R                  5        U R	                  [        UR                  5      S5        U R                  [        [         R                  S/ 5        g )Nempty	attr_typer   )
r   r   r   STRINGSr   r   rg   rM   assertRaises
ValueErrorr   s     r   test_attr_empty_list1TestHelperAttributeFunctions.test_attr_empty_list   si    $$WbN<R<RSN$:$:;T\\*A.*f&;&;WbIr"   c                     U R                  [        S5         [        R                  " SS[        R
                  S9  S S S 5        g ! , (       d  f       g = f)NzInferred attribute type 'FLOAT'r4   g@r   )assertRaisesRegex	TypeErrorr   r   r   STRINGr   s    r   test_attr_mismatch/TestHelperAttributeFunctions.test_attr_mismatch   s8    ##I/PQ!!&#9N9NO RQQs   %A
Ac                    [        5       nU R                  [        R                  [        R                  U5        [        5       nSUl        U R                  [        R                  [        R                  U5        [        5       nSUl        SUl        SUl        U R                  [        R                  [        R                  U5        g )Nr4   r   rC   )r   r   r   ValidationErrorr   r   r   r'   r   s     r   test_is_attr_legal/TestHelperAttributeFunctions.test_is_attr_legal   s    '1173J3JDQ	'1173J3JDQ	'1173J3JDQr"   c           
        ^^ S[         S[         R                  S[        S[        SS 4
S jmS[         S[         R                  S[        [           S[        SS 4
S jmU4S jU4S	 jU4S
 jU4S jU4S jU4S j/n[        S5       HF  n[        5       nSUl        [        R                  " U5      " U5        [        R                  " U5        MH     [        S5       Hi  n[        5       nSUl        [        R                  " US5       H  nU" U5        M     U R                  [        R                  [        R                  U5        Mk     g )Nr   type_varr,   returnc                 (    [        XU5        Xl        g N)setattrr   r   r   r   r,   s       r   _setETestHelperAttributeFunctions.test_is_attr_legal_verbose.<locals>._set   s     Du%Ir"   c                 2    UR                  U5        Xl        g r   )extendr   r   s       r   _extendHTestHelperAttributeFunctions.test_is_attr_legal_verbose.<locals>._extend   s     JJuIr"   c                 6   > T" U [         R                  SS5      $ )Nr   r   )r   rZ   r   r   s    r   <lambda>ITestHelperAttributeFunctions.test_is_attr_legal_verbose.<locals>.<lambda>  s    $t^%9%93Dr"   c                 6   > T" U [         R                  SS5      $ )Nr'   rB   )r   INTr   s    r   r   r     s    $t^%7%7a@r"   c                 6   > T" U [         R                  SS5      $ )Nr5   s   str)r   r   r   s    r   r   r     s    $t^%:%:CHr"   c                 N   > T" U [         R                  U R                  SS/5      $ )Nr   r;   )r   FLOATSr:   r   r   s    r   r   r     s!    W.//sCjr"   c                 N   > T" U [         R                  U R                  SS/5      $ )NrB   rC   )r   INTSrA   r   s    r   r   r     s    '$(;(;TYYAOr"   c                 N   > T" U [         R                  U R                  SS/5      $ )N   a   b)r   r   rM   r   s    r   r   r     s!    W.00$,,tr"   d   r4   rC   )r   AttributeTyper3   r   r   ranger   randomchoicer   r   sampler   r   )r   SET_ATTR_ir   funcr   r   s        @@r   test_is_attr_legal_verbose7TestHelperAttributeFunctions.test_is_attr_legal_verbose   s4   	 	!//	 	 		
 		 	!//	 c	 		
 	 E@H P
" *B!#DDIMM(#D)##D)	  *B!#DDIh2T
 3g55w7N7NPTU r"    r   N)__name__
__module____qualname____firstlineno__r    r(   r0   r7   r>   rD   rJ   rP   r]   rt   ry   r}   r   r   r   r   r   __static_attributes__r   r"   r   r   r      s\    
&&,1&,&&&&&&8+<&@JPR/Vr"   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S	 jr
SS
 jrSS jrSS jrSrg)TestHelperNodeFunctionsi"  Nc                    U R                  [        R                  " S5      5        [        R                  " SS/S/SS9nU R                  UR                  S5        U R                  UR                  S5        U R                  [        UR                  5      S/5        U R                  [        UR                  5      S/5        g )NReluXYr4   )r   )
assertTruer   hasr   	make_noder   op_typer   r=   inputoutputr   node_defs     r   test_node_no_arg(TestHelperNodeFunctions.test_node_no_arg#  s    ()##FSEC5vF))62/hnn-u5hoo.6r"   c                 p    [         R                  " SS/S/SSS9nU R                  UR                  S5        g )Nr   r   r   r4   r.   )r   r/   )r   r   r   r/   r   s     r   r0   ,TestHelperNodeFunctions.test_attr_doc_string+  s5    ##FSEC5vRWX,,e4r"   c                    U R                  [        R                  " S5      5        [        R                  " SS/S/SS9nU R                  UR                  S5        U R                  [        UR                  5      S/5        U R                  [        UR                  5      S/5        U R                  [        UR                  5      S5        U R                  UR                  S   [        R                  " SS5      5        g )Nr   r   r   rB   )	arg_valuer   r   )r   r   r   r   r   r   r   r=   r   r   rg   	attributer   r   s     r   test_node_with_arg*TestHelperNodeFunctions.test_node_with_arg/  s    () ##FSEC5AF))62hnn-u5hoo.6X//0!4++A.0E0EkST0UVr"   c           	      r    [         R                  " SS/S/SSSS9nU R                  UR                  S5        g )Nr   r   r   r4   r.   ztest.domain)r   r/   domain)r   r   r   r   r   s     r   test_node_domain(TestHelperNodeFunctions.test_node_domain:  s9    ##SEC5v%
 	-8r"   c                 
   [         R                  " SS/S/5      n[         R                  " SSS/S/5      n[         R                  " S[        R                  SS/5      /n[         R
                  " X/S[         R                  " S[        R                  SS/5      /[         R                  " S[        R                  SS/5      /S US	9nU R                  UR                  S5        U R                  [        UR                  5      S5        U R                  UR                  S
   U5        U R                  UR                  S   U5        U R                  UR                  S5        U R                  UR                  S
   US
   5        g )Nr   r   r   AddZrB   rC   r4   r/   
value_infor   r-   )r   r   make_tensor_value_infor   rZ   
make_graphr   r   rg   noder/   r   )r   	node_def1	node_def2r   graphs        r   
test_graph"TestHelperNodeFunctions.test_graph@  sF   $$VcUSE:	$$US#J>	33C9J9JQPQFST
!!"**30A0AAq6JK**30A0AAq6JK!
 	V,UZZ!,A	2A	2))2.))!,jm<r"   c                     [         R                  " / S/ / S S5      nU R                  UR                  S5        U R                  UR                  S5        g )Nmy graphzmy docs)r   r   r   r   r/   )r   r   s     r   test_graph_docstring,TestHelperNodeFunctions.test_graph_docstringS  sF    !!"j"b$	JZ0))95r"   c                    [         R                  " SS/S/5      n[         R                  " U/S[         R                  " S[        R
                  SS/5      /[         R                  " S[        R
                  SS/5      /5      nU R                  [        [         R                  USS9  [         R                  " USS9nU R                  UR                  S5        g )	Nr   r   r   r4   rB   rC   )xxx)producer_name)r   r   r   r   r   rZ   r   AttributeError
make_modelr   r   )r   r   	graph_def	model_defs       r   
test_model"TestHelperNodeFunctions.test_modelX  s    ##FSEC59%%J**30A0AAq6JK**30A0AAq6JK	
	 	.&*;*;YAN%%ivF	00&9r"   c                     [         R                  " / S/ / 5      n[         R                  " USS9nU R                  [	        US5      5        U R                  UR                  S5        g )Nr   r4   r/   r   )r   r   r   assertFalsehasattrr   r/   )r   r   r   s      r   test_model_docstring,TestHelperNodeFunctions.test_model_docstringd  sW    !!"j"b9%%e?	 	F34--v6r"   c                    [         R                  " / S/ / 5      n[         R                  " USS9n[         R                  " USSS.5        [        R
                  " U5        [         R                  " USSS.5        [        R
                  " U5        UR                  R                  5       nSUl        SUl	        U R                  [        R                  [        R
                  U5        g )Nr   r4   r  z
test;graph)TitleKeywordsr  Other)r   r   r   set_model_propsr   check_modelmetadata_propsaddkeyr,   r   r   )r   r   r   dupes       r   test_model_metadata_props1TestHelperNodeFunctions.test_model_metadata_propsl  s    !!"j"b9%%e?	F	
 	I&F	
 	I&''++-
'1173F3F	Rr"   c                 B  ^ ^ S[         [        [        [        4      S[        4S jmS[         [        [        [        4      S[        SS 4UU 4S jjnU" S/S5        U" S/S	5        U" S
/S5        U" S/S5        U" S/S5        U" S/S5        U" S/S5        U" S/S5        U" S/S5        U" S/S5        U" S/S5        U" S/S5        U" S/S5        U" S/S5        U" S/S5        U" S/S5        U" S/S5        U" SS/S5        T R                  [        TS/5        g )Nopset_versionsr   c           	          [         R                  " / S/ / 5      n[         R                  " UU  Vs/ s H  n[         R                  " U6 PM     snS9$ s  snf )Nr   )opset_imports)r   r   make_model_gen_versionmake_opsetid)r  r   pairs      r   mk_model>TestHelperNodeFunctions.test_model_irversion.<locals>.mk_model~  sN    %%b*b"=E00FTUndv22D9nU Us   A

ir_versionc                 N   > T" U 5      nTR                  UR                  U5        g r   )r   r  )r  r  modelr  r   s      r   r4   :TestHelperNodeFunctions.test_model_irversion.<locals>.test  s#    ^,EU--z:r"   )r-   	      )r-   
   r&   )r-         )r-         )r-      )r-      )r-         )r-      )r-      )r-      )r-      r   )r-      )zai.onnxr   )
ai.onnx.mlrC   )r0  r%   )r0  r!  )zai.onnx.trainingrB   )r-   r   )r   r   r3   r$   r   r   r   )r   r4   r  s   ` @r   test_model_irversion,TestHelperNodeFunctions.test_model_irversion}  sJ   	T%S/%: 	z 		;eCHo!6 	;C 	;D 	; 	;
 	gYhZhZhZhZhZhZhZhZhZhZhZnq! !$ !$ !$%&*h)*A.*h<r"   r   r   )r   r   r   r   r   r0   r   r   r   r   r   r  r  r1  r   r   r"   r   r   r   "  s6    75	W9=&6

:7S"!=r"   r   c                       \ 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S	 j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S jrSrg)TestHelperTensorFunctionsi  Nc                     S Vs/ s H  oR                  S5      PM     nn[        R                  " S[        R                  SUSS9nU R                  U[        UR                  5      5        g s  snf )N)AmyBillyCindyDavidzutf-8r4   )rC   rC   Frb   )encoder   rY   r   r   r   r=   string_data)r   r5   string_listtensors       r   test_make_string_tensor1TestHelperTensorFunctions.test_make_string_tensor  sg    2TU2TQxx(2TU##!((
 	d6+=+=&>? Vs   A-c                 D   [         R                  " SS/SS/SS/SS/[         R                  [         R                  //[         R                  S	9n[         R                  " [
        R                  " S
[        R                  S5      5      S   [
        R                  " S
[        R                  S5      5      S   /[
        R                  " S
[        R                  S5      5      S   [
        R                  " S
[        R                  S5      5      S   /[
        R                  " S
[        R                  S5      5      S   [
        R                  " S
[        R                  S5      5      S   /[
        R                  " S
[        R                  S5      5      S   [
        R                  " S
[        R                  S5      5      S   /[
        R                  " S
[        R                  S5      5      S   [
        R                  " S
[        R                  S5      5      S   //5      n[        R                  " S[        R                  UR                  US9nU R                  UR                  S5        [         R                   R#                  U[$        R&                  " U5      5        g )Nr   r;   rH         @     ?     p??皙?dtype!f3F800000r   4000000040400000408000003DCC00003DCD00007FC000007F800000r4   rS   )r[   rh   naninfrj   structunpackbytesfromhexr   rY   r   BFLOAT16shaper   r   testingassert_equalr   to_array)r   np_array
np_resultsr=  s       r   test_make_bfloat16_tensor3TestHelperTensorFunctions.test_make_bfloat16_tensor  s   88c
c
0 #&  **	
 XX MM$j(AB1EMM$j(AB1E
 MM$j(AB1EMM$j(AB1E
 MM$j(AB MM$j(AB1E	 MM$j(AB MM$j(AB1E	 MM$j(AB1EMM$j(AB1E+

: ##!**	
 	f-



L,A,A&,IJr"   c                    [         R                  " S[        R                  S// SQ5      n[        R
                  " U5      n[        R                  " / SQ[        R                  S9n[        R                  R                  X25        g )N
zero_pointr&   r         ?rB   P  g333333$@r   rc  rB   i  r"  rF  )r   rY   r   FLOAT8E4M3FNr   r[  r[   rh   rj   rY  rZ  r   yynpexpecteds       r   test_make_float8e4m3fn_tensor7TestHelperTensorFunctions.test_make_float8e4m3fn_tensor  s]    +22QC9Q
 ##A&880

C


.r"   c                    [         R                  " S[        R                  S// SQ5      n[        R
                  " U5      n[        R                  " / SQ[        R                  S9n[        R                  R                  X25        g )Nra  r&   rb  r   rc  rB      r"  rF  )r   rY   r   FLOAT8E4M3FNUZr   r[  r[   rh   rj   rY  rZ  rg  s       r   test_make_float8e4m3fnuz_tensor9TestHelperTensorFunctions.test_make_float8e4m3fnuz_tensor  s]    +44qc;S
 ##A&880

C


.r"   c                    [         R                  " S[        R                  S// SQ5      n[        R
                  " U5      n[        R                  " / SQ[        R                  S9n[        R                  R                  X25        g Nra  r&   )r   rc  rB   rd  `   )r   rc  rB      ru  rF  )r   rY   r   
FLOAT8E5M2r   r[  r[   rh   rj   rY  rZ  rg  s       r   test_make_float8e5m2_tensor5TestHelperTensorFunctions.test_make_float8e5m2_tensor  s]    +001#7M
 ##A&882"**E


.r"   c                    [         R                  " S[        R                  S// SQ5      n[        R
                  " U5      n[        R                  " / SQ[        R                  S9n[        R                  R                  X25        g rt  )r   rY   r   FLOAT8E5M2FNUZr   r[  r[   rh   rj   rY  rZ  rg  s       r   test_make_float8e5m2fnuz_tensor9TestHelperTensorFunctions.test_make_float8e5m2fnuz_tensor  s]    +44qc;Q
 ##A&882"**E


.r"   c                 F   [         R                  " SS/SS/SS/SS/[         R                  [         R                  //[         R                  S	9n[         R                  " [
        R                  " S
[        R                  S5      5      S   [
        R                  " S
[        R                  S5      5      S   /[
        R                  " S
[        R                  S5      5      S   [
        R                  " S
[        R                  S5      5      S   /[
        R                  " S
[        R                  S5      5      S   [
        R                  " S
[        R                  S5      5      S   /[
        R                  " S
[        R                  S5      5      S   [
        R                  " S
[        R                  S5      5      S   /[
        R                  " S
[        R                  S5      5      S   [
        R                  " S
[        R                  S5      5      S   //5      nS nUR                  [         R                  5      R                  [         R                  5      R                  5       nU" U5      R                  [         R                  5      R                  5       n[        R                   " S["        R$                  UR&                  USS9nU R)                  UR*                  S5        [         R,                  R/                  U[0        R2                  " U5      5        g )Nr   r;   rH   rA  rB  rC  rD  rE  rF  rH  rI  r   rJ  rK  rL  rM  3DCB0000rO  rP  c                     U S-	  $ )Nr+  r   )xs    r   truncateITestHelperTensorFunctions.test_make_bfloat16_tensor_raw.<locals>.truncate%  s    7Nr"   r4   Trb   )r[   rh   rQ  rR  rj   rS  rT  rU  rV  ri   viewuint32flattenuint16tobytesr   rY   r   rW  rX  r   r   rY  rZ  r   r[  )r   r\  r]  r  values_as_intspacked_valuesr=  s          r   test_make_bfloat16_tensor_raw7TestHelperTensorFunctions.test_make_bfloat16_tensor_raw  sM   88c
c
0 #&  **	
 XX MM$j(AB1EMM$j(AB1E
 MM$j(AB1EMM$j(AB1E
 MM$j(AB1EMM$j(AB1E
 MM$j(AB1EMM$j(AB1E
 MM$j(AB1EMM$j(AB1E#

4	 "499"))DLLN 077		BJJL##!**
 	f-



L,A,A&,IJr"   c                    [         R                  " / SQ[         R                  S9n[         R                  " U Vs/ s H  n[        R                  " U5      PM     sn[         R
                  S9nUR                  5       n[        R                  " S[        R                  [        UR                  5      USS9n[        R                  " U5      n[         R                  R                  X5        g s  snf )Nre  rF  r4   Trb   )r[   rh   rj   r   float32_to_float8e4m3uint8r  rY   r   rf  r=   rX  r   r[  rY  rZ  r   rj  r  f8r  rh  ri  s          r   !test_make_float8e4m3fn_tensor_raw;TestHelperTensorFunctions.test_make_float8e4m3fn_tensor_raw4  s    880

CXX6>?hV))!,h?rxx
 

!..hnn%
 ##A&


. @    C-c           
         [         R                  " / SQ[         R                  S9n[         R                  " U Vs/ s H  n[        R                  " USS9PM     sn[         R
                  S9nUR                  5       n[        R                  " S[        R                  [        UR                  5      USS9n[        R                  " U5      n[         R                  R                  X5        g s  snf )Nrn  rF  T)uzr4   rb   )r[   rh   rj   r   r  r  r  rY   r   rp  r=   rX  r   r[  rY  rZ  r  s          r   #test_make_float8e4m3fnuz_tensor_raw=TestHelperTensorFunctions.test_make_float8e4m3fnuz_tensor_rawD  s    880

CXX?GHx!V))!5xHPRPXPX
 

!00hnn%
 ##A&


. Is   C,c                    [         R                  " / SQ[         R                  S9n[         R                  " U Vs/ s H  n[        R                  " U5      PM     sn[         R
                  S9nUR                  5       n[        R                  " S[        R                  [        UR                  5      USS9n[        R                  " U5      n[         R                  R                  X5        g s  snf )Nr   rc  rB   rv  r"  rF  r4   Trb   )r[   rh   rj   r   float32_to_float8e5m2r  r  rY   r   rw  r=   rX  r   r[  rY  rZ  r  s          r   test_make_float8e5m2_tensor_raw9TestHelperTensorFunctions.test_make_float8e5m2_tensor_rawT  s    882"**EXX6>?hV))!,h?rxx
 

!,,hnn%
 ##A&


. @r  c                    [         R                  " / SQ[         R                  S9n[         R                  " U Vs/ s H  n[        R                  " USSS9PM     sn[         R
                  S9nUR                  5       n[        R                  " S[        R                  [        UR                  5      USS9n[        R                  " U5      n[         R                  R                  X5        g s  snf )Nr  rF  T)fnr  r4   rb   )r[   rh   rj   r   r  r  r  rY   r   r{  r=   rX  r   r[  rY  rZ  r  s          r   #test_make_float8e5m2fnuz_tensor_raw=TestHelperTensorFunctions.test_make_float8e5m2fnuz_tensor_rawd  s    882"**EXXHPQ1V))!>Q((
 

!00hnn%
 ##A&


. Rr  c                    / SQn[         R                  " S[        R                  SUS9n/ SQn[         R                  " S[        R                  SUS9nS/n[         R
                  " X$U5      nU R                  UR                  U5        U R                  UR                  U5        U R                  UR                  U5        g )Ng?g@gffffff
@g@g      @r4   r&   rS   )rB   r%   r&   r&  r   test_indicesr"  )
r   rY   r   rZ   rk   rm   r   valuesre   rU   )r   r  rp   re   rr   ro   sparses          r   test_make_sparse_tensor1TestHelperTensorFunctions.test_make_sparse_tensoru  s    ***;#4#44f
 "++;+<+<4g
 d**=+V68k2r"   c                     [         R                  " S[        R                  S5      n[        R
                  " U5        [         R                  " S[        R                  S5      n[        R
                  " U5        g )Nr   )rC   r!  r   r   )r   r   r   rZ   r   check_value_infor   vis     r   test_make_tensor_value_info5TestHelperTensorFunctions.test_make_tensor_value_info  sT    **30A0A6J  $ **30A0A2F  $r"   c                     [         R                  " S[        R                  S5      n[        R
                  " U5        [         R                  " S[        R                  S5      n[        R
                  " U5        g )Nr   )rC   r%   r   r   )r   make_sparse_tensor_value_infor   rZ   r   r  r  s     r   "test_make_sparse_tensor_value_info<TestHelperTensorFunctions.test_make_sparse_tensor_value_info  sT    11#{7H7H&Q  $ 11#{7H7H"M  $r"   r   r   )r   r   r   r   r>  r^  rk  rq  rx  r|  r  r  r  r  r  r  r  r  r   r   r"   r   r4  r4    sM    	@0Kd////3Kj/ / / /"3%%r"   r4  c                   2    \ rS rSrSS jrSS jrSS jrSrg)&TestHelperOptionalAndSequenceFunctionsi  Nc                    / SQn[         R                  " S[        R                  SUS9n[         R                  " S[
        R                  US9nU R                  UR                  S5        U R                  UR                  [
        R                  5        U R                  UR                  U5        [         R                  " S[        R                  X"/S9n[         R                  " S[
        R                  US9nU R                  UR                  S5        U R                  UR                  [
        R                  5        U R                  UR                  U5        [         R                  " S[
        R                  S S9nU R                  UR                  S5        U R                  UR                  [
        R                  5        U R!                  UR#                  S5      5        g )Nr  r4   r  rS   )r   	elem_typer,   )r   r  r  tensor_value)r   rY   r   rZ   make_optionalr	   TENSORr   r   r  r  make_sequencer
   SEQUENCEsequence_value	UNDEFINEDr  HasField)r   r  rp   optionalvalues_sequenceoptional_nones         r   test_make_optional9TestHelperOptionalAndSequenceFunctions.test_make_optional  s   ***;#4#44f
 ''=#7#7}
 	/++]-A-AB..> !..#**!1

 ''=#9#9
 	/++]-C-CD00/B ,,=#:#:$
 	++V400-2I2IJ//?@r"   c                 p   [         R                  " SS/S9n[         R                  " SUS9n[         R                  " U5      n[         R                  " SUS9nU R	                  UR
                  S5        U R                  UR                  R                  5        U R	                  UR                  R                  R                  UR                  5        [         R                  " U5      n[         R                  " U5      n[         R                  " SUS9nU R	                  UR
                  S5        U R                  UR                  R                  5        [         R                  " SUS9nU R	                  UR                  R                  R                  R                  R                  UR                  5        g )NrC   r&   r  rX  r4   r   r   )r   make_tensor_type_protomake_value_infomake_optional_type_protor   r   r   r   optional_typer  make_sequence_type_protosequence_type)r   tensor_type_prototensor_val_intooptional_type_protooptional_val_infosequence_type_protosequence_value_infos          r   test_make_optional_value_infoDTestHelperOptionalAndSequenceFunctions.test_make_optional_value_info  su   "99AaSQ 00$5
 %==>OP"22$7
 	*//8)..<<=""00::O<P<P	

 %==>OP$==>QR"22$7
 	*//8)..<<=$44$5
 	""00::HHRR$$	
r"   c                     [         R                  " SS S9n[         R                  " U5      n[         R                  " SUS9n[         R                  " SSS S9nU R                  X45        g )NrC   r  r4   r  )r   r  rX  )r   r  r  r  make_tensor_sequence_value_infor   )r   r  r  sequence_val_infosequence_val_info_prims        r   test_make_seuence_value_infoCTestHelperOptionalAndSequenceFunctions.test_make_seuence_value_info  si    "99ATR$==>OP"22$7
 "(!G!G1D"
 	*Cr"   r   r   )r   r   r   r   r  r  r  r   r   r"   r   r  r    s    AB
B
Dr"   r  c                   2    \ rS rSrSS jrSS jrSS jrSrg)TestPrintableGraphi  Nc                 J   [         R                  " SSS/S/5      n[         R                  " S[        R                  S/5      /n[         R
                  " U/S[         R                  " S[        R                  S/5      [         R                  " S[        R                  S/5      /[         R                  " S[        R                  S/5      /[         R                  " S[        R                  S/S/5      /S US9n[         R                  " U5      nU R                  S	U;   U5        g )
Nr   r   Y_Initializerr   r   rB   r4   r   zI) optional inputs with matching initializers (
  %Y_Initializer[FLOAT, 1]	r   r   r   r   rZ   r   rY   printable_graphr   r   r  r   r   	graph_strs        r   *test_initializer_with_matching_graph_input=TestPrintableGraph.test_initializer_with_matching_graph_input  s	   usO&<seD33C9J9JQCPQ
!!E--c;3D3DqcJ--o{?P?PSTRUV **30A0AA3GH""?K4E4EsQCP !
 **51	 		
r"   c                    [         R                  " SSS/S/5      n[         R                  " S[        R                  S/5      /n[         R
                  " U/S[         R                  " S[        R                  S/5      /[         R                  " S[        R                  S/5      /[         R                  " S[        R                  S/S/5      /S US9n[         R                  " U5      nU R                  S	U;   U5        g )
Nr   r   r  r   r   rB   r4   r   z+) initializers (
  %Y_Initializer[FLOAT, 1]r  r  s        r   (test_initializer_no_matching_graph_input;TestPrintableGraph.test_initializer_no_matching_graph_input  s    usO&<seD33C9J9JQCPQ
!!E**30A0AA3GH**30A0AA3GH""?K4E4EsQCP !

 **51	 		
r"   c                    [         R                  " [         R                  " SSS/S/5      /S[         R                  " S[        R
                  S /5      /[         R                  " S[        R
                  S /5      /[         R                  " S[        R
                  S/S/5      /S S9n[         R                  " U5      n[        R                  " U5        [         R                  " U5      nU R                  SU5        g )	Nr   r   r  r   r4   rB   r  zX[FLOAT, ?])r   r   r   r   r   rZ   rY   r   r   r  r  assertIn)r   r   r  r  s       r   test_unknown_dimensions*TestPrintableGraph.test_unknown_dimensions  s    !!ec?%;cUCD**30A0AD6JK**30A0AD6JK""?K4E4EsQCP 	
 !!%(E"**51	mY/r"   r   r   )r   r   r   r   r  r  r  r   r   r"   r   r  r    s    
6
00r"   r  tensor_dtypec                 .    [         R                  " U 5      $ r   r   tensor_dtype_to_stringr  s    r   r   r   <      V::<Hr"   )idsr   c                 2   [         R                  R                  SS5      R                  [        R
                  " U 5      5      n[        R                  " SXR                  US9n[         R                  R                  U[        R                  " U5      5        g )NrC   r%   r4   rS   )r[   r   randnri   r   tensor_dtype_to_np_dtyperY   rX  rY  rZ  r   r[  r  r\  r=  s      r   test_make_tensor_valsr  +  so    ( yyq!$++''5H |..xF JJHl&;&;F&CDr"   c                 .    [         R                  " U 5      $ r   r  r  s    r   r   r   W  r  r"   c                 R   [         R                  R                  SS5      R                  [        R
                  " U 5      5      n[        R                  " SU UR                  UR                  5       SS9n[         R                  R                  U[        R                  " U5      5        g )NrC   r%   r4   Trb   )r[   r   r  ri   r   r  rY   rX  r  rY  rZ  r   r[  r  s      r   test_make_tensor_rawr  H  s    $ yyq!$++''5H ^^F JJHl&;&;F&CDr"   c                   J   \ rS rSr\R
                  R                  S5      SS j5       r\R
                  R                  S5      SS j5       r\R
                  R                  S5      SS j5       r	\R
                  R                  S5      SS j5       r
SS jrSS	 jrSS
 jrSrg)TestHelperMappingFunctionsig  zerror::DeprecationWarningNc                 L    [         R                  " [        R                  5      ng r   )r   r  r   rZ   r   _s     r   /test_tensor_dtype_to_np_dtype_not_throw_warningJTestHelperMappingFunctions.test_tensor_dtype_to_np_dtype_not_throw_warningj  s    ++K,=,=>r"   c                 L    [         R                  " [        R                  5      ng r   )r   $tensor_dtype_to_storage_tensor_dtyper   rZ   r  s     r   ;test_tensor_dtype_to_storage_tensor_dtype_not_throw_warningVTestHelperMappingFunctions.test_tensor_dtype_to_storage_tensor_dtype_not_throw_warningn  s    778I8IJr"   c                 L    [         R                  " [        R                  5      ng r   )r   tensor_dtype_to_fieldr   rZ   r  s     r   ,test_tensor_dtype_to_field_not_throw_warningGTestHelperMappingFunctions.test_tensor_dtype_to_field_not_throw_warningr  s    (():):;r"   c                 X    [         R                  " [        R                  " S5      5      ng Nrj   )r   np_dtype_to_tensor_dtyper[   rG  r  s     r   /test_np_dtype_to_tensor_dtype_not_throw_warningJTestHelperMappingFunctions.test_np_dtype_to_tensor_dtype_not_throw_warningv  s    ++BHHY,?@r"   c                     U R                  [        R                  " [        R                  5      [
        R                  " S5      5        g r  )r   r   r  r   rW  r[   rG  r   s    r   &test_tensor_dtype_to_np_dtype_bfloat16ATestHelperMappingFunctions.test_tensor_dtype_to_np_dtype_bfloat16z  s/    ++K,@,@A288ICV	
r"   c                     U R                  [        R                  " [        R                  5      [        R
                  5        g r   )r   r   r  r   rW  UINT16r   s    r   2test_tensor_dtype_to_storage_tensor_dtype_bfloat16MTestHelperMappingFunctions.test_tensor_dtype_to_storage_tensor_dtype_bfloat16  s-    778L8LM	
r"   c                 l    U R                  [        R                  " [        R                  5      S5        g )N
int32_data)r   r   r  r   rW  r   s    r   #test_tensor_dtype_to_field_bfloat16>TestHelperMappingFunctions.test_tensor_dtype_to_field_bfloat16  s&    (()=)=>	
r"   r   r   )r   r   r   r   pytestmarkfilterwarningsr  r  r	  r  r  r  r  r   r   r"   r   r  r  g  s     [[ ;<? =? [[ ;<K =K [[ ;<< =< [[ ;<A =A



r"   r  c                      \ rS rSr\R                  R                  \R                  R                  S4\R                  R                  S4\R                  R                  S4\R                  R                  S4\R                  R                  S4\R                  R                  S4\R                  R                  S4\R                  R                  S	4\R                  R                   S
4\R                  R"                  S4\R                  R$                  S4\R                  R&                  S4\R                  R(                  S4\R                  R*                  S4/5      S 5       rS rSrg)TestAttrTypeToStri  rZ   r   r   r  GRAPHSPARSE_TENSORr   r   r   r   TENSORSGRAPHSSPARSE_TENSORSr   c                 R    [         R                  " U5      nU R                  X25        g r   r   _attr_type_to_strr   )r   r   expected_strresults       r   test_attr_type_to_str'TestAttrTypeToStr.test_attr_type_to_str  s"    & )))4.r"   c                 T    [         R                  " S5      nU R                  US5        g )Ni'  r  r&  )r   r)  s     r   test_attr_type_to_str_undefined1TestAttrTypeToStr.test_attr_type_to_str_undefined  s"    ))$/-r"   r   N)r   r   r   r   parameterizedexpandr   r   rZ   r   r   r  r   r!  r   r   r   r   r"  r#  r$  r   r*  r-  r   r   r"   r   r  r    sH     ''))//9))--u5))00(;))00(;))//9))77I))44lC))00(;))..7))119=))119=))00(;))88:JK))55}E	
$/%$/.r"   r  __main__)0r   rS  unittesttypingr   r   r   numpyr[   r/  r  onnxr   r   r   r	   r
   r   r   r   r   r   r   TestCaser   r   r4  r  r  r  parametrizeget_all_tensor_dtypesrW  rf  rp  rw  r{  r   	COMPLEX64
COMPLEX128r$   r  r  r  r  r   main__file__)ts   0r   <module>r>     s`      # #      AV8#4#4 AVH|=h// |=~q% 1 1 q%hMDX->-> MD`C0** C0L  --//A  $$&&""&&!!""	


 	
/ 	I#  &E E E'&E  --//A  $$&&""&&

 	
/ 	I  "Es Et E#"E#
!2!2 #
L.)) .8 zMMO
KK
 y:s   A"H6
5H6
7AH;
H;
