
    Sio                       S SK Jr  S SKrS SKrS SKrS SKrS SKJr  S SKrS SK	r
S SKJ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 jrS S 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"\RF                  RI                  S\RJ                  " 5        V s/ s H  o \RL                  :w  d  M  U PM     sn S S9S!S j5       r'\RF                  RI                  S\RJ                  " 5        V s/ s H  o \RL                  :w  d  M  U PM     sn S S9\RF                  RI                  SSS/SS/S9S"S j5       5       r( " S S\R:                  5      r) " S S\R:                  5      r*\+S:X  a  \RX                  " 5         ggs  sn f s  sn f )#    )annotationsN)Any)AttributeProto
GraphProto
ModelProtoOptionalProtoSequenceProtoTensorProto	TypeProtocheckerdefshelpernumpy_helperc                "   U R                  5       R                  [        R                  5      R	                  5       nU R
                  nUS-  S:H  nU(       a  UR                  US-   /SS9  US-  nUSSS2==   S-  ss'   USSS2   USSS2   -  $ )	z[Convert a numpy array to flatten, packed int4/uint4. Elements must be in the correct range.      Frefcheck   N   r   ravelviewnpuint8copysizeresize)array
array_flatr   	odd_sizeds       T/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/onnx/test/helper_test.py
_pack_4bitr#   !   s     ##BHH-224J::DqAI4!8*u5$Jqt!taddjA...    c                   U R                  5       R                  [        R                  5      R	                  5       nU R
                  nUS-  nU(       a  UR                  USU-
  -   /SS9  US-  nUSSS2==   S-  ss'   USSS2==   S-  ss'   USSS2==   S-  ss'   US	SS2   USSS2   -  USSS2   -  USSS2   -  $ )
z[Convert a numpy array to flatten, packed int2/uint2. Elements must be in the correct range.r   Fr      r   Nr      r   r   )r   r    r   pad_lens       r"   
_pack_2bitr)   .   s     ##BHH-224J::DQhG41w;/05A$Jqt!tqt!tqt!taddjA..ADqD1AAJqtRStDTTTr$   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S jrSS jrSS jrSrg)TestHelperAttributeFunctions=   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        g )Nfloat      ?g    _B)r   make_attributeassertEqualnamefr   check_attributeselfattrs     r"   test_attr_float,TestHelperAttributeFunctions.test_attr_float>   s    $$Wc2G,%%$$Wd3G,&%r$   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intr&      i  i  )r   r0   r1   r2   ir   r4   r5   s     r"   test_attr_int*TestHelperAttributeFunctions.test_attr_intJ   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   r0   r1   r2   
doc_stringr5   s     r"   test_attr_doc_string1TestHelperAttributeFunctions.test_attr_doc_string`   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testrC   r$   )r   r0   r1   r2   sr   r4   get_attribute_valuer5   s     r"   test_attr_string-TestHelperAttributeFunctions.test_attr_stringh   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   r0   r1   r2   listrP   r   r4   r5   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intsr   r   )r   r0   r1   r2   rS   rW   r   r4   r5   s     r"   test_attr_repeated_int3TestHelperAttributeFunctions.test_attr_repeated_int   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)r   r         @      @)r/   rQ   r\   r]   rR   r5   s     r"   (test_attr_repeated_mixed_floats_and_intsETestHelperAttributeFunctions.test_attr_repeated_mixed_floats_and_ints   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   r0   r1   r2   rS   ra   r   r4   r5   s     r"   test_attr_repeated_str3TestHelperAttributeFunctions.test_attr_repeated_str   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 )NrA   r   r   r2   	data_typedimsvalsbtensors)r   make_tensorr
   FLOATr   onesr0   r1   r2   rS   rm   r   r4   )r6   rm   r7   s      r"   test_attr_repeated_tensor_proto<TestHelperAttributeFunctions.test_attr_repeated_tensor_proto   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r2   ri   rj   rk   rawr   r&   r<   indicessparse_attr)r   rn   r
   ro   lenr   r   astypefloat32INT64int64make_sparse_tensorr0   r1   r2   r   check_sparse_tensorrL   r4   )r6   dense_shaperu   values_tensorlinear_indicesindices_tensorsparse_tensorr7   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&   rt   ru   Frv   rx   ry   sparse_attrs)r   rn   r
   ro   r{   r   r   r|   r}   r~   r   r   r0   r1   r2   r   r4   rL   r   )
