
    h%                     ~    S SK r S SKrS SKrS SKJrJr  S SKJr  S SKJ	r	  S SK
JrJrJr  S SKJrJr   " S S\5      rg)	    N)TensorProtohelper)Base)expect)float32_to_float8e4m3float32_to_float8e5m2make_tensor)float8e4m3_to_float32float8e5m2_to_float32c                   (    \ rS rSr\SS j5       rSrg)CastLike   Nc            
      &   Sn / SQn[         R                  " [        5      n[         R                  " [        5      nU GH  u  pES nS nUS:X  d  US:X  GaL  [         R                  " / SQ[         R
                  S9n[        R                  S:H  n	UR                  [         R                  S9n
U	(       a  U
SS S2   OU
S	S S2   nUS:X  a  US
:X  d   eUR                  SS/5      nUR                  SS/5      n[        R                  R                  [        [        R                   5      UR"                  5      n[        R                  R                  [        [        R$                  5      UR"                  5      nGOUS
:X  d   eUR                  SS/5      n[         R&                  " [)        U5      S-  4[         R                  S9nU	(       a  XSS S2'   OXS	S S2'   UR                  [         R
                  S9nUR                  SS/5      n[        R                  R                  [        [        R$                  5      UR"                  5      n[        R                  R                  [        [        R                   5      UR"                  5      nUR+                  5       S	S nGOUS;   d  US;   Ga   [         R                  " / SQ[         R
                  S9nUS:X  a_  [-        U" U5      5      n[/        S[        R0                  SS/UR3                  5       5      n[/        S[        R0                  S/US S 5      nGO)US:X  a\  [-        U" USS9SS9n[/        S[        R4                  SS/UR3                  5       5      n[/        S[        R4                  S/US S 5      nOUS:X  a^  [7        U" U5      5      n[/        S[        R8                  SS/UR3                  5       5      n[/        S[        R8                  S/US S 5      nOcUS:X  a]  [7        U" USSS9SSS9n[/        S[        R:                  SS/UR3                  5       5      n[/        S[        R:                  S/US S 5      nUS
:X  a  UR                  S5      nWnWnGOUS
:X  d   eWnWR                  S5      nUR+                  5       S S nGOUS:w  Ga-  [         R<                  R?                  U 5      RA                  [        RB                  " [E        [        U5      5      5      nUS:X  a  / nUR+                  5        H?  n[G        U5      RI                  S5      nURK                  S5      nURM                  U5        MA     [         R                  " U5      RA                  [N        5      R                  SS/5      nO3URA                  [        RB                  " [E        [        U5      5      5      nUR+                  5       S	S nO[         R                  " / SQ[         RP                  " [N        5      S9R                  SS/5      nURA                  [        RB                  " [E        [        U5      5      5      nUR+                  5       S	S n[        R                  RS                  SSS/S/S9nU(       ae  U(       a^  [        R                  R                  URT                  RV                  UR"                  5      n[Y        UUU/U/SU-   S-   U-   UU/U/S9  GM  [Y        UUU/U/SU-   S-   U-   S 9  GM     g )!N)      ))FLOATFLOAT16)r   DOUBLE)r   r   )r   r   )r   r   )r   r   )r   STRING)r   r   )r   BFLOAT16)r   r   )r   FLOAT8E4M3FN)r   FLOAT8E4M3FNUZ)r   r   )r   r   )r   
FLOAT8E5M2)r   FLOAT8E5M2FNUZ)r   r   )r   r   r   )z
0.47892547z
0.48033667z
0.49968487z
0.81910545z
0.47031248z0.816468z
0.21087195z	0.7229038NaNINFz+INFz-INF)dtypelittle      r   r   r   r   )r   r   r   r   r   xr   T)uzr   r   )fnr"   r   zutf-8r   inputlikeoutput)inputsoutputstest_castlike__to_)r'   r(   nameinput_type_protosoutput_type_protos)r'   r(   r+   )-np	vectorizer   r   arrayfloat32sys	byteorderviewuint16reshapeonnxr   make_tensor_type_protointr   r   shaper   zeroslenflattenr
   r	   r   tolistr   r   r   r   randomrandom_sampleastypetensor_dtype_to_np_dtypegetattrstrencodedecodeappendobjectr   	make_nodetensor_type	elem_typer   )r:   
test_casesvect_float32_to_float8e4m3vect_float32_to_float8e5m2	from_typeto_typeinput_type_protooutput_type_protonp_fp32little_endisannp_uint16_viewnp_bfp16r$   r&   np_fp32_zerosnp_fp32_from_bfloatr%   expectedexpected_tensorlike_tensorssissunodelike_type_protos                             ^/var/www/fran/franai/venv/lib/python3.13/site-packages/onnx/backend/test/case/node/castlike.pyexportCastLike.export   s   

* &(\\2G%H"%'\\2G%H"",I# $J&'Z*?(( **" "%(!:!(BII!>,:N14a4(qtRSt@T  j($///#OOQF3E%--q!f5F'+{{'I'IK--.($ )-(J(JK0016<<)% #g---$,,aV4E$&HHc(ma.?-A$SM%.6add+.6add+*7*<*<2::*<*N'088!Q@F'+{{'I'IK0015;;($ )-(J(JK--.)% ~~'!,  
    (( **" n,427; H '2[551vx?P'O #.[55sHRaL#K  00427tD H '2[77!QAR'O #.[77!hrl#K ,427; H '2[33aVX__=N'O #.[33aS(2A,#K  00427tM H
 '2[77!QAR'O #.[77!hrl#K '#OOF3E,F&D"g---+E%--f5F!>>+BQ/Dh&		//6==33GK4ST h&B"]]_FMM'2XXg.		" -
  XXb\008@@!QHF"\\77W8UVF ~~'!, ((6*  '1a&/! " 33GK4QR ~~'!,;;(((!
 ) D
  $5"&++"D"D%11;;TZZ# !4=#H)I5>H'7&I(9': !4=#H)I5>H	A #-     )returnN)__name__
__module____qualname____firstlineno__staticmethodrc   __static_attributes__rf   re   rb   r   r      s    _ _re   r   )r2   numpyr.   r7   r   r   onnx.backend.test.case.baser   onnx.backend.test.case.noder   onnx.helperr   r   r	   onnx.numpy_helperr
   r   r   rf   re   rb   <module>rs      s0   
    $ , . Q Q Jat are   