
    xKgb                     `   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Z	d dl
mZmZmZmZmZ d dlZd dlmZmZ d dlmZmZ d dlmZ d dlmZ  edd	      Zd
 Zd Zd Zd Zd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'd Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/d Z0d Z1d  Z2d! Z3d" Z4d# Z5d$ Z6d% Z7d& Z8d' Z9d( Z:d) Z;d* Z<d+ Z=d, Z>d- Z?d. Z@d/ ZAd0 ZBd1 ZCd2 ZDd3 ZEd4 ZFd5 ZGd6 ZHd7 ZId8 ZJd9 ZKd: ZLd; ZMd< ZNd= ZOd> ZPd? ZQd@ ZRdA ZSdB ZTdC ZUdD ZVdE ZWdF ZXdG ZYdH ZZdI Z[ G dJ dKee      Z\ G dL dMee      Z] G dN dOee      Z^ G dP dQee      Z_ G dR dSe_      Z`dT Za G dU dVe_      Zb G dW dXec      Zd G dY dZec      Ze G d[ d\e_      Zf G d] d^ee      Zg G d_ d`ee      Zheidak(  r ej                          yy)b    )
namedtupleN)jittypeofnjitliteral_unroll	literally)typeserrors)TestCaseMemoryLeakMixin)jitclass)overloadPointabc                      y N xs    Z/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/tests/test_lists.pynoopr      s        c                 "    d}| D ]  }||z  }	 |S )z"
    Expect a list of numbers
    r   r   r   resvs      r   unbox_usecaser      s!     Cq Jr   c                 4    d}| D ]  }|t        |      z  } |S )z!
    Expect a list of tuples
    r   lenr   s      r   unbox_usecase2r#       s%     Cs1v Jr   c                 ,    | \  }}|}|D ]  }||z  }	 |S )z3
    Expect a (number, list of numbers) tuple.
    r   r   r   r   r   r   s        r   unbox_usecase3r&   )   s*     DAq
Cq Jr   c                 >    | \  }}|}|D ]  }|t        |      z  } |S )z2
    Expect a (number, list of tuples) tuple.
    r!   r%   s        r   unbox_usecase4r(   3   s.     DAq
Cs1v Jr   c                     | ||gS r   r   )r   yzs      r   create_listr,   >   s    q!9r   c                     | ||g|||ggS r   r   )r   r*   r+   r   r   cs         r   create_nested_listr/   A   s    1I1ay!!r   c                  V    t        t        d      D  cg c]  } | dz  	 c}       S c c} w N
      sumranger   s    r   list_comprehension1r7   D   s'    eBi(i1i())(s   &c                  b    t        t        d      D  cg c]  } | dz  dk(  s|  c}       S c c} w )Nr2   r3   r   r4   r   s    r   list_comprehension2r9   G   s-    5939aA
93443s   ,,c            	      x    t        t        d      D  cg c]  } t        j                  | d       c}       S c c} w r1   )r5   r6   mathpowr   s    r   list_comprehension3r=   J   s-    b	2	1A	2332s   7c            	      |    t        t        d      D  cg c]  } t        d      D ]  }| |z  	  c}}       S c c}} w Nr2   r4   )r   r*   s     r   list_comprehension4r@   M   s3    uRy<y!%)QA)y<==<s   8
c                  D    t        d      D  cg c]  } | dz  	 c} S c c} w r1   r6   r   s    r   list_comprehension5rC   P   s"     9%9aAE9%%%s   c                  |    t        d      D  cg c]  } t        |       D cg c]  }| c} c}} S c c}w c c}} w N   rB   )r*   r   s     r   list_comprehension6rG   S   s4    +0848aa!1Q!844!4s   8	388c                 *    t        t        |             S r   listr6   ns    r   list_constructorrM   W   s    a>r   c                      t               S r   rJ   r   r   r   list_constructor_emptyrP   Z   s     6Mr   c                 8    t               }|j                  |       S r   )rJ   append)rL   r*   s     r   #list_constructor_empty_but_typeablerS   _   s     	A88A;r   c                 n    g }|j                  d       t        |       D ]  }|j                  |        |S N*   rR   r6   rL   lis      r   list_appendr[   e   s0    
AHHRL1X	 Hr   c                 n    g }|j                  d       t        |       D ]  }|j                  |        |S )N      E@rW   rX   s      r   list_append_heterogeneousr^   l   s0    
AHHTN1X	 Hr   c                     g }|j                  t        |              |j                  |d d        |j                  t        | dd             |S )Nr   extendr6   rL   rY   s     r   list_extendrd   s   sB    
AHHU1XHHQsVHHU1a_Hr   c                     g }|j                  t        |              |j                  |d d        |j                  d       |j                  dg       |S )Nr`   )   rV   g     ^@ra   rc   s     r   list_extend_heterogeneousrg   {   sH    
AHHU1XHHQsVHHWHHeWHr   c                     t        t        |             }d}t        |      dkD  r.|t        |      |j                         z  z  }t        |      dkD  r.|S Nr   )rJ   r6   r"   pop)rL   rY   r   s      r   	list_pop0rk      sJ    U1XA
C
a&1*s1v a&1*Jr   c                 T    t        t        |             }|j                  |      }||fS r   )rJ   r6   rj   )rL   rZ   rY   r   s       r   	list_pop1rm      s%    U1XA	aAa4Kr   c                 @    t        t        |             }t        |      S r   rJ   r6   r"   rc   s     r   list_lenrp      s    U1XAq6Mr   c                     t        t        |             }d}t        t        |            D ]  }||||   z  z  } t        t        |       d      D ]  }||||   z  z  } |S ri   ro   rL   rY   r   rZ   s       r   list_getitemrs      sf    U1XA
C3q6]q1Q4x  CF7Aq1Q4x Jr   c                    t        t        |             }d}t        t        |            D ]  }|||   z  ||<    t        t        |       d      D ]  }|||   z  ||<    t        t        |            D ]
  }|||   z  } |S ri   ro   rr   s       r   list_setitemru      s    U1XA
C3q6]1Q4x!  CF7A1Q4x! 3q6]qt Jr   c                 4    t        t        |             }||| S r   rI   rL   startstoprY   s       r   list_getslice2rz      s    U1XAU4=r   c                 :    t        t        |             }||||   S r   rI   )rL   rx   ry   steprY   s        r   list_getslice3r}      s     U1XAU4_r   c                 h    t        t        |             }t        t        dd|z               }|||| |S Nd   rI   )rL   n_sourcerx   ry   rY   r   s         r   list_setslice2r      s4    U1XAU3h'(AAeDMHr   c                     t        t        |             }||||   }t        t        |            D ]  }||xx   dz  cc<    |||||<   |S r   ro   )rL   rx   ry   r|   rY   r   rZ   s          r   list_setslice3r      sS    U1XA	%T/A3q6]	! AeDoHr   c                 j    t        t        |             }t        t        dd|z               ||||<   |S r   rI   )rL   n_srcrx   ry   r|   rY   s         r   list_setslice3_arbitraryr      s4    U1XAeCu56AeDoHr   c                 8    t        t        |             }|d d = |S r   rI   rc   s     r   list_delslice0r      s    U1XA	!Hr   c                 B    t        t        |             }||d = |d |= |S r   rI   rw   s       r   list_delslice1r      s(    U1XA	%&		%4%Hr   c                 8    t        t        |             }|||= |S r   rI   rw   s       r   list_delslice2r      s    U1XA	%*Hr   c                 N    t        t        |             }|j                          |S r   )rJ   r6   clearrc   s     r   
list_clearr      s    U1XAGGIHr   c                 t    t        t        |             }|j                         }|j                  d       ||fS rU   )rJ   r6   copyrR   )rL   rY   lls      r   	list_copyr      s.    U1XA	
BHHRLb5Lr   c                 h    t        t        |             }d}t        |      D ]  \  }}|||z  z  } |S ri   )rJ   r6   	enumerate)rL   rY   r   rZ   r   s        r   list_iterationr      s8    U1XA
C!1q1u Jr   c           	      j    t        t        |             }d|v d|v | dz
  |v | |v d|vd|v| dz
  |v| |vfS Nr      rI   rc   s     r   list_containsr      sS    U1XAFAFAEQJQQJ
AENAQJ r   c                 P    t        t        | dd            }|j                  |      S Nr   r`   rJ   r6   indexrL   r   rY   s      r   list_index1r      s"    U1a_A771:r   c                 R    t        t        | dd            }|j                  ||      S r   r   )rL   r   rx   rY   s       r   list_index2r      s%    U1a_A771er   c                 T    t        t        | dd            }|j                  |||      S r   r   )rL   r   rx   ry   rY   s        r   list_index3r      s'    U1a_A771eT""r   c                 Z    t        t        | dz
  dd            }|j                  |       |S )Nr   r`   )rJ   r6   remover   s      r   list_remover      s)    U1q5"b!"AHHQKHr   c                 T    t        t        d|             }|j                  ||       |S ri   )rJ   r6   insert)rL   posr   rY   s       r   list_insertr     s%    U1a[AHHS!Hr   c                 p    g }t        |       D ]  }|j                  |dz          |j                  |      S rE   )r6   rR   count)rL   r   rY   r   s       r   