r6   r   ru   r   r   r   r   repeated_sparser7   rK   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 )NrA   r   rl   r   graphs)	r   r2   r   r0   r1   rS   r   r   r4   )r6   r   r7   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   r0   r1   r2   tptyper   
TYPE_PROTOrS   r   TYPE_PROTOS)r6   r   r7   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   r0   r   STRINGSr1   r   r{   ra   assertRaises
ValueErrorr5   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'rJ   g@r   )assertRaisesRegex	TypeErrorr   r0   r   STRINGr6   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 )NrJ   r/   r   )r   r   r   ValidationErrorr4   r2   r3   r=   r5   s     r"   test_is_attr_legal/TestHelperAttributeFunctions.test_is_attr_legal   s    '1173J3JDQ	'1173J3JDQ	'1173J3JDQr$   c                  ^^           SS jm          S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 )Nc                (    [        XU5        Xl        g N)setattrr   r7   type_varrB   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      $ )Nr3   r/   )r   ro   r7   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=   r   )r   INTr   s    r"   r   r   $  s    $t^%7%7a@r$   c                6   > T" U [         R                  SS5      $ )NrK   s   str)r   r   r   s    r"   r   r   %  s    $t^%:%:CHr$   c                N   > T" U [         R                  U R                  SS/5      $ )Nr/   rQ   )r   FLOATSrP   r7   r   s    r"   r   r   '  s!    W.//sCjr$   c                N   > T" U [         R                  U R                  SS/5      $ )Nr   r   )r   INTSrW   r   s    r"   r   r   +  s    '$(;(;TYYAOr$   c                N   > T" U [         R                  U R                  SS/5      $ )N   a   b)r   r   ra   r   s    r"   r   r   -  s!    W.00$,,tr$   d   rJ   r   )
r7   r   r   AttributeProto.AttributeTyper   rI   rB   r   returnNone)
r7   r   r   r   r   z	list[Any]rB   r   r   r   )
ranger   r2   randomchoicer   r4   sampler   r   )r6   SET_ATTR_ir7   funcr   r   s        @@r"   test_is_attr_legal_verbose7TestHelperAttributeFunctions.test_is_attr_legal_verbose  s$   	 	/	 	 		
 		 	/	 	 		
 	 E@H P
" *B!#DDIMM(#D)##D)	  *B!#DDIh2T
 3g55w7N7NPTU r$    Nr   r   )__name__
__module____qualname____firstlineno__r8   r>   rF   rM   rT   rX   r^   rd   rq   r   r   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)TestHelperNodeFunctionsiA  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                  S5        U R                  [        UR                  5      S/5        U R                  [        UR                  5      S/5        g )NReluXYrJ   )r2   )
assertTruer   hasr   	make_noder1   op_typer2   rS   inputoutputr6   node_defs     r"   test_node_no_arg(TestHelperNodeFunctions.test_node_no_argB  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   rJ   rD   )r2   rE   )r   r   r1   rE   r   s     r"   rF   ,TestHelperNodeFunctions.test_attr_doc_stringJ  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   r   )	arg_valuer   r   )r   r   r   r   r   r1   r   rS   r   r   r{   	attributer0   r   s     r"   test_node_with_arg*TestHelperNodeFunctions.test_node_with_argN  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   rJ   rD   ztest.domain)r2   rE   domain)r   r   r1   r   r   s     r"   test_node_domain(TestHelperNodeFunctions.test_node_domainY  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Zr   r   rJ   rE   
value_infor   rC   )r   r   make_tensor_value_infor
   ro   
make_graphr1   r2   r{   noderE   r   )r6   	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  r1   r2   rE   )r6   r  s     r"   test_graph_docstring,TestHelperNodeFunctions.test_graph_docstringr  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   rJ   r   r   )xxx)producer_name)r   r   r  r   r
   ro   r   AttributeError
make_modelr1   r  )r6   r   	graph_def	model_defs       r"   
test_model"TestHelperNodeFunctions.test_modelw  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	  rJ   rE   r2   )r   r  r  assertFalsehasattrr1   rE   )r6   r  r  s      r"   test_model_docstring,TestHelperNodeFunctions.test_model_docstring  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	  rJ   r  z
test;graph)TitleKeywordsr  Other)r   r  r  set_model_propsr   check_modelmetadata_propsaddkeyrB   r   r   )r6   r  r  dupes       r"   test_model_metadata_props1TestHelperNodeFunctions.test_model_metadata_props  s    !!"j"b9%%e?	F	
 	I&F	
 	I&''++-
