o
    i`                     @   s8  d dl Z d dlZd dlZd dlmZ d dlmZmZm	Z	m
Z
 d dlmZmZmZ d dlmZmZmZ d dlZe ddZe dd	Ze d
d	Ze 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'd( Z&d)d* Z'd+d, Z(d-d. Z)d/d0 Z*d1d2 Z+d3d4 Z,d5d6 Z-d7d8 Z.d9d: Z/d;d< Z0d=d> Z1G d?d@ d@ejZ2G dAdB dBejZ3G dCdD dDeZ4G dEdF dFeZ5G dGdH dHeZ6G dIdJ dJeeZ7G dKdL dLeeZ8G dMdN dNeeZ9G dOdP dPeZ:G dQdR dReZ;G dSdT dTeZ<e=dUkre>  dS dS )V    N)compile_isolated)njitjittypeof	literally)typeserrorsutils)TestCaseMemoryLeakMixintagRectwidthheightPoint)xyzPoint2Empty c                 C   s   | |fS Nr   abr   r   f/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/numba/tests/test_tuples.pytuple_return_usecase      r   c                 C   s   | \}}|S r   r   tupr   r   r   r   r   tuple_first      r!   c                 C   s   | \}}|S r   r   r   r   r   r   tuple_second   r"   r#   c                 C   s   | | S r   r   r    idxr   r   r   tuple_index    r   r&   c                 C   s   | d S )Nr   r    r   r   r   tuple_index_static#      r)   c                 C   s   | dd S )N   r   r(   r   r   r   tuple_slice2'      r-   c                 C   s   | dd d S )Nr+      r   r(   r   r   r   tuple_slice3*      r0   c                 C      t | S r   lenr(   r   r   r   len_usecase-   r   r5   c                 C   s   | | S r   r   r   r   r   r   add_usecase0   r   r6   c                 C   s   | |kS r   r   r   r   r   r   
eq_usecase3   r   r7   c                 C   s   | |kS r   r   r   r   r   r   
ne_usecase6   r   r8   c                 C   s   | |kS r   r   r   r   r   r   
gt_usecase9   r   r9   c                 C   s   | |kS r   r   r   r   r   r   
ge_usecase<   r   r:   c                 C   s   | |k S r   r   r   r   r   r   
lt_usecase?   r   r;   c                 C   s   | |kS r   r   r   r   r   r   
le_usecaseB   r   r<   c                 C   s   | |v S r   r   r   r   r   r   
in_usecaseE   r   r=   c                 C   s   t | | rdfS dfS )N   r/   )boolr(   r   r   r   bool_usecaseH   s   r@   c                 C   s   | j | j| jfS r   r   r   r   r(   r   r   r   getattr_usecaseK   s   rB   c                 C   s   t | ||S r   r   r   r   cr   r   r   
make_pointN   r.   rF   c                 C   s   t ||| dS )NrA   rC   rD   r   r   r   make_point_kwsQ   r1   rG   c                 C   s8   t tt| t| d }t|t|jt|j}|S Nr+   )	r   listrangenpZzerosr   r4   r   r   )nrpr   r   r   make_point_nrtT   s   rO   c                 G   s   t | | S r   )type)r    argsr   r   r   type_usecaseZ   r.   rR   c                 C      | S r   r   r(   r   r   r   identity]   s   rT   c                 C   s
   |  |S r   )index)r    valuer   r   r   index_method_usecase`   s   
rW   c                  C   s,   g g g df\} }}}|  d | d d S )Ng        r+   )append)r   r   rE   dr   r   r   tuple_unpack_static_getitem_errc   s   

rZ   c                   @      e Zd Zdd ZdS )TestTupleLengthErrorc                 C   sf   t dd }| tj}ttd}|| W d    n1 s!w   Y  d}| |t|j d S )Nc                 S   r2   r   r3   r(   r   r   r   eattuplep   r*   z>TestTupleLengthError.test_tuple_length_error.<locals>.eattuplei  z,Tuple 'tup' length must be smaller than 1000)	r   assertRaisesr   UnsupportedErrortuplerJ   assertInstr	exception)selfr]   raisesr    expectedr   r   r   test_tuple_length_errorm   s   

z,TestTupleLengthError.test_tuple_length_errorN)__name__
__module____qualname__rg   r   r   r   r   r\   k       r\   c                   @       e Zd ZdZdd Zdd ZdS )TestTupleTypeNotIterablezA
    issue 4369
    raise an error if 'type' is not iterable
    c                 C   sP   |  tj}ttjd W d    n1 sw   Y  | dt|j d S )NrN    Argument 'types' is not iterable)	r^   r   TypingErrorr   