list_countr     s2    
A1X	Q 771:r   c                 N    t        t        |             }|j                          |S r   )rJ   r6   reverserc   s     r   list_reverser     s    U1XAIIKHr   c                     t        t        d|             }t        t        dd|z               }||z   }|j                  d       |||fS )Nr   r   rV   )rJ   r6   rR   )mrL   r   r   r   s        r   list_addr     sG    U1a[AU3a !A
a%CJJrNa9r   c                  r    dg} dg}| |z   }|| z   }| j                  d       |j                  d       | |||fS )Nr          @rF         @rR   )r   r   r.   ds       r   list_add_heterogeneousr     sF    	
A	A	AA	AAHHQKHHSMaA:r   c                 n    t        t        d|             }t        t        dd|z               }||z  }||fS )Nr   r   rI   )r   rL   r   r   s       r   list_add_inplacer   "  s9    U1a[AU3a !AFAa4Kr   c                  *    dg} dg}| |z  } || z  }| |fS )Nr   r   r   r   s     r   list_add_inplace_heterogeneousr   (  s+    	
A	AFAFAa4Kr   c                 4    t        t        |             }||z  S r   rI   rL   r   r   s      r   list_mulr   /      U1XAq5Lr   c                 4    t        t        |             }||z  S r   rI   r   s      r   	list_mul2r   3  r   r   c                 8    t        t        |             }||z  }|S r   rI   r   s      r   list_mul_inplacer   7  s    U1XAFAHr   c                 N    t        t        |             }t        |      |rdfS dfS )NTF)rJ   r6   bool)rL   r   s     r   	list_boolr   <  s(    U1XA7QT**E**r   c                 0    t        |       t        |      k(  S r   rO   r   s     r   
eq_usecaser   @      7d1gr   c                 0    t        |       t        |      k7  S r   rO   r   s     r   
ne_usecaser   C  r   r   c                 0    t        |       t        |      kD  S r   rO   r   s     r   
gt_usecaser   F      7T!Wr   c                 0    t        |       t        |      k\  S r   rO   r   s     r   
ge_usecaser   I  r   r   c                 0    t        |       t        |      k  S r   rO   r   s     r   
lt_usecaser   L  r   r   c                 0    t        |       t        |      k  S r   rO   r   s     r   
le_usecaser   O  r   r   c                 T    t        t        |             }|}|d d  }||u ||u||u ||ufS r   rI   )rL   r   r   r.   s       r   identity_usecaser   R  s<    U1XA	A	!AFaqjAFaqj99r   c                  6    dg} d| d<   d}| D ]  }||z  }	 | |fS )NFTr   r   )rY   r   r   s      r   bool_list_usecaser   X  s3    	AAaDAE a4Kr   c                 x    | j                         }| j                         }d| d<   | j                  |       | ||fS )Nr]   r   rj   rb   rY   r   r   r*   s       r   reflect_simpler   a  s7    	A	AAaDHHRLa7Nr   c                     |d   rg d} | j                         }| j                         }d| d<   | j                  |       | ||fS )Nr   )g      &@g      6@g     @@g      F@r]   r   r   s       r   reflect_conditionalr   h  sC    	!u 	A	AAaDHHRLa7Nr   c                 0    | j                  d       t        rU   )rR   ZeroDivisionErrorrY   s    r   reflect_exceptionr   r  s    HHRL
r   c                 H    | j                  |j                                | |u S r   )rR   rj   )rY   r   s     r   reflect_dualr   v  s    HHRVVX7Nr   c                      e Zd Zd Zd ZdBdZd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$ Z&d% Z'd& Z(d' Z)d( Z*d) Z+d* Z,d+ Z-d, Z.d- Z/d. Z0d/ Z1d0 Z2d1 Z3d2 Z4 e5jl                  e7jp                  d3k\  d4      d5        Z9d6 Z:d7 Z;d8 Z<d9 Z=d: Z>d; Z?d< Z@d= ZAd> ZBd? ZCd@ ZDyA)C	TestListsc                     t         } t        t        j                  t        j                  t        j                  f      |      }| j	                   |ddd       |ddd             y )Nr   r3   rF   )r,   r   r	   int32assertEqualselfpyfunccfuncs      r   test_create_listzTestLists.test_create_list}  sK    =ekk5;;<=fEq!Q1a9r   c                 6   t         } t        t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  f      |      }| j	                   |dddddd       |dddddd             y )Nr   r3   rF      rf      )r/   r   r	   r   r   r   s      r   test_create_nested_listz!TestLists.test_create_nested_list  sv    #>ekk5;;kk5;;= >>DFq!Q1a0&Aq!Q2JKr   c                      t        d      |      }dD ]1  }|r| j                  n| j                  } | ||       ||             3 y )NTnopython)r   rF      F   i  )r   assertPreciseEqualr   )r   r   preciser   rL   eqs         r   check_unary_with_sizezTestLists.check_unary_with_size  sD    "T"6*$A,3((9I9IBuQx# %r   c                 .    | j                  t               y r   )r   rM   r   s    r   test_constructorzTestLists.test_constructor  s    ""#34r   c                 \   | j                           t        d      t              }| j                  t        j
                        5 } |        d d d        t        j                        }| j                  d|       | j                  d|       | j                  d|       y # 1 sw Y   UxY w)NTr   z!Cannot infer the type of variablezlist(undefined)z&For Numba to be able to compile a list)	disable_leak_checkr   rP   assertRaisesr
   TypingErrorstr	exceptionassertIn)r   r   raiseserrmsgs       r   test_constructor_emptyz TestLists.test_constructor_empty  s    !"T"#9:v112fG 3V%%&96B'0>G 32s   B""B+c                     t        j                  d      dddgddgt        j                  dg      g}t        }|D ]6  } t	        d	      |      } ||      } ||      }| j                  ||       8 y )
Nr   g      $@y      ?      @   g      1@g      ,@r2   Tr   )npr   arrayrS   r   r   )r   argsr   argr   expectedgots          r   #test_constructor_empty_but_typeablez-TestLists.test_constructor_empty_but_typeable  sn    S&1#Sz288RD>J4C&C&v.Ec{H*C##C2	 r   c                 .    | j                  t               y r   )r   r[   r  s    r   test_appendzTestLists.test_append      "";/r   c                 2    | j                  t        d       y NF)r   )r   r^   r  s    r   test_append_heterogeneousz#TestLists.test_append_heterogeneous      ""#<e"Lr   c                 .    | j                  t               y r   )r   rd   r  s    r   test_extendzTestLists.test_extend  r  r   c                 2    | j                  t        d       y r  )r   rg   r  s    r   test_extend_heterogeneousz#TestLists.test_extend_heterogeneous  r  r   c                 .    | j                  t               y r   )r   rk   r  s    r   	test_pop0zTestLists.test_pop0      ""9-r   c           
          t         } t        d      |      }dD ]A  }dd|dz
  |dz
  dd| d	z   | dz   fD ]$  } |||      }| j                   |||      |       & C y )
NTr   rf   (   r   r   r3   r`   rF   )rm   r   r   )r   r   r   rL   rZ   r  s         r   	test_pop1zTestLists.test_pop1  ss    "T"6*AAE1q5"b1"q&1"q&A!!Q<''aX> B r   c                    | j                           t        d      t              }| j                  t              5 } |dd       d d d        | j                  t        j                        d       | j                  t              5 } |dd       d d d        | j                  t        |j                        d       y # 1 sw Y   {xY w# 1 sw Y   ;xY w)NTr   r   rf   zpop from empty listr   zpop index out of range)r  r   rm   r  
IndexErrorr   r  r  )r   r   cms      r   test_pop_errorszTestLists.test_pop_errors  s    !"T"9-z*b!QK +R\\*,ABz*b!QK +R\\*,DE +* +*s   
C 
C C	Cc                     t         } t        d      |      }dD ]I  }dd|dz
  |dz
  |dz   dd| d	z   | dz
  g	}|D ]&  } |||d
      }| j                   |||d
      |       ( K y )NTr   r%  r   r   r3   r`   r'  rF   rV   )r   r   r   )r   r   r   rL   indicesrZ   r  s          r   test_insertzTestLists.test_insert  s    "T"6*A!QUAE1q5"b1"q&1"q&IG!!Q+''aBB  r   c                 .    | j                  t               y r   )r   rp   r  s    r   test_lenzTestLists.test_len  s    ""8,r   c                 .    | j                  t               y r   )r   rs   r  s    r   test_getitemzTestLists.test_getitem      ""<0r   c                 .    | j                  t               y r   )r   ru   r  s    r   test_setitemzTestLists.test_setitem  r4  r   c           	           t        d      |      }ddg}|D ]Z  }dd|dz
  dd	| d
z   | dz
  | g}t        j                  ||      D ])  \  }} ||||      }| j                   ||||      |       + \ y NTr   rf   r&  r   r   r3   r`   r'  rF   r   	itertoolsproductr   )	r   r   r   sizesrL   r.  rx   ry   r  s	            r   check_slicing2zTestLists.check_slicing2  s    "T"6*BA!QUBQBFQBFQB?G(00'Bt!!UD1''a(=xH  C r   c                 .    | j                  t               y r   )r=  rz   r  s    r   test_getslice2zTestLists.test_getslice2      N+r   c           
      ,   t         } t        d      |      }ddg}t        j                  ||      D ]_  \  }}dd|dz
  dd	| d
z   | dz
  | g}t        j                  ||      D ]+  \  }} |||||      }	| j	                   |||||      |	       - a y r8  )r   r   r:  r;  r   )
r   r   r   r<  rL   r   r.  rx   ry   r  s
             r   test_setslice2zTestLists.test_setslice2  s    "T"6*B!))%7HAu!QUBQBFQBFQB?G(00'Bt!!UE48''at(DhO  C 8r   c           
         t         } t        d      |      }dD ]b  }dd|dz
  dd| d	z   | dz
  | g}g d
}t        j                  |||      D ],  \  }}} |||||      }	| j	                   |||||      |	       . d y NTr   )r2   r   r   r3   r`   r'  rF   )r   r   r`   r3   )r}   r   r:  r;  r   
r   r   r   rL   r.  stepsrx   ry   r|   r  s
             r   test_getslice3zTestLists.test_getslice3      "T"6*A!QUBQBFQBFQB?G%E%.%6%6w%O!tT!!UD$7''ad(CXN &P r   c           
         t         } t        d      |      }dD ]b  }dd|dz
  dd| d	z   | dz
  | g}g d
}t        j                  |||      D ],  \  }}} |||||      }	| j	                   |||||      |	       . d y rD  )r   r   r:  r;  r   rF  s
             r   test_setslice3zTestLists.test_setslice3  rI  r   c                 "   | j                          t        } t        d      |      } |ddddd       | j                  t              5 } |dddd	d       d d d        | j                  d