'1173F3F	Rr$   c                J  ^ ^ S&S jmS'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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 )(Nc           	         [         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)opset_versionsr  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
c                N   > T" U 5      nTR                  UR                  U5        g r   )r1   
ir_version)r,  r1  modelr.  r6   s      r"   rJ   :TestHelperNodeFunctions.test_model_irversion.<locals>.test  s#    ^,EU--z:r$   )rC   	   r   )rC   
   r<   )rC      r'   )rC         )rC      )rC      )rC   r      )rC      )rC      )rC      )rC      r4  )rC      )rC      r5  )rC      )rC      r6  )rC      r7  )rC      r9  )rC      )zai.onnxr4  )
ai.onnx.mlr   )rG  r&   )rG  r   )rG  r<   )zai.onnx.trainingr   )rC   r   )r,  list[tuple[str, int]]r   r   )r,  rH  r1  r;   r   r   )r   r   )r6   rJ   r.  s   ` @r"   test_model_irversion,TestHelperNodeFunctions.test_model_irversion  sc   		; 	;
 	gYhZhZhZhZhZhZhZhZhZhZhZhZhZhZhZhZhZnq! !$ !$ !$ "%%&*h)*A.*h<r$   r   Nr   )r   r   r   r   r   rF   r   r   r  r
  r  r  r%  rI  r   r   r$   r"   r   r   A  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\R"                  R%                  \R(                  " \R,                  \R.                  4S5      5      SS j5       r\R"                  R%                  \R(                  " S5      5      SS j5       r\R"                  R%                  \R(                  " \R,                  \R.                  4S5      5      SS j5       rSS jr\R"                  R%                  \R(                  " \R8                  \R:                  4S5      5      SS j5       r\R"                  R%                  \R(                  " S5      5      SS j5       r\R"                  R%                  \R(                  " \R8                  \R:                  4S5      5      SS j5       r SS jr!SS jr"SS jr#SS jr$Sr%g)TestHelperTensorFunctionsi  c                    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-8rJ   )r   r   Frv   )encoder   rn   r
   r   r1   rS   string_data)r6   rK   string_listtensors       r"   test_make_string_tensor1TestHelperTensorFunctions.test_make_string_tensor  sg    2TU2TQxx(2TU##!((
 	d6+=+=&>? Vs   A-c                L   [         R                  " SS/SS/SS/SS/[         R                  [         R                  //[         R                  S	9n[
        R                  " S
[        R                  UR                  US9nU R                  UR                  S
5        [         R                  R                  [        R                  " U5      R!                  [         R"                  5      UR%                  [&        R(                  5      R!                  [         R"                  5      5        g )Nr/   rQ   r\         @     ?     p??皙?dtyperJ   rh   )r   r   naninfr}   r   rn   r
   BFLOAT16shaper1   r2   testingassert_equalr   to_arrayr   uint16r|   	ml_dtypesbfloat16)r6   np_arrayrU  s      r"   test_make_bfloat16_tensor3TestHelperTensorFunctions.test_make_bfloat16_tensor  s    88c
c
0 #&  **	
 ##!**	
 	f-


!!&)..ryy9OOI../44RYY?	
r$   c                   [         R                  " S[        R                  S// SQ5      n[        R
                  " U5      n[        R                  " / SQ[        R                  S9n[        R                  R                  UR                  [        R                  5      UR                  [        R                  5      5        g )N
zero_pointr<   )r         ?r   P  333333$@r   ro  r   i  r5  r^  )r   rn   r
   FLOAT8E4M3FNr   rf  r   r   rh  float8_e4m3fnrd  re  r   r   r6   yynpexpecteds       r"   test_make_float8e4m3fn_tensor7TestHelperTensorFunctions.test_make_float8e4m3fn_tensor  s{    +22QC9Q
 ##A&880	8O8OP


 2HMM"((4KLr$   c                   [         R                  " S[        R                  S// SQ5      n[        R
                  " U5      n[        R                  " / SQ[        R                  S9n[        R                  R                  UR                  [        R                  5      UR                  [        R                  5      5        g )Nrn  r8  )r   ro  r   rp  rq  gh㈵gh㈵>)r   ro  r      r5  r   r   r^  )r   rn   r
   FLOAT8E4M3FNUZr   rf  r   r   rh  float8_e4m3fnuzrd  re  r   r   ru  s       r"   test_make_float8e4m3fnuz_tensor9TestHelperTensorFunctions.test_make_float8e4m3fnuz_tensor  s}    &&C7	
 ##A&886i>W>WX


 2HMM"((4KLr$   c                   [         R                  " S[        R                  S// SQ5      n[        R
                  " U5      n[        R                  " / SQ[        R                  S9n[        R                  R                  UR                  [        R                  5      UR                  [        R                  5      5        g )Nrn  r<   )r   ro  r   rp  `   )r   ro  r      r  r^  )r   rn   r
   