NamedTupleuint32ra   rb   rc   rd   re   r   r   r   test_namedtuple_types_exception   s   z8TestTupleTypeNotIterable.test_namedtuple_types_exceptionc                 C   sN   |  tj}ttj W d    n1 sw   Y  | dt|j d S )Nrn   )	r^   r   ro   r   Tuplerq   ra   rb   rc   rr   r   r   r   test_tuple_types_exception   s   z3TestTupleTypeNotIterable.test_tuple_types_exceptionN)rh   ri   rj   __doc__rs   ru   r   r   r   r   rm   {   s    rm   c                   @   $   e Zd Zdd Zdd Zdd ZdS )TestTupleReturnc                 C   sl   t t jdd}tt||f}tjddd }}|||\}}| || | || ~~| || d S )Nr+   C   float64)Zdtype)	r   ZArrayr{   r   r   rK   arangeentry_pointassertPreciseEqual)rd   Zarytycresr   r   rarbr   r   r   test_array_tuple   s   z TestTupleReturn.test_array_tuplec                 C   sH   t j}tt||f}d }}|||\}}| || | || d S rH   )r   float32r   r   r}   assertEqual)rd   Zscalartyr   r   r   r   r   r   r   r   test_scalar_tuple   s   z!TestTupleReturn.test_scalar_tuplec           
      C   s   g }g }| tjtjf | d | tjtjf | d | tjtjf | d t||D ]!\\}}\}}tt||f}|	||\}}	| 
||	f||f q3d S )Nr+   r/   )g      ?g      ?)i  g      ?)rX   r   int32int64r   r{   zipr   r   r}   r~   )
rd   ZalltypesZ	allvaluestatbr   r   r   r   r   r   r   r   test_hetero_tuple   s   


z!TestTupleReturn.test_hetero_tupleN)rh   ri   rj   r   r   r   r   r   r   r   rx      s    
rx   c                   @   rw   )TestTuplePassingc                 C   sN   t t jd}tt|f}tt|f}| |dd | |dd d S )Nr/      rz   r   rz   )r   UniTupler   r   r!   r#   r~   r}   rd   
tuple_typeZcr_firstZ	cr_secondr   r   r   test_unituple   s
   zTestTuplePassing.test_unituplec                 C   sR   t t jt jf}tt|f}tt|f}| |dd | |dd d S )N)                  ?r   r   )	r   rt   r   r   r   r!   r#   r~   r}   r   r   r   r   r      s
   z"TestTuplePassing.test_hetero_tuplec                 C   sd   t t jd}tt|f}| t}|d W d    n1 s"w   Y  | t	|j
d d S )Nr/   r   rz      z8size mismatch for tuple, expected 2 element(s) but got 3)r   r   r   r   r!   r^   
ValueErrorr}   r   rb   rc   )rd   r   crre   r   r   r   test_size_mismatch   s   z#TestTuplePassing.test_size_mismatchN)rh   ri   rj   r   r   r   r   r   r   r   r      s    r   c                   @   s   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d Zdd  Zd!S )"TestOperationsc                 C   s\   t }t|ttjtjfg}| |dd t|ttjdg}| |dd d S )Nr   r/   r>   r   )	r5   r   r   rt   r   r   r~   r}   r   )rd   pyfuncr   r   r   r   test_len   s   zTestOperations.test_lenc                 C   s@   dd }t |}d}tt|D ]}| |||||  qd S )Nc                 S   s   t |}| | S r   )r   r$   r   r   r   r      s   z1TestOperations.test_index_literal.<locals>.pyfunc)r   g@Zsss)r   rJ   r4   r~   )rd   r   cfuncr    ir   r   r   test_index_literal   s   z!TestOperations.test_index_literalc              	   C   s  t }t|ttjdtjg}d}tt|D ]}| |||||  qtt|d D ]}| ||| ||   q.| 	t
}||t| W d    n1 sWw   Y  | dt|j | 	t
}||t|d   W d    n1 sw   Y  | dt|j t|ttjdtjg}| 	t
}|dd W d    n1 sw   Y  | dt|j t|ttjdtjg}tt|D ]}| ||t|||  qt}ttjdttjtjtjtjffD ]}t||f}d}| |||| qttjd}|   t||f}W d    n	1 s-w   Y  t}|  }t|d}W d    n	1 sIw   Y  d	}| |t|j d S )
Nr>   )r   r>   r   r+   ztuple index out of ranger   r   r   )r   r>   *   r   zUCannot infer the type of variable 'c', have imprecise type: list(undefined)<iv=None>.)r&   r   r   r   r   rJ   r4   r~   r}   r^   
IndexErrorr   rb   rc   uintpr)   rt   r   ZassertTypingErrorrZ   ra   )rd   r   r   r    r   re   typmsgr   r   r   
test_index   s\    

