
    bIg&                        d dl mZ d dlZd dlZd dlZd dlmZmZ d dlm	Z	 d dl
mZ d dlmZmZmZ d dlmZmZ  G d d	e	      Zy)
    )annotationsN)TensorProtohelper)Base)expect)float32_to_float8e4m3float32_to_float8e5m2make_tensor)float8e4m3_to_float32float8e5m2_to_float32c                      e Zd Zedd       Zy)CastLikec            	        d} g d}t        j                  t              }t        j                  t              }|D ]  \  }}d }d }|dk(  s|dk(  rKt        j                  g dt         j
                        }t        j                  dk(  }	|j                  t         j                        }
|	r|
dd d   n|
d	d d   }|dk(  r|d
k(  sJ |j                  ddg      }|j                  ddg      }t        j                  j                  t        t        j                         |j"                        }t        j                  j                  t        t        j$                        |j"                        }n|d
k(  sJ |j                  ddg      }t        j&                  t)        |      dz  ft         j                        }|	r	||dd d<   n||d	d d<   |j                  t         j
                        }|j                  ddg      }t        j                  j                  t        t        j$                        |j"                        }t        j                  j                  t        t        j                         |j"                        }|j+                         d	d }n|dv s|dv rt        j                  g dt         j
                        }|dk(  r_t-         ||            }t/        dt        j0                  ddg|j3                               }t/        dt        j0                  dg|d d       }n2|dk(  rbt-         ||d      d      }t/        dt        j4                  ddg|j3                               }t/        dt        j4                  dg|d d       }n|dk(  r^t7         ||            }t/        dt        j8                  ddg|j3                               }t/        dt        j8                  dg|d d       }nh|dk(  rct7         ||dd      dd      }t/        dt        j:                  ddg|j3                               }t/        dt        j:                  dg|d d       }|d
k(  r|j                  d      }}}n|d
k(  sJ }j                  d      }|j+                         d d }n|dk7  r't         j<                  j?                  |       jA                  t        jB                  tE        t        |                  }|dk(  rg }|j+                         D ]>  }tG        |      jI                  d      }|jK                  d      }|jM                  |       @ t        j                  |      jA                  tN              j                  ddg      }n2|jA                  t        jB                  tE        t        |                  }|j+                         d	d }nt        j                  g dt        jP                  tN                    j                  ddg      }|jA                  t        jB                  tE        t        |                  }|j+                         d	d }t        j                  jS                  dddgdg      }|rb|r`t        j                  j                  |jT                  jV                  |j"                        }tY        |||g|gd|z   dz   |z   ||g|g       tY        |||g|gd|z   dz   |z            y )!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                             a/var/www/html/answerous/venv/lib/python3.12/site-packages/onnx/backend/test/case/node/castlike.pyexportzCastLike.export   s   

* &(\\2G%H"%'\\2G%H"", E	Iw# $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%.6add+.6ad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E	    N)returnNone)__name__
__module____qualname__staticmethodrc    rd   rb   r   r      s    _ _rd   r   )
__future__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   rk   rd   rb   <module>rr      s3    # 
   $ , . Q Q Jat ard   