o
    1&id`                     @   s,  d dl Z d dlZd dl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.d/ Z(d0d1 Z)d2d3 Z*d4d5 Z+d6d7 Z,d8d9 Z-d:d; Z.d<d= Z/G d>d? d?ejZ0G d@dA dAejZ1G dBdC dCeZ2G dDdE dEeZ3G dFdG dGeZ4G dHdI dIeeZ5G dJdK dKeeZ6G dLdM dMeeZ7G dNdO dOeZ8G dPdQ dQeZ9G dRdS dSeZ:e;dTkre<  dS dS )U    N)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   BC:\wamp64\www\opt\env\Lib\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)      r/   c                 C      t | S r   lenr'   r   r   r   len_usecase,   r   r4   c                 C   s   | | S r   r   r   r   r   r   add_usecase/   r   r5   c                 C   s   | |kS r   r   r   r   r   r   
eq_usecase2   r   r6   c                 C   s   | |kS r   r   r   r   r   r   
ne_usecase5   r   r7   c                 C   s   | |kS r   r   r   r   r   r   
gt_usecase8   r   r8   c                 C   s   | |kS r   r   r   r   r   r   
ge_usecase;   r   r9   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_usecaseA   r   r;   c                 C   s   | |v S r   r   r   r   r   r   
in_usecaseD   r   r<   c                 C   s   t | | rdfS dfS )N   r.   )boolr'   r   r   r   bool_usecaseG   s   r?   c                 C   s   | j | j| jfS r   r   r   r   r'   r   r   r   getattr_usecaseJ   s   rA   c                 C   s   t | ||S r   r   r   r   cr   r   r   
make_pointM   r-   rE   c                 C   s   t ||| dS )Nr@   rB   rC   r   r   r   make_point_kwsP   r0   rF   c                 C   s8   t tt| t| d }t|t|jt|j}|S Nr*   )	r   listrangenpZzerosr   r3   r   r   )nrpr   r   r   make_point_nrtS   s   rN   c                 G   s   t | | S r   )type)r   argsr   r   r   type_usecaseY   r-   rQ   c                 C      | S r   r   r'   r   r   r   identity\   s   rS   c                 C   s
   |  |S r   )index)r   valuer   r   r   index_method_usecase_   s   
rV   c                  C   s,   g g g df\} }}}|  d | d d S )Ng        r*   )append)r   r   rD   dr   r   r   tuple_unpack_static_getitem_errb   s   

rY   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   r1   r   r2   r'   r   r   r   eattupleo   r)   z>TestTupleLengthError.test_tuple_length_error.<locals>.eattuplei  z,Tuple 'tup' length must be smaller than 1000)	r   assertRaisesr   ZUnsupportedErrortuplerI   assertInstr	exception)selfr\   raisesr   expectedr   r   r   test_tuple_length_errorl   s   

z,TestTupleLengthError.test_tuple_length_errorN)__name__
__module____qualname__re   r   r   r   r   r[   j       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 )NrM    Argument 'types' is not iterable)	r]   r   TypingErrorr   
NamedTupleuint32r_   r`   ra   rb   rc   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 )Nrl   )	r]   r   rm   r   Tuplero   r_   r`   ra   rp   r   r   r   test_tuple_types_exception   s   z3TestTupleTypeNotIterable.test_tuple_types_exceptionN)rf   rg   rh   __doc__rq   rs   r   r   r   r   rk   z   s    rk   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||ft}tjddd }}|||\}}| || | || ~~| || d S )Nr*   C   float64)Zdtype)r   Arrayry   r   r   rJ   arangeassertPreciseEqual)rb   Zarytycfuncr   r   rarbr   r   r   test_array_tuple   s   z TestTupleReturn.test_array_tuplec                 C   sH   t j}t||ft}d }}|||\}}| || | || d S rG   )r   float32r   r   assertEqual)rb   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||ft}|||\}}	| 	||	f||f q3d S )Nr*   r.   )g      ?g      ?)i  g      ?)
rW   r   int32int64r   ry   zipr   r   r|   )
rb   ZalltypesZ	allvaluestatbr   r   r}   r~   r   r   r   r   test_hetero_tuple   s   


z!TestTupleReturn.test_hetero_tupleN)rf   rg   rh   r   r   r   r   r   r   r   rv      s    
rv   c                   @   ru   )TestTuplePassingc                 C   sN   t t jd}t|ft}t|ft}| |dd | |dd d S )Nr.      rx   r   rx   )r   UniTupler   r   r    r"   r|   rb   
tuple_typeZcf_firstZ	cf_secondr   r   r   test_unituple   s
   zTestTuplePassing.test_unituplec                 C   sR   t t jt jf}t|ft}t|ft}| |dd | |dd d S )N)                  ?r   r   )r   rr   r   r   r   r    r"   r|   r   r   r   r   r      s
   z"TestTuplePassing.test_hetero_tuplec                 C   sv   t t jd}t|ft}|j|jd  j}| t	}|d W d    n1 s+w   Y  | 
t|jd d S )Nr.   r   r   rx      z8size mismatch for tuple, expected 2 element(s) but got 3)r   r   r   r   r    	overloadsZ
signaturesentry_pointr]   
ValueErrorr   r`   ra   )rb   r   r}   r   rc   r   r   r   test_size_mismatch   s   
z#TestTuplePassing.test_size_mismatchN)rf   rg   rh   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f|}| |dd tttjdf|}| |dd d S )Nr   r.   r=   r   )r4   r   r   rr   r   r   r|   r   )rb   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   rI   r3   r|   rb   r   r}   r   ir   r   r   test_index_literal   s   z!TestOperations.test_index_literalc           
      C   s  t }tttjdtjf|}d}tt|D ]}| |||||  qtt|d D ]}| ||| ||   q.| t	}||t| W d    n1 sUw   Y  | 
