
    /j,                        d dl mZ d dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z
 d dlmZmZ  eh d          Z eh d          Z ed	d
h          Z G d de          ZdS )    )annotationsN)TensorProto)Base)expect)make_tensortensor_dtype_to_np_dtype   
FLOAT8E5M2FLOAT8E4M3FNFLOAT8E4M3FNUZFLOAT8E5M2FNUZ>   INT4UINT4
FLOAT4E2M1UINT2INT2c                  >    e Zd Zedd            Zedd            ZdS )CastLikereturnNonec            
        g d} h d}| D ]E\  }}||k    rt          t          |          }t          t          |          }t          |          }t          |          }|dk    s|dk    r&t          j        g dt          j                  }d}	n||v s||v r%t          j        g dt          j                  }d}	n|d	v s|d	v r5t          j        d
d                              t          j                  }d}	n|dv s|dv r5t          j        dd                              t          j                  }d}	nj|dk    s|dk    r%t          j        g dt          j                  }d}	n9t          j        g dt          j                                      ddg          }d}	|t          v r5t          j                            ||          }
t          d||	|
d          }n|t          v r[|                    |          }
t          j                            |
          }t          d||	|                                d          }n|t"          v r[|                    |          }
t          j                            |
          }t          d||	|                                d          }n)|                    |          }
t          d||	|
d          }|t          v r3t          d||	t          j                            |
|          d          }n|t          v rYt          j                            |
                    |                    }t          d||	|                                d          }n|t"          v rYt          j                            |
                    |                    }t          d||	|                                d          }n't          d||	|
                    |          d          }t          d|dg           }t          j                            dddgdg          }t+          |||g|gd|z   dz   |z              Gd S ) N)0)FLOATFLOAT16)r   DOUBLE)r   r   )r   r   )r   r   )r   r   )r   BFLOAT16)r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r
   )r   r
   )r   r   )r   r   )r
   r   )r
   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   UINT8)r   r   )r   r   )r   INT8)r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   r	   r   )
0.47892547
0.48033667
0.49968487
0.81910545
0.47031248z0.816468z
0.21087195	0.7229038NaNINF+INF-INFdtype)      r   r   r    r!   r"   r#   10000001e-7r$   r%   r&   r'   z
-0.0000001z	0.0000001z-1000000r*      )r   r   i   )r0   r0   )r   r   r+   )      r   )z0.48z0.25z1.05z-3.5z-89r-   r.   r$   r%   r&   r'   z-4z0.01z-0.0r*   inputTvalsrawoutputliker   r8   r   )inputsoutputstest_castlike__to_r>   r?   name)getattrr   r   nparrayfloat32arangeastypereshapeF8_TYPESonnxnumpy_helpersaturate_castr   FOUR_BIT_TYPES_pack_4bitx2tobytesTWO_BIT_TYPES_pack_2bitx4helper	make_noder   )
test_casesf8_types	from_typeto_type
from_dtypeto_dtypefrom_np_dtypeto_np_dtypenp_fp32input_shapenp_fromr6   packedr:   r;   nodes                   i/home/longshao/multi-rider-rag/.venv/lib/python3.11/site-packages/onnx/backend/test/case/node/castlike.pyexportzCastLike.export   s!   1
 1
 1

f VUU", o	 o	IwG## i88J{G44H4Z@@M28<<KJ&&'Z*?*?(   *  " %h&&'X*=*=(  " *%  ( %///7>O3O3O)B++222:>>$///7>O3O3O)B**11"*==$l**g.E.E(  " *%  ( % (   *    '1a&//! " %H$$+99'=QQ#    n,,!..77*77@@ $Z6>>;K;KQU   m++!..77*77@@ $Z6>>;K;KQU   "..77#Z7   (""$*88+NN   N***77{8S8STT %h&..:J:JPT   M))*77{8S8STT %h&..:J:JPT   % 44   vxB???D;(((!
 )  D t}%	1F:WD	    Uo	 o	    c            	        t          j        ddgg d          } d}| D ])\  }}t          t          |          }t          t          |          }t	          |          }t	          |          }t          j        g dt
          j                  }t          d|||	                    |          d	          }	t          d
|||	                    |          	                    |          d	          }
t          d|dg           }t          j                            dddgd
gd          }t          ||	|g|
gd|z   dz   |z              +d S )Nr   r   )r   r   r
   r   r/   r,   r(   r6   Tr7   r:   r;   r<   r=   r   r   )r>   r?   saturatetest_castlike_no_saturate_rA   rB   )	itertoolsproductrD   r   r   rE   rF   rG   r   rI   rL   rT   rU   r   )rV   r_   rX   rY   rZ   r[   r\   r]   r^   r6   r:   r;   rb   s                rc   export_saturate_falsezCastLike.export_saturate_false   s   &  
 

 ", 7	 7	Iw i88J{G44H4Z@@M28<<Kh  " j%  G*  ^^M22  E !^^M2299+FF  F vxB???D;(((!
	 )  D t}1I=FP	    e7	 7	re   N)r   r   )__name__
__module____qualname__staticmethodrd   rk    re   rc   r   r      s]        e e e \eN E E E \E E Ere   r   )
__future__r   ri   numpyrE   rL   r   onnx.backend.test.case.baser   onnx.backend.test.case.noder   onnx.helperr   r   	frozensetrK   rO   rR   r   rp   re   rc   <module>rw      s   # " " " " "                , , , , , , . . . . . . = = = = = = = =9WWWXX:::;;	7F+,,o o o o ot o o o o ore   