t        j                               y # 1 sw Y   /xY w)NTr   rf   r2   r   r3   r   r   rF   zcannot resize)r  r   r   r  
ValueErrorr	  r  r  r   r   r   r+  s       r   test_setslice3_resizezTestLists.test_setslice3_resize  sy    !)"T"6*aQ1z*b!S!Q" +os2<<'89 +*s   
BBc                 .    | j                  t               y r   )r   r   r  s    r   test_delslice0zTestLists.test_delslice0      "">2r   c                 .    | j                  t               y r   )r=  r   r  s    r   test_delslice1zTestLists.test_delslice1  r@  r   c                 .    | j                  t               y r   )r=  r   r  s    r   test_delslice2zTestLists.test_delslice2  r@  r   c                    | j                          t        } t        d      |      }| j                  t              5 } |dddd       d d d        | j                  t        j                        d       y # 1 sw Y   /xY w)NTr   r2   r   r3   r   zslice step cannot be zero)r  r}   r   r  rM  r   r  r  rN  s       r   test_invalid_slicezTestLists.test_invalid_slice  sj    !"T"6*z*b"aA +R\\*,GH +*s   A88Bc                 .    | j                  t               y r   )r   r   r  s    r   test_iterationzTestLists.test_iteration!  rR  r   c                 .    | j                  t               y r   )r   r   r  s    r   test_reversezTestLists.test_reverse$  r4  r   c                 .    | j                  t               y r   )r   r   r  s    r   test_containszTestLists.test_contains'  s    ""=1r   c                     	  || }| j                   || |       y # t        $ r3 | j                  t              5   ||  d d d        Y y # 1 sw Y   Y y xY ww xY wr   )r   rM  r  )r   r   r   r  r  s        r   check_index_resultzTestLists.check_index_result*  sX    	<t}H
 ##E4L(;	  	"":.t /..	s&    AAAA	AAc                     | j                          t        } t        d      |      }dD ]  }| j                  ||d|f        y )NTr   r   r   rf   r2   ir   )r  r   r   r`  r   r   r   r   s       r   test_index1zTestLists.test_index13  sD    !"T"6*(A##FEB7; )r   c                     | j                          t        } t        d      |      }d}dD ];  }dd|dz
  |dz
  |dz   dd	| d
z   | dz
  g	}|D ]  }| j                  ||d||f        = y NTr   r   rb  r   r   r3   r`   r'  rF   )r  r   r   r`  )r   r   r   rL   r   r.  rx   s          r   test_index2zTestLists.test_index2:  s    !"T"6*(A!QUAE1q5"b1"q&1"q&IG ''Au~F ! )r   c                    | j                          t        } t        d      |      }d}dD ]S  }dd|dz
  |dz
  |dz   dd	| d
z   | dz
  g	}t        j                  ||      D ]  \  }}| j                  ||d|||f        U y rf  )r  r   r   r:  r;  r`  )r   r   r   rL   r   r.  rx   ry   s           r   test_index3zTestLists.test_index3D  s    !"T"6*(A!QUAE1q5"b1"q&1"q&IG(00'Bt''Aud7KL  C )r   c                     t         } t        d      |      }d}| j                  t        j                  |      5   |dddd       d d d        y # 1 sw Y   y xY w)NTr   zarg "start" must be an Integer.r2   r   invalidrf   r   r   assertRaisesRegexr
   r  r   r   r   msgs       r   test_index_exception1zTestLists.test_index_exception1N  sM    "T"6*/##F$6$6<"aA& =<<   AAc                     t         } t        d      |      }d}| j                  t        j                  |      5   |dddd       d d d        y # 1 sw Y   y xY w)NTr   zarg "stop" must be an Integer.r2   r   rk  rl  rn  s       r   test_index_exception2zTestLists.test_index_exception2U  sM    "T"6*.##F$6$6<"aI& =<<rq  c                     t         } t        d      |      }d}dD ]$  } |||      }| j                   |||      |       & y )NTr   r   )r   r   rf      )r   r   r   r   r   r   rL   r   r  s         r   test_removezTestLists.test_remove\  sH    "T"6*Aa|H##E!QK: r   c                    | j                          t        } t        d      |      }| j                  t              5 } |dd       d d d        | j                  t        j                        d       y # 1 sw Y   /xY w)NTr   r2   rV   zlist.remove(x): x not in list)r  r   r   r  rM  r   r  r  rN  s       r   test_remove_errorzTestLists.test_remove_errord  se    !"T"6*z*b"bM +R\\*,KL +*s   
A66A?c                     t         } t        d      |      }t        d      D ]"  }| j                   |d|       |d|             $ y )NTr   rf      )r   r   r6   r   rc  s       r   
test_countzTestLists.test_countl  sB    "T"6*qA##E"aL&Q-@ r   c                 .    | j                  t               y r   )r   r   r  s    r   
test_clearzTestLists.test_clearr  s    "":.r   c                 .    | j                  t               y r   )r   r   r  s    r   	test_copyzTestLists.test_copyu  r#  r   c                      t        d      |      }g d}t        j                  ||      D ]'  \  }} |||      }| j                   |||      |       ) y )NTr   r   rF   2   ,  r9  )r   r   r   r<  r   rL   r  s          r   	check_addzTestLists.check_addx  sT    "T"6*%%eU3DAqa|H##E!QK: 4r   c                 .    | j                  t               y r   )r  r   r  s    r   test_addzTestLists.test_add      x r   c                 p    t         } t        d      |      } |       }| j                   |       |       y NTr   )r   r   r   r   r   r   r  s       r   test_add_heterogeneousz TestLists.test_add_heterogeneous  s1    '"T"6*8(+r   c                 .    | j                  t               y r   )r  r   r  s    r   test_add_inplacezTestLists.test_add_inplace      '(r   c                 p    t         } t        d      |      } |       }| j                   |       |       y r  )r   r   r   r  s       r   test_add_inplace_heterogeneousz(TestLists.test_add_inplace_heterogeneous  s1    /"T"6*8(+r   c                      t        d      |      }dD ]+  }dD ]$  } |||      }| j                   |||      |       & - y )NTr   r  )r   r3   rF   r   r`   ir   r   rv  s         r   	check_mulzTestLists.check_mul  sH    "T"6* A*!!Q<''aX> + !r   c                 .    | j                  t               y r   )r  r   r  s    r   test_mulzTestLists.test_mul  r  r   c                 .    | j                  t               y r   )r  r   r  s    r   	test_mul2zTestLists.test_mul2  s    y!r   c                 .    | j                  t               y r   )r  r   r  s    r   test_mul_inplacezTestLists.test_mul_inplace  r  r   l        z,need a 64-bit system to test for MemoryErrorc                    | j                          t        } t        d      |      }| j                  t              5   |dd       d d d        t
        j                  j                  d      r5t        j                  d      }|j                  dj                  d             | j                  t              5   |dd	       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)
NTr   r   l           darwinz
libc.dylibz###Please ignore the above error message i.e. can't allocate region. It is in fact the purpose of this test to request more memory than can be provided###
zUTF-8l            )r  r   r   r  MemoryErrorsysplatform
startswithctCDLLprintfencode)r   r   r   libcs       r   test_mul_errorzTestLists.test_mul_error  s     	!"T"6*{+!UO ,<<""8,77<(DKK //5vg@ {+!UO ,+ ,+ ,+s   
C9
CCC!c                     t         } t        d      |      }dD ]"  } ||      }| j                   ||      |       $ y )NTr   )r   r   rF   )r   r   r   )r   r   r   rL   r  s        r   	test_boolzTestLists.test_bool  s?    "T"6*AayH##E!Hh7 r   c                     t        d      d        t        d      fd       }| j                   |d      d       y )NTr   c                 "    t        |       | d   fS Nr`   r!   )lsts    r   innerz*TestLists.test_list_passing.<locals>.inner  s    s8SW$$r   c                 <    t        t        |             } |      S r   rI   )rL   rY   r  s     r   outerz*TestLists.test_list_passing.<locals>.outer  s    U1XA8Or   rf   )rf   r   r  )r   r  r  s     @r   test_list_passingzTestLists.test_list_passing  sI    	d		% 
	% 
d		 
	 	a&1r   c                       fd} t        d             |d        |d        |d        |d        |d        |d	       y )
Nc                 >    j                   |   |  d|        y )Nzmismatch for arguments )assertIs)r  r   r   r   s    r   r   z#TestLists._test_compare.<locals>.eq  s"    MM%,9=?Ar   Tr   )r   r3   r  )r   r3   rF   r  )r  r  ))r   r3   r   r  ))      ?r         @r  ))r  r   g      @r  r   )r   r   r   r   s   `` @r   _test_comparezTestLists._test_compare  sR    	A #T"6*



!"
'(
'(r   c                 .    | j                  t               y r   )r  r   r  s    r   test_eqzTestLists.test_eq      :&r   c                 .    | j                  t               y r   )r  r   r  s    r   test_nezTestLists.test_ne  r  r   c                 .    | j                  t               y r   )r  r   r  s    r   test_lezTestLists.test_le  r  r   c                 .    | j                  t               y r   )r  r   r  s    r   test_ltzTestLists.test_lt  r  r   c                 .    | j                  t               y r   )r  r   r  s    r   test_gezTestLists.test_ge  r  r   c                 .    | j                  t               y r   )r  r   r  s    r   test_gtzTestLists.test_gt  r  r   c                 p    t         } t        d      |      }| j                   |d       |d             y )NTr   rF   )r   r   r   r   s      r   test_identityzTestLists.test_identity  s0    !"T"6*a&)4r   c                 l    t         } t        d      |      }| j                   |        |              y r  )r   r   r   r   s      r   test_bool_listzTestLists.test_bool_list  s,    ""T"6*2r   N)T)E__name__
__module____qualname__r   r   r   r  r  r  r  r  r  r   r"  r(  r,  r/  r1  r3  r6  r=  r?  rB  rH  rK  rO  rQ  rT  rV  rX  rZ  r\  r^  r`  rd  rg  ri  rp  rs  rw  ry  r|  r~  r  r  r  r  r  r  r  r  r  r  unittest
skipUnlessr  maxsizer  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r   r   {  ss   :
L$5	H30M0M.?	FC-11I,POO
:3,,I312<<GM'';MA/.;!,),?!") X-GII 82)''''''5
3r   r   c                   X    e Zd ZdZej
                  d        Zd Zd Zd Z	d Z
