
    sh                        S r SSKJr  SSKJr  SSKJr  SSKJr  SSKJ	r	  SSK
Jr  SSKJrJrJrJr  SS	KJrJr   " S
 S\\5      r " S S\\5      r " S S\\5      r " S S\\5      r " S S\\5      r " S S\\5      r " S S\\5      r " S S\\5      r " S S\\5      r " S S\\5      r " S S\\5      r " S  S!\\5      r " S" S#\\5      r  " S$ S%\\5      r! " S& S'\\5      r" " S( S)\\5      r# " S* S+\\5      r$ " S, S-\\5      r% " S. S/\\5      r& " S0 S1\\5      r' " S2 S3\\5      r( " S4 S5\5      r)\S6 5       r* " S7 S8\\5      r+g9):ad  Tests for the compiler components of the Numba typed-list.

The tests here should exercise everything within an `@njit` context.
Importantly, the tests should not return a typed list from within such a
context as this would require code from numba/typed/typedlist.py (this is
tested separately).  Tests in this file build on each other in the order of
writing. For example, the first test, tests the creation, append and len of the
list. These are the barebones to do anything useful with a list. The subsequent
test for getitem assumes makes use of these three operations and therefore
assumes that they work.

    )dedent)njit)int32)register_jitable)types)TypingError)TestCaseMemoryLeakMixinoverride_configforbid_codegen)