dt|j | t	}||t|d   W d    n1 s}w   Y  | 
dt|j ttjdtjf}t||j| }| t	}|dd W d    n1 sw   Y  | 
dt|j tttjdtjf|}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 s1w   Y  t}|  }td| W d    n	1 sNw   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   rI   r3   r|   r]   
IndexErrorr   r`   ra   r   r   uintpr(   rr   r   ZassertTypingErrorrY   r_   )
rb   r   r}   r   r   rc   rP   crtypmsgr   r   r   
test_index   sR   

zTestOperations.test_indexc                 C   s~   t }ttjttjdf|}d}tdD ]}| |||||| qttjtg f|}| |dd|dd d S )Nr=   )r   r*   rx   rx   r*   r   )r<   r   r   r   r   rI   r|   rr   r   r   r   r   test_in  s   zTestOperations.test_inc                 C   sp   d}t ttjdf|}| |||| ttjtjtjtjf}t |f|}| |||| d S )N)r   rx   r      r   )r   r   r   r   r|   rr   r   )rb   r   r   r}   rP   r   r   r   check_slice)  s   zTestOperations.check_slicec                 C      |  t d S r   )r   r,   rb   r   r   r   test_slice21  r0   zTestOperations.test_slice2c                 C   r   r   )r   r/   r   r   r   r   test_slice34  r0   zTestOperations.test_slice3c                 C   s   t }tttjtjff|}d}| || ||  tttjdf|}d}| || ||  ttdf|}| |d|d d S )N)r   r=   )r   r   )r?   r   r   rr   r   r   r|   r   )rb   r   r}   rP   r   r   r   	test_bool7  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   )r5   r   rr   r   r   r   r   	itertoolsproductr   r|   )
rb   r   Zsamplesr   r   r   r   r}   rd   gotr   r   r   test_addB  s   

zTestOperations.test_addc                    s    fdd}t t jt jft t jdg}t||D ]\}}t||f|}dD ]}|||| q*qt t jt jft t jdg}tt	||}dD ]}|||| qNd S )Nc                          || | | d|f  d S Nzmismatch for arguments %sassertIsr   r}   rP   r   r   r   eqP     z(TestOperations._test_compare.<locals>.eqr.   )r   r   )r   r   r   )r   r   )r   )rx   r   r=   )r   r   )r   )r   r   r   )r   )r   r   r   )
r   rr   r   r   r   r   r   r   r   r^   )rb   r   r   argtypesr   r   r}   rP   r   r   r   _test_compareO  s    zTestOperations._test_comparec                 C   r   r   r   r6   r   r   r   r   test_eqg  r0   zTestOperations.test_eqc                 C   r   r   r   r7   r   r   r   r   test_nej  r0   zTestOperations.test_nec                 C   r   r   r   r8   r   r   r   r   test_gtm  r0   zTestOperations.test_gtc                 C   r   r   r   r9   r   r   r   r   test_gep  r0   zTestOperations.test_gec                 C   r   r   r   r:   r   r   r   r   test_lts  r0   zTestOperations.test_ltc                 C   r   r   r   r;   r   r   r   r   test_lev  r0   zTestOperations.test_leN)rf   rg   rh   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      s"    7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|   rM   r   r}   r   r   r   check}  s   z)TestNamedTuple.test_unpack.<locals>.checkr   rx         @r   rb   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   )r4   r   r|   r   r   r   r   r        z&TestNamedTuple.test_len.<locals>.checkr   rx   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   rx   r   )r%   r   r   rI   r3   r|   r   r   )rb   r   r}   rM   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   rx   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   )rb   r   r   r}   r   r   r   r   r   r     s   zTestNamedTuple._test_comparec                 C   r   r   r   r   r   r   r   r     r0   zTestNamedTuple.test_eqc                 C   r   r   r   r   r   r   r   r     r0   zTestNamedTuple.test_nec                 C   r   r   r   r   r   r   r   r     r0   zTestNamedTuple.test_gtc                 C   r   r   r   r   r   r   r   r     r0   zTestNamedTuple.test_gec                 C   r   r   r   r   r   r   r   r     r0   zTestNamedTuple.test_ltc                 C   r   r   r   r   r   r   r   r     r0   zTestNamedTuple.test_lec                 C   s<   t }tdd|}dD ]}t| }| |||| qd S NTr   )r   r   r   r   )rA   r   r   r|   )rb   r   r}   rP   rM   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   rO   r|   )r   r}   rP   rd   r   r   r   r   r     s   z,TestNamedTuple.test_construct.<locals>.check)rE   rF   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   )rQ   r   r   r   r   r   rO   r|   )	rb   r   r}   Z
arg_tuplesZtup_argsrP   r   rd   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   )rU   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   )rb   r   rL   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   )rb   r   rL   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   rR   r   r   )r   r   r   r   r        z4TestNamedTuple.test_dispatcher_mistreat.<locals>.foor*   r.   r=   r*   r.   r=   r   )r   r   r   r3   Znopython_signaturesrP   r   r   )rb   r   Zin1Zout1Zin2Zout2Zin3Zout3r   r   r   test_dispatcher_mistreat  s    
 z'TestNamedTuple.test_dispatcher_mistreatN)rf   rg   rh   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   z  s$    
r   c                   @   rZ   )TestTupleNRTc                 C   sP   dd }t dd|}d}||\}}||\}}tj|| | || d S )Nc                 S   s   t d}|f| f S )Nr=   )rJ   r{   )r   r   r   r   r   r   1  s   
z+TestTupleNRT.test_tuple_add.<locals>.pyfuncTr   r   )r   rJ   testingZassert_equalr   )rb   r   r}   r   Zexpect_aZexpect_xZgot_aZgot_xr   r   r   test_tuple_add0  s   zTestTupleNRT.test_tuple_addN)rf   rg   rh   r   r   r   r   r   r   /  s    r   c                   @   rZ   )TestNamedTupleNRTc                 C   sP   t }tdd|}dD ]}||}||}| t|t| | || qd S )NTr   )r=   r   )rN   r   r   rO   r|   )rb   r   r}   argrd   r   r   r   r   test_return?  s   zTestNamedTupleNRT.test_returnN)rf   rg   rh   r   r   r   r   r   r   =  ri   r   c                   @   rj   )TestConversionsz8
    Test implicit conversions between tuple types.
    c                 C   s,   t }t|||}||}| || d S r   )rS   r   r   )rb   fromtyZtotyvalr   r}   resr   r   r   check_conversionP  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   rr   Zint16r]   r   rm   r_   r`   ra   )rb   r   r   ZatyZbtyrc   r   r   r   r   test_conversionsV  s   