d Zd Zy	)
TestUnboxingz@
    Test unboxing of Python lists into native Numba lists.
    c              #      K   | j                  t              5 }d  d d d        |&| j                  t        j                        |       y y # 1 sw Y   2xY wwr   )r  	TypeErrorassertRegexr  r  )r   ro  r
  s      r   assert_type_errorzTestUnboxing.assert_type_error  sK     y)V *?S!1!12C8  *)s   AA1AAAc                 >      t        d             fd}|S )NTr   c                 J     |       } |       }j                  ||       y r   )r   )r  r  r  r   r   r   s      r   checkz'TestUnboxing.check_unary.<locals>.check   s%    c{H*C##C2r   r  )r   r   r  r   s   `` @r   check_unaryzTestUnboxing.check_unary  s     "T"6*	3 r   c                 V    | j                  t              } |ddg        |ddg       y )Nr   r3                 ?y              @)r  r   r   r  s     r   test_numberszTestUnboxing.test_numbers  s)      /q!fr4jr   c                 j    | j                  t              } |ddg        |ddg        |g d       y )Nr  )rF   r   )r                  @)rF   y              @)r   r   r   )r  r#   r  s     r   test_tupleszTestUnboxing.test_tuples  s4      0vvw !lr   c                 F    | j                  t              } |dg df       y )Nr   )r3   rF   r   )r  r&   r  s     r   test_list_inside_tuplez#TestUnboxing.test_list_inside_tuple  s      0q)nr   c                 F    | j                  t              } |dddgf       y )Nr   )r3   )rF   )r  r(   r  s     r    test_list_of_tuples_inside_tuplez-TestUnboxing.test_list_of_tuples_inside_tuple  s#      0q4, r   c                    d}t         } t        d      |      }ddg}| j                  |      5   ||       d d d        | j                  |ddg       | j                  |      5   |ddg       d d d        | j                  |      5   |dddgf       d d d        | j                  |      5   |t	        dddg             d d d        ddg}| j                  t              5 } ||       d d d        d	}| j                  t        j                        |j                  t        j                               y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w)
Nzcan't unbox heterogeneous listTr   r   g      @r  r   )r3   rF   zFcan't unbox heterogeneous list: UniTuple({0} x 1) != UniTuple({0} x 2))r   r   r  r   r   r  r  r  r  formatr	   intp)r   ro  r   r   r  r
  s         r   test_errorszTestUnboxing.test_errors  sB    /"T"6*#h##C(#J ) 	q#h'##C(1b'N ) ##C(1q"g, )##C(%Ar7#$ ) Vny)V#J *9V--.

5::0FG% )( )( )(((
 *)s;   	D<&E	
E0E!&	E-<E	EE!E*-E6N)r  r  r  __doc__
contextlibcontextmanagerr  r  r  r  r  r  r  r   r   r   r  r    s@     9 9
!Hr   r  c                   4    e Zd ZdZd Zd Zd Zd Zd Zd Z	y)	TestListReflectionzG
    Test reflection of native Numba lists on Python list objects.
    c                 |    t        d      |      }g ddgfg dg dfg}|D ]  \  }}t        |      }t        |      } |||      }| j                  ||      5   |||      }	| j                  |	|       | j                  ||       | j	                  |d   |u |	d   |u        ~~	d d d         y # 1 sw Y   xY w)NTr   )r  r   r  r           )g      @g      @g      @g       @g      "@r   )r   rJ   assertRefCountr   r   )
r   r   r   samplesdestsrcr  r  pyrescress
             r   check_reflectionz#TestListReflection.check_reflection;  s    "T"6*$rd+$&:; !ID#DzHt*C8S)E$$S#.S#''e4''#6  qX!5tAw#~F4 /.	 ! /.s   AB22B;	c                 .    | j                  t               y r   )r  r   r  s    r   test_reflect_simplez&TestListReflection.test_reflect_simpleK  s    n-r   c                 .    | j                  t               y r   )r  r   r  s    r   test_reflect_conditionalz+TestListReflection.test_reflect_conditionalN  s    12r   c                    t         } t        d      |      }g d}| j                  |      5  | j                  t              5   ||       ddd       | j                  |g d       ddd       y# 1 sw Y   &xY w# 1 sw Y   yxY w)ze
        When the function exits with an exception, lists should still be
        reflected.
        Tr   r  N)r   r3   rF   rV   )r   r   r  r  r   r   )r   r   r   rY   s       r   test_reflect_exceptionz)TestListReflection.test_reflect_exceptionQ  sp    
 #"T"6*  #""#45a 6##A}5 $#55 $#s#   A>	A2A>2A;	7A>>Bc                     t         } t        d      |      }g d}|dd } |||      } |||      }| j                  ||       | j                  ||       | j                  ||       y)zg
        When the same list object is reflected twice, behaviour should
        be consistent.
        Tr   r  N)r   r   r   assertRefCountEqual)r   r   r   pylistclistr  r  s          r   test_reflect_same_listz)TestListReflection.test_reflect_same_list^  sp    
 "T"6*q	&&)E5!#..  /r   c                      t        d      t              }dg}|D cg c]  }t        |       }} ||       | j                  |D cg c]  }t        |       c}|       yc c}w c c}w )zP
        When the list wasn't mutated, no reflection should take place.
        Tr   y              )@N)r   r   idr   )r   r   rY   r   idss        r   test_reflect_cleanz%TestListReflection.test_reflect_cleanm  sf     #T"4(G ar!ua a+A"Q%+S1 !+s   A$	A)N)
r  r  r  r  r  r  r  r  r  r  r   r   r   r  r  6  s%      .360	2r   r  c                       e Zd Zd Zy)ManagedListTestCasec                     | j                  t        |      t        |             t        ||      D ]  \  }}| j                  ||        y r   )r   r"   zipr   )r   expectr  r   r   s        r   !assert_list_element_precise_equalz5ManagedListTestCase.assert_list_element_precise_equal{  s?    Vc#h/$DAq##Aq) %r   N)r  r  r  r  r   r   r   r	  r	  y  s    *r   r	  c                   j    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zy)TestListManagedElementsz,Test list containing objects that need refctc                 b    t        d      |      }t        j                  d      j                  t        j                        t        j                  d      j                  t        j                        g}t        |      } ||       t        |      } ||       | j                  ||       y )NTr   rF   rf   r  r  )r   r  arangeastyper  rJ   r  )r   r   r   conr  r  s         r   _check_element_equalz,TestListManagedElements._check_element_equal  s    "T"6*yy|""277+RYYq\-@-@-IJcv3ic
..s 	/ 	r   c                 ,    d }| j                  |       y )Nc                      y r   r   r  s    r   r   z=TestListManagedElements.test_reflect_passthru.<locals>.pyfunc      r   r  r   r   s     r   test_reflect_passthruz-TestListManagedElements.test_reflect_passthru  s    	!!&)r   c                 ,    d }| j                  |       y )Nc                     | j                  t        j                  d      j                  t        j                               y r?   )rR   r  r  r  r  r  s    r   r   z=TestListManagedElements.test_reflect_appended.<locals>.pyfunc  s%    JJryy}++BGG45r   r  r  s     r   test_reflect_appendedz-TestListManagedElements.test_reflect_appended  s    	6 	!!&)r   c                 ,    d }| j                  |       y )Nc                 4    t        j                  d      | d<   y )Nr2   r   )r  r  r  s    r   r   z<TestListManagedElements.test_reflect_setitem.<locals>.pyfunc  s    YYr]CFr   r  r  s     r   test_reflect_setitemz,TestListManagedElements.test_reflect_setitem  s    	# 	!!&)r   c                 ,    d }| j                  |       y )Nc                 $    | j                          y r   rj   r  s    r   r   z;TestListManagedElements.test_reflect_popped.<locals>.pyfunc  s    GGIr   r  r  s     r   test_reflect_poppedz+TestListManagedElements.test_reflect_popped  s    	 	!!&)r   c                 ,    d }| j                  |       y)zQmake sure list.insert() doesn't crash for refcounted objects (see #7553)
        c                     | j                  dt        j                  d      j                  t        j                               y )Nr   r   )r   r  r  r  r  r  s    r   r   z;TestListManagedElements.test_reflect_insert.<locals>.pyfunc  s'    JJq"))A,--bgg67r   Nr  r  s     r   test_reflect_insertz+TestListManagedElements.test_reflect_insert  s    	8 	!!&)r   c                 p    d } t        d      |      } |       } |       }| j                  ||       y )Nc                      g } t        d      D ]C  }| j                  t        j                  |      j	                  t        j
                               E | S )Nr  )r6   rR   r  r  r  r  r  rZ   s     r   r   z3TestListManagedElements.test_append.<locals>.pyfunc  s=    C3Z