zTestOperations.test_indexc                 C   s~   t }t|tjttjdg}d}tdD ]}| |||||| qt|tjtg g}| |dd|dd d S )Nr>   )r   r+   rz   rz   r+   r   )	r=   r   r   r   r   rJ   r~   r}   rt   )rd   r   r   r    r   r   r   r   test_in  s   zTestOperations.test_inc                 C   sl   d}t |ttjdg}| |||| t |ttjtjtjtjfg}| |||| d S )N)r   rz   r      r   )r   r   r   r   r~   r}   rt   r   )rd   r   r    r   r   r   r   check_slice)  s   zTestOperations.check_slicec                 C      |  t d S r   )r   r-   rd   r   r   r   test_slice23  r1   zTestOperations.test_slice2c                 C   r   r   )r   r0   r   r   r   r   test_slice36  r1   zTestOperations.test_slice3c                 C   s   t }t|ttjtjfg}d}| |j| ||  t|ttjdg}d}| |j| ||  t|tdg}| |d|d d S )N)r   r>   )r   r   )	r@   r   r   rt   r   r   r~   r}   r   )rd   r   r   rQ   r   r   r   	test_bool9  s   
zTestOperations.test_boolc           
      C   s   t }tddfttjddfttjddfttjtjfdfg}t||D ]$\\}}\}}t	|||f}|||}|
