
    wi                        d dl mZ d dlZd dlZd dlZd dlZd dlZd dlmZm	Z	  G d dej
                  Zedk    r ej        d           dS dS )	    )annotationsN)helpernumpy_helperc                  ~   e Zd Zd>dZd>dZd?dZd?dZd?d	Zd?d
Zd?dZ	d?dZ
d?dZd?dZd?dZd?dZd?dZd?dZd Zd Zd Zd Zd Zd@dAdZej                            dej        j        fdej        j        fd ej        j        fd!ej        j        fd"ej        j        fd#ej        j         fd$ej        j!        fd%ej        j"        fd&ej        j#        fd'ej        j$        fd(ej        j%        fd)ej        j&        fd*ej        j'        fd+ej        j(        fd,ej        j)        fd-ej        j*        fd.ej        j+        fd/ej        j,        fd0ej        j-        fd1ej        j.        fd2ej        j/        fd3ej        j0        fd4ej        j1        fd5ej        j2        fd6ej        j3        fg          dBd;            Z4d< Z5d=S )CTestNumpyHelperdtype	np.numberreturnNonec                4   t           j                            dd                              |          }t	          j        |d          }|                     |j        d           t	          j        |          }t           j	        
                    ||           d S )N   %   test)nprandomrandastyper   
from_arrayassertEqualnameto_arraytestingassert_equalselfr   a
tensor_def	a_recovers        k/root/.openclaw/workspace/chatterbox_venv_py311/lib/python3.11/site-packages/onnx/test/numpy_helper_test.py_test_numpy_helper_float_typez-TestNumpyHelper._test_numpy_helper_float_type   s}    INN2r""))%00!,Q77
&111 )*55	

9-----    c                p   t           j                            t          j        |          j        t          j        |          j        |d          }t          j        |d          }|                     |j	        d           t          j
        |          }t           j                            ||           d S )Nr   r   )r   sizer   )r   r   randintiinfominmaxr   r   r   r   r   r   r   r   s        r   _test_numpy_helper_int_typez+TestNumpyHelper._test_numpy_helper_int_type   s    IHUOO%!4E  
 
 ",Q77
&111 )*55	

9-----r!   c                D    |                      t          j                   d S Nr    r   float32r   s    r   
test_floatzTestNumpyHelper.test_float!       **2:66666r!   c                D    |                      t          j                   d S r+   )r)   r   uint8r.   s    r   
test_uint8zTestNumpyHelper.test_uint8$       ((22222r!   c                D    |                      t          j                   d S r+   )r)   r   int8r.   s    r   	test_int8zTestNumpyHelper.test_int8'   s    ((11111r!   c                D    |                      t          j                   d S r+   )r)   r   uint16r.   s    r   test_uint16zTestNumpyHelper.test_uint16*   s    ((33333r!   c                D    |                      t          j                   d S r+   )r)   r   int16r.   s    r   
test_int16zTestNumpyHelper.test_int16-   r4   r!   c                D    |                      t          j                   d S r+   )r)   r   int32r.   s    r   
test_int32zTestNumpyHelper.test_int320   r4   r!   c                D    |                      t          j                   d S r+   )r)   r   int64r.   s    r   
test_int64zTestNumpyHelper.test_int643   r4   r!   c                *   t          j        g d                              t                    }t	          j        |d          }|                     |j        d           t	          j        |          }t           j	        
                    ||           d S )N)AmyBillyCindyDavidr   )r   arrayr   objectr   r   r   r   r   r   r   r   r   r   r   s       r   test_stringzTestNumpyHelper.test_string6   s~    H77788??GG!,Q77
&111 )*55	

9-----r!   c                @   t           j                            dd                              t                    }t          j        |d          }|                     |j        d           t          j	        |          }t           j
                            ||           d S )N   r#   )r$   r   )r   r   r%   r   boolr   r   r   r   r   r   r   rK   s       r   	test_boolzTestNumpyHelper.test_bool=   s    Iah//66t<<!,Q77
&111 )*55	

9-----r!   c                D    |                      t          j                   d S r+   r,   r.   s    r   test_float16zTestNumpyHelper.test_float16D   r0   r!   c                D    |                      t          j                   d S r+   )r    r   	complex64r.   s    r   test_complex64zTestNumpyHelper.test_complex64G   s    **2<88888r!   c                D    |                      t          j                   d S r+   )r    r   
complex128r.   s    r   test_complex128zTestNumpyHelper.test_complex128J   s    **2=99999r!   c                   t          j        t          j        d          t          j        d          d          }|                     |t
          j                   |                     t          j        |j	        j
        d                   t          j        d                     |                     t          j        |j	        j
        d                   t          j        d                     d S )N皙??r      r   r]   r   	from_dictr   rI   assertIsInstanceonnxMapProtor   r   valuestensor_valuesr   	map_protos     r   ,test_from_dict_values_are_np_arrays_of_floatz<TestNumpyHelper.test_from_dict_values_are_np_arrays_of_floatM   s     *rx}}#+O+OPP	i777!)"2"@"CDDbhsmm	
 	
 	
 	!)"2"@"CDDbhsmm	
 	
 	
 	
 	