listobjectListc                   *    \ rS rSrSrS rS rS rSrg)TestCreateAppendLength   z$Test list creation, append and len. c                 ^    [         S 5       nS H  nU R                  U" U5      U5        M     g )Nc                     [         R                  " [        5      n[        U 5       H  nUR	                  U5        M     [        U5      $ Nr   new_listr   rangeappendlennlis      o/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/tests/test_listobject.pyfoo4TestCreateAppendLength.test_list_create.<locals>.foo   s4    ##E*A1X q6M    r         d   r   assertEqualselfr   r   s      r   test_list_create'TestCreateAppendLength.test_list_create   s4    		 
	  ASVQ'  r!   c                 
   [        SS5         [        5          [        R                  " [        5      nU R                  [        U5      [        5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)NDISABLE_JITT)r   r   r   r   r   r'   typelistr)   r   s     r   test_list_create_no_jit.TestCreateAppendLength.test_list_create_no_jit(   sS    ]D1!''.  a$/ " 21!! 21s"   A4:A#A4#
A1	-A44
Bc                    [        SS5         [        5          [        / SQ5      nU R                  [	        U5      [
        5        U R                  U/ SQ5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr-   Tr#   r$      )r   r   r   r'   r.   r/   r0   s     r    test_nonempty_list_create_no_jit7TestCreateAppendLength.test_nonempty_list_create_no_jit.   s\    ]D1!O  a$/  I. " 21!! 21s#   A;AA*A;*
A8	4A;;
B	 N)	__name__
__module____qualname____firstlineno____doc__r*   r1   r6   __static_attributes__r8   r!   r   r   r      s    .	(0/r!   r   c                       \ rS rSrSrS rSrg)TestBool7   zTest list bool.c                 d    [         S 5       nS H  nU R                  U" U5      US:  5        M      g )Nc                     [         R                  " [        5      n[        U 5       H  nUR	                  U5        M     [        U5      $ r   )r   r   r   r   r   boolr   s      r   r   $TestBool.test_list_bool.<locals>.foo;   s4    ##E*A1X 7Nr!   r"   r   r&   r(   s      r   test_list_boolTestBool.test_list_bool:   s8    		 
	  ASVQU+  r!   r8   N)r9   r:   r;   r<   r=   rF   r>   r8   r!   r   r@   r@   7   s
    	,r!   r@   c                        \ rS rSrS rS rSrg)TestAllocationF   c                     [         S 5       n[        S5       H  nU R                  U" U5      U5        M     [         S 5       n[        S5       H  nU R                  U" U5      U5        M     g )Nc                 T    [         R                  " [        U S9nUR                  5       $ )N)	allocatedr   r   r   
_allocatedr   r   s     r   	foo_kwarg6TestAllocation.test_list_allocation.<locals>.foo_kwargI   s     ##EQ7A<<>!r!      c                 X    [         R                  " [        U 5      nUR                  5       $ r   rN   rP   s     r   
foo_posarg7TestAllocation.test_list_allocation.<locals>.foo_posargQ   s     ##E1-A<<>!r!   r   r   r'   )r)   rQ   r   rU   s       r   test_list_allocation#TestAllocation.test_list_allocationH   sp    		" 
	" rAYq\1-  
	" 
	" rAZ]A. r!   c                     [         S 5       nU R                  [        5       nU R                  U" 5       S5        S S S 5        U R	                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nc                  X    [         R                  " [        S5      n U R                  5       $ NrN   r   s    r   r   9TestAllocation.test_list_allocation_negative.<locals>.fooY   s     ##E2.A<<>!r!   r]   z expecting *allocated* to be >= 0)r   assertRaisesRuntimeErrorr'   assertInstr	exceptionr)   r   raisess      r   test_list_allocation_negative,TestAllocation.test_list_allocation_negativeX   sc    		" 
	" |,SUB' -.  !	
 -,s   A((
A6r8   N)r9   r:   r;   r<   rX   rg   r>   r8   r!   r   rI   rI   F   s    / 
r!   rI   c                       \ rS rSrS rSrg)TestToFromMeminfof   c                 $  ^ [         S 5       n[        R                  " [        5      m[         U4S j5       nU" 5       nU R	                  UR
                  S5        [        U" U5      5      n[        [        SS5      5      nU R	                  XE5        g)z2
Exercise listobject.{_as_meminfo, _from_meminfo}
c                      [         R                  " [        5      n [        SS5       H  nU R	                  U5        M     [         R
                  " U 5      $ N
      )r   r   r   r   r   _as_meminfor   r   s     r   boxer:TestToFromMeminfo.test_list_to_from_meminfo.<locals>.boxerm   s>    ##E*A2r] #))!,,r!   c                    > [         R                  " U T5      nUS   US   US   US   US   US   US   US   US	   US
   4
$ )Nr   r#   r$   r5                  	   )r   _from_meminfo)mir   lsttypes     r   unboxer<TestToFromMeminfo.test_list_to_from_meminfo.<locals>.unboxerv   sX    ((W5AQ41qtQqT1Q41qtQqT1Q41MMr!   r#   ro   rp   N)r   r   ListTyper   r'   refcountr/   r   )r)   rs   r   r}   receivedexpectedr~   s         @r   test_list_to_from_meminfo+TestToFromMeminfo.test_list_to_from_meminfoh   s    
 
	- 
	- ..'		N 
	N Wa($b"&,r!   r8   N)r9   r:   r;   r<   r   r>   r8   r!   r   rj   rj   f   s    -r!   rj   c                   N    \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rSrg)TestGetitem   zTest list getitem. c                 L    [         S 5       nU R                  U" S5      S5        g )Nc                 b    [         R                  " [        5      nUR                  U 5        US   $ Nr   r   r   r   r   rP   s     r   r   4TestGetitem.test_list_getitem_singleton.<locals>.foo   s&    ##E*AHHQKQ4Kr!   r   r&   r)   r   s     r   test_list_getitem_singleton'TestGetitem.test_list_getitem_singleton   s*    		 
	
 	Q#r!   c                 L    [         S 5       nU R                  U" S5      S5        g )Nc                 b    [         R                  " [        5      nUR                  U 5        US   $ r\   r   rP   s     r   r   BTestGetitem.test_list_getitem_singleton_negtive_index.<locals>.foo   s&    ##E*AHHQKR5Lr!   r   r&   r   s     r   )test_list_getitem_singleton_negtive_index5TestGetitem.test_list_getitem_singleton_negtive_index   s*    		 
	
 	Q#r!   c                 b    [         S 5       nS H  u  p#U R                  U" U5      U5        M     g )Nc                     [         R                  " [        5      n[        SS5       H  nUR	                  U5        M     X   $ rn   r   r   r   r   r   r   r   js      r   r   3TestGetitem.test_list_getitem_multiple.<locals>.foo   4    ##E*A2r] #4Kr!   r   ro   )r{      )rv      )   )r]   r   )ro   r&   r)   r   r   r   s       r   test_list_getitem_multiple&TestGetitem.test_list_getitem_multiple   s8    		 
	 NCASVQ' Nr!   c                    U R                  5         [        S 5       nS HN  nU R                  [        5       nU" U5        S S S 5        U R	                  S[        WR                  5      5        MP     g ! , (       d  f       N8= f)Nc                 >    [         R                  " [        5      nX   $ r   r   r   r   r   r   s     r   r   <TestGetitem.test_list_getitem_empty_index_error.<locals>.foo       ##E*A4Kr!   )r#   r   r]   list index out of rangedisable_leak_checkr   r`   
IndexErrorrb   rc   rd   r)   r   r   rf   s       r   #test_list_getitem_empty_index_error/TestGetitem.test_list_getitem_empty_index_error   sl    !		 
	 A"":.&A /MM)F$$% ..   	A22
B 	c                    U R                  5         [        S 5       nS HN  nU R                  [        5       nU" U5        S S S 5        U R	                  S[        WR                  5      5        MP     g ! , (       d  f       N8= f)Nc                     [         R                  " [        5      n[        SS5       H  nUR	                  U5        M     X   $ rn   r   r   s      r   r   ?TestGetitem.test_list_getitem_multiple_index_error.<locals>.foo   r   r!   )ro   r   r   r   s       r   &test_list_getitem_multiple_index_error2TestGetitem.test_list_getitem_multiple_index_error   sl    !		 
	 A"":.&A /MM)F$$% ..r   c                    U R                  5         [        S 5       nS HN  nU R                  [        5       nU" U5        S S S 5        U R	                  S[        WR                  5      5        MP     g ! , (       d  f       N8= f)Nc                 >    [         R                  " [        5      nX   $ r   r   r   s     r   r   =TestGetitem.test_list_getitem_empty_typing_error.<locals>.foo   r   r!   xyzg      ?y              ?'list indices must be integers or slicesr   r   r`   r   rb   rc   rd   r   s       r   $test_list_getitem_empty_typing_error0TestGetitem.test_list_getitem_empty_typing_error   sl    !		 
	  A"";/6A 0MM9F$$%  //r   c                     [         S 5       n[        R                   H!  nU R                  U" U" S5      5      S5        M#     g )Nc                 `    [         R                  " [        5      nUR                  S5        X   $ r   r   r   s     r   r   ATestGetitem.test_list_getitem_integer_types_as_index.<locals>.foo   s$    ##E*AHHQK4Kr!   r   r   r   signed_domainr'   r)   r   ts      r   (test_list_getitem_integer_types_as_index4TestGetitem.test_list_getitem_integer_types_as_index   s>    		 
	 %%AS!A$[!, &r!   c                    ^ [         R                   H)  m[        U4S j5       nU R                  U" 5       S5        M+     g )Nc                  p   > [         R                  " [        5      n U R                  S5        U T" S5         $ )Nry   r   r   r   tys    r   r   ETestGetitem.test_list_getitem_different_sized_uint_index.<locals>.foo   s+    ''.Axr!   ry   )r   unsigned_domainr   r'   r)   r   r   s     @r   ,test_list_getitem_different_sized_uint_index8TestGetitem.test_list_getitem_different_sized_uint_index   s;    
 ''B   
 SUA& (r!   c                    ^ [         R                   H)  m[        U4S j5       nU R                  U" 5       S5        M+     g )Nc                     > [         R                  " [        5      n U R                  S5        U T" S5         U T" S5         4$ )Nry   r   r]   r   r   s    r   r   DTestGetitem.test_list_getitem_different_sized_int_index.<locals>.foo   s9    ''.Ax2b6**r!   )ry   ry   )r   r   r   r'   r   s     @r   +test_list_getitem_different_sized_int_index7TestGetitem.test_list_getitem_different_sized_int_index   s;    
 %%B+ +
 SUF+ &r!   r8   N)r9   r:   r;   r<   r=   r   r   r   r   r   r   r   r   r   r>   r8   r!   r   r   r      s2    $$	( $ -',r!   r   c                       \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rSrg)TestGetitemSlice   z-Test list getitem when indexing with slices. c                 J    [         S 5       nU R                  U" 5       S5        g )Nc                  V    [         R                  " [        5      n U S S  n[        U5      $ r   )r   r   r   r   r   r   s     r   r   DTestGetitemSlice.test_list_getitem_empty_slice_defaults.<locals>.foo  s$    ##E*A!Aq6Mr!   r   r&   r   s     r   &test_list_getitem_empty_slice_defaults7TestGetitemSlice.test_list_getitem_empty_slice_defaults  (    		 
	
 	"r!   c                 J    [         S 5       nU R                  U" 5       S5        g )Nc                  x    [         R                  " [        5      n U R                  S5        U S S  n[	        U5      $ r   r   r   r   r   r   r   s     r   r   HTestGetitemSlice.test_list_getitem_singleton_slice_defaults.<locals>.foo  s/    ##E*AHHQK!Aq6Mr!   r#   r&   r   s     r   *test_list_getitem_singleton_slice_defaults;TestGetitemSlice.test_list_getitem_singleton_slice_defaults  (    		 
	 	"r!   c                 b    [         S 5       nS H  u  p#U R                  U" U5      U5        M     g )Nc                     [         R                  " [        5      n[        SS5       H  nUR	                  U5        M     US S  nX0   $ rn   r   )r   r   r   r   s       r   r   GTestGetitemSlice.test_list_getitem_multiple_slice_defaults.<locals>.foo  s=    ##E*A2r] #!A4Kr!   r   r&   r   s       r   )test_list_getitem_multiple_slice_defaults:TestGetitemSlice.test_list_getitem_multiple_slice_defaults  s8    		 
	 NCASVQ' Nr!   c                 v    [         S 5       nU" 5       u  p#U R                  US5        U R                  US5        g )Nc                      [         R                  " [        5      n [        SS5       H  nU R	                  U5        M     U SS  n[        U5      US   US   US   US   US   44$ 	Nro   rp   rw   r   r#   r$   r5   rv   r   r   r   r   s      r   r   HTestGetitemSlice.test_list_getitem_multiple_slice_pos_start.<locals>.foo"  sf    ##E*A2r] #!"Aq6AaD!A$!adAaD999r!   rw   r   rS         r   r&   r)   r   lengthitemss       r   *test_list_getitem_multiple_slice_pos_start;TestGetitemSlice.test_list_getitem_multiple_slice_pos_start!  @    		: 
	: # 45r!   c                 v    [         S 5       nU" 5       u  p#U R                  US5        U R                  US5        g )Nc                      [         R                  " [        5      n [        SS5       H  nU R	                  U5        M     U S S n[        U5      US   US   US   US   US   44$ r   r   r   s      r   r   GTestGetitemSlice.test_list_getitem_multiple_slice_pos_stop.<locals>.foo/  sf    ##E*A2r] #"1Aq6AaD!A$!adAaD999r!   rw   ro            r   r&   r   s       r   )test_list_getitem_multiple_slice_pos_stop:TestGetitemSlice.test_list_getitem_multiple_slice_pos_stop.  r   r!   c                 v    [         S 5       nU" 5       u  p#U R                  US5        U R                  US5        g )Nc                      [         R                  " [        5      n [        SS5       H  nU R	                  U5        M     U SS n[        U5      US   US   US   US   US   44$ )	Nro   rp   r$   ry   r   r#   r5   rv   r   r   s      r   r   QTestGetitemSlice.test_list_getitem_multiple_slice_pos_start_pos_stop.<locals>.foo<  sf    ##E*A2r] #!AAq6AaD!A$!adAaD999r!   rw   )r  r  r   r   rS   r&   r   s       r   3test_list_getitem_multiple_slice_pos_start_pos_stopDTestGetitemSlice.test_list_getitem_multiple_slice_pos_start_pos_stop;  r   r!   c                 v    [         S 5       nU" 5       u  p#U R                  US5        U R                  US5        g )Nc                      [         R                  " [        5      n [        SS5       H  nU R	                  U5        M     U SSS2   n[        U5      US   US   US   US   44$ )Nro   rp   r#   r{   r$   r   r5   r   r   s      r   r   ZTestGetitemSlice.test_list_getitem_multiple_slice_pos_start_pos_stop_pos_step.<locals>.fooI  sd    ##E*A2r] #!Aa%Aq6AaD!A$!ad333r!   rv   )r  r  r   r   r&   r   s       r   <test_list_getitem_multiple_slice_pos_start_pos_stop_pos_stepMTestGetitemSlice.test_list_getitem_multiple_slice_pos_start_pos_stop_pos_stepH  s@    		4 
	4 # 01r!   c                 v    [         S 5       nU" 5       u  p#U R                  US5        U R                  US5        g )Nc                      [         R                  " [        5      n [        SS5       H  nU R	                  U5        M     U SS  n[        U5      US   US   US   US   US   44$ 	Nro   rp   r   r   r#   r$   r5   rv   r   r   s      r   r   HTestGetitemSlice.test_list_getitem_multiple_slice_neg_start.<locals>.fooV  sf    ##E*A2r] #"#Aq6AaD!A$!adAaD999r!   rw   r   r&   r   s       r   *test_list_getitem_multiple_slice_neg_start;TestGetitemSlice.test_list_getitem_multiple_slice_neg_startU  r   r!   c                 v    [         S 5       nU" 5       u  p#U R                  US5        U R                  US5        g )Nc                      [         R                  " [        5      n [        SS5       H  nU R	                  U5        M     U S S n[        U5      US   US   US   US   US   44$ r  r   r   s      r   r   GTestGetitemSlice.test_list_getitem_multiple_slice_neg_stop.<locals>.fooc  sf    ##E*A2r] ##2Aq6AaD!A$!adAaD999r!   rw   r  r&   r   s       r   )test_list_getitem_multiple_slice_neg_stop:TestGetitemSlice.test_list_getitem_multiple_slice_neg_stopb  r   r!   c                 v    [         S 5       nU" 5       u  p#U R                  US5        U R                  US5        g )Nc                      [         R                  " [        5      n [        SS5       H  nU R	                  U5        M     U S S S2   n[        U5      US   US   US   US   US   44$ )	Nro   rp   r   r#   r$   r5   rv   r   r   s      r   r   GTestGetitemSlice.test_list_getitem_multiple_slice_neg_step.<locals>.foop  sh    ##E*A2r] #$B$Aq6AaD!A$!adAaD999r!   rw   )r   r   r   r  r  r&   r   s       r   )test_list_getitem_multiple_slice_neg_step:TestGetitemSlice.test_list_getitem_multiple_slice_neg_stepo  r   r!   c                 v    [         S 5       nU" 5       u  p#U R                  US5        U R                  US5        g )Nc                      [         R                  " [        5      n [        SS5       H  nU R	                  U5        M     U SS S2   n[        U5      US   US   US   US   US   44$ 	Nro   rp   rv   r]   r   r#   r$   r5   r   r   s      r   r   QTestGetitemSlice.test_list_getitem_multiple_slice_pos_start_neg_step.<locals>.foo}  sj    ##E*A2r] #!%R%Aq6AaD!A$!adAaD999r!   rw   r   r  r  r  ro   r&   r   s       r   3test_list_getitem_multiple_slice_pos_start_neg_stepDTestGetitemSlice.test_list_getitem_multiple_slice_pos_start_neg_step|  r   r!   c                 v    [         S 5       nU" 5       u  p#U R                  US5        U R                  US5        g )Nc                      [         R                  " [        5      n [        SS5       H  nU R	                  U5        M     U SS S2   n[        U5      US   US   US   US   US	   44$ 
Nro   rp   ir]   r   r#   r$   r5   rv   r   r   s      r   r   QTestGetitemSlice.test_list_getitem_multiple_slice_neg_start_neg_step.<locals>.foo  sj    ##E*A2r] #"&b&	Aq6AaD!A$!adAaD999r!   rw   r(  r&   r   s       r   3test_list_getitem_multiple_slice_neg_start_neg_stepDTestGetitemSlice.test_list_getitem_multiple_slice_neg_start_neg_step  r   r!   c                 v    [         S 5       nU" 5       u  p#U R                  US5        U R                  US5        g )Nc                      [         R                  " [        5      n [        SS5       H  nU R	                  U5        M     U S SS2   n[        U5      US   US   US   US   US   44$ r&  r   r   s      r   r   PTestGetitemSlice.test_list_getitem_multiple_slice_pos_stop_neg_step.<locals>.foo  sj    ##E*A2r] #%1R%Aq6AaD!A$!adAaD999r!   rw   r   r   r   rS   r   r&   r   s       r   2test_list_getitem_multiple_slice_pos_stop_neg_stepCTestGetitemSlice.test_list_getitem_multiple_slice_pos_stop_neg_step  r   r!   c                 v    [         S 5       nU" 5       u  p#U R                  US5        U R                  US5        g )Nc                      [         R                  " [        5      n [        SS5       H  nU R	                  U5        M     U S SS2   n[        U5      US   US   US   US   US	   44$ r-  r   r   s      r   r   PTestGetitemSlice.test_list_getitem_multiple_slice_neg_stop_neg_step.<locals>.foo  sj    ##E*A2r] #&2b&	Aq6AaD!A$!adAaD999r!   rw   r4  r&   r   s       r   2test_list_getitem_multiple_slice_neg_stop_neg_stepCTestGetitemSlice.test_list_getitem_multiple_slice_neg_stop_neg_step  r   r!   c                 v    [         S 5       nU" 5       u  p#U R                  US5        U R                  US5        g )Nc                      [         R                  " [        5      n [        SS5       H  nU R	                  U5        M     U SSS2   n[        U5      US   US   US   US   US	   44$ )
Nro   rp   rz   r5   r]   r   r#   r$   rv   r   r   s      r   r   ZTestGetitemSlice.test_list_getitem_multiple_slice_pos_start_pos_stop_neg_step.<locals>.foo  sj    ##E*A2r] #!Ab&	Aq6AaD!A$!adAaD999r!   rw   r   r   rS   r   r   r&   r   s       r   <test_list_getitem_multiple_slice_pos_start_pos_stop_neg_stepMTestGetitemSlice.test_list_getitem_multiple_slice_pos_start_pos_stop_neg_step  r   r!   c                 v    [         S 5       nU" 5       u  p#U R                  US5        U R                  US5        g )Nc                      [         R                  " [        5      n [        SS5       H  nU R	                  U5        M     U SSS2   n[        U5      US   US   US   US	   US
   44$ )Nro   rp   r   ir]   r   r#   r$   r5   rv   r   r   s      r   r   ZTestGetitemSlice.test_list_getitem_multiple_slice_neg_start_neg_stop_neg_step.<locals>.foo  sj    ##E*A2r] #"R(Aq6AaD!A$!adAaD999r!   rw   r?  r&   r   s       r   <test_list_getitem_multiple_slice_neg_start_neg_stop_neg_stepMTestGetitemSlice.test_list_getitem_multiple_slice_neg_start_neg_stop_neg_step  r   r!   c                 J    [         S 5       nU R                  U" 5       S5        g )Nc                      [         R                  " [        5      n [        SS5       H  nU R	                  U5        M     U SS  n[        U5      $ rn   r   r   s      r   r   QTestGetitemSlice.test_list_getitem_multiple_slice_start_out_of_range.<locals>.foo  sA    ##E*A2r] #"#Aq6Mr!   r   r&   r   s     r   3test_list_getitem_multiple_slice_start_out_of_rangeDTestGetitemSlice.test_list_getitem_multiple_slice_start_out_of_range  (    		 
	 	"r!   c                 J    [         S 5       nU R                  U" 5       S5        g )Nc                      [         R                  " [        5      n [        SS5       H  nU R	                  U5        M     U S S n[        U5      $ Nro   rp   r   r   r   s      r   r   HTestGetitemSlice.test_list_getitem_multiple_slice_stop_zero.<locals>.foo  sA    ##E*A2r] #"1Aq6Mr!   r   r&   r   s     r   *test_list_getitem_multiple_slice_stop_zero;TestGetitemSlice.test_list_getitem_multiple_slice_stop_zero  rL  r!   c                     U R                  5         [        S 5       nU R                  [        5       nU" 5         S S S 5        U R	                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nc                      [         R                  " [        5      n [        SS5       H  nU R	                  U5        M     U S S S2     g rO  r   r   r   s     r   r   TTestGetitemSlice.test_list_getitem_multiple_slice_zero_step_index_error.<locals>.foo  s8    ##E*A2r] #ccFr!   zslice step cannot be zeror   r   r`   
ValueErrorrb   rc   rd   re   s      r   6test_list_getitem_multiple_slice_zero_step_index_errorGTestGetitemSlice.test_list_getitem_multiple_slice_zero_step_index_error  sb    !		 
	 z*fE +'  !	
 +*   A((
A6r8   N)r9   r:   r;   r<   r=   r   r   r   r   r  r  r  r  r  r"  r)  r/  r5  r:  r@  rE  rJ  rQ  rY  r>   r8   r!   r   r   r      sd    7##
(6662666666666	#	#
r!   r   c                   H    \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rSrg)TestSetitemi  zTest list setitem. c                 ^    [         S 5       nS H  nU R                  U" U5      U5        M     g )Nc                 j    [         R                  " [        5      nUR                  S5        XS'   US   $ r   r   rP   s     r   r   4TestSetitem.test_list_setitem_singleton.<locals>.foo  s-    ##E*AHHQKaDQ4Kr!   r"   r&   r(   s      r   test_list_setitem_singleton'TestSetitem.test_list_setitem_singleton  s4    		 
	  ASVQ'  r!   c                 ^    [         S 5       nS H  nU R                  U" U5      U5        M     g )Nc                 j    [         R                  " [        5      nUR                  S5        XS'   US   $ )Nr   r]   r   rP   s     r   r   CTestSetitem.test_list_setitem_singleton_negative_index.<locals>.foo  s-    ##E*AHHQKaDR5Lr!   r"   r&   r(   s      r   *test_list_setitem_singleton_negative_index6TestSetitem.test_list_setitem_singleton_negative_index   s4    		 
	  ASVQ'  r!   c                    U R                  5         [        S 5       nU R                  [        5         U" S5        S S S 5        U R                  [        5         U" S5        S S S 5        g ! , (       d  f       N5= f! , (       d  f       g = f)Nc                 b    [         R                  " [        5      nUR                  S5        SX'   g Nr   r#   r   r   s     r   r   @TestSetitem.test_list_setitem_singleton_index_error.<locals>.foo  s$    ##E*AHHQKADr!   r#   r   r   r   r`   r   r   s     r   'test_list_setitem_singleton_index_error3TestSetitem.test_list_setitem_singleton_index_error  sm    !		 
	
 z*F + z*G +* +* +*   	A*	A;*
A8;
B	c                     [         S 5       n[        [        SS5      [        SS5      5       H  u  p#U R                  U" X#5      U5        M     g )Nc                     [         R                  " [        5      n[        SS5       H  nUR	                  U5        M     XU '   X    $ rn   r   )r   r   r   r   s       r   r   3TestSetitem.test_list_setitem_multiple.<locals>.foo  s;    ##E*A2r] #aD4Kr!   r   ro   rp      r   zipr   r'   r)   r   r   r   s       r   test_list_setitem_multiple&TestSetitem.test_list_setitem_multiple  sI    		 
	 uQr{E"RL1CASY* 2r!   c                    U R                  5         [        S 5       nU R                  [        5         U" S5        S S S 5        U R                  [        5         U" S5        S S S 5        g ! , (       d  f       N5= f! , (       d  f       g = f)Nc                     [         R                  " [        5      n[        SS5       H  nUR	                  U5        M     SX'   g rO  r   r   s      r   r   ?TestSetitem.test_list_setitem_multiple_index_error.<locals>.foo*  s4    ##E*A2r] #ADr!   ro   r   rl  r   s     r   &test_list_setitem_multiple_index_error2TestSetitem.test_list_setitem_multiple_index_error'  sm    !		 
	 z*G + z*H +* +* +*ro  c                    U R                  5         [        S 5       nS HN  nU R                  [        5       nU" U5        S S S 5        U R	                  S[        WR                  5      5        MP     g ! , (       d  f       N8= f)Nc                 b    [         R                  " [        5      nUR                  S5        SX'   g rj  r   r   s     r   r   JTestSetitem.test_list_setitem_singleton_typing_error_on_index.<locals>.foo:  s$    ##E*AHHQKADr!   r   r   r   r   s       r   1test_list_setitem_singleton_typing_error_on_index=TestSetitem.test_list_setitem_singleton_typing_error_on_index7  sl    !		 
	  A"";/6A 0MM9F$$%  //r   c                     U R                  5         [        S 5       nU R                  [        5       nU" 5         S S S 5        U R	                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nc                  d    [         R                  " [        5      n U R                  S5        SU S S & g rj  r   r^   s    r   r   ITestSetitem.test_list_setitem_singleton_typing_error_on_item.<locals>.fooL  s&    ##E*AHHQKAaDr!   zFcan only assign an iterable when using a slice with assignment/setitemr   re   s      r   0test_list_setitem_singleton_typing_error_on_item<TestSetitem.test_list_setitem_singleton_typing_error_on_itemI  sd    !		 
	 {+vE ,&  !	
 ,+r[  c                     [         S 5       n[        R                   H!  nU R                  U" U" S5      5      S5        M#     g )Nc                 h    [         R                  " [        5      nUR                  S5        SX'   X   $ rj  r   r   s     r   r   ATestSetitem.test_list_setitem_integer_types_as_index.<locals>.foo]  s+    ##E*AHHQKAD4Kr!   r   r#   r   r   s      r   (test_list_setitem_integer_types_as_index4TestSetitem.test_list_setitem_integer_types_as_index[  s>    		 
	 %%AS!A$[!, &r!   r8   N)r9   r:   r;   r<   r=   ra  rf  rm  rw  r|  r  r  r  r>   r8   r!   r   r]  r]    s-    	(	(+ $
$-r!   r]  c                   N    \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rSrg)TestPopij  zTest list pop. c                 J    [         S 5       nU R                  U" 5       S5        g )Nc                      [         R                  " [        5      n U R                  S5        U R	                  5       [        U 5      4$ r   r   r   r   r   popr   r^   s    r   r   ,TestPop.test_list_pop_singleton.<locals>.foon  s1    ##E*AHHQK557CF?"r!   r   r   r&   r   s     r   test_list_pop_singletonTestPop.test_list_pop_singletonm  s(    		# 
	#
 	'r!   c                 |    [         S 5       nU R                  U" S5      S5        U R                  U" S5      S5        g )Nc                     [         R                  " [        5      nUR                  S5        UR	                  U 5      [        U5      4$ r   r  r   s     r   r   2TestPop.test_list_pop_singleton_index.<locals>.foow  s4    ##E*AHHQK558SV##r!   r   r  r]   r&   r   s     r   test_list_pop_singleton_index%TestPop.test_list_pop_singleton_indexv  s>    		$ 
	$
 	Q(R&)r!   c                 J    [         S 5       nU R                  U" 5       S5        g )Nc                      [         R                  " [        5      n S H  nU R                  U5        M     U R	                  5       [        U 5      4$ Nro   r  r  r  rU  s     r   r   +TestPop.test_list_pop_multiple.<locals>.foo  s;    ##E*A! "557CF?"r!   )r  r$   r&   r   s     r   test_list_pop_multipleTestPop.test_list_pop_multiple  s(    		# 
	# 	(r!   c                     [         S 5       nS H  u  p#U R                  U" U5      US45        M!     S H  u  p#U R                  U" U5      US45        M!     g )Nc                     [         R                  " [        5      nS H  nUR                  U5        M     UR	                  U 5      [        U5      4$ r  r  r   s      r   r   1TestPop.test_list_pop_multiple_index.<locals>.foo  s>    ##E*A! "558SV##r!   )r   )r#   r  )r$   r  r$   ))ro   )r   r  )r]   r  r&   rv  s       r   test_list_pop_multiple_index$TestPop.test_list_pop_multiple_index  s`    		$ 
	$ 0DASVaV, 0 3DASVaV, 3r!   c                     [         S 5       n[        R                   H!  nU R                  U" U" S5      5      S5        M#     g )Nc                 z    [         R                  " [        5      nUR                  S5        UR	                  U 5      $ r   r   r   r   r   r  r   s     r   r   9TestPop.test_list_pop_integer_types_as_index.<locals>.foo  s*    ##E*AHHQK558Or!   r   r   r   s      r   $test_list_pop_integer_types_as_index,TestPop.test_list_pop_integer_types_as_index  s>    		 
	 %%AS!A$[!, &r!   c                     U R                  5         [        S 5       nU R                  [        5       nU" 5         S S S 5        U R	                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nc                  X    [         R                  " [        5      n U R                  5         g r   r   r   r   r  r^   s    r   r   =TestPop.test_list_pop_empty_index_error_no_index.<locals>.foo  s    ##E*AEEGr!   pop from empty listr   re   s      r   (test_list_pop_empty_index_error_no_index0TestPop.test_list_pop_empty_index_error_no_index  sb    !		 
	 z*fE +!  !	
 +*r[  c                 d   U R                  5         [        S 5       nU R                  [        5       nU" S5        S S S 5        U R	                  S[        WR                  5      5        U R                  [        5       nU" S5        S S S 5        U R	                  S[        UR                  5      5        U R                  [        5       nU" S5        S S S 5        U R	                  S[        UR                  5      5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       NV= f)Nc                 Z    [         R                  " [        5      nUR                  U 5        g r   r  r   s     r   r   ?TestPop.test_list_pop_empty_index_error_with_index.<locals>.foo  s    ##E*AEE!Hr!   r]   r  r   r#   r   re   s      r   *test_list_pop_empty_index_error_with_index2TestPop.test_list_pop_empty_index_error_with_index  s    !		 
	 z*fG +!  !	

 z*fF +!  !	

 z*fF +!  !	
! +* +* +*s#   	C?=	D	D!?
D
D!
D/c                    U R                  5         [        S 5       nU R                  [        5       nU" S5        S S S 5        U R	                  S[        WR                  5      5        U R                  [        5       nU" S5        S S S 5        U R	                  S[        UR                  5      5        g ! , (       d  f       N= f! , (       d  f       NE= f)Nc                     [         R                  " [        5      nS H  nUR                  U5        M     UR	                  U 5        g r  r  r   s      r   r   ATestPop.test_list_pop_mutiple_index_error_with_index.<locals>.foo  s2    ##E*A! "EE!Hr!   r   r5   r   re   s      r   ,test_list_pop_mutiple_index_error_with_index4TestPop.test_list_pop_mutiple_index_error_with_index  s    !		 
	 z*fG +%  !	

 z*fF +%  !	
 +* +*s   	B4=	C4
C
Cc                    U R                  5         [        S 5       nS HN  nU R                  [        5       nU" U5        S S S 5        U R	                  S[        WR                  5      5        MP     g ! , (       d  f       N8= f)Nc                 z    [         R                  " [        5      nUR                  S5        UR	                  U 5      $ r   r  r   s     r   r   BTestPop.test_list_pop_singleton_typing_error_on_index.<locals>.foo  s*    ##E*AHHQK558Or!   r   z#argument for pop must be an integerr   r   s       r   -test_list_pop_singleton_typing_error_on_index5TestPop.test_list_pop_singleton_typing_error_on_index  sl    !		 
	  A"";/6A 0MM5F$$%  //r   r8   N)r9   r:   r;   r<   r=   r  r  r  r  r  r  r  r  r  r>   r8   r!   r   r  r  j  s2    (*)--

:
0r!   r  c                   T    \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rSrg)TestListObjectDelitemi  zTest list delitem.
    c                 J    [         S 5       nU R                  U" 5       S5        g )Nc                  t    [         R                  " [        5      n U R                  S5        U S	 [	        U 5      $ r   r   r^   s    r   r   DTestListObjectDelitem.test_list_singleton_delitem_index.<locals>.foo  s-    ##E*AHHQK!q6Mr!   r   r&   r   s     r   !test_list_singleton_delitem_index7TestListObjectDelitem.test_list_singleton_delitem_index   (    		 
	
 	"r!   c                 J    [         S 5       nU R                  U" 5       S5        g )Nc                  x    [         R                  " [        5      n U R                  S5        U S S 2	 [	        U 5      $ r   r   r^   s    r   r   MTestListObjectDelitem.test_list_singleton_delitem_slice_defaults.<locals>.foo  s-    ##E*AHHQK!q6Mr!   r   r&   r   s     r   *test_list_singleton_delitem_slice_defaults@TestListObjectDelitem.test_list_singleton_delitem_slice_defaults
  r  r!   c                 J    [         S 5       nU R                  U" 5       S5        g )Nc                  x    [         R                  " [        5      n U R                  S5        U SS 2	 [	        U 5      $ r   r   r^   s    r   r   JTestListObjectDelitem.test_list_singleton_delitem_slice_start.<locals>.foo  s/    ##E*AHHQK!"q6Mr!   r   r&   r   s     r   'test_list_singleton_delitem_slice_start=TestListObjectDelitem.test_list_singleton_delitem_slice_start  r  r!   c                 J    [         S 5       nU R                  U" 5       S5        g )Nc                  x    [         R                  " [        5      n U R                  S5        U S S2	 [	        U 5      $ rj  r   r^   s    r   r   ITestListObjectDelitem.test_list_singleton_delitem_slice_stop.<locals>.foo   s1    ##E*AHHQK"1"q6Mr!   r   r&   r   s     r   &test_list_singleton_delitem_slice_stop<TestListObjectDelitem.test_list_singleton_delitem_slice_stop  r  r!   c                 J    [         S 5       nU R                  U" 5       S5        g )Nc                  x    [         R                  " [        5      n U R                  S5        U SS2	 [	        U 5      $ rj  r   r^   s    r   r   OTestListObjectDelitem.test_list_singleton_delitem_slice_start_stop.<locals>.foo*  s1    ##E*AHHQK!A#q6Mr!   r   r&   r   s     r   ,test_list_singleton_delitem_slice_start_stopBTestListObjectDelitem.test_list_singleton_delitem_slice_start_stop(  r  r!   c                 J    [         S 5       nU R                  U" 5       S5        g )Nc                  z    [         R                  " [        5      n U R                  S5        U SS S2	 [	        U 5      $ rj  r   r^   s    r   r   OTestListObjectDelitem.test_list_singleton_delitem_slice_start_step.<locals>.foo4  s3    ##E*AHHQK!$Q$q6Mr!   r   r&   r   s     r   ,test_list_singleton_delitem_slice_start_stepBTestListObjectDelitem.test_list_singleton_delitem_slice_start_step2  r  r!   c                 J    [         S 5       nU R                  U" 5       S5        g )Nc                  z    [         R                  " [        5      n U R                  S5        U SSS2	 [	        U 5      $ rj  r   r^   s    r   r   TTestListObjectDelitem.test_list_singleton_delitem_slice_start_stop_step.<locals>.foo>  s3    ##E*AHHQK!Aa%q6Mr!   r   r&   r   s     r   1test_list_singleton_delitem_slice_start_stop_stepGTestListObjectDelitem.test_list_singleton_delitem_slice_start_stop_step<  r  r!   c                 J    [         S 5       nU R                  U" 5       S5        g )Nc                      [         R                  " [        5      n S H  nU R                  U5        M     U S	 [	        U 5      U S   U S   4$ )Nr  r   r#   r   rU  s     r   r   =TestListObjectDelitem.test_list_multiple_delitem.<locals>.fooH  sG    ##E*A! "!q61Q41%%r!   )r$   r  r  r&   r   s     r   test_list_multiple_delitem0TestListObjectDelitem.test_list_multiple_delitemF  s(    		& 
	& 	,r!   c                 J    [         S 5       nU R                  U" 5       S5        g )Nc                      [         R                  " [        5      n S H  nU R                  U5        M     U S S 2	 [	        U 5      $ r  r   rU  s     r   r   CTestListObjectDelitem.test_list_multiple_delitem_slice.<locals>.fooS  s7    ##E*A! "!q6Mr!   r   r&   r   s     r    test_list_multiple_delitem_slice6TestListObjectDelitem.test_list_multiple_delitem_sliceQ  s(    		 
	 	"r!   c                 H    [         S 5       nU R                  U" 5       5        g )Nc                     [         R                  " [        5      n [        SS5       H  nU R	                  U5        M     [         R                  " [        5      n[        SS5       H  nUR	                  U5        M     U SS2	 X :H  $ )Nro   rp   iir   )r   r   ks      r   r   HTestListObjectDelitem.test_list_multiple_delitem_off_by_one.<locals>.foo_  sl    ##E*A2r] ###E*A2r] # "S&	6Mr!   r   
assertTruer   s     r   %test_list_multiple_delitem_off_by_one;TestListObjectDelitem.test_list_multiple_delitem_off_by_one\  s&     
		 
		 	r!   r8   N)r9   r:   r;   r<   r=   r  r  r  r  r  r  r  r  r  r  r>   r8   r!   r   r  r    s9    #######	-	#r!   r  c                   *    \ rS rSrSrS rS rS rSrg)TestContainsim  zTest list contains. c                 x    [         S 5       nU R                  U" S5      5        U R                  U" S5      5        g )Nc                 >    [         R                  " [        5      nX;   $ r   r   r   s     r   r   2TestContains.test_list_contains_empty.<locals>.fooq  s    ##E*A6Mr!   r   r#   r   assertFalser   s     r   test_list_contains_empty%TestContains.test_list_contains_emptyp  s:    		 
	 	Q Q r!   c                 x    [         S 5       nU R                  U" S5      5        U R                  U" S5      5        g )Nc                 `    [         R                  " [        5      nUR                  S5        X;   $ r   r   r   s     r   r   6TestContains.test_list_contains_singleton.<locals>.fooz  s$    ##E*AHHQK6Mr!   r   r#   )r   r  r  r   s     r   test_list_contains_singleton)TestContains.test_list_contains_singletony  s8    		 
	
 	AQ r!   c                     [         S 5       n[        SS5       H  nU R                  U" U5      5        M     [        SS5       H  nU R                  U" U5      5        M     g )Nc                     [         R                  " [        5      n[        SS5       H  nUR	                  U5        M     X;   $ rn   r   r   s      r   r   5TestContains.test_list_contains_multiple.<locals>.foo  s4    ##E*A2r] #6Mr!   ro   rp   rs  )r   r   r  r  r(   s      r   test_list_contains_multiple(TestContains.test_list_contains_multiple  sZ    		 
	 r2AOOCF#  r2ASV$ r!   r8   N)	r9   r:   r;   r<   r=   r  r
  r  r>   r8   r!   r   r  r  m  s    !!%r!   r  c                   *    \ rS rSrSrS rS rS rSrg)	TestCounti  zTest list count. c                 L    [         S 5       nU R                  U" S5      S5        g )Nc                 X    [         R                  " [        5      nUR                  U 5      $ r   )r   r   r   countr   s     r   r   ,TestCount.test_list_count_empty.<locals>.foo  s     ##E*A771:r!   ro   r   r&   r   s     r   test_list_count_emptyTestCount.test_list_count_empty  s*    		 
	 	R!$r!   c                 |    [         S 5       nU R                  U" S5      S5        U R                  U" S5      S5        g )Nc                 z    [         R                  " [        5      nUR                  S5        UR	                  U 5      $ Nro   r   r   r   r   r  r   s     r   r   0TestCount.test_list_count_singleton.<locals>.foo  s+    ##E*AHHRL771:r!   r#   r   ro   r&   r   s     r   test_list_count_singleton#TestCount.test_list_count_singleton  s>    		 
	
 	Q#R!$r!   c                     [         S 5       nU R                  U" S5      S5        U R                  U" S5      S5        U R                  U" S5      S5        U R                  U" S5      S	5        g )
Nc                     [         R                  " [        5      nS H  nUR                  U5        M     UR	                  U 5      $ )N)r  r  r  r  r  r  r  r   s      r   r   .TestCount.test_list_count_mutiple.<locals>.foo  s5    ##E*A- .771:r!   ro   r   r  r#   r  r$   r  r5   r&   r   s     r   test_list_count_mutiple!TestCount.test_list_count_mutiple  sf    		 
	 	R!$R!$R!$R!$r!   r8   N)	r9   r:   r;   r<   r=   r  r  r#  r>   r8   r!   r   r  r    s    %%%r!   r  c                   $    \ rS rSrSrS rS rSrg)
TestExtendi  zTest list extend. c                     [         S 5       nU R                  U" S5      S5        U R                  U" S5      S5        U R                  U" S5      S5        g )Nc                 n    [         R                  " [        5      nUR                  U 5        [	        U5      $ r   )r   r   r   extendr   )r   r   s     r   r   .TestExtend.test_list_extend_empty.<locals>.foo  s&    ##E*AHHUOq6Mr!   )r#   r#   )r#   r$   r$   r4   r5   r&   r   s     r   test_list_extend_empty!TestExtend.test_list_extend_empty  sR    		 
	
 	TA&UQ'Wq)r!   c                     U R                  5         [        S 5       nU R                  [        5       nU" 5         S S S 5        U R	                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nc                  Z    [         R                  " [        5      n U R                  S5        g Nr#   r   r   r   r)  r^   s    r   r   BTestExtend.test_list_extend_typing_error_non_iterable.<locals>.foo      ##E*AHHQKr!   z extend argument must be iterabler   re   s      r   *test_list_extend_typing_error_non_iterable5TestExtend.test_list_extend_typing_error_non_iterable  sb    !		 
	 {+vE ,.  !	
 ,+r[  r8   N)r9   r:   r;   r<   r=   r+  r3  r>   r8   r!   r   r&  r&    s    	*
r!   r&  c                   <    \ rS rSrSrS rS rS rS rS r	S r
S	rg
)
TestInserti  zTest list insert. c                 ^    [         S 5       nS H  nU R                  U" U5      S5        M     g )Nc                 z    [         R                  " [        5      nUR                  U S5        [	        U5      US   4$ Nr#   r   )r   r   r   insertr   r   s     r   r   .TestInsert.test_list_insert_empty.<locals>.foo  s1    ##E*AHHQNq61Q4<r!   )r   r   r]   r   r#   rv   r{   )r#   r#   r&   r(   s      r   test_list_insert_empty!TestInsert.test_list_insert_empty  s4    		  
	 
 +ASVV, +r!   c                     [         S 5       nS H  nU R                  U" U5      S5        M     S H  nU R                  U" U5      S5        M     g )Nc                     [         R                  " [        5      nUR                  S5        UR	                  U S5        [        U5      US   US   4$ rj  )r   r   r   r   r:  r   r   s     r   r   2TestInsert.test_list_insert_singleton.<locals>.foo  sC    ##E*AHHQKHHQNq61Q41%%r!   )r   r  r   r]   r   )r$   r#   r   )r#   r$   r5   ro   )r$   r   r#   r&   r(   s      r   test_list_insert_singleton%TestInsert.test_list_insert_singleton  sT    		& 
	& &ASVY/ & ASVY/ r!   c                 ^    [         S 5       nS H  nU R                  U" U5      S5        M     g )Nc                     [         R                  " [        5      n[        S5       H  nUR	                  S5        M     UR                  U S5        [        U5      X   4$ Nro   r   r#   r   r   r   r   r   r:  r   r   s      r   r   1TestInsert.test_list_insert_multiple.<locals>.foo  sH    ##E*A2Y HHQNq614<r!   )r   rv   r{   r  r#   r&   r(   s      r   test_list_insert_multiple$TestInsert.test_list_insert_multiple  s4    		  
	  ASVW- r!   c                 ^    [         S 5       nS H  nU R                  U" U5      S5        M     g )Nc                     [         R                  " [        5      n[        S5       H  nUR	                  S5        M     UR                  U S5        [        U5      US   4$ rE  rF  r   s      r   r   8TestInsert.test_list_insert_multiple_before.<locals>.foo  sJ    ##E*A2Y HHQNq61Q4<r!   )ir   r   r   rH  r&   r(   s      r    test_list_insert_multiple_before+TestInsert.test_list_insert_multiple_before  s4    		  
	  $ASVW- $r!   c                 ^    [         S 5       nS H  nU R                  U" U5      S5        M     g )Nc                     [         R                  " [        5      n[        S5       H  nUR	                  S5        M     UR                  U S5        [        U5      US   4$ rE  rF  r   s      r   r   7TestInsert.test_list_insert_multiple_after.<locals>.foo	  sJ    ##E*A2Y HHQNq61R5= r!   r  rH  r&   r(   s      r   test_list_insert_multiple_after*TestInsert.test_list_insert_multiple_after  s4    		! 
	! ASVW- r!   c                     U R                  5         [        S 5       nU R                  [        5       nU" 5         S S S 5        U R	                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nc                  \    [         R                  " [        5      n U R                  SS5        g )Nar   )r   r   r   r:  r^   s    r   r   5TestInsert.test_list_insert_typing_error.<locals>.foo  s     ##E*AHHS!r!   z$list insert indices must be integersr   re   s      r   test_list_insert_typing_error(TestInsert.test_list_insert_typing_error  sb    !		 
	 {+vE ,2  !	
 ,+r[  r8   N)r9   r:   r;   r<   r=   r<  rA  rI  rN  rS  rY  r>   r8   r!   r   r6  r6    s#    -0 
.
.
.
r!   r6  c                   6    \ rS rSrSrS rS rS rS rS r	Sr
g	)

TestRemovei$  zTest list remove. c                     U R                  5         [        S 5       nU R                  [        5         U" 5         S S S 5        g ! , (       d  f       g = f)Nc                  Z    [         R                  " [        5      n U R                  S5        g r   )r   r   r   remover^   s    r   r   .TestRemove.test_list_remove_empty.<locals>.foo*  r2  r!   r   r   r`   rX  r   s     r   test_list_remove_empty!TestRemove.test_list_remove_empty'  sA    !		 
	 z*E +**   A
Ac                 J    [         S 5       nU R                  U" 5       S5        g )Nc                      [         R                  " [        5      n U R                  S5        U R	                  S5        [        U 5      $ r   )r   r   r   r   r_  r   r^   s    r   r   2TestRemove.test_list_remove_singleton.<locals>.foo3  s1    ##E*AHHQKHHQKq6Mr!   r   r&   r   s     r   test_list_remove_singleton%TestRemove.test_list_remove_singleton2  r   r!   c                     U R                  5         [        S 5       nU R                  [        5         U" 5         S S S 5        g ! , (       d  f       g = f)Nc                  |    [         R                  " [        5      n U R                  S5        U R	                  S5        g r9  )r   r   r   r   r_  r^   s    r   r   >TestRemove.test_list_remove_singleton_value_error.<locals>.foo?  s(    ##E*AHHQKHHQKr!   ra  r   s     r   &test_list_remove_singleton_value_error1TestRemove.test_list_remove_singleton_value_error<  sA    !		 
	
 z*E +**rd  c                 J    [         S 5       nU R                  U" 5       S5        g )Nc                      [         R                  " [        5      n [        SS5       H  nU R	                  U5        M     U R                  S5        U R                  S5        [        U 5      $ )Nro   rp   r  r   )r   r   r   r   r   r_  r   rU  s     r   r   1TestRemove.test_list_remove_multiple.<locals>.fooI  sL    ##E*A2r] #HHRLHHRLq6Mr!   rz   r&   r   s     r   test_list_remove_multiple$TestRemove.test_list_remove_multipleH  s(    		 
	 	"r!   c                     U R                  5         [        S 5       nU R                  [        5         U" 5         S S S 5        g ! , (       d  f       g = f)Nc                      [         R                  " [        5      n [        SS5       H  nU R	                  U5        M     U R                  S5        g Nro   rp      )r   r   r   r   r   r_  rU  s     r   r   =TestRemove.test_list_remove_multiple_value_error.<locals>.fooW  s8    ##E*A2r] #HHRLr!   ra  r   s     r   %test_list_remove_multiple_value_error0TestRemove.test_list_remove_multiple_value_errorT  sA    !		 
	 z*E +**rd  r8   N)r9   r:   r;   r<   r=   rb  rh  rm  rr  ry  r>   r8   r!   r   r\  r\  $  s    	#

#r!   r\  c                   *    \ rS rSrSrS rS rS rSrg)	TestClearib  zTest list clear. c                 J    [         S 5       nU R                  U" 5       S5        g )Nc                  l    [         R                  " [        5      n U R                  5         [	        U 5      $ r   )r   r   r   clearr   r^   s    r   r   ,TestClear.test_list_clear_empty.<locals>.foof  s$    ##E*AGGIq6Mr!   r   r&   r   s     r   test_list_clear_emptyTestClear.test_list_clear_emptye  r   r!   c                 J    [         S 5       nU R                  U" 5       S5        g )Nc                      [         R                  " [        5      n U R                  S5        U R	                  5         [        U 5      $ r   )r   r   r   r   r  r   r^   s    r   r   0TestClear.test_list_clear_singleton.<locals>.fooo  s/    ##E*AHHQKGGIq6Mr!   r   r&   r   s     r   test_list_clear_singleton#TestClear.test_list_clear_singletonn  r   r!   c                 J    [         S 5       nU R                  U" 5       S5        g )Nc                      [         R                  " [        5      n [        S5       H  nU R	                  S5        M     U R                  5         [        U 5      $ )Nro   r   )r   r   r   r   r   r  r   rU  s     r   r   /TestClear.test_list_clear_multiple.<locals>.fooy  s=    ##E*A2Y GGIq6Mr!   r   r&   r   s     r   test_list_clear_multiple"TestClear.test_list_clear_multiplex  s(    		 
	 	"r!   r8   N)	r9   r:   r;   r<   r=   r  r  r  r>   r8   r!   r   r|  r|  b  s    ###r!   r|  c                   *    \ rS rSrSrS rS rS rSrg)TestReversei  zTest list reverse. c                 J    [         S 5       nU R                  U" 5       S5        g )Nc                  l    [         R                  " [        5      n U R                  5         [	        U 5      $ r   )r   r   r   reverser   r^   s    r   r   0TestReverse.test_list_reverse_empty.<locals>.foo  s$    ##E*AIIKq6Mr!   r   r&   r   s     r   test_list_reverse_empty#TestReverse.test_list_reverse_empty  r   r!   c                 J    [         S 5       nU R                  U" 5       S5        g )Nc                      [         R                  " [        5      n U R                  S5        U R	                  5         [        U 5      U S   4$ r   )r   r   r   r   r  r   r^   s    r   r   4TestReverse.test_list_reverse_singleton.<locals>.foo  s8    ##E*AHHQKIIKq61Q4<r!   )r#   r   r&   r   s     r   test_list_reverse_singleton'TestReverse.test_list_reverse_singleton  s(    		  
	  	'r!   c                 J    [         S 5       nU R                  U" 5       S5        g )Nc                      [         R                  " [        5      n [        SS5       H  nU R	                  U5        M     U R                  5         [        U 5      U S   U S   U S   4$ Nro   r  r   r#   r$   )r   r   r   r   r   r  r   rU  s     r   r   3TestReverse.test_list_reverse_multiple.<locals>.foo  sU    ##E*A2r] #IIKq61Q41qt++r!   )r5   r  r  ro   r&   r   s     r   test_list_reverse_multiple&TestReverse.test_list_reverse_multiple  s(    		, 
	, 	0r!   r8   N)	r9   r:   r;   r<   r=   r  r  r  r>   r8   r!   r   r  r    s    #(1r!   r  c                   *    \ rS rSrSrS rS rS rSrg)TestCopyi  zTest list copy. c                 J    [         S 5       nU R                  U" 5       S5        g )Nc                      [         R                  " [        5      n U R                  5       n[	        U 5      [	        U5      4$ r   )r   r   r   copyr   r   s     r   r   *TestCopy.test_list_copy_empty.<locals>.foo  s/    ##E*AAq63q6>!r!   r  r&   r   s     r   test_list_copy_emptyTestCopy.test_list_copy_empty  s(    		" 
	"
 	'r!   c                 J    [         S 5       nU R                  U" 5       S5        g )Nc                      [         R                  " [        5      n U R                  S5        U R	                  5       n[        U 5      [        U5      U S   US   4$ r   )r   r   r   r   r  r   r   s     r   r   .TestCopy.test_list_copy_singleton.<locals>.foo  sG    ##E*AHHQKAq63q61Q41--r!   )r#   r#   r   r   r&   r   s     r   test_list_copy_singleton!TestCopy.test_list_copy_singleton  s(    		. 
	. 	-r!   c                 J    [         S 5       nU R                  U" 5       S5        g )Nc            	          [         R                  " [        5      n [        SS5       H  nU R	                  U5        M     U R                  5       n[        U 5      [        U5      U S   U S   U S   U S   U S   U S   4$ r  )r   r   r   r   r   r  r   r   s      r   r   -TestCopy.test_list_copy_multiple.<locals>.foo  so    ##E*A2r] #Aq63q61Q41qtQqT1Q41EEr!   )r5   r5   ro   r  r  ro   r  r  r&   r   s     r   test_list_copy_multiple TestCopy.test_list_copy_multiple  s+    		F 
	F 	 >?r!   r8   N)	r9   r:   r;   r<   r=   r  r  r  r>   r8   r!   r   r  r    s    (.	@r!   r  c                   P    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rSrg)	TestIndexi  c                 J    [         S 5       nU R                  U" 5       S5        g )Nc                  z    [         R                  " [        5      n U R                  S5        U R	                  S5      $ r/  r   r   r   r   indexr^   s    r   r   +TestIndex.test_index_singleton.<locals>.foo  +    ##E*AHHQK771:r!   r   r&   r   s     r   test_index_singletonTestIndex.test_index_singleton  s(    		 
	
 	"r!   c                     [         S 5       n[        [        S5      [        SS5      5       H  u  p#U R                  U" U5      U5        M     g )Nc                     [         R                  " [        5      n[        SS5       H  nUR	                  U5        M     UR                  U 5      $ rn   r   r   r   r   r   r  r   s      r   r   *TestIndex.test_index_multiple.<locals>.foo  ;    ##E*A2r] #771:r!   ro   rp   rt  )r)   r   r   vs       r   test_index_multipleTestIndex.test_index_multiple  sG    		 
	 uRy%2,/CASVQ' 0r!   c                 J    [         S 5       nU R                  U" 5       S5        g )Nc                      [         R                  " [        5      n [        SS5       H  nU R	                  S5        M     U R                  S5      $ Nro   rp   r#   r  )r   _s     r   r   +TestIndex.test_index_duplicate.<locals>.foo  r  r!   r   r&   r   s     r   test_index_duplicateTestIndex.test_index_duplicate  s(    		 
	 	"r!   c                 p    [         S 5       n[        S5       H  nU R                  U" U5      U5        M     g )Nc                     [         R                  " [        5      n[        SS5       H  nUR	                  S5        M     UR                  SU 5      $ r  r  )startr   r  s      r   r   6TestIndex.test_index_duplicate_with_start.<locals>.foo  s>    ##E*A2r] #771e$$r!   ro   rW   r(   s      r   test_index_duplicate_with_start)TestIndex.test_index_duplicate_with_start  s8    		% 
	% rASVQ' r!   c                     U R                  5         [        S 5       nU R                  [        5       nU" 5         S S S 5        U R	                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nc                  z    [         R                  " [        5      n U R                  S5        U R	                  S5      $ rj  r  r^   s    r   r   7TestIndex.test_index_singleton_value_error.<locals>.foo  r  r!   item not in listrW  re   s      r    test_index_singleton_value_error*TestIndex.test_index_singleton_value_error  sb    !		 
	
 z*fE +  !	
 +*r[  c                     U R                  5         [        S 5       nU R                  [        5       nU" 5         S S S 5        U R	                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nc                      [         R                  " [        5      n [        SS5       H  nU R	                  U5        M     U R                  S5      $ rv  r  rU  s     r   r   6TestIndex.test_index_multiple_value_error.<locals>.foo  s;    ##E*A2r] #772;r!   r  rW  re   s      r   test_index_multiple_value_error)TestIndex.test_index_multiple_value_error  sb    !		 
	 z*fE +  !	
 +*r[  c                 J   U R                  5         [        S 5       nU R                  U" S5      S5        [        SS5       HN  nU R	                  [
        5       nU" U5        S S S 5        U R                  S[        WR                  5      5        MP     g ! , (       d  f       N8= f)Nc                     [         R                  " [        5      n[        SS5       H  nUR	                  U5        M     UR                  SU 5      $ rn   r  )r  r   r   s      r   r   <TestIndex.test_index_multiple_value_error_start.<locals>.foo  s>    ##E*A2r] #772u%%r!   r   r#   ro   r  	r   r   r'   r   r`   rX  rb   rc   rd   r   s       r   %test_index_multiple_value_error_start/TestIndex.test_index_multiple_value_error_start  s    !		& 
	& 	Q#qA"":.&A /MM"F$$% ..   	B
B"	c                 J   U R                  5         [        S 5       nU R                  U" S5      S5        [        SS5       HN  nU R	                  [
        5       nU" U5        S S S 5        U R                  S[        WR                  5      5        MP     g ! , (       d  f       N8= f)Nc                     [         R                  " [        5      n[        SS5       H  nUR	                  U5        M     UR                  SSU 5      $ )Nro   rp   r   r   r  )endr   r   s      r   r   :TestIndex.test_index_multiple_value_error_end.<locals>.foo(  s@    ##E*A2r] #772q#&&r!   ro   r{   r   r  r  r   s       r   #test_index_multiple_value_error_end-TestIndex.test_index_multiple_value_error_end%  s    !		' 
	' 	R!$qA"":.&A /MM"F$$% ..r  c                     U R                  5         [        S 5       nU R                  [        5       nU" 5         S S S 5        U R	                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nc                  x    [         R                  " [        5      n U R                  S5        U R	                  SSS9$ )Nr   rW  )r  r  r^   s    r   r   4TestIndex.test_index_typing_error_start.<locals>.foo;  s0    ##E*AHHQK771C7((r!   z+start argument for index must be an integerr   re   s      r   test_index_typing_error_start'TestIndex.test_index_typing_error_start8  sb    !		) 
	)
 {+vE ,9  !	
 ,+r[  c                     U R                  5         [        S 5       nU R                  [        5       nU" 5         S S S 5        U R	                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nc                  x    [         R                  " [        5      n U R                  S5        U R	                  SSS9$ )Nr   rW  )r  r  r^   s    r   r   2TestIndex.test_index_typing_error_end.<locals>.fooK  s0    ##E*AHHQK771#7&&r!   z)end argument for index must be an integerr   re   s      r   test_index_typing_error_end%TestIndex.test_index_typing_error_endH  sb    !		' 
	'
 {+vE ,7  !	
 ,+r[  r8   N)r9   r:   r;   r<   r  r  r  r  r  r  r  r  r  r  r>   r8   r!   r   r  r    s4    #	(#	(
 
"&&
 
r!   r  c                   <    \ rS rSrSrS rS rS rS rS r	S r
S	rg
)TestEqualNotEqualiY  zTest list equal and not equal. c                 J    [         S 5       nU R                  U" 5       S5        g )Nc                  z    [         R                  " [        5      n [         R                  " [        5      nX:H  X:g  4$ r   r   r   os     r   r   4TestEqualNotEqual.test_list_empty_equal.<locals>.foo]  s0    ##E*A##E*A616>!r!   TFr&   r   s     r   test_list_empty_equal'TestEqualNotEqual.test_list_empty_equal\  s(    		" 
	"
 	.r!   c                 J    [         S 5       nU R                  U" 5       S5        g )Nc                      [         R                  " [        5      n U R                  S5        [         R                  " [        5      nUR                  S5        X:H  X:g  4$ r   r   r  s     r   r   8TestEqualNotEqual.test_list_singleton_equal.<locals>.foof  F    ##E*AHHQK##E*AHHQK616>!r!   r  r&   r   s     r   test_list_singleton_equal+TestEqualNotEqual.test_list_singleton_equale  (    		" 
	" 	.r!   c                 J    [         S 5       nU R                  U" 5       S5        g )Nc                      [         R                  " [        5      n U R                  S5        [         R                  " [        5      nUR                  S5        X:H  X:g  4$ rj  r   r  s     r   r   <TestEqualNotEqual.test_list_singleton_not_equal.<locals>.fooq  r   r!   FTr&   r   s     r   test_list_singleton_not_equal/TestEqualNotEqual.test_list_singleton_not_equalp  r  r!   c                 J    [         S 5       nU R                  U" 5       S5        g )Nc                      [         R                  " [        5      n U R                  S5        [         R                  " [        5      nX:H  X:g  4$ r   r   r  s     r   r   8TestEqualNotEqual.test_list_length_mismatch.<locals>.foo|  s;    ##E*AHHQK##E*A616>!r!   r  r&   r   s     r   test_list_length_mismatch+TestEqualNotEqual.test_list_length_mismatch{  s(    		" 
	" 	.r!   c                 J    [         S 5       nU R                  U" 5       S5        g )Nc                      [         R                  " [        5      n [         R                  " [        5      n[        S5       H%  nU R	                  U5        UR	                  U5        M'     X:H  X:g  4$ r  r   r   r  r   s      r   r   7TestEqualNotEqual.test_list_multiple_equal.<locals>.foo  sV    ##E*A##E*A2Y  616>!r!   r  r&   r   s     r   test_list_multiple_equal*TestEqualNotEqual.test_list_multiple_equal  s(    		" 
	" 	.r!   c                 J    [         S 5       nU R                  U" 5       S5        g )Nc                      [         R                  " [        5      n [         R                  " [        5      n[        S5       H%  nU R	                  U5        UR	                  U5        M'     SUS'   X:H  X:g  4$ )Nro   *   r]   r   r  s      r   r   ;TestEqualNotEqual.test_list_multiple_not_equal.<locals>.foo  s_    ##E*A##E*A2Y  AbE616>!r!   r  r&   r   s     r   test_list_multiple_not_equal.TestEqualNotEqual.test_list_multiple_not_equal  s(    		" 
	" 	.r!   r8   N)r9   r:   r;   r<   r=   r  r  r  r  r  r  r>   r8   r!   r   r  r  Y  s#    )/	/	//
//r!   r  c                   $    \ rS rSrSrS rS rSrg)TestIteri  zTest list iter. c                 b    [         S 5       nSnU R                  U" U5      [        U5      5        g )Nc                 z    [         R                  " [        5      nUR                  U 5        SnU H  nX#-  nM	     U$ r   r0  )r   r   rr   s       r   r   $TestIter.test_list_iter.<locals>.foo  s8    ##E*AHHUOA Hr!   r#   r$   r5   rv   )r   r'   sumr)   r   r   s      r   test_list_iterTestIter.test_list_iter  s7    		 
	 JJ	
r!   c                 "   U R                  5         [        S 5       nU R                  [        5       nU" 5         S S S 5        U R	                  SR
                  " S0 [        5       D6[        WR                  5      5        g ! , (       d  f       NL= f)Nc                      [         R                  " [        5      n U R                  S5        U  H  nU R	                  U5        M     g )Nr!  )r   r   r   r)  r   rr   s     r   r   2TestIter.test_list_iter_self_mutation.<locals>.foo  s3    ##E*AHH\" r!   z!list was mutated during iterationr8   )	r   r   r`   ra   rb   formatlocalsrc   rd   re   s      r   test_list_iter_self_mutation%TestIter.test_list_iter_self_mutation  sr    !		 
	 |,E -/66BB  !	
 -,s   B  
Br8   N)r9   r:   r;   r<   r=   r$  r+  r>   r8   r!   r   r  r    s    
$
r!   r  c                       \ rS rSrSrS rSrg)TestStringItemi  z%Test list can take strings as items. c                 d    [         S 5       nU" 5       nU R                  / SQ[        U5      5        g )Nc                      [         R                  " [        R                  5      n U R	                  S5        U R	                  S5        U R	                  S5        U R	                  S5        U S   U S   U S   U S   4$ )	NrW  bcdr   r#   r$   r5   )r   r   r   unicode_typer   r^   s    r   r   ,TestStringItem.test_string_item.<locals>.foo  sc    ##E$6$67AHHSMHHSMHHSMHHSMQ41qtQqT))r!   )rW  r1  r2  r3  )r   r'   r/   r#  s      r   test_string_itemTestStringItem.test_string_item  s2    		* 
	* -tE{;r!   r8   N)r9   r:   r;   r<   r=   r6  r>   r8   r!   r   r.  r.    s
    /<r!   r.  c                   N    \ rS rSr\S 5       rS rS rS rS r	S r
S rS	 rS
rg)TestItemCastingi  c                 ^    [         R                  " U5      nUR                  U " S5      5        g r   )r   r   r   )fromtytotyr   s      r   r   TestItemCasting.foo  s"    %	r!   c                 .    [         R                  X5        g r   )r9  r   )r)   r;  r<  s      r   
check_goodTestItemCasting.check_good  s    F)r!   c                    U R                  [        5       n[        R                  X5        S S S 5        U R	                  SR
                  " S0 [        5       D6[        WR                  5      5        g ! , (       d  f       NL= f)Nz%cannot safely cast {fromty} to {toty}r8   )	r`   r   r9  r   rb   r)  r*  rc   rd   )r)   r;  r<  rf   s       r   	check_badTestItemCasting.check_bad  s[    {+v- ,3::FVXF  !	
 ,+s   A22
B c                 ,   U R                  [        R                  [        R                  5        U R                  [        R                  [        R                  5        U R                  [        R                  [        R
                  5        U R                  [        R                  [        R
                  5        U R                  [        R                  [        R                  5        U R                  [        R                  [        R                  5        g r   )
r?  r   r   float32float64
complex128int64rB  	complex64int8r)   s    r   test_cast_int_to TestItemCasting.test_cast_int_to  s    U]]3U]]3U%5%56U%5%56u{{EOO4

EOO4r!   c                    U R                  [        R                  [        R                  5        U R                  [        R                  [        R                  5        U R                  [        R                  [        R
                  5        g r   )r?  r   rE  rF  rI  rG  rK  s    r   test_cast_float_to"TestItemCasting.test_cast_float_to  sF    u}}5u7u'7'78r!   c                    U R                  [        R                  [        R                  5        U R                  [        R                  [        R                  5        U R                  [        R                  [        R
                  5        g r   )r?  r   booleanr   rF  rG  rK  s    r   test_cast_bool_to!TestItemCasting.test_cast_bool_to  sF    u{{3u}}5u'7'78r!   c                     [         S 5       nU R                  [        5       nU" 5         S S S 5        U R                  S[	        WR
                  5      5        g ! , (       d  f       N4= f)Nc                  Z    [         R                  " [        5      n U R                  S5        g )Nr   r   r^   s    r   r   7TestItemCasting.test_cast_fail_unicode_int.<locals>.foo  s    ##E*AHHUOr!   z(cannot safely cast unicode_type to int32r   r`   r   rb   rc   rd   re   s      r   test_cast_fail_unicode_int*TestItemCasting.test_cast_fail_unicode_int  sV    		 
	 {+vE ,6  !	
 ,+   A
A&c                     [         S 5       nU R                  [        5       nU" 5         S S S 5        U R                  S[	        WR
                  5      5        g ! , (       d  f       N4= f)Nc                      [         R                  " [        R                  5      n U R	                  [        S5      5        g r   )r   r   r   r4  r   r   r^   s    r   r   7TestItemCasting.test_cast_fail_int_unicode.<locals>.foo  s(    ##E$6$67AHHU1Xr!   z!Cannot cast int32 to unicode_typerX  re   s      r   test_cast_fail_int_unicode*TestItemCasting.test_cast_fail_int_unicode	  sV    		 
	 {+vE ,/  !	
 ,+r[  r8   N)r9   r:   r;   r<   r   r   r?  rB  rL  rO  rS  rY  r_  r>   r8   r!   r   r9  r9    s7    	 
*
59
9


r!   r9  c                  n    [         R                  " [        5      n U R                  [        S5      5        U $ r/  r   r^   s    r   make_test_listrb    s'    E"AHHU1XHr!   c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
TestImmutablei  c                 H    [         S 5       nU R                  U" 5       5        g )Nc                  6    [        5       n U R                  5       $ r   )rb  _is_mutabler^   s    r   r   ,TestImmutable.test_is_immutable.<locals>.foo"  s     A==?"r!   r  r   s     r   test_is_immutableTestImmutable.test_is_immutable!  s$    		# 
	# 	r!   c                 H    [         S 5       nU R                  U" 5       5        g )Nc                  V    [        5       n U R                  5         U R                  5       $ r   rb  _make_immutablerg  r^   s    r   r   ;TestImmutable.test_make_immutable_is_immutable.<locals>.foo)  s"     A==?"r!   r  r   s     r    test_make_immutable_is_immutable.TestImmutable.test_make_immutable_is_immutable(  s&    		# 
	# 	r!   c                 t    [         S 5       nU" 5       u  p#U R                  US5        U R                  U5        g )Nc                  l    [        5       n U R                  5         [        U 5      U R                  5       4$ r   )rb  rn  r   rg  r^   s    r   r   ATestImmutable.test_length_still_works_when_immutable.<locals>.foo1  s+     Aq6!--/))r!   r#   r   r'   r  )r)   r   r   mutables       r   &test_length_still_works_when_immutable4TestImmutable.test_length_still_works_when_immutable0  s=    		* 
	* %#!r!   c                 t    [         S 5       nU" 5       u  p#U R                  US5        U R                  U5        g )Nc                  `    [        5       n U R                  5         U S   U R                  5       4$ r   rm  r^   s    r   r   BTestImmutable.test_getitem_still_works_when_immutable.<locals>.foo;  s+     AQ4((r!   r#   ru  )r)   r   	test_itemrv  s       r   'test_getitem_still_works_when_immutable5TestImmutable.test_getitem_still_works_when_immutable:  s>    		) 
	) !U	A&!r!   c                     U R                  5         [        S 5       nU R                  [        5       nU" 5         S S S 5        U R	                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nc                  l    [        5       n U R                  5         U R                  [        S5      5        g r/  )rb  rn  r   r   r^   s    r   r   ,TestImmutable.test_append_fails.<locals>.fooG  s&     AHHU1Xr!   list is immutablerW  re   s      r   test_append_failsTestImmutable.test_append_failsD  sb    !		 
	 z*fE +  !	
 +*r[  c                    U R                  5         S nS HU  nU" U5      nU R                  [        5       nU" 5         SSS5        U R                  S[	        WR
                  5      5        MW     g! , (       d  f       N8= f)z?Test that any attempt to mutate an immutable typed list fails. c                 j    0 n[        [        SR                  U 5      5      U5        [        US   5      $ )NaJ  
                from numba.typed import listobject
                from numba import int32
                def bar():
                    lst = listobject.new_list(int32)
                    lst.append(int32(1))
                    lst._make_immutable()
                    zero = int32(0)
                    {}
                bar)execr   r)  r   )linecontexts     r   generate_function<TestImmutable.test_mutation_fails.<locals>.generate_functionW  s<    G 	 F4L	" $+	, ''r!   )	zlst.append(zero)zlst[0] = zeroz	lst.pop()z
del lst[0]zlst.extend((zero,))zlst.insert(0, zero)zlst.clear()zlst.reverse()z
lst.sort()Nr  )r   r`   rX  rb   rc   rd   )r)   r  r  r   rf   s        r   test_mutation_fails!TestImmutable.test_mutation_failsS  sk    !	(	D $D)C"":.& /MM#F$$%	 /.s   A00
A>	r8   N)r9   r:   r;   r<   ri  rp  rw  r}  r  r  r>   r8   r!   r   rd  rd    s      ""
!r!   rd  N),r=   textwrapr   numbar   r   numba.extendingr   
numba.corer   numba.core.errorsr   numba.tests.supportr	   r
   r   r   numba.typedr   r   r   r@   rI   rj   r   r   r]  r  r  r  r  r&  r6  r\  r|  r  r  r  r  r  r.  r9  rb  rd  r8   r!   r   <module>r     s      ,  )1 1 (/_h /:, ,
_h 
@- -:y,/8 y,xp
 p
fu-/8 u-pOox OdnOX nb"%?H "%J %  %F
( 
<N
( N
b;( ;|# #B1/8 1B@ @DP
 P
fC/ C/L$
 $
N<_h <">
h >
B  UOX Ur!   