z TestConversions.test_conversionsN)rf   rg   rh   rt   r   r   r   r   r   r   r   K  s    r   c                   @   rZ   )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)rV   r   r   r]   r   r`   ra   )rb   r   r}   rc   r   r   r   r   r   h  s   zTestMethods.test_indexN)rf   rg   rh   r   r   r   r   r   r   f  ri   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S )TestTupleBuildc                         fdd}|d |d d S )Nc                    .   dd }t dd|} || ||  d S )Nc                 S   s   dg| R S rG   r   r   r   r   r   <lambda>w  s    zATestTupleBuild.test_build_unpack.<locals>.check.<locals>.<lambda>Tr   r   r|   r   r   r   r   r   v     z/TestTupleBuild.test_build_unpack.<locals>.checkr   r   r   r   r   r   r   r   test_build_unpacku     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                    st    fdd}  tj}|ddg W d    n1 sw   Y  d} |t|j 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   rx   zNo implementation of functionztuple(reflected list()r]   r   rm   r_   r`   ra   )rb   r   rc   Zmsg1Zmsg2r   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   rR   r   r   rP   r   r   r   inner  r   zCTestTupleBuild.test_build_unpack_call.<locals>.check.<locals>.innerc                    s    dg| R  S rG   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   rR   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   r1   r   r  r   r   r   r   r         r   c                 S   r1   r   r  r   r   r   r   r     r  r  r   r   r   r   r   test_tuple_constructor  s   z%TestTupleBuild.test_tuple_constructorc                 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   )rx   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   ZUnsupportedBytecodeErrorr_   r`   ra   )rb   r   rc   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=   )rW   extendrJ   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   )rW   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)rf   rg   rh   r  r  r  r	  r  r  r  r  r  r  r   r   r   r   r   s  s    r   __main__)=collectionsr   numpyrJ   Znumbar   r   r   r   Z
numba.corer   r   r   Znumba.tests.supportr	   r
   r   Zunittest
namedtupler   r   r   r   r   r    r"   r%   r(   r,   r/   r4   r5   r6   r7   r8   r9   r:   r;   r<   r?   rA   rE   rF   rN   rQ   rS   rV   rY   r[   rk   rv   r   r   r   r   r   r   r   r   rf   mainr   r   r   r   <module>   sj    ' ( 6 
	