r!   c                   t          j        t          j        d          t          j        d          d          }|                     |t
          j                   |                     t          j        |j	        j
        d                   t          j        d                     |                     t          j        |j	        j
        d                   t          j        d                     d S )Nr]   	   r\   r   r^   re   s     r   *test_from_dict_values_are_np_arrays_of_intz:TestNumpyHelper.test_from_dict_values_are_np_arrays_of_intW   s     *rx{{rx{{+K+KLL	i777!)"2"@"CDDbhqkk	
 	
 	
 	!)"2"@"CDDbhqkk	
 	
 	
 	
 	
r!   c                l   t          j        ddg          }t          j        ddg          }t          j        ||d          }|                     |t
          j                   t          j        |j        j	        d                   }| 
                    |d         |d                    | 
                    |d         |d                    t          j        |j        j	        d                   }| 
                    |d         |d                    | 
                    |d         |d                    d S )Nr]   rN   ri   
   r\   r   )r   rI   r   r_   r`   ra   rb   r   rc   rd   r   )r   
zero_array	one_arrayrf   
out_tensors        r   +test_from_dict_values_are_np_arrays_of_intsz;TestNumpyHelper.test_from_dict_values_are_np_arrays_of_intsa   s   Xq!f%%
HaW%%	 *zi+H+HII	i777!*9+;+I!+LMM
A
1666A
1666!*9+;+I!+LMM
A	!555A	!55555r!   c                    |                      t                    5  t          j        t	          j        d          t	          j        d          d           d d d            d S # 1 swxY w Y   d S )NrZ   r[   )r   g?assertRaises	TypeErrorr   r_   r   rI   r.   s    r   "test_from_dict_differing_key_typesz2TestNumpyHelper.test_from_dict_differing_key_typeso   s    y)) 	K 	K"rx}}28C==#I#IJJJ	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K   <A$$A(+A(c                    |                      t                    5  t          j        t	          j        d          t	          j        d          d           d d d            d S # 1 swxY w Y   d S )Nr]   r[   r\   rr   r.   s    r   $test_from_dict_differing_value_typesz4TestNumpyHelper.test_from_dict_differing_value_typest   s    y)) 	G 	G"rx{{rx}}#E#EFFF	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	Grv   Tvalueintcheck_dtyperO   c                   t          j        t          j        t          j        ddgdg|          gdt          j        dt
          j        j        dg          gt          j        d|dg          g                    }t
          j        	                    |          }dt
          j        j
                            |          v r9|                    d dt          j        g dt          j        	          i          }n8|                    d dt          j        g d
t          j        	          i          }t!          j        |d         d          }|                     |j        |           t!          j        |          }|                     |d         j        |j                   |r&|                     |d         j        |j                   t!          j        |d          }|                     |j        |j                   |                     |j        |j                   |                     t1          |j                  t1          |j                             |                     t5          |j                  t5          |j                             |                     |j        |j                   |                     t7          |j                  t7          |j                             |                     |                                |                                           |                     |j        t          j        |j                             d S )NCastXY)tor      UINT)r   r]   rN      )r   )r   r]   r   r   check)r   )r   
make_model
make_graph	make_nodemake_tensor_value_infora   TensorProtoFLOAT	referenceReferenceEvaluatorDataTypeNamerunr   rI   r-   r   r   r   	data_typer   shaper   r   lenraw_datalisttupledimsSerializeToStringnp_dtype_to_tensor_dtype)	r   ry   r{   
onnx_modelrefstarttpbackagains	            r   _to_array_from_arrayz$TestNumpyHelper._to_array_from_arrayy   s   &!&3%#5AAAB.sD4D4JQCPPQ.sEA3??@	 
 

 n//
;;T%.33E::::GGD3RZ(P(P(P"QRREEGGD3bj(Q(Q(Q"RSSE$U1XG<<<u---$R((q444 	9U1X^TZ888'7;;;u777%*---R[))3u~+>+>???bk**D,@,@AAAen555rwuz):):;;;--//1H1H1J1JKKKv'Ftz'R'RSSSSSr!   r   UINT8INT8UINT16INT16INT32INT64BOOLFLOAT16DOUBLEUINT32UINT64	COMPLEX64
COMPLEX128BFLOAT16FLOAT8E4M3FNFLOAT8E4M3FNUZ
FLOAT8E5M2FLOAT8E5M2FNUZ
FLOAT8E8M0UINT4INT4UINT2INT2
FLOAT4E2M1_strr   onnx.TensorProto.DataTypec                0    |                      |           d S r+   )r   )r   r   r   s      r   test_to_array_from_arrayz(TestNumpyHelper.test_to_array_from_array   s    < 	!!),,,,,r!   c                P    |                      t          j        j        d           d S )NF)r   ra   r   STRINGr.   s    r   test_to_array_from_array_stringz/TestNumpyHelper.test_to_array_from_array_string   s$    !!$"2"95AAAAAr!   N)r   r	   r
   r   )r
   r   )T)ry   rz   r{   rO   )r   r   r   r   )6__name__
__module____qualname__r    r)   r/   r3   r7   r:   r=   r@   rC   rL   rP   rR   rU   rX   rg   rj   rp   ru   rx   r   parameterizedexpandra   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      sH       . . . .. . . .7 7 7 73 3 3 32 2 2 24 4 4 43 3 3 33 3 3 33 3 3 3. . . .. . . .7 7 7 79 9 9 9: : : :
 
 

 
 
6 6 6K K K
G G G
T T T T T<  ''d&,-d&,-T%*+t'./d&,-d&,-d&,-T%*+(01t'./t'./t'./$*454+67)23T-:;t/>?4+67t/>?4+67d&,-T%*+d&,-T%*+4+673	
 :- - -; :-B B B B Br!   r   __main__rN   )	verbosity)
__future__r   unittestnumpyr   r   ra   onnx.referencer   r   TestCaser   r   mainr   r!   r   <module>r      s    # " " " " "               % % % % % % % %hB hB hB hB hBh' hB hB hBV zHMA r!   