299Q>009:  Jr   Tr   r  r   r  r   r   r   r  r  s        r   r  z#TestListManagedElements.test_append  s@    	 #T"6*g..s 	/ 	r   c                 n    d } t        d      |      } |       } |       }| j                  ||       y )Nc                      g } t        d      D ]&  }| j                  t        j                  |             ( d}| D ]%  }||j	                         d|j
                  z   z  z  }' |S )Nr  r  r   )r6   rR   r  r  r5   size)r  rZ   r.   arrs       r   r   z9TestListManagedElements.test_append_noret.<locals>.pyfunc  sZ    C3Z

299Q<(  ASWWY!chh,// Hr   Tr   r   r   r.  s        r   test_append_noretz)TestListManagedElements.test_append_noret  s8    	 #T"6*g%r   c                 p    d } t        d      |      } |       } |       }| j                  ||       y )Nc                      g } t        d      D ]&  }| j                  t        j                  d             ( t        j                  d      | d<   | S )Nrf   r3   r   r   r6   rR   r  r  r,  s     r   r   z;TestListManagedElements.test_reassign_refct.<locals>.pyfunc  s?    C1X

299Q<( YYq\CFJr   Tr   r  r-  r.  s        r   test_reassign_refctz+TestListManagedElements.test_reassign_refct  @    	 #T"6*g..s 	/ 	r   c                 p    d } t        d      |      } |       } |       }| j                  ||       y )Nc                  x    g } t        d      D ]&  }| j                  t        j                  d             ( | dd S )Nrf   r3   r   r7  r,  s     r   r   z6TestListManagedElements.test_get_slice.<locals>.pyfunc  s4    C1X

299Q<( q8Or   Tr   r  r-  r.  s        r   test_get_slicez&TestListManagedElements.test_get_slice  s@    	 #T"6*g..s 	/ 	r   c                 p    d } t        d      |      } |       } |       }| j                  ||       y )Nc                      g } t        d      D ]&  }| j                  t        j                  d             ( | dd | dd | S )Nrf   r3   r   r   rF   r7  r,  s     r   r   z6TestListManagedElements.test_set_slice.<locals>.pyfunc  s?    C1X

299Q<( 1QxC!HJr   Tr   r  r-  r.  s        r   test_set_slicez&TestListManagedElements.test_set_slice  r9  r   c                 p    d } t        d      |      } |       } |       }| j                  ||       y )Nc                      g } t        d      D ])  }| j                  t        j                  |dz                + t	        |       dkD  r| j                          t	        |       dkD  r| S )N   r   r3   r6   rR   r  r  r"   rj   r,  s     r   r   z0TestListManagedElements.test_pop.<locals>.pyfunc  sT    C2Y

299QU+, c(Q,	 c(Q,Jr   Tr   r  r-  r.  s        r   test_popz TestListManagedElements.test_pop  @    	 #T"6*g..s 	/ 	r   c                 p    d } t        d      |      } |       } |       }| j                  ||       y )Nc                      g } t        d      D ])  }| j                  t        j                  |dz                + t	        |       dkD  r | j                  d       t	        |       dkD  r | S )Ni  r   r3   rC  r,  s     r   r   z4TestListManagedElements.test_pop_loc.<locals>.pyfunc  sV    C4[

299QU+, !c(Q,
 c(Q,Jr   Tr   r  r-  r.  s        r   test_pop_locz$TestListManagedElements.test_pop_loc  rE  r   c                 p    d } t        d      |      } |       } |       }| j                  ||       y )Nc                      g } t        d      D ])  }| j                  t        j                  |dz                + | dd= | S )NrB  r   rF   r2   r7  r,  s     r   r   z6TestListManagedElements.test_del_range.<locals>.pyfunc!  s>    C2Y

299QU+, AbD	Jr   Tr   r  r-  r.  s        r   test_del_rangez&TestListManagedElements.test_del_range   r9  r   c                 n    d } t        d      |      } |       } |       }| j                  ||       y )Nc                  T    g } t        d      D ]  }| j                  dg|z          | S Nr2   r   )r6   rR   r,  s     r   r   z9TestListManagedElements.test_list_of_list.<locals>.pyfunc1  s,    C2Y

A37# Jr   Tr   r3  r.  s        r   test_list_of_listz)TestListManagedElements.test_list_of_list0  s8    	 #T"6*g%r   N)r  r  r  r  r  r  r  r"  r&  r)  r  r4  r8  r<  r?  rD  rH  rK  rO  r   r   r   r  r    sP    2	*
****&"  "" &r   r  c                       fd}|S )Nc                     | j                          | j                  t              5 } | g|i | d d d        d}| j                  |t	        j
                               y # 1 sw Y   1xY w)Nz-cannot reflect element of reflected container)r  r  r  r	  r  r  )r   r  kwargsr
  
expect_msgfns        r   wrappedz*expect_reflection_failure.<locals>.wrapped@  s]    !y)Vt%d%f% *D
j#f&6&6"78 *)s   A$$A-r   )rT  rU  s   ` r   expect_reflection_failurerV  ?  s    9 Nr   c                       e Zd Zd Zd Zed        Zed        Zed        Zed        Z	d Z
d Zd	 Zed
        Zd Zed        Zd Zd Zed        Zed        Zd Zy)TestListOfListc                     ddl m}  ||      } || } ||      } t        d      |      } || }| j                  ||       | j                  ||       y )Nr   )deepcopyTr   r  )r   rZ  r   r  )	r   r   r  rZ  expect_argsr  	njit_argsr   r  s	            r   compile_and_testzTestListOfList.compile_and_testL  sn    !tn%TN	"T"6*Y..s 	/ 	 	..I 	/ 	r   c                 ,    d }| j                  |       y )Nc                  h    t        d      D  cg c]  } t        j                  |       g }} |S c c} w )Nr   )r6   r  r  )rZ   r   s     r   r   z:TestListOfList.test_returning_list_of_list.<locals>.pyfunc^  s.    ).q2A"))A,A2H 3s   /r]  r  s     r   test_returning_list_of_listz*TestListOfList.test_returning_list_of_list]  s    	 	f%r   c                 H   d } t        d      |      }t        d      D cg c]  }t        j                  |       c}t        d      D cg c]  }t        j                  |      dz    c}g}t        d      D cg c]  }t        j                  |       c}dgg}dgdhgg}dgddigg} ||       | j                  t              5 } ||       d d d        | j                  d	t        j                               | j                  t              5 } ||       d d d        | j                  d
t        |j                               | j                  t              5 } ||       d d d        | j                  dt        |j                               | j                  t              5 } ||       d d d        | j                  dt        |j                               y c c}w c c}w c c}w # 1 sw Y    xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   cxY w)Nc                     | d   S Nr   r   r   s    r   r   z<TestListOfList.test_heterogeneous_list_error.<locals>.pyfuncf      Q4Kr   Tr   rf   r  r  r   r   Qreflected list(array(float64, 1d, C)) != reflected list(array(complex128, 1d, C))zDreflected list(array(float64, 1d, C)) != reflected list((int64 x 1))z=reflected list(int64) != reflected list(reflected set(int64))z*Cannot type list element of <class 'dict'>)r   r6   r  zerosonesr  r  r	  r  r  rM  )	r   r   r   rZ   l2l3l4l5r
  s	            r   test_heterogeneous_list_errorz,TestListOfList.test_heterogeneous_list_errord  s   	 #T"6*$)!H-Hqrxx{H-&+Ah/hrwwqz"}h/1$)!H-Hqrxx{H-v6cQC5\cS!H: 	b	 y)V"I * 	8  !	 y)V"I * 	+  !	 y)V"I *K  !	
 z*f"I +8  !	M ./- *) *) *) +*sA   G$G)>G.	G3	H "	H-	H3G= H	HH!c                     d } t        d      |      }ddgddgg}dd	g}t        |      t        |      f}t        |      t        |      f} ||   ||  | j                  ||       y )