||}	| j|	|||fd q*d S )Nr   r   r+   )r   )r>   g      @)r   )r6   r   rt   r   r   r   r   	itertoolsproductr   r}   r~   )
rd   r   Zsamplesr   r   r   r   r   rf   gotr   r   r   test_addG  s   
zTestOperations.test_addc           	         s    fdd}t t jt jft t jdg}t||D ]\}}t|||f}|j	}dD ]}|||| q,qt t jt jft t jdg}t|t
|}|j	}dD ]}|||| qRd S )Nc                          || | | d|f  d S Nzmismatch for arguments %sassertIsr   r   rQ   r   r   r   eqU     z(TestOperations._test_compare.<locals>.eqr/   )r   r   )r   r   r   )r   r   )r   )rz   r   r>   )r   r   )r   )r   r   r   )r   )r   r   r   )r   rt   r   r   r   r   r   r   r   r}   r`   )	rd   r   r   argtypesr   r   r   r   rQ   r   r   r   _test_compareT  s$   zTestOperations._test_comparec                 C   r   r   r   r7   r   r   r   r   test_eqn  r1   zTestOperations.test_eqc                 C   r   r   r   r8   r   r   r   r   test_neq  r1   zTestOperations.test_nec                 C   r   r   r   r9   r   r   r   r   test_gtt  r1   zTestOperations.test_gtc                 C   r   r   r   r:   r   r   r   r   test_gew  r1   zTestOperations.test_gec                 C   r   r   r   r;   r   r   r   r   test_ltz  r1   zTestOperations.test_ltc                 C   r   r   r   r<   r   r   r   r   test_le}  r1   zTestOperations.test_leN)rh   ri   rj   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      s"    	5
r   c                   @   s   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d Zdd  Zd!d" Zd#S )$TestNamedTuplec                    s,    fdd}|t dd |t dd d S )Nc                    s4   t tfD ]}tdd|} || ||  qd S NTZnopython)r!   r#   r   r~   rN   r   r   r   r   r   check  s   z)TestNamedTuple.test_unpack.<locals>.checkr   rz         @r   rd   r   r   r   r   test_unpack  s   zTestNamedTuple.test_unpackc                    sL    fdd}|t dd |tddd |t dd |tddd d S )Nc                    *   t }tdd|} || ||  d S r   )r5   r   r~   r   r   r   r   r        z&TestNamedTuple.test_len.<locals>.checkr   rz   r   r                 @)r   r   r   r   r   r   r     s
   zTestNamedTuple.test_lenc                 C   s|   t }tdd|}tddd}tt|D ]}| |||||| qtt|D ]}| ||t|||| q*d S )NTr   r   rz   r   )r&   r   r   rJ   r4   r~   r   r   )rd   r   r   rN   r   r   r   r   r     s    zTestNamedTuple.test_indexc                    s6    fdd}|t dd |t dd |t  d S )Nc                    r   r   )r@   r   r~   r   r   r   r   r     r   z'TestNamedTuple.test_bool.<locals>.checkr   rz   r   )r   r   r   r   r   r   r     s   zTestNamedTuple.test_boolc                    sj    fdd}t dd|}dD ]\}}|||t| t| f qdD ]\}}|||t| t| f q"d S )Nc                    r   r   r   r   r   r   r   r     r   z(TestNamedTuple._test_compare.<locals>.eqTr   r   r   )r   r   r   )rd   r   r   r   r   r   r   r   r   r     s   zTestNamedTuple._test_comparec                 C   r   r   r   r   r   r   r   r     r1   zTestNamedTuple.test_eqc                 C   r   r   r   r   r   r   r   r     r1   zTestNamedTuple.test_nec                 C   r   r   r   r   r   r   r   r     r1   zTestNamedTuple.test_gtc                 C   r   r   r   r   r   r   r   r     r1   zTestNamedTuple.test_gec                 C   r   r   r   r   r   r   r   r     r1   zTestNamedTuple.test_ltc                 C   r   r   r   r   r   r   r   r     r1   zTestNamedTuple.test_lec                 C   s<   t }tdd|}dD ]}t| }| |||| qd S NTr   )r   r   r   r   )rB   r   r   r~   )rd   r   r   rQ   rN   r   r   r   test_getattr  s   zTestNamedTuple.test_getattrc                    s     fdd}|t  |t d S )Nc                    sL   t dd| }dD ]}| | }|| } t|t|  || q	d S r   )r   r   rP   r~   )r   r   rQ   rf   r   r   r   r   r     s   z,TestNamedTuple.test_construct.<locals>.check)rF   rG   r   r   r   r   test_construct  s   zTestNamedTuple.test_constructc           	      C   s|   t }tdd|}ddg}t||D ](\}}t| }||g|R  }||g|R  }| t|t| | || qd S )NTr   r   r   )rR   r   r   r   r   r   rP   r~   )	rd   r   r   Z
arg_tuplesZtup_argsrQ   r    rf   r   r   r   r   	test_type  s   zTestNamedTuple.test_typec                    sh   t dddd  t dd fdd}|dd}| |tddd	 |dd
}| |tddd	 d S )NTr   c                 S   s
   t | dS )Nr   )rV   r   r   r   Data1     
z6TestNamedTuple.test_literal_unification.<locals>.Data1c                    s"   |dkr
 | }|S t | |}|S )Nr   r   )r   jresultr   r   r   call   s
   
z5TestNamedTuple.test_literal_unification.<locals>.call{   i)  r   r   r   r   r   r   )rd   r   rM   r   r   r   test_literal_unification  s   


z'TestNamedTuple.test_literal_unificationc                 C   s0   t dddd }| }| |tddd d S )NTr   c                   S   s
   t ddS )N
   
somestringr   r   r   r   r   foo  r   z7TestNamedTuple.test_string_literal_in_ctor.<locals>.foor   r   r   r   )rd   r   rM   r   r   r   test_string_literal_in_ctor  s   
z*TestNamedTuple.test_string_literal_in_ctorc                 C   s   t dddd }d}||}| || tddd}||}| || | t|jd | |jd	 jd	 t| | |jd jd	 t| tddd}||}| || | t|jd | |jd jd	 t| d S )
NTr   c                 S   rS   r   r   )r   r   r   r   r        z4TestNamedTuple.test_dispatcher_mistreat.<locals>.foor+   r/   r>   r+   r/   r>   r   )r   r   r   r4   Znopython_signaturesrQ   r   r   )rd   r   Zin1Zout1Zin2Zout2Zin3Zout3r   r   r   test_dispatcher_mistreat  s    
 z'TestNamedTuple.test_dispatcher_mistreatN)rh   ri   rj   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r     s$    
r   c                   @   r[   )TestTupleNRTc                 C   sP   dd }t dd|}d}||\}}||\}}tj|| | || d S )Nc                 S   s   t d}|f| f S )Nr>   )rK   r|   )r   r   r   r   r   r   8  s   
z+TestTupleNRT.test_tuple_add.<locals>.pyfuncTr   r   )r   rK   testingZassert_equalr   )rd   r   r   r   Zexpect_aZexpect_xZgot_aZgot_xr   r   r   test_tuple_add7  s   zTestTupleNRT.test_tuple_addN)rh   ri   rj   r   r   r   r   r   r   6  s    r   c                   @   r[   )TestNamedTupleNRTc                 C   sP   t }tdd|}dD ]}||}||}| t|t| | || qd S )NTr   )r>   r   )rO   r   r   rP   r~   )rd   r   r   argrf   r   r   r   r   test_returnF  s   zTestNamedTupleNRT.test_returnN)rh   ri   rj   r   r   r   r   r   r   D  rk   r   c                   @   rl   )TestConversionsz8
    Test implicit conversions between tuple types.
    c                 C   s0   t }t||f|}|j}||}| || d S r   )rT   r   r}   r   )rd   fromtyZtotyvalr   r   r   resr   r   r   check_conversionW  s
   z TestConversions.check_conversionc                 C   s   | j }ttjd}||ttjdd ||ttjtjfd ttjd}td}|||d |||d | tj	}||ttjfd W d    n1 sVw   Y  d}| 
|t|j d S )Nr/   r   r   r   z?No conversion from UniTuple(int32 x 2) to UniTuple(float32 x 1))r   r   r   r   r   rt   Zint16r^   r   ro   ra   rb   rc   )rd   r   r   ZatyZbtyre   r   r   r   r   test_conversions^  s   
z TestConversions.test_conversionsN)rh   ri   rj   rv   r   r   r   r   r   r   r   R  s    r   c                   @   r[   )TestMethodsc                 C   sr   t }tdd|}| |ddd | t}|dd W d    n1 s'w   Y  d}| |t|j d S )NTr   r   r/   r+   r   ztuple.index(x): x not in tuple)rW   r   r   r^   r   rb   rc   )rd   r   r   re   r   r   r   r   r   p  s   zTestMethods.test_indexN)rh   ri   rj   r   r   r   r   r   r   n  rk   r   c                   @   sn   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	e
ejdk ddd Zdd Zdd ZdS )TestTupleBuildc                         fdd}|d |d d S )Nc                    .   dd }t dd|} || ||  d S )Nc                 S   s   dg| R S rH   r   r   r   r   r   <lambda>  s    zATestTupleBuild.test_build_unpack.<locals>.check.<locals>.<lambda>Tr   r   r~   r   r   r   r   r   ~     z/TestTupleBuild.test_build_unpack.<locals>.checkr   r   r   r   r   r   r   r   test_build_unpack}     z TestTupleBuild.test_build_unpackc                    r   )Nc                    r   )Nc                 S   
   g | R S r   r   r   r   r   r   r        
 zMTestTupleBuild.test_build_unpack_assign_like.<locals>.check.<locals>.<lambda>Tr   r   r   r   r   r   r     r   z;TestTupleBuild.test_build_unpack_assign_like.<locals>.checkr   r  r   r   r   r   r   test_build_unpack_assign_like  s   z,TestTupleBuild.test_build_unpack_assign_likec                    s    fdd}  tj}|ddg W d    n1 sw   Y  tjdkr?d} |t|j d} |t|j d S d} |t|j d S )	Nc                    r   )Nc                 S   r  r   r   r   r   r   r   r     r  zZTestTupleBuild.test_build_unpack_fail_on_list_assign_like.<locals>.check.<locals>.<lambda>Tr   r   r   r   r   r   r     r   zHTestTupleBuild.test_build_unpack_fail_on_list_assign_like.<locals>.checkr   rz   )r>      zNo implementation of functionztuple(reflected list(z6Only tuples are supported when unpacking a single item)r^   r   ro   r	   	PYVERSIONra   rb   rc   )rd   r   re   Zmsg1Zmsg2r   r   r   r   *test_build_unpack_fail_on_list_assign_like  s   
z9TestTupleBuild.test_build_unpack_fail_on_list_assign_likec                    r   )Nc                    r   )Nc                 S   s   dg| d| R S Nr+   r   r   r   r   r   r   r     s    zFTestTupleBuild.test_build_unpack_more.<locals>.check.<locals>.<lambda>Tr   r   r   r   r   r   r     r   z4TestTupleBuild.test_build_unpack_more.<locals>.checkr   r  r   r   r   r   r   test_build_unpack_more  r  z%TestTupleBuild.test_build_unpack_morec                    r   )Nc                    >   t dd   fdd}t dd|}|| ||  d S )Nc                  W   rS   r   r   rQ   r   r   r   inner  r   zCTestTupleBuild.test_build_unpack_call.<locals>.check.<locals>.innerc                    s    dg| R  S rH   r   r   r  r   r   r     s    zFTestTupleBuild.test_build_unpack_call.<locals>.check.<locals>.<lambda>Tr   r   r   r   r  r   r     
   
z4TestTupleBuild.test_build_unpack_call.<locals>.checkr   r  r   r   r   r   r   test_build_unpack_call     	z%TestTupleBuild.test_build_unpack_callc                    r   )Nc                    r  )Nc                  W   rS   r   r   r  r   r   r   r    r   zHTestTupleBuild.test_build_unpack_call_more.<locals>.check.<locals>.innerc                    s    dg| d| R  S r
  r   r   r  r   r   r     s    zKTestTupleBuild.test_build_unpack_call_more.<locals>.check.<locals>.<lambda>Tr   r   r   r   r  r   r     r  z9TestTupleBuild.test_build_unpack_call_more.<locals>.checkr   r  r   r   r   r   r   test_build_unpack_call_more  r  z*TestTupleBuild.test_build_unpack_call_morec                    s:    fdd}|dd d |dd d |dd d	 d S )
Nc                    s&   t dd| } ||| | d S r   r   )r   r   r   r   r   r   r     s   z4TestTupleBuild.test_tuple_constructor.<locals>.checkc                 S   s   t  S r   r`   )_r   r   r   r     s    z7TestTupleBuild.test_tuple_constructor.<locals>.<lambda>r   c                 S   r2   r   r  r   r   r   r   r         r   c                 S   r2   r   r  r   r   r   r   r     r  r  r   r   r   r   r   test_tuple_constructor  s   z%TestTupleBuild.test_tuple_constructor)r>   	   zneeds Python 3.9+c                 C   sX   t dd }| tj}|  W d    n1 sw   Y  d}| |t|j d S )Nc                  S   s"   d} d}g | d r|R S dR S )Nr+   )r>   r/   r   r   )rz   r   r   r   r   r   r   r     s   z<TestTupleBuild.test_unpack_with_predicate_fails.<locals>.fooz&op_LIST_EXTEND at the start of a block)r   r^   r   r_   ra   rb   rc   )rd   r   re   r   r   r   r    test_unpack_with_predicate_fails  s   
z/TestTupleBuild.test_unpack_with_predicate_failsc                        fdd}|d d S )Nc                    r   )Nc                 S   s4   ddg}g | | d|| tdR |fS )Nr+   r/   r>   )rX   extendrK   Zonesr   r   r   r   r   r     s   ,zTTestTupleBuild.test_build_unpack_with_calls_in_unpack.<locals>.check.<locals>.pyfuncTr   r   r   r   r   r   r     s   zDTestTupleBuild.test_build_unpack_with_calls_in_unpack.<locals>.checkr   r   r   r   r   r   &test_build_unpack_with_calls_in_unpack  s   z5TestTupleBuild.test_build_unpack_with_calls_in_unpackc                    r  )Nc                    r   )Nc                 S   sl   ddg}g | g | | R | g | dgd| R | ddg| dR dR f| d|| fR |fS )Nr+   r/   r   )r>   )r/   r>   r  r   )rX   r  r  r   r   r   r     s   *zKTestTupleBuild.test_build_unpack_complicated.<locals>.check.<locals>.pyfuncTr   r   r   r   r   r   r     s   z;TestTupleBuild.test_build_unpack_complicated.<locals>.check)r      r   r   r   r   r   test_build_unpack_complicated  s   
z,TestTupleBuild.test_build_unpack_complicatedN)rh   ri   rj   r  r  r	  r  r  r  r  unittestZskipIfr	   r  r  r  r   r   r   r   r   r   {  s    
r   __main__)?collectionsr   numpyrK   Znumba.core.compilerr   Znumbar   r   r   r   Z
numba.corer   r   r	   Znumba.tests.supportr
   r   r   r!  
namedtupler   r   r   r   r   r!   r#   r&   r)   r-   r0   r5   r6   r7   r8   r9   r:   r;   r<   r=   r@   rB   rF   rG   rO   rR   rT   rW   rZ   r\   rm   rx   r   r   r   r   r   r   r   r   rh   mainr   r   r   r   <module>   sl    ' 0 6 