FLOAT8E5M2r   rf  r   r   rh  float8_e5m2rd  re  r   r   ru  s       r"   test_make_float8e5m2_tensor5TestHelperTensorFunctions.test_make_float8e5m2_tensor  s{    +001#7M
 ##A&882):O:OP


 2HMM"((4KLr$   c                   [         R                  " S[        R                  S// SQ5      n[        R
                  " U5      n[        R                  " / SQ[        R                  S9n[        R                  R                  UR                  [        R                  5      UR                  [        R                  5      5        g )Nrn  r8  )r   ro  r   rp  r  gHzgHz>)r   ro  r   r  r  r   r   r^  )r   rn   r
   FLOAT8E5M2FNUZr   rf  r   r   rh  float8_e5m2fnuzrd  re  r   r   ru  s       r"   test_make_float8e5m2fnuz_tensor9TestHelperTensorFunctions.test_make_float8e5m2fnuz_tensor  s    &&C9	
 ##A&88(	0I0I
 	

 2HMM"((4KLr$   c                   [         R                  " SS/SS/SS/SS/[         R                  [         R                  //[        R
                  S	9R                  [         R                  5      n[        R                  " S
[        R                  UR                  [        R                  " U5      SS9n[         R                  R!                  [        R"                  " U5      R                  [         R                  5      U5        g )Nr/   rQ   r\   rY  rZ  r[  r\  r]  r^  rJ   Trv   )r   r   r`  ra  rh  ri  r   rg  r   rn   r
   rb  rc  r   tobytes_little_endianrd  assert_allcloserf  )r6   r   rU  s      r"   test_make_bfloat16_tensor_raw7TestHelperTensorFunctions.test_make_bfloat16_tensor_raw  s    c
c
0 #&  $$	
 $ryy/ 	 ##!**33E:
 	

""<#8#8#@#E#Ebii#PRWXr$   c                   [         R                  " / SQ[        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                  UR                  [         R                   5      UR                  [         R                   5      5        g )Nrr  r^  rJ   Trv   )r   r   rh  rt  tobytesr   rn   r
   rs  rS   rc  r   rf  rd  re  r   r   r6   rx  packed_valuesrv  rw  s        r"   !test_make_float8e4m3fn_tensor_raw;TestHelperTensorFunctions.test_make_float8e4m3fn_tensor_raw)  s    880	8O8OP ((*!..hnn%
 ##A&


 2HMM"((4KLr$   c                8   [         R                  " / SQ[         R                  S9nUR                  [        R
                  5      nUR                  5       n[        R                  " S[        R                  [        UR                  5      USS9n[        R                  " U5      n[         R                  R!                  UR#                  [         R$                  5      UR                  [        R
                  5      R#                  [         R$                  5      5        g )N)r   ro  r   r|  r5  r^  rJ   Trv   )r   r   r}   r|   rh  r~  r  r   rn   r
   r}  rS   rc  r   rf  rd  re  r   r   )r6   rx  f8r  rv  rw  s         r"   #test_make_float8e4m3fnuz_tensor_raw=TestHelperTensorFunctions.test_make_float8e4m3fnuz_tensor_raw6  s    880

C__Y667

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


HHRXXOOI556;;BHHE	
r$   c                   [         R                  " / SQ[        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                  UR                  [         R                   5      UR                  [         R                   5      5        g N)r   ro  r   r  r5  r^  rJ   Trv   )r   r   rh  r  r  r   rn   r
   r  rS   rc  r   rf  rd  re  r   r   r  s        r"   test_make_float8e5m2_tensor_raw9TestHelperTensorFunctions.test_make_float8e5m2_tensor_rawG  s    882):O:OP ((*!,,hnn%
 ##A&


 2HMM"((4KLr$   c                   [         R                  " / SQ[        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                  UR                  [         R                   5      UR                  [         R                   5      5        g r  )r   r   rh  r  r  r   rn   r
   r  rS   rc  r   rf  rd  re  r   r   r  s        r"   #test_make_float8e5m2fnuz_tensor_raw=TestHelperTensorFunctions.test_make_float8e5m2fnuz_tensor_rawT  s    882):S:ST ((*!00hnn%
 ##A&


 2HMM"((4KLr$   c                   [         R                  " S[        R                  S/SSSSSS[        R
                  " [        R                  5      R                  /5      n[        R                  " U5      n[        R                  " / S	Q[        R                  S
9n[        R                  R                  UR                  [        R                  5      U5        g )Nscaler8  r   gX9v?r/   g      ?rQ   g @)r   |         r        r^  )r   rn   r
   
FLOAT8E8M0r   finfor}   maxr   rf  r   r   rd  re  r   ru  s       r"   test_make_float8e8m0_tensor5TestHelperTensorFunctions.test_make_float8e8m0_tensora  s    ""CsCc288BJJ+?+C+CD	
 ##A&88=RXXN


 2H=r$   c                
   [         R                  " / SQ[         R                  S9nUR                  5       n[        R
                  " S[        R                  [        UR                  5      USS9n[        R                  " U5      n[         R                  " / SQ[        R                  S9n[         R                  R                  UR!                  [         R                  5      UR!                  [         R                  5      5        g )N)x   r  r  r  r     r^  rJ   Trv   )g      ?g      ?r/   rQ   rY  i    )r   r   r   r  r   rn   r
   r  rS   rc  r   rf  rh  float8_e8m0fnurd  re  r   )r6   e8m0_rawr  rv  rw  rx  s         r"   test_make_float8e8m0_tensor_raw9TestHelperTensorFunctions.test_make_float8e8m0_tensor_rawl  s    88:"((K ((*!,,hnn%
 ##A&8839;S;S
 	

HHRXXMM"((#	
r$   )r<   r   r'   r   r'   r<   r&   r&   rg   )i   c                6   [         R                  S[         R                  S0n[        R                  R                  X1   S   X1   S   S-   US9n[        R                  " SXR                  U5      n[        R                  " [        R                  " UR                  5      S-  5      n[        [        UR                  5      5      n[        R                  R!                  Xv5        ["        R$                  " U5      n[        R                  R!                  X5        g )N)r   r   )ir8  r   r   highr   rv  rQ   )r
   UINT4INT4r   r   randintr   rn   rc  mathceilprodr{   bytes
int32_datard  re  r   rf  	r6   r_  rj   
type_rangedatarv  expected_data_sizeactual_data_sizerw  s	            r"   test_make_4bit_tensor/TestHelperTensorFunctions.test_make_4bit_tensor  s     wg

 yy  a z'8';a'?d ! 
 sE::t< "YYrwwtzz':S'@AuQ\\23


 0E ##A&


*r$   c                   [         R                  " U5      n[         R                  " S/U-  [         R                  S9R	                  U5      n[
        R                  " S[        R                  UR                  U5      n[        R                  " US-  5      n[        [        UR                  5      5      n[         R                  R!                  Xe5        g )Nr^  rv  rQ   )r   r  r   int8reshaper   rn   r
   r  rc  r  r  r{   r  r  rd  re  r6   rj   	num_elemsr  rv  r  r  s          r"   test_4bit_tensor_size/TestHelperTensorFunctions.test_4bit_tensor_size       GGDM	xxy(8@@FsK$4$4djj$G "YYy37uQ\\23


 0Er$   )r  r  r  rg   c                f   [         R                  R                  SSU[         R                  S9n[	        U5      n[
        R                  " SXUR                  5       SS9n[        R                  " U5      n[         R                  R                  UR                  [         R                  5      U5        g )Nr   r<  r  r   r_  packed_int4Trw   )r   r   r  r   r#   r   rn   r  r   rf  rd  re  r   r6   r_  rj   r  packed_datarv  rw  s          r"   test_make_4bit_raw_tensor3TestHelperTensorFunctions.test_make_4bit_raw_tensor  s     yy  $bhh G &5(;(;(=4
 ##A&


 2D9r$   c                   [         R                  " / SQ[        R                  S9nUR	                  [         R
                  5      n[        U5      n[        R                  " S[        R                  UR                  UR                  5       SS9n[        R                  " U5      n[         R                  R!                  UR	                  [         R
                  5      U5        g )N)r   ro  r   r|  r5  r^  packed_fp4e2m1Tr  )r   r   rh  float4_e2m1fnr   r   r#   r   rn   r
   
FLOAT4E2M1rc  r  r   rf  rd  re  )r6   r  rx  r  rv  rw  s         r"   test_make_float4e2m1_raw_tensor9TestHelperTensorFunctions.test_make_float4e2m1_raw_tensor  s    xx0	8O8OP99RXX& *""JJ!
 ##A&


 2H=r$   c                6   [         R                  S[         R                  S0n[        R                  R                  X1   S   X1   S   S-   US9n[        R                  " SXR                  U5      n[        R                  " [        R                  " UR                  5      S-  5      n[        [        UR                  5      5      n[        R                  R!                  Xv5        ["        R$                  " U5      n[        R                  R!                  X5        g )N)r   r&   )r  r   r   r   r  rv  rY  )r
   UINT2INT2r   r   r  r   rn   rc  r  r  r  r{   r  r  rd  re  r   rf  r  s	            r"   test_make_2bit_tensor/TestHelperTensorFunctions.test_make_2bit_tensor  s     vg

 yy  a z'8';a'?d ! 
 sE::t< "YYrwwtzz':S'@AuQ\\23


 0E ##A&


*r$   c                   [         R                  " U5      n[         R                  " S/U-  [         R                  S9R	                  U5      n[
        R                  " S[        R                  UR                  U5      n[        R                  " US-  5      n[        [        UR                  5      5      n[         R                  R!                  Xe5        g )Nr  r^  rv  rY  )r   r  r   r  r  r   rn   r
   r  rc  r  r  r{   r  r  rd  re  r  s          r"   test_2bit_tensor_size/TestHelperTensorFunctions.test_2bit_tensor_size  r  r$   c                f   [         R                  R                  SSU[         R                  S9n[	        U5      n[
        R                  " SXUR                  5       SS9n[        R                  " U5      n[         R                  R                  UR                  [         R                  5      U5        g )Nr   r   r  packed_int2Tr  )r   r   r  r   r)   r   rn   r  r   rf  rd  re  r   r  s          r"   test_make_2bit_raw_tensor3TestHelperTensorFunctions.test_make_2bit_raw_tensor  s     yy  RXX F &5(;(;(=4
 ##A&


 2D9r$   c                   [         R                  " S[        R                  S// SQ5      n[        R
                  " U5      n[        R                  " / SQ[        R                  S9R                  [        R                  5      n[        R                  R                  UR                  [        R                  5      U5        g )Nrn  r8  )r   ro  r   rp  g333333i)r   ro  r   r'   g      ir  r^  )r   rn   r
   r  r   rf  r   r   rh  r  r   r   rd  re  ru  s       r"   test_make_float4e2m1_tensor5TestHelperTensorFunctions.test_make_float4e2m1_tensor  s    ""C.	
 ##A&88(	0G0G

$rxx. 	 	

 2H=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      @rJ   r<   rh   )r   r&   r<   r8  r4  test_indicesr5  )
r   rn   r
   ro   r~   r   r1   valuesry   rj   )r6   r  r   ry   r   r   sparses          r"   test_make_sparse_tensor1TestHelperTensorFunctions.test_make_sparse_tensor  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   )r   r   r   r   )r   r   r
   ro   r   check_value_infor6   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   r   r&   r   r   )r   make_sparse_tensor_value_infor
   ro   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   Nr   )&r   r   r   r   rV  rk  ry  r  r  r  r  r  r  r  r  r  r  parameterizedexpand	itertoolsproductr
   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r$   r"   rL  rL    s   	@
2M	MMMY*M
"MM	>
&   '' 0 01:	
++&   '':	


F

F   '' 0 013W	

:
:>   '' 0 01:	
++&   '':	


F

F   '' 0 013W	

:
:>3%%r$   rL  c                  2    \ rS rSrSS jrSS jrSS jrSrg)&TestHelperOptionalAndSequenceFunctionsi,  c                   / 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  rJ   r  rh   )r2   	elem_typerB   )r2   r  r  tensor_value)r   rn   r
   ro   make_optionalr   TENSORr1   r2   r  r  make_sequencer	   SEQUENCEsequence_value	UNDEFINEDr  HasField)r6   r  r   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 )Nr   r<   r  rc  rJ   r2   r   )r   make_tensor_type_protomake_value_infomake_optional_type_protor1   r2   r   r   optional_typer  make_sequence_type_protosequence_type)r6   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_infoN  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 )Nr   r  rJ   r  )r2   r  rc  )r   r  r"  r  make_tensor_sequence_value_infor1   )r6   r$  r(  sequence_val_infosequence_val_info_prims        r"   test_make_sequence_value_infoDTestHelperOptionalAndSequenceFunctions.test_make_sequence_value_infoo  si    "99ATR$==>OP"22$7
 "(!G!G1D"
 	*Cr$   r   Nr   )r   r   r   r   r  r*  r0  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|  c                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   r   rJ   r   zI) optional inputs with matching initializers (
  %Y_Initializer[FLOAT, 1]	r   r   r   r
   ro   r  rn   printable_graphr   r6   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   r5  r   r   r   rJ   r   z+) initializers (
  %Y_Initializer[FLOAT, 1]r6  r8  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   r5  r   rJ   r   r  zX[FLOAT, ?])r   r  r   r   r
   ro   rn   r  r   r   r7  assertIn)r6   r  r2  r9  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   Nr   )r   r   r   r   r:  r=  rA  r   r   r$   r"   r3  r3  |  s    
6
00r$   r3  tensor_dtypec                .    [         R                  " U 5      $ r   r   tensor_dtype_to_stringrC  s    r"   r   r         V::<Hr$   )idsc                j   [         R                  " U 5      nU [        R                  [        R                  [        R
                  [        R                  1;   a  [        R                  " SU5      nO [        R                  R                  SS5      nUR                  U5      n[         R                  " SXR                  US9n[        R                  " U5      nU [        R                   [        R"                  [        R$                  [        R&                  [        R(                  [        R*                  1;   a]  UR                  UR                  :X  d   eUR,                  UR,                  :X  d   eUR/                  5       UR/                  5       :X  d   eg [        R0                  R3                  X$5        g )Nr  r   r&   rJ   rh   )r   tensor_dtype_to_np_dtyper
   UINT8UINT16UINT32UINT64r   create_random_intr   r   randnr|   rn   rc  rf  r  r  r}  rs  rb  r  r_  r  rd  re  )rC  np_typerj  rU  roundtrip_arrays        r"   test_make_tensor_valsrT    sO    --l;G	   11&'B99??1a(w'H|..xF #++F3O""""    $$666$$666&&(H,<,<,>>>>


:r$   c                .    [         R                  " U 5      $ r   rE  rG  s    r"   r   r     rH  r$   vals_as_bytesTFvals_as_nparrayc                   [         R                  " U 5      nU [        R                  [        R                  [        R
                  [        R                  1;   a  [        R                  " SU5      nO [        R                  R                  SS5      nUR                  U5      nU(       a  UnU [        R                  [        R                  [        R                  1;   a  [!        U5      nU [        R"                  [        R$                  1;   a  ['        U5      n[        R(                  " U5      nOUn[         R*                  " SU UR,                  USS9n[        R.                  " U5      nU [        R0                  [        R2                  [        R4                  [        R6                  [        R8                  [        R:                  1;   a]  UR,                  UR,                  :X  d   eUR<                  UR<                  :X  d   eUR?                  5       UR?                  5       :X  d   eg [        R@                  RC                  X75        g )Nr  r   r&   rJ   Trv   )"r   rK  r
   rL  rM  rN  rO  r   rP  r   r   rQ  r|   r  r  r  r#   r  r  r)   r  rn   rc  rf  r  r  r}  rs  rb  r  r_  r  rd  re  )rC  rV  rR  rj  np_array_intermediaterk   rU  rS  s           r"   test_make_tensor_rawrZ    s    --l;G	   11&'B99??1a(w'H (""
 

 %/x$8!
 
 %/x$8!112GH^^F #++F3O""""    $$666$$666&&(H,<,<,>>>>


:r$   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)TestHelperMappingFunctionsi/  zerror::DeprecationWarningc                L    [         R                  " [        R                  5      ng r   )r   rK  r
   ro   r6   _s     r"   /test_tensor_dtype_to_np_dtype_not_throw_warningJTestHelperMappingFunctions.test_tensor_dtype_to_np_dtype_not_throw_warning2  s    ++K,=,=>r$   c                L    [         R                  " [        R                  5      ng r   )r   $tensor_dtype_to_storage_tensor_dtyper
   ro   r^  s     r"   ;test_tensor_dtype_to_storage_tensor_dtype_not_throw_warningVTestHelperMappingFunctions.test_tensor_dtype_to_storage_tensor_dtype_not_throw_warning6  s    778I8IJr$   c                L    [         R                  " [        R                  5      ng r   )r   tensor_dtype_to_fieldr
   ro   r^  s     r"   ,test_tensor_dtype_to_field_not_throw_warningGTestHelperMappingFunctions.test_tensor_dtype_to_field_not_throw_warning:  s    (():):;r$   c                X    [         R                  " [        R                  " S5      5      ng )Nr}   )r   np_dtype_to_tensor_dtyper   r_  r^  s     r"   /test_np_dtype_to_tensor_dtype_not_throw_warningJTestHelperMappingFunctions.test_np_dtype_to_tensor_dtype_not_throw_warning>  s    ++BHHY,?@r$   c                    U R                  [        R                  " [        R                  5      [
        R                  5        g r   )r1   r   rK  r
   rb  rh  ri  r   s    r"   &test_tensor_dtype_to_np_dtype_bfloat16ATestHelperMappingFunctions.test_tensor_dtype_to_np_dtype_bfloat16B  s,    ++K,@,@A9CUCU	
r$   c                    U R                  [        R                  " [        R                  5      [        R
                  5        g r   )r1   r   rc  r
   rb  INT32r   s    r"   2test_tensor_dtype_to_storage_tensor_dtype_bfloat16MTestHelperMappingFunctions.test_tensor_dtype_to_storage_tensor_dtype_bfloat16G  s-    778L8LM	
r$   c                l    U R                  [        R                  " [        R                  5      S5        g )Nr  )r1   r   rg  r
   rb  r   s    r"   #test_tensor_dtype_to_field_bfloat16>TestHelperMappingFunctions.test_tensor_dtype_to_field_bfloat16M  s&    (()=)=>	
r$   r   Nr   )r   r   r   r   pytestmarkfilterwarningsr`  rd  rh  rl  ro  rs  rv  r   r   r$   r"   r\  r\  /  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)TestAttrTypeToStriS  ro   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_strr1   )r6   r   expected_strresults       r"   test_attr_type_to_str'TestAttrTypeToStr.test_attr_type_to_strT  s"    & )))4.r$   c                T    [         R                  " S5      nU R                  US5        g )Ni'  r  r  )r6   r  s     r"   test_attr_type_to_str_undefined1TestAttrTypeToStr.test_attr_type_to_str_undefinedj  s"    ))$/-r$   r   N)r   r   r   r   r  r  r   AttributeTypero   r   r   r  r}  r~  r   r   r   r   r  r  r  r   r  r  r   r   r$   r"   r|  r|  S  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__)r   z
np.ndarrayr   znpt.NDArray[np.uint8])rC  r;   r   r   )rC  r;   rV  boolr   r   )-
__future__r   r  r  r   unittesttypingr   rh  numpyr   numpy.typingnptr  rx  onnxr   r   r   r   r	   r
   r   r   r   r   r   r#   r)   TestCaser+   r   rL  r  r3  ry  parametrizeget_all_tensor_dtypesr   rT  rZ  r\  r|  r   main)ts   0r"   <module>r     s   #             
/UAV8#4#4 AVHC=h// C=Lb% 1 1 b%JMDX->-> MD`C0** C0L ,,.J.1{7I7I2IQ.JH  
 ;
 ;F ,,.J.1{7I7I2IQ.JH  
 	5M	+,  
8;8;v!
!2!2 !
H.)) .8 zMMO W KP Ks   )G
 G
>G
G