Nc                 N    | j                  |       | d   j                  d       y )Nr`   {   r   )l1ri  s     r   r   z:TestListOfList.test_list_of_list_reflected.<locals>.pyfunc  s    IIbMrFMM#r   Tr   r   r   r3   rF   r   rf   )r   rJ   r   )r   r   r   rq  ri  r  r  s          r   test_list_of_list_reflectedz*TestListOfList.test_list_of_list_reflected  sw    	 #T"6*!fq!fVb48#2hR s%r   c                 2   d }t        d      D cg c]  }t        j                  |       c}t        d      D cg c]  }t        j                  |       c}g} t	        d      |      } ||      }| j                   ||      |       y c c}w c c}w )Nc                     | d   S rd  r   r   s    r   r   z6TestListOfList.test_heterogeneous_list.<locals>.pyfunc  re  r   rf   Tr   )r6   r  rg  rh  r   r   )r   r   rZ   rq  r   l1_gots         r   test_heterogeneous_listz&TestListOfList.test_heterogeneous_list  s    	 %*!H-Hqrxx{H-E!H/MHq
H/MN"T"6*rr
F3	 ./Ms
   BBc                 N   d }t        j                  d      gt        j                  d      dz  gg}| j                  ||       | j                  t              5 }| j                  ||       d d d        | j                  dt        j                               y # 1 sw Y   /xY w)Nc                 "    | j                         S r   r%  r   s    r   barz$TestListOfList.test_c01.<locals>.bar  s    557Nr   r   r2   r  rf  )r  rg  r]  r  r  r	  r  r  r   ry  rr
  s       r   test_c01zTestListOfList.test_c01  s    	 hhqk]RXXb\"_-. 	c1%y)V!!#q) *8  !	 *)s   BB$c                    d }t        j                  d      gg}| j                  t        j                        5 }| j                  ||       d d d        | j                  dt        j                               y # 1 sw Y   /xY w)Nc                 (    | j                  |        | S r   r   r   s    r   ry  z$TestListOfList.test_c02.<locals>.bar  s    HHQKHr   r   z(Invalid use of BoundFunction(list.append)	r  rg  r  r
   r  r]  r	  r  r  rz  s       r   test_c02zTestListOfList.test_c02  sk    	 hhqk]Ov112f!!#q) 36  !	 32   A;;Bc           	      X   d }t        j                  d      gg}| j                  t        j                        5 }| j                  ||       d d d        | j                  dj                  t        d      t        |d               t        j                               y # 1 sw Y   TxY w)Nc                     | }d|d<   |S Nr   r   r   r   fs     r   ry  z$TestListOfList.test_c03.<locals>.bar  s    AAaDHr   rF   1invalid setitem with value of {} to element of {}r   r   r  r  r  r
   r  r]  r	  r  r   r  r  rz  s       r   test_c03zTestListOfList.test_c03  s    	
 iil^v112f!!#q) 3?FFq	qt   !	
 32s   B  B)c           	      ^   d }t        j                  d      gg}| j                  t        j                        5 }| j                  ||       d d d        | j                  dj                  t        d      t        |d   d               t        j                               y # 1 sw Y   WxY w)Nc                     | }d|d   d<   |S rN  r   r  s     r   ry  z$TestListOfList.test_c04.<locals>.bar  s    AAaDGHr   rF   r  r2   r   r  rz  s       r   test_c04zTestListOfList.test_c04  s    	
 iil^v112f!!#q) 3?FFr
qtAw   !	 32s   B##B,c                     d }t        j                  d      j                  t         j                        gg}| j	                  ||       y )Nc                     | }t        j                  t        j                  d      j                  t         j                        D  cg c]  } |  c}       |d   d<   |S c c} w rN  )r  r  r  r  r  r  s     r   ry  z$TestListOfList.test_c05.<locals>.bar  sP    Ahh299R=+?+?+HI+Ha+HIJAaDGH  Js   	ArF   )r  r  r  r  r]  r   ry  r{  s      r   test_c05zTestListOfList.test_c05  s;    	
 iil!!"''*+,c1%r   c                    d }t        j                  d      gg}| j                  t        j                        5 }| j                  ||       d d d        | j                  dt        j                               y # 1 sw Y   /xY w)Nc                     | }t        j                  t        j                  d      D  cg c]  } | dz   	 c}       |d   d<   |S c c} w )Nr2   r  r   )r  r  r  r  s     r   ry  z$TestListOfList.test_c06.<locals>.bar  sB    Ahh		">1B>?AaDGH  ?s   ArF   invalid setitem with value)	r  r  r  r
   r  r]  r	  r  r  rz  s       r   test_c06zTestListOfList.test_c06  si    	
 iil^v112f!!#q) 32C8H8H4IJ 32r  c                 *   | j                          d }t        j                  d      gg} t        d      |      }| j	                  t
              5 } ||       d d d        | j                  dt        j                               y # 1 sw Y   /xY w)Nc                     | d   S )Nir   r   s    r   ry  z$TestListOfList.test_c07.<locals>.bar  s    R5Lr   rF   Tr   zgetitem out of range)	r  r  r  r   r  r*  r	  r  r  r   ry  r{  r   r
  s        r   test_c07zTestListOfList.test_c07  sw    !	 iil^"T"3'z*f!H +,c&2B2B.CD +*s   	B		Bc                    | j                          d }g d} t        d      |      }| j                  t              5 } ||       d d d        | j	                  dt        j                               y # 1 sw Y   /xY w)Nc                     d| d<   | S )Nr  rf   r   r   s    r   ry  z$TestListOfList.test_c08.<locals>.bar  s    AaDHr   r  Tr   zsetitem out of range)r  r   r  r*  r	  r  r  r  s        r   test_c08zTestListOfList.test_c08  sj    !	 "T"3'z*f!H +,c&2B2B.CD +*s   	A66A?c                     d }g d}| j                  t        j                        5 }| j                  ||       d d d        | j	                  dt        j                               y # 1 sw Y   /xY w)Nc                     d| d<   | S )Ny              @r'  r   r   s    r   ry  z$TestListOfList.test_c09.<locals>.bar"  s    AbEHr   r  r  )r  r
   r  r]  r	  r  r  rz  s       r   test_c09zTestListOfList.test_c09!  s\    	 v112f!!#q) 32C8H8H4IJ 32s   A((A1c                 >    d }g dg dg}| j                  ||       y )Nc                 (    | d   | d   c| d<   | d<   | S r  r   r   s    r   ry  z$TestListOfList.test_c10.<locals>.bar-  s"    1qtJAaD!A$Hr   r  r   rf   r   r`  r  s      r   test_c10zTestListOfList.test_c10+  #    	 	"c1%r   c                 >    d }g dg dg}| j                  ||       y )Nc                     | d d d   | d d  | S r  r   r   s    r   ry  z$TestListOfList.test_c11.<locals>.bar6  s    TrT7AaDHr   r  r  r`  r  s      r   test_c11zTestListOfList.test_c114  r  r   c                 h    d }t        d      D cg c]  }| }}| j                  ||       y c c}w )Nc                     | d= | S r  r   r   s    r   ry  z$TestListOfList.test_c12.<locals>.bar>  s    "Hr   r2   )r6   r]  )r   ry  r   r{  s       r   test_c12zTestListOfList.test_c12=  s6    	 b	"	1Q	"c1% #s   	/N)r  r  r  r]  ra  rV  rm  rr  rv  r|  r  r  r  r  r  r  r  r  r  r  r  r   r   r   rX  rX  J  s    "& . .` & & 4 4  "
$" & &	K 
E 
EEK & & & &&r   rX  c                       e Zd Zd Zy)Itemc                      || _         || _        y r   manyscalar)r   r  r  s      r   __init__zItem.__init__G  s    	r   N)r  r  r  r  r   r   r   r  r  F  s    r   r  c                       e Zd Zd Zd Zy)	Containerc                     t        |      D cg c]5  }t        j                  |      j                  t        j                        g7 c}| _        y c c}w r   )r6   r  r  r  float64datar   rL   rZ   s      r   r  zContainer.__init__M  s9    @EaI1biil))"**56I	Is   :Ac                     t        |      D ]N  }| j                  j                  t        j                  |      j                  t        j                        g       P y r   )r6   r  rR   r  r  r  r  r  s      r   morezContainer.moreP  s<    qAIIbiil11"**=>? r   N)r  r  r  r  r  r   r   r   r  r  L  s    J@r   r  c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestListAndJitClassesc                 ~    dt         j                  d d  fdt         j                  fg} t        |      t              }|S )Nr  r  )r	   r  r   r  )r   specJCItems      r   make_jitclass_elementz+TestListAndJitClasses.make_jitclass_elementV  s=    U]]1%&u}}%
  $%r   c           	          dt        j                  t        j                  t         j                  d d d               i} t        |      t              }|S )Nr  r   )dtype)r	   Listr  r   r  )r   r  JCContainers      r   make_jitclass_containerz-TestListAndJitClasses.make_jitclass_container^  sE    EJJUZZcc0B%CD
 %htnY/r   c                 >    t        ||      D ]  \  }} |||        y r   )r  )r   testerr  r  r   r*   s         r   assert_list_element_with_testerz5TestListAndJitClasses.assert_list_element_with_testere  s     $DAq1aL %r   c           	           j                         }d } fd} t        d      |      }t        d      D cg c]/  } |t        j                  j	                  |dz         |dz        1 }}t        |      }t        |      } ||      }	 ||      }
 j                  |||        j                  ||	|
       y c c}w )	Nc                 (    | d   | d   c| d<   | d<   | S r   r   )xss    r   r   zETestListAndJitClasses.test_jitclass_instance_elements.<locals>.pyfuncl  s"    a5"Q%LBqE2a5Ir   c                     j                  | j                  |j                         j                  | j                  |j                         y r   )r   r  r  )r   r*   r   s     r   r   zATestListAndJitClasses.test_jitclass_instance_elements.<locals>.eqp  s3    ##AFFAFF3##AHHahh7r   Tr   rf   r   g333333?r  )r  r   r6   r  randomrJ   r  )r   r  r   r   r   rL   r  
