
    `i                       d Z ddlmZ ddlmZ erddlmZmZ ddlm	Z	m
Z
mZ ddlmZ ddlmZ dd	lmZ dd
lm
Z
 ddlmZmZ ddlmZmZ  ed           G d de
                      Z ed           G d de
                      Z ed           G d de                      Z ed           G d d                      Zd1dZd2d Zd3d#Z ed$           G d% d&                      Z ed'           G d( d)e                      Z ed*           G d+ d,e                      Z  ed-           G d. d/                      Z!d0S )4zTesting utilities.    )annotations)TYPE_CHECKING)MappingSequence)DeviceObjectdtype)Any)ClassVar   )_ffi_api)r   )c_classfield)get_global_funcregister_objectztesting.TestObjectBasec                  B    e Zd ZU dZded<   ded<   ded<   erdd
ZdS dS )TestObjectBasezTest object base class.intv_i64floatv_f64strv_str_1returnc                   d S N selfr   s     k/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/tvm_ffi/testing/testing.pyadd_i64zTestObjectBase.add_i643             Nr   r   r   r   )__name__
__module____qualname____doc____annotations__r   r"   r   r$   r!   r   r   )   sS         !! JJJLLLJJJ 21111112 2r$   r   ztesting.TestIntPairc                  P    e Zd ZU dZded<   ded<   eredd	            Zdd
ZdS dS )TestIntPairzTest Int Pair.r   ab_0r   r   r   c                   d S r   r   )r/   r   s     r!   __c_ffi_init__zTestIntPair.__c_ffi_init__A   s    ;>3r$   c                   d S r   r   )r    s    r!   sumzTestIntPair.sumC   r#   r$   N)r/   r   r   r   r   r   )r   r   )	r&   r'   r(   r)   r*   r   staticmethodr1   r3   r   r$   r!   r,   r,   8   s`          FFF
FFF %	>>> 
>$$$$$$% %r$   r,   ztesting.TestObjectDerivedc                  (    e Zd ZU dZded<   ded<   dS )TestObjectDerivedzTest object derived class.zMapping[Any, Any]v_mapzSequence[Any]v_arrayN)r&   r'   r(   r)   r*   r   r$   r!   r6   r6   H   s2         $$ r$   r6   ztesting.SchemaAllTypesc                      e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   erd)d!Zd*d#Zd+d$Zd,d%Ze	d-d'            Z
d(S d(S )._SchemaAllTypesboolv_boolr   v_intr   v_floatr   v_devicer	   v_dtyper   v_stringbytesv_bytesz
int | None	v_opt_int
str | None	v_opt_strSequence[int]	v_arr_intzSequence[str]	v_arr_strzMapping[str, int]v_map_str_intMapping[str, Sequence[int]]v_map_str_arr_intz'str | Sequence[int] | Mapping[str, int]	v_variantzSequence[int | str] | Nonev_opt_arr_variantr   r   c                   d S r   r   r   s     r!   add_intz_SchemaAllTypes.add_inti   r#   r$   _2c                   d S r   r   r    r   rQ   s      r!   
append_intz_SchemaAllTypes.append_intj   r#   r$   c                   d S r   r   rS   s      r!   maybe_concatz_SchemaAllTypes.maybe_concatk   r#   r$   c                   d S r   r   rS   s      r!   	merge_mapz_SchemaAllTypes.merge_mapl   r#   r$   r/   c                   d S r   r   )r/   r   rQ   s      r!   	make_withz_SchemaAllTypes.make_withm   s    JM#r$   Nr%   )r   rG   rQ   r   r   rG   )r   rE   rQ   rE   r   rE   )r   rK   rQ   rK   r   rK   )r/   r   r   r   rQ   r   r   r:   )r&   r'   r(   r*   r   rP   rT   rV   rX   r4   rZ   r   r$   r!   r:   r:   T   s        
 LLLJJJNNNNNNMMMNNN$$$$222266661111 N1111QQQQTTTT 	E  	E  	E  	E	MMM 
MMMN Nr$   r:   type_keyr   kwargsr
   r   r   c                    | g}|                                 D ]/\  }}|                    |           |                    |           0t          j        | S )aZ  Make an object by reflection.

    Parameters
    ----------
    type_key
        The type key of the object.
    kwargs
        The keyword arguments to the object.

    Returns
    -------
    obj
        The created object.

    Note
    ----
    This function is only used for testing purposes and should
    not be used in other cases.

    )itemsappendr   MakeObjectFromPackedArgs)r[   r\   argskvs        r!   create_objectrd   s   sT    * :D  1AA,d33r$   c                 0     t          d                      S )zAReturn an object whose type is not registered on the Python side.z testing.make_unregistered_objectr   r   r$   r!   make_unregistered_objectrg      s    >?=>>@@@r$   xr   c                2     t          d          |           S )zAdd one to the input integer.ztesting.add_onerf   )rh   s    r!   add_onerj      s    -?,--a000r$   ztesting.TestCxxClassBasec                  >    e Zd ZU ded<   ded<   dZdZded<   dd
ZdS )_TestCxxClassBaser   r   v_i32   r   zClassVar[int]not_field_2r   Nonec                >    |                      |dz   |dz              d S )Nrn   r   )__ffi_init__)r    r   rm   s      r!   __init__z_TestCxxClassBase.__init__   s&    %!)UQY/////r$   N)r   r   rm   r   r   rp   )r&   r'   r(   r*   not_field_1ro   rs   r   r$   r!   rl   rl      sR         JJJJJJK!"K""""0 0 0 0 0 0r$   rl   ztesting.TestCxxClassDerivedc                  (    e Zd ZU ded<   dZded<   dS )_TestCxxClassDerivedr   r      v_f32N)r&   r'   r(   r*   rx   r   r$   r!   rv   rv      s,         LLLEr$   rv   z"testing.TestCxxClassDerivedDerivedc                  >    e Zd ZU  ed           Zded<   ded<   dS )_TestCxxClassDerivedDerivedc                     dS )Ndefaultr   r   r$   r!   <lambda>z$_TestCxxClassDerivedDerived.<lambda>   s    y r$   )default_factoryr   r   r;   r<   N)r&   r'   r(   r   r   r*   r   r$   r!   rz   rz      s;         '8'8999E9999LLLLLr$   rz   ztesting.TestCxxInitSubsetc                  b    e Zd ZU ded<    ed          Zded<    ed d          Zded	<   d
S )_TestCxxInitSubsetr   required_fieldF)initoptional_fieldc                     dS )Nz
py-defaultr   r   r$   r!   r}   z_TestCxxInitSubset.<lambda>   s    l r$   )r~   r   r   noteN)r&   r'   r(   r*   r   r   r   r   r$   r!   r   r      s`         %U+++N++++&:&:GGGDGGGGGGr$   r   N)r[   r   r\   r
   r   r   )r   r   )rh   r   r   r   )"r)   
__future__r   typingr   collections.abcr   r   tvm_ffir   r   r	   r
   r    r   coredataclassesr   r   registryr   r   r   r,   r6   r:   rd   rg   rj   rl   rv   rz   r   r   r$   r!   <module>r      sS  "   # " " " " "             11111111----------
                   ( ( ( ( ( ( ( ( 7 7 7 7 7 7 7 7 )**	2 	2 	2 	2 	2V 	2 	2 +*	2 &''
% 
% 
% 
% 
%& 
% 
% ('
% ,--       .- )**N N N N N N N +*N<4 4 4 48A A A A
1 1 1 1
 		#$$0 0 0 0 0 0 0 %$0 		&''    ,   ('
 		-..    "6   /.
 		$%%H H H H H H H &%H H Hr$   