expect_arggot_arg
expect_resgot_ress   `          r   test_jitclass_instance_elementsz5TestListAndJitClasses.test_jitclass_instance_elementsi  s    ++-		8 #T"6* a" 1 299++AE21s7C  	 " #Y
s)J'
.,,RWE,,RWE"s   4B<c                 *   | j                         }t        d      } |d      }| j                  |j                  |j                         |j	                  d       |j	                  d       | j                  |j                  |j                         y )Nr   rK   rF   )r  r  r  r  r  )r   r  r  r  s       r   test_jitclass_containing_listz3TestListAndJitClasses.test_jitclass_containing_list  si    224QA..sxxEA..sxxEr   N)r  r  r  r  r  r  r  r  r   r   r   r  r  U  s    F2Fr   r  c                   .    e Zd ZdZd Zd Zd Zd Zd Zy)TestListInitialValuesz5Tests that lists carry their initial value if presentc                 ^     d t               fd       }t        fd       } |        y )Nc                      y r   r   r   s    r   ry  z?TestListInitialValues.test_homogeneous_and_literal.<locals>.bar      r   c                     | j                   d S j                  t        | t        j                               j                  | j                   g d       j                  t        | d      d       d S )Nc                     t        |       S r   r   r   s    r   <lambda>zTTestListInitialValues.test_homogeneous_and_literal.<locals>.ol_bar.<locals>.<lambda>      1r   r  literal_valueFc                     | S r   r   r   s    r   r  zTTestListInitialValues.test_homogeneous_and_literal.<locals>.ol_bar.<locals>.<lambda>      Qr   )initial_value
assertTrue
isinstancer	   r  r   hasattrrY   r   s    r   ol_barzBTestListInitialValues.test_homogeneous_and_literal.<locals>.ol_bar  s[    &--OOJq%**56Q__i8WQ8%@r   c                      g d}  |        y )Nr  r   r   ry  s    r   fooz?TestListInitialValues.test_homogeneous_and_literal.<locals>.foo  s     AFr   r   r   r   r  r  ry  s   `  @r   test_homogeneous_and_literalz2TestListInitialValues.test_homogeneous_and_literal  s;    	 
#	 
	 
	 
	
 	r   c                 ^     d t               fd       }t        fd       } |        y )Nc                      y r   r   r   s    r   ry  zQTestListInitialValues.test_heterogeneous_but_castable_to_homogeneous.<locals>.bar  r  r   c                     j                  t        | t        j                               j	                  | j
                  d        j	                  t        | d      d       d S )Nr  Fc                     | S r   r   r   s    r   r  zfTestListInitialValues.test_heterogeneous_but_castable_to_homogeneous.<locals>.ol_bar.<locals>.<lambda>  r  r   )r  r  r	   r  r   r  r  r  s    r   r  zTTestListInitialValues.test_heterogeneous_but_castable_to_homogeneous.<locals>.ol_bar  sK    OOJq%**56Q__d3WQ8%@r   c                      g d}  |        y )N)r  r3   rF   r   r  s    r   r  zQTestListInitialValues.test_heterogeneous_but_castable_to_homogeneous.<locals>.foo  s     AFr   r  r  s   `  @r   .test_heterogeneous_but_castable_to_homogeneouszDTestListInitialValues.test_heterogeneous_but_castable_to_homogeneous  s;    	 
#	 
	 
	 
	 	r   c                 ^     d t               fd       }t        fd       } |        y )Nc                      y r   r   r   s    r   ry  z<TestListInitialValues.test_mutation_not_carried.<locals>.bar  r  r   c                     | j                   d S j                  t        | t        j                               j                  | j                   g d       d S )Nc                     t        |       S r   r  r  s    r   r  zQTestListInitialValues.test_mutation_not_carried.<locals>.ol_bar.<locals>.<lambda>  r  r   r  c                     | S r   r   r  s    r   r  zQTestListInitialValues.test_mutation_not_carried.<locals>.ol_bar.<locals>.<lambda>  r  r   )r  r  r  r	   r  r   )r   r   s    r   r  z?TestListInitialValues.test_mutation_not_carried.<locals>.ol_bar  sD    &--OOJq%**56Q__i8r   c                  @    g d} | j                  d        |        y )Nr  r   r   r  s    r   r  z<TestListInitialValues.test_mutation_not_carried.<locals>.foo  s     AHHQKFr   r  r  s   `  @r   test_mutation_not_carriedz/TestListInitialValues.test_mutation_not_carried  s;    	 
#	 
	 
	 
	 	r   c                    t         d        }|d ft        g dffD ]k  \  }t         d        d t              fd       }t         fd       } |        j                  d   d   }| j	                  |j
                  |       m y )Nc                       y r   r   )r  s    r   nopzLTestListInitialValues.test_mutation_not_carried_single_function.<locals>.nop      r   r  c                      y r   r   r   s    r   bazzLTestListInitialValues.test_mutation_not_carried_single_function.<locals>.baz  s    r   c                      y r   r   )r+   s    r   ry  zLTestListInitialValues.test_mutation_not_carried_single_function.<locals>.bar  s    r   c                     fd}|S )Nc                 &     |         |        y r   r   )r+   r  rT  s    r   implz]TestListInitialValues.test_mutation_not_carried_single_function.<locals>.ol_bar.<locals>.impl  s    qEFr   r   )r+   r  r  rT  s     r   r  zOTestListInitialValues.test_mutation_not_carried_single_function.<locals>.ol_bar  s     r   c                  B    g d}  |        | j                  d       | S )Nr  r3   r   r  s    r   r  zLTestListInitialValues.test_mutation_not_carried_single_function.<locals>.foo  s    Ar   r   )r   r   r   
signaturesr   r  )	r   r  ivr  r  largry  r  rT  s	         @@@r   )test_mutation_not_carried_single_functionz?TestListInitialValues.test_mutation_not_carried_single_function  s     
	 
	 DkIy#99FB  c]    E >>!$Q'DT//45 :r   c                     t         d        t         fd       } |        j                  d   d   }| j                  |j                  d        | j                  |j                  j                  d        y )Nc                      y r   r   r   s    r   ry  z9TestListInitialValues.test_list_of_list_ctor.<locals>.bar  r  r   c                  &    g dg dg}  |        y )N)r   r3   rF   r   rf   )r   r3   rF   r   r   r   r  s    r   r  z9TestListInitialValues.test_list_of_list_ctor.<locals>.foo  s     /2AFr   r   )r   r  r   r  r  )r   r  r  ry  s      @r   test_list_of_list_ctorz,TestListInitialValues.test_list_of_list_ctor  ss    		 
	 
	 
	 	~~a #++T21148r   N)	r  r  r  r  r  r  r  r  r  r   r   r   r  r    s    ?*,,!5F9r   r  c                   l    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zy)TestLiteralListsc                 *    t         d        } |        y )Nc                      ddg} y )Nr   r   r   r   s    r   r  z0TestLiteralLists.test_basic_compile.<locals>.foo  s    CAr   )r   r   r  s     r   test_basic_compilez#TestLiteralLists.test_basic_compile  s    		 
	 	r   c                 ^     d t               fd       }t        fd       } |        y )Nc                      y r   r   r   s    r   ry  z<TestLiteralLists.test_literal_value_passthrough.<locals>.bar  r  r   c           	      d   j                  t        | t        j                               | j                  }j                  t        |t
                     j                  |d   t        j                  d             j                  |d   t        j                  d             j                  |d   t        j                  t        j                  dd             j                  |d   t        j                  t        j                  dg d	             j                  t        |d
   t        j                               j                  |d
   j                  d   t        j                  d             j                  |d
   j                  d   t        j                  d             d S )Nr   r   r   r3   CrF   Fr  )	reflectedr  r   catr2   c                     | S r   r   r   s    r   r  zQTestLiteralLists.test_literal_value_passthrough.<locals>.ol_bar.<locals>.<lambda>   r  r   )r  r  r	   LiteralListr  rJ   r   literalArrayr  r  r  )r   lvr   s     r   r  z?TestLiteralLists.test_literal_value_passthrough.<locals>.ol_bar  s6   OOJq%*;*;<=BOOJr401RUEMM!$45RUEMM#$67RUEKKq#$FGRUEJJuzzU=F%H IOOJr!ue.?.?@ARU003U]]55IJRU003U]]25FGr   c                  ^    g d} ddg}t        j                  d      }dd|| |g} |       y )Nr  r  r2   rf   r   r   r  rg  )otherhomogeneouslistotherheterogeneouslistrg  rY   ry  s       r   r  z<TestLiteralLists.test_literal_value_passthrough.<locals>.foo"  s9    #, &+R["HHQKEC 46LMAFr   r  r  s   `  @r   test_literal_value_passthroughz/TestLiteralLists.test_literal_value_passthrough  s;    	 
#	 
	 
	 
	 	r   c                 ^     d t               fd       }t        fd       } |        y )Nc                      y r   r   r   s    r   ry  zETestLiteralLists.test_literal_value_involved_passthrough.<locals>.bar.  r  r   c                 R   j                  t        | t        j                               | j                  }t        j
                  d      t        j
                  d      t        j
                  d      t        j                  t        j                  dd      i}t        j                  |      }t        j
                  d      t        j                  t        j
                  d      t        j
                  d      t        j                  t        j                  t        j                  ddi      |g      t        j
                  d	      t        j
                  d
      t        j
                  d      t        j                  t        j                  d      i}fd ||       d S )NghrZ   r   r  r   r  )r  r   r3   r.   F)r  c                    t        | t        j                        r`t        |t        j                        rFt        | j                  |j                        D ]"  \  }} | j                  |j                         $ y t        | t
              r.t        |t
              rt        | |      D ]  \  }} ||        y t        | t        j                        rwt        |t        j                        r]t        | j                  j                         |j                  j                               D ]  \  \  }}\  }} ||        ||        y t        | t              rYt        |t              rIt        | j                         |j                               D ]  \  \  }}\  }} ||        ||        y 	j                  | |       y r   )
r  r	   r  r  r  rJ   LiteralStrKeyDictitemsdictr   )
r   r   rZ   jkivikjvj
check_samer   s
           r   r0  z\TestLiteralLists.test_literal_value_involved_passthrough.<locals>.ol_bar.<locals>.check_sameD  s]   q%"3"34q%"3"34 #AOOQ__ E1"1??AOOD !F D)4( #Aq	1"1a( !* E$;$;< E$;$;<.1!//2G2G2I23//2G2G2I/K*R(2r"2r*"2r*/K !D) D).1!'')QWWY.G*R(2r"2r*"2r* /H $$Q*r   c                     | S r   r   r   s    r   r  zZTestLiteralLists.test_literal_value_involved_passthrough.<locals>.ol_bar.<locals>.<lambda>[  r  r   )r  r  r	   r(  r  r  r  r  r  DictTypeunicode_typer  r  
complex128)r   dlvinner_literal
inner_dictouter_literalr0  r   s        @r   r  zHTestLiteralLists.test_literal_value_involved_passthrough.<locals>.ol_bar1  s0   OOJq%*A*ABC//C"]]3/s1C"]]3/!&U]]As!CEM 00?J"]]3/!--u}}Q/?/4}}S/A/4~~383E3E38::BEq0K 0:/; < c*EMM!,<c*EJJu7G7GAF-H
IM+, sM*r   c                  ^    ddddidt        j                  d      dgdg dd	}  |        y )
Nr   r   r  r&  rf   )r%  rZ   r3   )r  r                @)r   r   r.   r  rY   ry  s    r   r  zETestLiteralLists.test_literal_value_involved_passthrough.<locals>.foo]  s5    
 #Qxs!)EFQ"$AFr   r  r  s   `  @r   'test_literal_value_involved_passthroughz8TestLiteralLists.test_literal_value_involved_passthrough,  s<    	 
#)	 
)	V 
	 
	 	r   c           
         d }d }d }d }d }d }d }d }d	 }	d
 }
|||||||||	|
f
}|D ]  }| j                  |j                        5  | j                  t        j                        5 } t        |              d d d        d}| j                  |t        j                               d d d         y # 1 sw Y   ;xY w# 1 sw Y   xY w)Nc                      ddg} d| d<   y )Nr   r   r   r   r   r   s    r   staticsetitemz=TestLiteralLists.test_mutation_failure.<locals>.staticsetitemj  s    aAAaDr   c                      ddg} | d= y Nr   r   r   r   r   s    r   delitemz7TestLiteralLists.test_mutation_failure.<locals>.delitemn  s    aA!r   c                  .    ddg} | j                  d       y )Nr   r   r  r   r   s    r   rR   z6TestLiteralLists.test_mutation_failure.<locals>.appendr  s    aAHHRLr   c                  2    ddg} | j                  ddg       y )Nr   r   r  r:  )rb   r   s    r   rb   z6TestLiteralLists.test_mutation_failure.<locals>.extendv  s    aAHHb"Xr   c                  0    ddg} | j                  dd       y )Nr   r   r   r  )r   r   s    r   r   z6TestLiteralLists.test_mutation_failure.<locals>.insertz  s    aAHHQOr   c                  .    ddg} | j                  d       y Nr   r   )r   r   s    r   r   z6TestLiteralLists.test_mutation_failure.<locals>.remove~  s    aAHHSMr   c                  ,    ddg} | j                          y rG  r%  r   s    r   rj   z3TestLiteralLists.test_mutation_failure.<locals>.pop  s    aAEEGr   c                  ,    ddg} | j                          y rG  )r   r   s    r   r   z5TestLiteralLists.test_mutation_failure.<locals>.clear  s    aAGGIr   c                  ,    ddg} | j                          y rG  )sortr   s    r   rK  z4TestLiteralLists.test_mutation_failure.<locals>.sort  s    aAFFHr   c                  ,    ddg} | j                          y rG  )r   r   s    r   r   z7TestLiteralLists.test_mutation_failure.<locals>.reverse  s    aAIIKr   Cannot mutate a literal list)	subTestr  r  r
   r  r   r	  r  r  )r   r?  rB  rR   rb   r   r   rj   r   rK  r   illegalstestr
  r  s                  r   test_mutation_failurez&TestLiteralLists.test_mutation_failureh  s    										 "7FFFFC4* Ddmm,&&v'9'9:fDJL ;7fc&*:*:&;<	 -, :: -,s$    C+B6</C6B?;CC	c                 f    t         d        }| j                  |j                          |              y )Nc                  `    g d} g }dD ]"  }|j                  | j                  |             $ |S )Nr   r   r   r3   r   rF   r   r   r   rf   r.   abc)rR   r   rY   r{  r   s      r   r  z(TestLiteralLists.test_count.<locals>.foo  s/    =AA$ Hr   r   r   py_funcr  s     r   r|  zTestLiteralLists.test_count  .    		 
	 	.r   c                 f    t         d        }| j                  |j                          |              y )Nc                       g d} t        |       S )NrT  r!   r   s    r   r  z&TestLiteralLists.test_len.<locals>.foo  s    =Aq6Mr   rW  r  s     r   r1  zTestLiteralLists.test_len  s.    		 
	 	.r   c                 f    t         d        }| j                  |j                          |              y )Nc                  X    g d} g }t        d      D ]  }|j                  || v         |S )NrT  )r   r   r3   r   )r   rR   rV  s      r   r  z+TestLiteralLists.test_contains.<locals>.foo  s1    =AA#$45a  6Hr   rW  r  s     r   r^  zTestLiteralLists.test_contains  rY  r   c                     t         d        }| j                  t        j                        5 } |d       d d d        d}| j	                  |t        j                               y # 1 sw Y   1xY w)Nc                     ddg}||    S rG  r   r   rY   s     r   r  z*TestLiteralLists.test_getitem.<locals>.foo  s    aAQ4Kr   r   $Cannot __getitem__ on a literal listr   r  r
   r  r	  r  r  r   r  r
  r  s       r   r3  zTestLiteralLists.test_getitem  s_    		 
	 v112fF 37fc&"2"234 32   	A%%A.c                 f    t         d        }| j                  |j                          |              y )Nc                      ddg} | d   | d   fS rA  r   r   s    r   r  z0TestLiteralLists.test_staticgetitem.<locals>.foo  s    aAQ41:r   rW  r  s     r   test_staticgetitemz#TestLiteralLists.test_staticgetitem  s.    		 
	 	.r   c                     t         d        }| j                  t        j                        5 } |        d d d        d}| j	                  |t        j                               y # 1 sw Y   1xY w)Nc                      g d} | d d S )N)r   r   r   r3   r   r   s    r   r  z6TestLiteralLists.test_staticgetitem_slice.<locals>.foo  s    ARa5Lr   ra  rb  rc  s       r   test_staticgetitem_slicez)TestLiteralLists.test_staticgetitem_slice  s_     
	 
	 v112fE 37fc&"2"234 32   A$$A-c                     t         d        }| j                  t        j                        5 } |d       d d d        d}| j	                  |t        j                               y # 1 sw Y   1xY w)Nc                     ddg}d|| <   y )Nr   r   r   r   r`  s     r   r  z*TestLiteralLists.test_setitem.<locals>.foo  s    aAAaDr   r   rM  rb  rc  s       r   r6  zTestLiteralLists.test_setitem  s_    		 
	 v112fF 3/fc&"2"234 32rd  c                 x    t         d        }dD ])  }| j                  |j                  |       ||             + y )Nc                 6    | dz   dkD  r	ddg}|d   S ddg}|d   S )Nr   rF   r   r   r3   r   r   r`  s     r   r  z(TestLiteralLists.test_unify.<locals>.foo  s5    1uqy!H Q4K !HQ4Kr   )ir   rW  )r   r  r   s      r   
test_unifyzTestLiteralLists.test_unify  s<    		 
	 AS[[^SV4 r   c                     t         d        }| j                  t        j                        5 } |d       d d d        d}| j	                  |t        j                               y # 1 sw Y   1xY w)Nc                 H    | dz   dkD  rg d}nddg}|d   |d   |d   |d   fS )Nr   rF   )r   r   r  r   r3   r   r   r`  s     r   r  z,TestLiteralLists.test_not_unify.<locals>.foo  s:    1uqy !HQ41qtQqT))r   r   zCannot unify LiteralListrb  rc  s       r   test_not_unifyzTestLiteralLists.test_not_unify  s_    		* 
	* v112fH 3+fc&"2"234 32rd  c                     t         d        }| j                  t        j                        5 } |        d d d        d}| j	                  |t        j                               y # 1 sw Y   1xY w)Nc                  .    ddg} | j                  d       y rG  )r   r   s    r   r  z(TestLiteralLists.test_index.<locals>.foo  s    aAGGCLr   z+list.index is unsupported for literal listsrb  rc  s       r   
test_indexzTestLiteralLists.test_index  s]    		 
	 v112fE 3>fc&"2"234 32rk  c                 f    t         d        }| j                   |       |j                                y )Nc                  :    ddgj                         } | d   | d   fS rA  )r   r   s    r   r  z'TestLiteralLists.test_copy.<locals>.foo  s#    aAQ41:r   rW  r  s     r   r  zTestLiteralLists.test_copy  s.    		 
	 	.r   c                 ^     d t               fd       }t        fd       } |        y )Nc                      y r   r   r   s    r   ry  z3TestLiteralLists.test_tuple_not_in_mro.<locals>.bar  r  r   c                     j                  t        | t        j                               j	                  t        | t        j
                               d S )Nc                      y)N.r   r   s    r   r  zHTestLiteralLists.test_tuple_not_in_mro.<locals>.ol_bar.<locals>.<lambda>!  s    Sr   )assertFalser  r	   	BaseTupler  r  )r   r   s    r   r  z6TestLiteralLists.test_tuple_not_in_mro.<locals>.ol_bar  s;    Z5??;<OOJq%*;*;<=  r   c                      ddg}  |        y rG  r   r;  s    r   r  z3TestLiteralLists.test_tuple_not_in_mro.<locals>.foo#  s    aAFr   r  r  s   `  @r   test_tuple_not_in_mroz&TestLiteralLists.test_tuple_not_in_mro  s;    	 
#	! 
	!
 
	 
	 	r   N)r  r  r  r  r!  r<  rQ  r|  r1  r^  r3  rg  rj  r6  rp  rs  rv  r  r  r   r   r   r  r    sT    <:x2=h	//	/
5/5
555	5/r   r  __main__)kcollectionsr   r  r:  r;   r  ctypesr  numpyr  numbar   r   r   r   r   r  
numba.corer	   r
   numba.tests.supportr   r   numba.experimentalr   numba.core.extendingr   r   r   r   r#   r&   r(   r,   r/   r7   r9   r=   r@   rC   rG   rM   rP   rS   r[   r^   rd   rg   rk   rm   rp   rs   ru   rz   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  rV  rX  objectr  r  r  r  r  r  mainr   r   r   <module>r     sK   "    
   > >  $ 9 ' ) 	7J'	"*54>&5

	



#



+:
t3 t3n@H?H @HH@2( @2F*/8 *z&1 z&|y&( y&x6 @ @5F/ 5Fpu9OX u9pc cL	 zHMMO r   