
    J/Ph                     @   d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ ddlmZmZmZmZ dd	lmZmZ  G d
 dee          Z G d dee          Z G d dee          Z G d dee          Z G d dee          Z G d dee          Z G d dee          Z G d dee          Z G d dee          Z G d dee          Z G d dee          Z G d  d!ee          Z G d" d#ee          Z  G d$ d%ee          Z! G d& d'ee          Z" G d( d)ee          Z# G d* d+ee          Z$ G d, d-ee          Z% G d. d/ee          Z& G d0 d1ee          Z' G d2 d3ee          Z( G d4 d5e          Z)ed6             Z* G d7 d8ee          Z+d9S ):ae   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                   $    e Zd ZdZd Zd Zd ZdS )TestCreateAppendLengthz$Test list creation, append and len. c                 n    t           d             }dD ]!}|                      ||          |           "d S )Nc                     t          j        t                    }t          |           D ]}|                    |           t          |          S Nr   new_listr   rangeappendlennlis      [/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/tests/test_listobject.pyfooz4TestCreateAppendLength.test_list_create.<locals>.foo   sC    #E**A1XX  q66M    r         d   r   assertEqualselfr   r   s      r   test_list_createz'TestCreateAppendLength.test_list_create   sW    		 	 
	   	( 	(ASSVVQ''''	( 	(r   c                 &   t          dd          5  t                      5  t          j        t                    }|                     t          |          t                     d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )NDISABLE_JITT)r   r   r   r   r   r%   typelistr'   r   s     r   test_list_create_no_jitz.TestCreateAppendLength.test_list_create_no_jit(   s   ]D11 	0 	0!! 0 0'..  a$///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s5   BAA."B.A2	2B5A2	6BB
B
c                 F   t          dd          5  t                      5  t          g d          }|                     t	          |          t
                     |                     |g d           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr*   Tr!   r"      )r   r   r   r%   r+   r,   r-   s     r    test_nonempty_list_create_no_jitz7TestCreateAppendLength.test_nonempty_list_create_no_jit.   s   ]D11 	/ 	/!! / /OO  a$///  III.../ / / / / / / / / / / / / / /	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s5   BAA>2B>B	BB	BBBN)__name__
__module____qualname____doc__r(   r.   r2    r   r   r   r      sG        ..	( 	( 	(0 0 0/ / / / /r   r   c                       e Zd ZdZd ZdS )TestBoolzTest list bool.c                 v    t           d             }dD ]%}|                      ||          |dk               &d S )Nc                     t          j        t                    }t          |           D ]}|                    |           t          |          S r   )r   r   r   r   r   boolr   s      r   r   z$TestBool.test_list_bool.<locals>.foo;   sC    #E**A1XX  77Nr   r    r   r$   r&   s      r   test_list_boolzTestBool.test_list_bool:   s[    		 	 
	   	, 	,ASSVVQU++++	, 	,r   N)r3   r4   r5   r6   r=   r7   r   r   r9   r9   7   s)        	, 	, 	, 	, 	,r   r9   c                       e Zd Zd Zd ZdS )TestAllocationc                 
   t           d             }t          d          D ]!}|                      ||          |           "t           d             }t          d          D ]!}|                      ||          |           "d S )Nc                 `    t          j        t          |           }|                                S )N)	allocatedr   r   r   
_allocatedr   r   s     r   	foo_kwargz6TestAllocation.test_list_allocation.<locals>.foo_kwargI   s%    #EQ777A<<>>!r      c                 ^    t          j        t          |           }|                                S r   rC   rE   s     r   
foo_posargz7TestAllocation.test_list_allocation.<locals>.foo_posargQ   s"    #E1--A<<>>!r   r   r   r%   )r'   rF   r   rI   s       r   test_list_allocationz#TestAllocation.test_list_allocationH   s    		" 	" 
	" r 	. 	.AYYq\\1----		" 	" 
	" r 	/ 	/AZZ]]A....	/ 	/r   c                    t           d             }|                     t                    5 }|                      |            d           d d d            n# 1 swxY w Y   |                     dt          |j                             d S )Nc                  ^    t          j        t          d          } |                                 S NrC   r   s    r   r   z9TestAllocation.test_list_allocation_negative.<locals>.fooY   s"    #E2..A<<>>!r   rO   z expecting *allocated* to be >= 0)r   assertRaisesRuntimeErrorr%   assertInstr	exceptionr'   r   raisess      r   test_list_allocation_negativez,TestAllocation.test_list_allocation_negativeX   s    		" 	" 
	" |,, 	(SSUUB'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(. !!	
 	
 	
 	
 	
s   AAAN)r3   r4   r5   rK   rX   r7   r   r   r?   r?   F   s2        / / / 
 
 
 
 
r   r?   c                       e Zd Zd ZdS )TestToFromMeminfoc                 ^   t           d             }t          j        t                    t           fd            } |            }|                     |j        d           t           ||                    }t          t          dd                    }|                     ||           dS )zB
        Exercise listobject.{_as_meminfo, _from_meminfo}
        c                      t          j        t                    } t          dd          D ]}|                     |           t          j        |           S N
      )r   r   r   r   r   _as_meminfor   r   s     r   boxerz:TestToFromMeminfo.test_list_to_from_meminfo.<locals>.boxerm   sK    #E**A2r]]  )!,,,r   c                     t          j        |           }|d         |d         |d         |d         |d         |d         |d         |d         |d	         |d
         f
S )Nr   r!   r"   r1                  	   )r   _from_meminfo)mir   lsttypes     r   unboxerz<TestToFromMeminfo.test_list_to_from_meminfo.<locals>.unboxerv   sX    (W55AQ41qtQqT1Q41qtQqT1Q41MMr   r!   r^   r_   N)r   r   ListTyper   r%   refcountr,   r   )r'   rb   rm   rk   receivedexpectedrl   s         @r   test_list_to_from_meminfoz+TestToFromMeminfo.test_list_to_from_meminfoh   s    
 
	- 	- 
	- .''		N 	N 	N 	N 
	N UWWa((($$b"&&8,,,,,r   N)r3   r4   r5   rr   r7   r   r   rZ   rZ   f   s#        - - - - -r   rZ   c                   H    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S )TestGetitemzTest list getitem. c                 d    t           d             }|                      |d          d           d S )Nc                 n    t          j        t                    }|                    |            |d         S Nr   r   r   r   r   rE   s     r   r   z4TestGetitem.test_list_getitem_singleton.<locals>.foo   *    #E**AHHQKKKQ4Kr   r   r$   r'   r   s     r   test_list_getitem_singletonz'TestGetitem.test_list_getitem_singleton   sA    		 	 
	
 	Q#####r   c                 d    t           d             }|                      |d          d           d S )Nc                 n    t          j        t                    }|                    |            |d         S rN   rx   rE   s     r   r   zBTestGetitem.test_list_getitem_singleton_negtive_index.<locals>.foo   s*    #E**AHHQKKKR5Lr   r   r$   rz   s     r   )test_list_getitem_singleton_negtive_indexz5TestGetitem.test_list_getitem_singleton_negtive_index   sA    		 	 
	
 	Q#####r   c                 t    t           d             }dD ]$\  }}|                      ||          |           %d S )Nc                     t          j        t                    }t          dd          D ]}|                    |           ||          S r]   r   r   r   r   r   r   r   js      r   r   z3TestGetitem.test_list_getitem_multiple.<locals>.foo   C    #E**A2r]]  Q4Kr   r   r^   )ri      )rd      )   )rO   r   )r^   r$   r'   r   r   r   s       r   test_list_getitem_multiplez&TestGetitem.test_list_getitem_multiple   s\    		 	 
	 N 	( 	(CAaSSVVQ''''	( 	(r   c                 "   |                                   t          d             }dD ]g}|                     t                    5 } ||           d d d            n# 1 swxY w Y   |                     dt          |j                             hd S )Nc                 D    t          j        t                    }||          S r   r   r   r   r   r   s     r   r   z<TestGetitem.test_list_getitem_empty_index_error.<locals>.foo       #E**AQ4Kr   )r!   r   rO   list index out of rangedisable_leak_checkr   rQ   
IndexErrorrS   rT   rU   r'   r   r   rW   s       r   #test_list_getitem_empty_index_errorz/TestGetitem.test_list_getitem_empty_index_error   s    !!!		 	 
	  	 	A"":.. &A              MM)F$%%   	 	   AA	"A	c                 "   |                                   t          d             }dD ]g}|                     t                    5 } ||           d d d            n# 1 swxY w Y   |                     dt          |j                             hd S )Nc                     t          j        t                    }t          dd          D ]}|                    |           ||          S r]   r   r   s      r   r   z?TestGetitem.test_list_getitem_multiple_index_error.<locals>.foo   r   r   )r^   r   r   r   s       r   &test_list_getitem_multiple_index_errorz2TestGetitem.test_list_getitem_multiple_index_error   s    !!!		 	 
	  	 	A"":.. &A              MM)F$%%   	 	r   c                 "   |                                   t          d             }dD ]g}|                     t                    5 } ||           d d d            n# 1 swxY w Y   |                     dt          |j                             hd S )Nc                 D    t          j        t                    }||          S r   r   r   s     r   r   z=TestGetitem.test_list_getitem_empty_typing_error.<locals>.foo   r   r   xyzg      ?y              ?'list indices must be integers or slicesr   r   rQ   r   rS   rT   rU   r   s       r   $test_list_getitem_empty_typing_errorz0TestGetitem.test_list_getitem_empty_typing_error   s    !!!		 	 
	   	 	A"";// 6A              MM9F$%%   	 	r   c                     t           d             }t          j        D ]*}|                      | |d                    d           +d S )Nc                 n    t          j        t                    }|                    d           ||          S rw   rx   r   s     r   r   zATestGetitem.test_list_getitem_integer_types_as_index.<locals>.foo   ry   r   r   r   r   signed_domainr%   r'   r   ts      r   (test_list_getitem_integer_types_as_indexz4TestGetitem.test_list_getitem_integer_types_as_index   sb    		 	 
	 % 	- 	-ASS!!A$$[[!,,,,	- 	-r   c                     t           j        D ]2t          fd            }|                      |            d           3d S )Nc                      t          j        t                    } |                     d           |  d                   S )Nrg   r   rx   r   tys    r   r   zETestGetitem.test_list_getitem_different_sized_uint_index.<locals>.foo   s3    '..Axr   rg   )r   unsigned_domainr   r%   r'   r   r   s     @r   ,test_list_getitem_different_sized_uint_indexz8TestGetitem.test_list_getitem_different_sized_uint_index   se    
 ' 	' 	'B        T 
 SSUUA&&&&	' 	'r   c                     t           j        D ]2t          fd            }|                      |            d           3d S )Nc                      t          j        t                    } |                     d           |  d                   |  d                   fS )Nrg   r   rO   rx   r   s    r   r   zDTestGetitem.test_list_getitem_different_sized_int_index.<locals>.foo   sE    '..Ax22b66**r   )rg   rg   )r   r   r   r%   r   s     @r   +test_list_getitem_different_sized_int_indexz7TestGetitem.test_list_getitem_different_sized_int_index   se    
 % 	, 	,B+ + + + T+
 SSUUF++++	, 	,r   N)r3   r4   r5   r6   r{   r~   r   r   r   r   r   r   r   r7   r   r   rt   rt      s        $ $ $$ $ $	( 	( 	(     $   - - -' ' ', , , , ,r   rt   c                       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d Zd Zd Zd ZdS )TestGetitemSlicez-Test list getitem when indexing with slices. c                 b    t           d             }|                      |            d           d S )Nc                  f    t          j        t                    } | d d          }t          |          S r   )r   r   r   r   r   r   s     r   r   zDTestGetitemSlice.test_list_getitem_empty_slice_defaults.<locals>.foo  s*    #E**A!!!Aq66Mr   r   r$   rz   s     r   &test_list_getitem_empty_slice_defaultsz7TestGetitemSlice.test_list_getitem_empty_slice_defaults  ?    		 	 
	
 	"""""r   c                 b    t           d             }|                      |            d           d S )Nc                      t          j        t                    } |                     d           | d d          }t	          |          S rw   r   r   r   r   r   r   s     r   r   zHTestGetitemSlice.test_list_getitem_singleton_slice_defaults.<locals>.foo  s9    #E**AHHQKKK!!!Aq66Mr   r!   r$   rz   s     r   *test_list_getitem_singleton_slice_defaultsz;TestGetitemSlice.test_list_getitem_singleton_slice_defaults  ?    		 	 
	 	"""""r   c                 t    t           d             }dD ]$\  }}|                      ||          |           %d S )Nc                     t          j        t                    }t          dd          D ]}|                    |           |d d          }||          S r]   r   )r   r   r   r   s       r   r   zGTestGetitemSlice.test_list_getitem_multiple_slice_defaults.<locals>.foo  sP    #E**A2r]]  !!!AQ4Kr   r   r$   r   s       r   )test_list_getitem_multiple_slice_defaultsz:TestGetitemSlice.test_list_getitem_multiple_slice_defaults  s\    		 	 
	 N 	( 	(CAaSSVVQ''''	( 	(r   c                     t           d             } |            \  }}|                     |d           |                     |d           d S )Nc                      t          j        t                    } t          dd          D ]}|                     |           | dd          }t          |          |d         |d         |d         |d         |d         ffS 	Nr^   r_   re   r   r!   r"   r1   rd   r   r   r   r   s      r   r   zHTestGetitemSlice.test_list_getitem_multiple_slice_pos_start.<locals>.foo"  sw    #E**A2r]]  !""Aq66AaD!A$!adAaD999r   re   r   rG         r   r$   r'   r   lengthitemss       r   *test_list_getitem_multiple_slice_pos_startz;TestGetitemSlice.test_list_getitem_multiple_slice_pos_start!  _    		: 	: 
	: ### 455555r   c                     t           d             } |            \  }}|                     |d           |                     |d           d S )Nc                      t          j        t                    } t          dd          D ]}|                     |           | d d         }t          |          |d         |d         |d         |d         |d         ffS r   r   r   s      r   r   zGTestGetitemSlice.test_list_getitem_multiple_slice_pos_stop.<locals>.foo/  sw    #E**A2r]]  "1"Aq66AaD!A$!adAaD999r   re   r^            r   r$   r   s       r   )test_list_getitem_multiple_slice_pos_stopz:TestGetitemSlice.test_list_getitem_multiple_slice_pos_stop.  r   r   c                     t           d             } |            \  }}|                     |d           |                     |d           d S )Nc                      t          j        t                    } t          dd          D ]}|                     |           | dd         }t          |          |d         |d         |d         |d         |d         ffS )	Nr^   r_   r"   rg   r   r!   r1   rd   r   r   s      r   r   zQTestGetitemSlice.test_list_getitem_multiple_slice_pos_start_pos_stop.<locals>.foo<  sw    #E**A2r]]  !A#Aq66AaD!A$!adAaD999r   re   )r   r   r   r   rG   r$   r   s       r   3test_list_getitem_multiple_slice_pos_start_pos_stopzDTestGetitemSlice.test_list_getitem_multiple_slice_pos_start_pos_stop;  r   r   c                     t           d             } |            \  }}|                     |d           |                     |d           d S )Nc                      t          j        t                    } t          dd          D ]}|                     |           | ddd         }t          |          |d         |d         |d         |d         ffS )Nr^   r_   r!   ri   r"   r   r1   r   r   s      r   r   zZTestGetitemSlice.test_list_getitem_multiple_slice_pos_start_pos_stop_pos_step.<locals>.fooI  ss    #E**A2r]]  !Aa%Aq66AaD!A$!ad333r   rd   )r   r   r   r   r$   r   s       r   <test_list_getitem_multiple_slice_pos_start_pos_stop_pos_stepzMTestGetitemSlice.test_list_getitem_multiple_slice_pos_start_pos_stop_pos_stepH  s_    		4 	4 
	4 ### 011111r   c                     t           d             } |            \  }}|                     |d           |                     |d           d S )Nc                      t          j        t                    } t          dd          D ]}|                     |           | dd          }t          |          |d         |d         |d         |d         |d         ffS 	Nr^   r_   r   r   r!   r"   r1   rd   r   r   s      r   r   zHTestGetitemSlice.test_list_getitem_multiple_slice_neg_start.<locals>.fooV  sw    #E**A2r]]  "##Aq66AaD!A$!adAaD999r   re   r   r$   r   s       r   *test_list_getitem_multiple_slice_neg_startz;TestGetitemSlice.test_list_getitem_multiple_slice_neg_startU  r   r   c                     t           d             } |            \  }}|                     |d           |                     |d           d S )Nc                      t          j        t                    } t          dd          D ]}|                     |           | d d         }t          |          |d         |d         |d         |d         |d         ffS r   r   r   s      r   r   zGTestGetitemSlice.test_list_getitem_multiple_slice_neg_stop.<locals>.fooc  sw    #E**A2r]]  #2#Aq66AaD!A$!adAaD999r   re   r   r$   r   s       r   )test_list_getitem_multiple_slice_neg_stopz:TestGetitemSlice.test_list_getitem_multiple_slice_neg_stopb  r   r   c                     t           d             } |            \  }}|                     |d           |                     |d           d S )Nc                     t          j        t                    } t          dd          D ]}|                     |           | d d d         }t          |          |d         |d         |d         |d         |d         ffS )	Nr^   r_   r   r!   r"   r1   rd   r   r   s      r   r   zGTestGetitemSlice.test_list_getitem_multiple_slice_neg_step.<locals>.foop  sy    #E**A2r]]  $$B$Aq66AaD!A$!adAaD999r   re   )r   r   r   r   r   r$   r   s       r   )test_list_getitem_multiple_slice_neg_stepz:TestGetitemSlice.test_list_getitem_multiple_slice_neg_stepo  r   r   c                     t           d             } |            \  }}|                     |d           |                     |d           d S )Nc                     t          j        t                    } t          dd          D ]}|                     |           | dd d         }t          |          |d         |d         |d         |d         |d         ffS 	Nr^   r_   rd   rO   r   r!   r"   r1   r   r   s      r   r   zQTestGetitemSlice.test_list_getitem_multiple_slice_pos_start_neg_step.<locals>.foo}  sy    #E**A2r]]  !%R%Aq66AaD!A$!adAaD999r   re   r   r   r   r   r^   r$   r   s       r   3test_list_getitem_multiple_slice_pos_start_neg_stepzDTestGetitemSlice.test_list_getitem_multiple_slice_pos_start_neg_step|  r   r   c                     t           d             } |            \  }}|                     |d           |                     |d           d S )Nc                     t          j        t                    } t          dd          D ]}|                     |           | dd d         }t          |          |d         |d         |d         |d         |d	         ffS 
Nr^   r_   irO   r   r!   r"   r1   rd   r   r   s      r   r   zQTestGetitemSlice.test_list_getitem_multiple_slice_neg_start_neg_step.<locals>.foo  sy    #E**A2r]]  "&b&	Aq66AaD!A$!adAaD999r   re   r   r$   r   s       r   3test_list_getitem_multiple_slice_neg_start_neg_stepzDTestGetitemSlice.test_list_getitem_multiple_slice_neg_start_neg_step  r   r   c                     t           d             } |            \  }}|                     |d           |                     |d           d S )Nc                     t          j        t                    } t          dd          D ]}|                     |           | d dd         }t          |          |d         |d         |d         |d         |d         ffS r   r   r   s      r   r   zPTestGetitemSlice.test_list_getitem_multiple_slice_pos_stop_neg_step.<locals>.foo  sy    #E**A2r]]  %1R%Aq66AaD!A$!adAaD999r   re   r   r   r   rG   r   r$   r   s       r   2test_list_getitem_multiple_slice_pos_stop_neg_stepzCTestGetitemSlice.test_list_getitem_multiple_slice_pos_stop_neg_step  r   r   c                     t           d             } |            \  }}|                     |d           |                     |d           d S )Nc                     t          j        t                    } t          dd          D ]}|                     |           | d dd         }t          |          |d         |d         |d         |d         |d	         ffS r   r   r   s      r   r   zPTestGetitemSlice.test_list_getitem_multiple_slice_neg_stop_neg_step.<locals>.foo  sy    #E**A2r]]  &2b&	Aq66AaD!A$!adAaD999r   re   r   r$   r   s       r   2test_list_getitem_multiple_slice_neg_stop_neg_stepzCTestGetitemSlice.test_list_getitem_multiple_slice_neg_stop_neg_step  r   r   c                     t           d             } |            \  }}|                     |d           |                     |d           d S )Nc                     t          j        t                    } t          dd          D ]}|                     |           | ddd         }t          |          |d         |d         |d         |d         |d	         ffS )
Nr^   r_   rh   r1   rO   r   r!   r"   rd   r   r   s      r   r   zZTestGetitemSlice.test_list_getitem_multiple_slice_pos_start_pos_stop_neg_step.<locals>.foo  sy    #E**A2r]]  !Ab&	Aq66AaD!A$!adAaD999r   re   r   r   rG   r   r   r$   r   s       r   <test_list_getitem_multiple_slice_pos_start_pos_stop_neg_stepzMTestGetitemSlice.test_list_getitem_multiple_slice_pos_start_pos_stop_neg_step  r   r   c                     t           d             } |            \  }}|                     |d           |                     |d           d S )Nc                     t          j        t                    } t          dd          D ]}|                     |           | ddd         }t          |          |d         |d         |d         |d	         |d
         ffS )Nr^   r_   r   irO   r   r!   r"   r1   rd   r   r   s      r   r   zZTestGetitemSlice.test_list_getitem_multiple_slice_neg_start_neg_stop_neg_step.<locals>.foo  sy    #E**A2r]]  "R(Aq66AaD!A$!adAaD999r   re   r   r$   r   s       r   <test_list_getitem_multiple_slice_neg_start_neg_stop_neg_stepzMTestGetitemSlice.test_list_getitem_multiple_slice_neg_start_neg_stop_neg_step  r   r   c                 b    t           d             }|                      |            d           d S )Nc                      t          j        t                    } t          dd          D ]}|                     |           | dd          }t          |          S r]   r   r   s      r   r   zQTestGetitemSlice.test_list_getitem_multiple_slice_start_out_of_range.<locals>.foo  sR    #E**A2r]]  "##Aq66Mr   r   r$   rz   s     r   3test_list_getitem_multiple_slice_start_out_of_rangezDTestGetitemSlice.test_list_getitem_multiple_slice_start_out_of_range  ?    		 	 
	 	"""""r   c                 b    t           d             }|                      |            d           d S )Nc                      t          j        t                    } t          dd          D ]}|                     |           | d d         }t          |          S Nr^   r_   r   r   r   s      r   r   zHTestGetitemSlice.test_list_getitem_multiple_slice_stop_zero.<locals>.foo  sR    #E**A2r]]  "1"Aq66Mr   r   r$   rz   s     r   *test_list_getitem_multiple_slice_stop_zeroz;TestGetitemSlice.test_list_getitem_multiple_slice_stop_zero  r  r   c                    |                                   t          d             }|                     t                    5 } |             d d d            n# 1 swxY w Y   |                     dt          |j                             d S )Nc                      t          j        t                    } t          dd          D ]}|                     |           | d d d          d S r  r   r   r   s     r   r   zTTestGetitemSlice.test_list_getitem_multiple_slice_zero_step_index_error.<locals>.foo  sM    #E**A2r]]  cccFFFFr   zslice step cannot be zeror   r   rQ   
ValueErrorrS   rT   rU   rV   s      r   6test_list_getitem_multiple_slice_zero_step_index_errorzGTestGetitemSlice.test_list_getitem_multiple_slice_zero_step_index_error  s    !!!		 	 
	 z** 	fCEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	' !!	
 	
 	
 	
 	
   AAAN)r3   r4   r5   r6   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r7   r   r   r   r      s7       77# # ## # #
( 
( 
(6 6 66 6 66 6 62 2 26 6 66 6 66 6 66 6 66 6 66 6 66 6 66 6 66 6 6	# 	# 	#	# 	# 	#
 
 
 
 
r   r   c                   B    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )TestSetitemzTest list setitem. c                 n    t           d             }dD ]!}|                      ||          |           "d S )Nc                 x    t          j        t                    }|                    d           | |d<   |d         S rw   rx   rE   s     r   r   z4TestSetitem.test_list_setitem_singleton.<locals>.foo  3    #E**AHHQKKKAaDQ4Kr   r    r$   r&   s      r   test_list_setitem_singletonz'TestSetitem.test_list_setitem_singleton  sW    		 	 
	   	( 	(ASSVVQ''''	( 	(r   c                 n    t           d             }dD ]!}|                      ||          |           "d S )Nc                 x    t          j        t                    }|                    d           | |d<   |d         S )Nr   rO   rx   rE   s     r   r   zCTestSetitem.test_list_setitem_singleton_negative_index.<locals>.foo  s3    #E**AHHQKKKAaDR5Lr   r    r$   r&   s      r   *test_list_setitem_singleton_negative_indexz6TestSetitem.test_list_setitem_singleton_negative_index   sW    		 	 
	   	( 	(ASSVVQ''''	( 	(r   c                 D   |                                   t          d             }|                     t                    5   |d           d d d            n# 1 swxY w Y   |                     t                    5   |d           d d d            d S # 1 swxY w Y   d S )Nc                 l    t          j        t                    }|                    d           d|| <   d S Nr   r!   rx   r   s     r   r   z@TestSetitem.test_list_setitem_singleton_index_error.<locals>.foo  s.    #E**AHHQKKKAaDDDr   r!   r   r   r   rQ   r   rz   s     r   'test_list_setitem_singleton_index_errorz3TestSetitem.test_list_setitem_singleton_index_error  s,   !!!		 	 
	
 z** 	 	CFFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 z** 	 	CGGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	#   AAA<BBBc                     t           d             }t          t          dd          t          dd                    D ]%\  }}|                      |||          |           &d S )Nc                     t          j        t                    }t          dd          D ]}|                    |           ||| <   ||          S r]   r   )r   r   r   r   s       r   r   z3TestSetitem.test_list_setitem_multiple.<locals>.foo  sL    #E**A2r]]  AaDQ4Kr   r   r^   r_      r   zipr   r%   r'   r   r   r   s       r   test_list_setitem_multiplez&TestSetitem.test_list_setitem_multiple  sw    		 	 
	 uQr{{E"RLL11 	+ 	+CAaSSAYY****	+ 	+r   c                 D   |                                   t          d             }|                     t                    5   |d           d d d            n# 1 swxY w Y   |                     t                    5   |d           d d d            d S # 1 swxY w Y   d S )Nc                     t          j        t                    }t          dd          D ]}|                    |           d|| <   d S r  r   r   s      r   r   z?TestSetitem.test_list_setitem_multiple_index_error.<locals>.foo*  sG    #E**A2r]]  AaDDDr   r^   r   r  rz   s     r   &test_list_setitem_multiple_index_errorz2TestSetitem.test_list_setitem_multiple_index_error'  s,   !!!		 	 
	 z** 	 	CGGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 z** 	 	CHHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r  c                 "   |                                   t          d             }dD ]g}|                     t                    5 } ||           d d d            n# 1 swxY w Y   |                     dt          |j                             hd S )Nc                 l    t          j        t                    }|                    d           d|| <   d S r  rx   r   s     r   r   zJTestSetitem.test_list_setitem_singleton_typing_error_on_index.<locals>.foo:  s.    #E**AHHQKKKAaDDDr   r   r   r   r   s       r   1test_list_setitem_singleton_typing_error_on_indexz=TestSetitem.test_list_setitem_singleton_typing_error_on_index7  s    !!!		 	 
	   	 	A"";// 6A              MM9F$%%   	 	r   c                    |                                   t          d             }|                     t                    5 } |             d d d            n# 1 swxY w Y   |                     dt          |j                             d S )Nc                  p    t          j        t                    } |                     d           d| d d <   d S r  rx   rP   s    r   r   zITestSetitem.test_list_setitem_singleton_typing_error_on_item.<locals>.fooL  s2    #E**AHHQKKKAaaaDDDr   zFcan only assign an iterable when using a slice with assignment/setitemr   rV   s      r   0test_list_setitem_singleton_typing_error_on_itemz<TestSetitem.test_list_setitem_singleton_typing_error_on_itemI  s    !!!		 	 
	 {++ 	vCEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	& !!	
 	
 	
 	
 	
r  c                     t           d             }t          j        D ]*}|                      | |d                    d           +d S )Nc                 x    t          j        t                    }|                    d           d|| <   ||          S r  rx   r   s     r   r   zATestSetitem.test_list_setitem_integer_types_as_index.<locals>.foo]  r  r   r   r!   r   r   s      r   (test_list_setitem_integer_types_as_indexz4TestSetitem.test_list_setitem_integer_types_as_index[  sb    		 	 
	 % 	- 	-ASS!!A$$[[!,,,,	- 	-r   N)r3   r4   r5   r6   r  r  r  r$  r'  r*  r-  r0  r7   r   r   r  r    s        	( 	( 	(	( 	( 	(  + + +     $
 
 
$- - - - -r   r  c                   H    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S )TestPopzTest list pop. c                 b    t           d             }|                      |            d           d S )Nc                      t          j        t                    } |                     d           |                                 t          |           fS rw   r   r   r   r   popr   rP   s    r   r   z,TestPop.test_list_pop_singleton.<locals>.foon  s9    #E**AHHQKKK5577CFF?"r   r   r   r$   rz   s     r   test_list_pop_singletonzTestPop.test_list_pop_singletonm  s?    		# 	# 
	#
 	'''''r   c                     t           d             }|                      |d          d           |                      |d          d           d S )Nc                     t          j        t                    }|                    d           |                    |           t          |          fS rw   r5  r   s     r   r   z2TestPop.test_list_pop_singleton_index.<locals>.foow  s<    #E**AHHQKKK5588SVV##r   r   r7  rO   r$   rz   s     r   test_list_pop_singleton_indexz%TestPop.test_list_pop_singleton_indexv  s_    		$ 	$ 
	$
 	Q(((R&)))))r   c                 b    t           d             }|                      |            d           d S )Nc                      t          j        t                    } dD ]}|                     |           |                                 t          |           fS Nr^   r   r   r5  r
  s     r   r   z+TestPop.test_list_pop_multiple.<locals>.foo  sJ    #E**A!  5577CFF?"r   )r   r"   r$   rz   s     r   test_list_pop_multiplezTestPop.test_list_pop_multiple  s?    		# 	# 
	# 	(((((r   c                     t           d             }dD ]&\  }}|                      ||          |df           'dD ]&\  }}|                      ||          |df           'd S )Nc                     t          j        t                    }dD ]}|                    |           |                    |           t          |          fS r>  r5  r   s      r   r   z1TestPop.test_list_pop_multiple_index.<locals>.foo  sM    #E**A!  5588SVV##r   )r   )r!   r   )r"   r   r"   ))r^   )r   r   )rO   r   r$   r#  s       r   test_list_pop_multiple_indexz$TestPop.test_list_pop_multiple_index  s    		$ 	$ 
	$ 0 	- 	-DAqSSVVaV,,,,2 	- 	-DAqSSVVaV,,,,	- 	-r   c                     t           d             }t          j        D ]*}|                      | |d                    d           +d S )Nc                     t          j        t                    }|                    d           |                    |           S rw   r   r   r   r   r6  r   s     r   r   z9TestPop.test_list_pop_integer_types_as_index.<locals>.foo  s0    #E**AHHQKKK5588Or   r   r   r   s      r   $test_list_pop_integer_types_as_indexz,TestPop.test_list_pop_integer_types_as_index  sb    		 	 
	 % 	- 	-ASS!!A$$[[!,,,,	- 	-r   c                    |                                   t          d             }|                     t                    5 } |             d d d            n# 1 swxY w Y   |                     dt          |j                             d S )Nc                  `    t          j        t                    } |                                  d S r   r   r   r   r6  rP   s    r   r   z=TestPop.test_list_pop_empty_index_error_no_index.<locals>.foo  s#    #E**AEEGGGGGr   pop from empty listr   rV   s      r   (test_list_pop_empty_index_error_no_indexz0TestPop.test_list_pop_empty_index_error_no_index  s    !!!		 	 
	 z** 	fCEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	! !!	
 	
 	
 	
 	
r  c                    |                                   t          d             }|                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     dt          |j                             d S )Nc                 b    t          j        t                    }|                    |            d S r   rK  r   s     r   r   z?TestPop.test_list_pop_empty_index_error_with_index.<locals>.foo  s%    #E**AEE!HHHHHr   rO   rL  r   r!   r   rV   s      r   *test_list_pop_empty_index_error_with_indexz2TestPop.test_list_pop_empty_index_error_with_index  s   !!!		 	 
	 z** 	fCGGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	! !!	
 	
 	

 z** 	fCFFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	! !!	
 	
 	

 z** 	fCFFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	! !!	
 	
 	
 	
 	
s5   AAA$B<<C C 	D!!D%(D%c                    |                                   t          d             }|                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     dt          |j                             d S )Nc                     t          j        t                    }dD ]}|                    |           |                    |            d S r>  rG  r   s      r   r   zATestPop.test_list_pop_mutiple_index_error_with_index.<locals>.foo  sE    #E**A!  EE!HHHHHr   r   r1   r   rV   s      r   ,test_list_pop_mutiple_index_error_with_indexz4TestPop.test_list_pop_mutiple_index_error_with_index  so   !!!		 	 
	 z** 	fCGGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	% !!	
 	
 	

 z** 	fCFFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	% !!	
 	
 	
 	
 	
s#   AAA$B<<C C c                 "   |                                   t          d             }dD ]g}|                     t                    5 } ||           d d d            n# 1 swxY w Y   |                     dt          |j                             hd S )Nc                     t          j        t                    }|                    d           |                    |           S rw   rG  r   s     r   r   zBTestPop.test_list_pop_singleton_typing_error_on_index.<locals>.foo  s0    #E**AHHQKKK5588Or   r   z#argument for pop must be an integerr   r   s       r   -test_list_pop_singleton_typing_error_on_indexz5TestPop.test_list_pop_singleton_typing_error_on_index  s    !!!		 	 
	   	 	A"";// 6A              MM5F$%%   	 	r   N)r3   r4   r5   r6   r8  r;  r@  rD  rH  rM  rP  rT  rW  r7   r   r   r2  r2  j  s        ( ( (* * *) ) )- - -- - -
 
 

 
 
:
 
 
0    r   r2  c                   N    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S )TestListObjectDelitemzTest list delitem.
    c                 b    t           d             }|                      |            d           d S )Nc                      t          j        t                    } |                     d           | d= t	          |           S rw   r   rP   s    r   r   zDTestListObjectDelitem.test_list_singleton_delitem_index.<locals>.foo  s3    #E**AHHQKKK!q66Mr   r   r$   rz   s     r   !test_list_singleton_delitem_indexz7TestListObjectDelitem.test_list_singleton_delitem_index   ?    		 	 
	
 	"""""r   c                 b    t           d             }|                      |            d           d S )Nc                      t          j        t                    } |                     d           | d d = t	          |           S rw   r   rP   s    r   r   zMTestListObjectDelitem.test_list_singleton_delitem_slice_defaults.<locals>.foo  s7    #E**AHHQKKK!!!q66Mr   r   r$   rz   s     r   *test_list_singleton_delitem_slice_defaultsz@TestListObjectDelitem.test_list_singleton_delitem_slice_defaults
  r]  r   c                 b    t           d             }|                      |            d           d S )Nc                      t          j        t                    } |                     d           | dd = t	          |           S rw   r   rP   s    r   r   zJTestListObjectDelitem.test_list_singleton_delitem_slice_start.<locals>.foo  s7    #E**AHHQKKK!""q66Mr   r   r$   rz   s     r   'test_list_singleton_delitem_slice_startz=TestListObjectDelitem.test_list_singleton_delitem_slice_start  r]  r   c                 b    t           d             }|                      |            d           d S )Nc                      t          j        t                    } |                     d           | d d= t	          |           S r  r   rP   s    r   r   zITestListObjectDelitem.test_list_singleton_delitem_slice_stop.<locals>.foo   s7    #E**AHHQKKK"1"q66Mr   r   r$   rz   s     r   &test_list_singleton_delitem_slice_stopz<TestListObjectDelitem.test_list_singleton_delitem_slice_stop  r]  r   c                 b    t           d             }|                      |            d           d S )Nc                      t          j        t                    } |                     d           | dd= t	          |           S r  r   rP   s    r   r   zOTestListObjectDelitem.test_list_singleton_delitem_slice_start_stop.<locals>.foo*  s7    #E**AHHQKKK!A#q66Mr   r   r$   rz   s     r   ,test_list_singleton_delitem_slice_start_stopzBTestListObjectDelitem.test_list_singleton_delitem_slice_start_stop(  r]  r   c                 b    t           d             }|                      |            d           d S )Nc                      t          j        t                    } |                     d           | dd d= t	          |           S r  r   rP   s    r   r   zOTestListObjectDelitem.test_list_singleton_delitem_slice_start_step.<locals>.foo4  s9    #E**AHHQKKK!$Q$q66Mr   r   r$   rz   s     r   ,test_list_singleton_delitem_slice_start_stepzBTestListObjectDelitem.test_list_singleton_delitem_slice_start_step2  r]  r   c                 b    t           d             }|                      |            d           d S )Nc                      t          j        t                    } |                     d           | ddd= t	          |           S r  r   rP   s    r   r   zTTestListObjectDelitem.test_list_singleton_delitem_slice_start_stop_step.<locals>.foo>  s9    #E**AHHQKKK!Aa%q66Mr   r   r$   rz   s     r   1test_list_singleton_delitem_slice_start_stop_stepzGTestListObjectDelitem.test_list_singleton_delitem_slice_start_stop_step<  r]  r   c                 b    t           d             }|                      |            d           d S )Nc                      t          j        t                    } dD ]}|                     |           | d= t	          |           | d         | d         fS )Nr?  r   r!   r   r
  s     r   r   z=TestListObjectDelitem.test_list_multiple_delitem.<locals>.fooH  sT    #E**A!  !q661Q41%%r   )r"   r   r   r$   rz   s     r   test_list_multiple_delitemz0TestListObjectDelitem.test_list_multiple_delitemF  s?    		& 	& 
	& 	,,,,,r   c                 b    t           d             }|                      |            d           d S )Nc                      t          j        t                    } dD ]}|                     |           | d d = t	          |           S r>  r   r
  s     r   r   zCTestListObjectDelitem.test_list_multiple_delitem_slice.<locals>.fooS  sH    #E**A!  !!!q66Mr   r   r$   rz   s     r    test_list_multiple_delitem_slicez6TestListObjectDelitem.test_list_multiple_delitem_sliceQ  s?    		 	 
	 	"""""r   c                 `    t           d             }|                      |                       d S )Nc                     t          j        t                    } t          dd          D ]}|                     |           t          j        t                    }t          dd          D ]}|                    |           | dd= || k    S )Nr^   r_   iir   )r   r   ks      r   r   zHTestListObjectDelitem.test_list_multiple_delitem_off_by_one.<locals>.foo_  s    #E**A2r]]  #E**A2r]]  "S&	6Mr   r   
assertTruerz   s     r   %test_list_multiple_delitem_off_by_onez;TestListObjectDelitem.test_list_multiple_delitem_off_by_one\  s=     
		 		 
		 	r   N)r3   r4   r5   r6   r\  r`  rc  rf  ri  rl  ro  rr  ru  r{  r7   r   r   rY  rY    s         # # ## # ## # ## # ## # ## # ## # #	- 	- 	-	# 	# 	#    r   rY  c                   $    e Zd ZdZd Zd Zd ZdS )TestContainszTest list contains. c                     t           d             }|                      |d                     |                      |d                     d S )Nc                 <    t          j        t                    }| |v S r   r   r   s     r   r   z2TestContains.test_list_contains_empty.<locals>.fooq  s    #E**A6Mr   r   r!   r   assertFalserz   s     r   test_list_contains_emptyz%TestContains.test_list_contains_emptyp  s[    		 	 
	 	Q   Q     r   c                     t           d             }|                      |d                     |                      |d                     d S )Nc                 f    t          j        t                    }|                    d           | |v S rw   rx   r   s     r   r   z6TestContains.test_list_contains_singleton.<locals>.fooz  s*    #E**AHHQKKK6Mr   r   r!   )r   rz  r  rz   s     r   test_list_contains_singletonz)TestContains.test_list_contains_singletony  sY    		 	 
	
 	AQ     r   c                     t           d             }t          dd          D ] }|                      ||                     !t          dd          D ] }|                      ||                     !d S )Nc                     t          j        t                    }t          dd          D ]}|                    |           | |v S r]   r   r   s      r   r   z5TestContains.test_list_contains_multiple.<locals>.foo  sC    #E**A2r]]  6Mr   r^   r_   r   )r   r   rz  r  r&   s      r   test_list_contains_multiplez(TestContains.test_list_contains_multiple  s    		 	 
	 r2 	$ 	$AOOCCFF####r2 	% 	%ASSVV$$$$	% 	%r   N)r3   r4   r5   r6   r  r  r  r7   r   r   r}  r}  m  sG        ! ! !! ! !% % % % %r   r}  c                   $    e Zd ZdZd Zd Zd ZdS )	TestCountzTest list count. c                 d    t           d             }|                      |d          d           d S )Nc                 ^    t          j        t                    }|                    |           S r   )r   r   r   countr   s     r   r   z,TestCount.test_list_count_empty.<locals>.foo  s"    #E**A771::r   r^   r   r$   rz   s     r   test_list_count_emptyzTestCount.test_list_count_empty  sA    		 	 
	 	R!$$$$$r   c                     t           d             }|                      |d          d           |                      |d          d           d S )Nc                     t          j        t                    }|                    d           |                    |           S Nr^   r   r   r   r   r  r   s     r   r   z0TestCount.test_list_count_singleton.<locals>.foo  s1    #E**AHHRLLL771::r   r!   r   r^   r$   rz   s     r   test_list_count_singletonz#TestCount.test_list_count_singleton  s_    		 	 
	
 	Q###R!$$$$$r   c                    t           d             }|                      |d          d           |                      |d          d           |                      |d          d           |                      |d          d	           d S )
Nc                     t          j        t                    }dD ]}|                    |           |                    |           S )N)r   r   r   r   r   r   r  r   s      r   r   z.TestCount.test_list_count_mutiple.<locals>.foo  sB    #E**A-  771::r   r^   r   r   r!   r   r"   r   r1   r$   rz   s     r   test_list_count_mutiplez!TestCount.test_list_count_mutiple  s    		 	 
	 	R!$$$R!$$$R!$$$R!$$$$$r   N)r3   r4   r5   r6   r  r  r  r7   r   r   r  r    sG        % % %% % %% % % % %r   r  c                       e Zd ZdZd Zd ZdS )
TestExtendzTest list extend. c                     t           d             }|                      |d          d           |                      |d          d           |                      |d          d           d S )Nc                 |    t          j        t                    }|                    |            t	          |          S r   )r   r   r   extendr   )r   r   s     r   r   z.TestExtend.test_list_extend_empty.<locals>.foo  s,    #E**AHHUOOOq66Mr   )r!   r!   )r!   r"   r"   r0   r1   r$   rz   s     r   test_list_extend_emptyz!TestExtend.test_list_extend_empty  s}    		 	 
	
 	TA&&&UQ'''Wq)))))r   c                    |                                   t          d             }|                     t                    5 } |             d d d            n# 1 swxY w Y   |                     dt          |j                             d S )Nc                  b    t          j        t                    } |                     d           d S Nr!   r   r   r   r  rP   s    r   r   zBTestExtend.test_list_extend_typing_error_non_iterable.<locals>.foo  %    #E**AHHQKKKKKr   z extend argument must be iterabler   rV   s      r   *test_list_extend_typing_error_non_iterablez5TestExtend.test_list_extend_typing_error_non_iterable  s    !!!		 	 
	 {++ 	vCEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	. !!	
 	
 	
 	
 	
r  N)r3   r4   r5   r6   r  r  r7   r   r   r  r    s8        	* 	* 	*
 
 
 
 
r   r  c                   6    e Zd ZdZd Zd Zd Zd Zd Zd Z	dS )	
TestInsertzTest list insert. c                 n    t           d             }dD ]!}|                      ||          d           "d S )Nc                     t          j        t                    }|                    | d           t	          |          |d         fS Nr!   r   )r   r   r   insertr   r   s     r   r   z.TestInsert.test_list_insert_empty.<locals>.foo  s7    #E**AHHQNNNq661Q4<r   )r   r   rO   r   r!   rd   ri   )r!   r!   r$   r&   s      r   test_list_insert_emptyz!TestInsert.test_list_insert_empty  sW    		  	  
	 
 + 	- 	-ASSVVV,,,,	- 	-r   c                     t           d             }dD ]!}|                      ||          d           "dD ]!}|                      ||          d           "d S )Nc                     t          j        t                    }|                    d           |                    | d           t          |          |d         |d         fS r  )r   r   r   r   r  r   r   s     r   r   z2TestInsert.test_list_insert_singleton.<locals>.foo  sM    #E**AHHQKKKHHQNNNq661Q41%%r   )r   rC  r   rO   r   )r"   r!   r   )r!   r"   r1   r^   )r"   r   r!   r$   r&   s      r   test_list_insert_singletonz%TestInsert.test_list_insert_singleton  s    		& 	& 
	& & 	0 	0ASSVVY////  	0 	0ASSVVY////	0 	0r   c                 n    t           d             }dD ]!}|                      ||          d           "d S )Nc                     t          j        t                    }t          d          D ]}|                    d           |                    | d           t          |          ||          fS Nr^   r   r!   r   r   r   r   r   r  r   r   s      r   r   z1TestInsert.test_list_insert_multiple.<locals>.foo  ]    #E**A2YY  HHQNNNq661Q4<r   )r   rd   ri   r   r!   r$   r&   s      r   test_list_insert_multiplez$TestInsert.test_list_insert_multiple  sW    		  	  
	   	. 	.ASSVVW----	. 	.r   c                 n    t           d             }dD ]!}|                      ||          d           "d S )Nc                     t          j        t                    }t          d          D ]}|                    d           |                    | d           t          |          |d         fS r  r  r   s      r   r   z8TestInsert.test_list_insert_multiple_before.<locals>.foo  r  r   )ir   r   r   r  r$   r&   s      r    test_list_insert_multiple_beforez+TestInsert.test_list_insert_multiple_before  sW    		  	  
	  $ 	. 	.ASSVVW----	. 	.r   c                 n    t           d             }dD ]!}|                      ||          d           "d S )Nc                     t          j        t                    }t          d          D ]}|                    d           |                    | d           t          |          |d         fS r  r  r   s      r   r   z7TestInsert.test_list_insert_multiple_after.<locals>.foo	  s]    #E**A2YY  HHQNNNq661R5= r   r?  r  r$   r&   s      r   test_list_insert_multiple_afterz*TestInsert.test_list_insert_multiple_after  sW    		! 	! 
	!  	. 	.ASSVVW----	. 	.r   c                    |                                   t          d             }|                     t                    5 } |             d d d            n# 1 swxY w Y   |                     dt          |j                             d S )Nc                  d    t          j        t                    } |                     dd           d S )Nar   )r   r   r   r  rP   s    r   r   z5TestInsert.test_list_insert_typing_error.<locals>.foo  s,    #E**AHHS!r   z$list insert indices must be integersr   rV   s      r   test_list_insert_typing_errorz(TestInsert.test_list_insert_typing_error  s    !!!		 	 
	 {++ 	vCEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	2 !!	
 	
 	
 	
 	
r  N)
r3   r4   r5   r6   r  r  r  r  r  r  r7   r   r   r  r    st        - - -0 0 0 
. 
. 
.
. 
. 
.
. 
. 
.
 
 
 
 
r   r  c                   0    e Zd ZdZd Zd Zd Zd Zd ZdS )
TestRemovezTest list remove. c                     |                                   t          d             }|                     t                    5   |             d d d            d S # 1 swxY w Y   d S )Nc                  b    t          j        t                    } |                     d           d S rw   )r   r   r   removerP   s    r   r   z.TestRemove.test_list_remove_empty.<locals>.foo*  r  r   r   r   rQ   r  rz   s     r   test_list_remove_emptyz!TestRemove.test_list_remove_empty'  s    !!!		 	 
	 z** 	 	CEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   AAAc                 b    t           d             }|                      |            d           d S )Nc                      t          j        t                    } |                     d           |                     d           t          |           S rw   )r   r   r   r   r  r   rP   s    r   r   z2TestRemove.test_list_remove_singleton.<locals>.foo3  s;    #E**AHHQKKKHHQKKKq66Mr   r   r$   rz   s     r   test_list_remove_singletonz%TestRemove.test_list_remove_singleton2  r   r   c                     |                                   t          d             }|                     t                    5   |             d d d            d S # 1 swxY w Y   d S )Nc                      t          j        t                    } |                     d           |                     d           d S r  )r   r   r   r   r  rP   s    r   r   z>TestRemove.test_list_remove_singleton_value_error.<locals>.foo?  s4    #E**AHHQKKKHHQKKKKKr   r  rz   s     r   &test_list_remove_singleton_value_errorz1TestRemove.test_list_remove_singleton_value_error<  s    !!!		 	 
	
 z** 	 	CEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r  c                 b    t           d             }|                      |            d           d S )Nc                      t          j        t                    } t          dd          D ]}|                     |           |                     d           |                     d           t          |           S )Nr^   r_   r   r   )r   r   r   r   r   r  r   r
  s     r   r   z1TestRemove.test_list_remove_multiple.<locals>.fooI  sc    #E**A2r]]  HHRLLLHHRLLLq66Mr   rh   r$   rz   s     r   test_list_remove_multiplez$TestRemove.test_list_remove_multipleH  s?    		 	 
	 	"""""r   c                     |                                   t          d             }|                     t                    5   |             d d d            d S # 1 swxY w Y   d S )Nc                      t          j        t                    } t          dd          D ]}|                     |           |                     d           d S Nr^   r_      )r   r   r   r   r   r  r
  s     r   r   z=TestRemove.test_list_remove_multiple_value_error.<locals>.fooW  sM    #E**A2r]]  HHRLLLLLr   r  rz   s     r   %test_list_remove_multiple_value_errorz0TestRemove.test_list_remove_multiple_value_errorT  s    !!!		 	 
	 z** 	 	CEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r  N)	r3   r4   r5   r6   r  r  r  r  r  r7   r   r   r  r  $  se        	 	 	# # #
 
 

# 
# 
#    r   r  c                   $    e Zd ZdZd Zd Zd ZdS )	TestClearzTest list clear. c                 b    t           d             }|                      |            d           d S )Nc                  z    t          j        t                    } |                                  t	          |           S r   )r   r   r   clearr   rP   s    r   r   z,TestClear.test_list_clear_empty.<locals>.foof  s*    #E**AGGIIIq66Mr   r   r$   rz   s     r   test_list_clear_emptyzTestClear.test_list_clear_emptye  r   r   c                 b    t           d             }|                      |            d           d S )Nc                      t          j        t                    } |                     d           |                                  t          |           S rw   )r   r   r   r   r  r   rP   s    r   r   z0TestClear.test_list_clear_singleton.<locals>.fooo  s9    #E**AHHQKKKGGIIIq66Mr   r   r$   rz   s     r   test_list_clear_singletonz#TestClear.test_list_clear_singletonn  r   r   c                 b    t           d             }|                      |            d           d S )Nc                      t          j        t                    } t          d          D ]}|                     d           |                                  t          |           S )Nr^   r   )r   r   r   r   r   r  r   r
  s     r   r   z/TestClear.test_list_clear_multiple.<locals>.fooy  sP    #E**A2YY  GGIIIq66Mr   r   r$   rz   s     r   test_list_clear_multiplez"TestClear.test_list_clear_multiplex  s?    		 	 
	 	"""""r   N)r3   r4   r5   r6   r  r  r  r7   r   r   r  r  b  sG        # # ## # ## # # # #r   r  c                   $    e Zd ZdZd Zd Zd ZdS )TestReversezTest list reverse. c                 b    t           d             }|                      |            d           d S )Nc                  z    t          j        t                    } |                                  t	          |           S r   )r   r   r   reverser   rP   s    r   r   z0TestReverse.test_list_reverse_empty.<locals>.foo  s*    #E**AIIKKKq66Mr   r   r$   rz   s     r   test_list_reverse_emptyz#TestReverse.test_list_reverse_empty  r   r   c                 b    t           d             }|                      |            d           d S )Nc                      t          j        t                    } |                     d           |                                  t          |           | d         fS rw   )r   r   r   r   r  r   rP   s    r   r   z4TestReverse.test_list_reverse_singleton.<locals>.foo  sB    #E**AHHQKKKIIKKKq661Q4<r   )r!   r   r$   rz   s     r   test_list_reverse_singletonz'TestReverse.test_list_reverse_singleton  s?    		  	  
	  	'''''r   c                 b    t           d             }|                      |            d           d S )Nc                      t          j        t                    } t          dd          D ]}|                     |           |                                  t          |           | d         | d         | d         fS Nr^   r   r   r!   r"   )r   r   r   r   r   r  r   r
  s     r   r   z3TestReverse.test_list_reverse_multiple.<locals>.foo  sh    #E**A2r]]  IIKKKq661Q41qt++r   )r1   r   r   r^   r$   rz   s     r   test_list_reverse_multiplez&TestReverse.test_list_reverse_multiple  s?    		, 	, 
	, 	00000r   N)r3   r4   r5   r6   r  r  r  r7   r   r   r  r    sG        # # #( ( (1 1 1 1 1r   r  c                   $    e Zd ZdZd Zd Zd ZdS )TestCopyzTest list copy. c                 b    t           d             }|                      |            d           d S )Nc                      t          j        t                    } |                                 }t	          |           t	          |          fS r   )r   r   r   copyr   r   s     r   r   z*TestCopy.test_list_copy_empty.<locals>.foo  s5    #E**AAq663q66>!r   r7  r$   rz   s     r   test_list_copy_emptyzTestCopy.test_list_copy_empty  s?    		" 	" 
	"
 	'''''r   c                 b    t           d             }|                      |            d           d S )Nc                      t          j        t                    } |                     d           |                                 }t          |           t          |          | d         |d         fS rw   )r   r   r   r   r  r   r   s     r   r   z.TestCopy.test_list_copy_singleton.<locals>.foo  sQ    #E**AHHQKKKAq663q661Q41--r   )r!   r!   r   r   r$   rz   s     r   test_list_copy_singletonz!TestCopy.test_list_copy_singleton  s?    		. 	. 
	. 	-----r   c                 b    t           d             }|                      |            d           d S )Nc            	      <   t          j        t                    } t          dd          D ]}|                     |           |                                 }t          |           t          |          | d         | d         | d         | d         | d         | d         fS r  )r   r   r   r   r   r  r   r   s      r   r   z-TestCopy.test_list_copy_multiple.<locals>.foo  s    #E**A2r]]  Aq663q661Q41qtQqT1Q41EEr   )r1   r1   r^   r   r   r^   r   r   r$   rz   s     r   test_list_copy_multiplez TestCopy.test_list_copy_multiple  sC    		F 	F 
	F 	 >?????r   N)r3   r4   r5   r6   r  r  r  r7   r   r   r  r    sL        ( ( (. . .	@ 	@ 	@ 	@ 	@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S )	TestIndexc                 b    t           d             }|                      |            d           d S )Nc                      t          j        t                    } |                     d           |                     d          S r  r   r   r   r   indexrP   s    r   r   z+TestIndex.test_index_singleton.<locals>.foo  1    #E**AHHQKKK771::r   r   r$   rz   s     r   test_index_singletonzTestIndex.test_index_singleton  s?    		 	 
	
 	"""""r   c                     t           d             }t          t          d          t          dd                    D ]$\  }}|                      ||          |           %d S )Nc                     t          j        t                    }t          dd          D ]}|                    |           |                    |           S r]   r   r   r   r   r   r  r   s      r   r   z*TestIndex.test_index_multiple.<locals>.foo  J    #E**A2r]]  771::r   r^   r_   r!  )r'   r   r   vs       r   test_index_multiplezTestIndex.test_index_multiple  ss    		 	 
	 uRyy%2,,// 	( 	(CAaSSVVQ''''	( 	(r   c                 b    t           d             }|                      |            d           d S )Nc                      t          j        t                    } t          dd          D ]}|                     d           |                     d          S Nr^   r_   r!   r  )r   _s     r   r   z+TestIndex.test_index_duplicate.<locals>.foo  r  r   r   r$   rz   s     r   test_index_duplicatezTestIndex.test_index_duplicate  s?    		 	 
	 	"""""r   c                     t           d             }t          d          D ]!}|                      ||          |           "d S )Nc                     t          j        t                    }t          dd          D ]}|                    d           |                    d|           S r	  r  )startr   r
  s      r   r   z6TestIndex.test_index_duplicate_with_start.<locals>.foo  sN    #E**A2r]]  771e$$$r   r^   rJ   r&   s      r   test_index_duplicate_with_startz)TestIndex.test_index_duplicate_with_start  s]    		% 	% 
	% r 	( 	(ASSVVQ''''	( 	(r   c                    |                                   t          d             }|                     t                    5 } |             d d d            n# 1 swxY w Y   |                     dt          |j                             d S )Nc                      t          j        t                    } |                     d           |                     d          S r  r  rP   s    r   r   z7TestIndex.test_index_singleton_value_error.<locals>.foo  r  r   item not in listr  rV   s      r    test_index_singleton_value_errorz*TestIndex.test_index_singleton_value_error  s    !!!		 	 
	
 z** 	fCEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 !!	
 	
 	
 	
 	
r  c                    |                                   t          d             }|                     t                    5 } |             d d d            n# 1 swxY w Y   |                     dt          |j                             d S )Nc                      t          j        t                    } t          dd          D ]}|                     |           |                     d          S r  r  r
  s     r   r   z6TestIndex.test_index_multiple_value_error.<locals>.foo  sJ    #E**A2r]]  772;;r   r  r  rV   s      r   test_index_multiple_value_errorz)TestIndex.test_index_multiple_value_error  s    !!!		 	 
	 z** 	fCEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 !!	
 	
 	
 	
 	
r  c                 |   |                                   t          d             }|                      |d          d           t          dd          D ]g}|                     t
                    5 } ||           d d d            n# 1 swxY w Y   |                     dt          |j                             hd S )Nc                     t          j        t                    }t          dd          D ]}|                    |           |                    d|           S r]   r  )r  r   r   s      r   r   z<TestIndex.test_index_multiple_value_error_start.<locals>.foo  sN    #E**A2r]]  772u%%%r   r   r!   r^   r  	r   r   r%   r   rQ   r  rS   rT   rU   r   s       r   %test_index_multiple_value_error_startz/TestIndex.test_index_multiple_value_error_start  s   !!!		& 	& 
	& 	Q###q 	 	A"":.. &A              MM"F$%%   	 	   0BB	B	c                 |   |                                   t          d             }|                      |d          d           t          dd          D ]g}|                     t
                    5 } ||           d d d            n# 1 swxY w Y   |                     dt          |j                             hd S )Nc                     t          j        t                    }t          dd          D ]}|                    |           |                    dd|           S )Nr^   r_   r   r   r  )endr   r   s      r   r   z:TestIndex.test_index_multiple_value_error_end.<locals>.foo(  sP    #E**A2r]]  772q#&&&r   r^   ri   r   r  r  r   s       r   #test_index_multiple_value_error_endz-TestIndex.test_index_multiple_value_error_end%  s   !!!		' 	' 
	' 	R!$$$q 	 	A"":.. &A              MM"F$%%   	 	r  c                    |                                   t          d             }|                     t                    5 } |             d d d            n# 1 swxY w Y   |                     dt          |j                             d S )Nc                      t          j        t                    } |                     d           |                     dd          S )Nr   r  )r  r  rP   s    r   r   z4TestIndex.test_index_typing_error_start.<locals>.foo;  s7    #E**AHHQKKK771C7(((r   z+start argument for index must be an integerr   rV   s      r   test_index_typing_error_startz'TestIndex.test_index_typing_error_start8  s    !!!		) 	) 
	)
 {++ 	vCEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	9 !!	
 	
 	
 	
 	
r  c                    |                                   t          d             }|                     t                    5 } |             d d d            n# 1 swxY w Y   |                     dt          |j                             d S )Nc                      t          j        t                    } |                     d           |                     dd          S )Nr   r  )r  r  rP   s    r   r   z2TestIndex.test_index_typing_error_end.<locals>.fooK  s7    #E**AHHQKKK771#7&&&r   z)end argument for index must be an integerr   rV   s      r   test_index_typing_error_endz%TestIndex.test_index_typing_error_endH  s    !!!		' 	' 
	'
 {++ 	vCEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	7 !!	
 	
 	
 	
 	
r  N)r3   r4   r5   r   r  r  r  r  r  r  r  r"  r%  r7   r   r   r  r    s        # # #	( 	( 	(# # #	( 	( 	(
 
 
 
 
 
"  &  &
 
 
 
 
 
 
 
r   r  c                   6    e Zd ZdZd Zd Zd Zd Zd Zd Z	dS )	TestEqualNotEqualzTest list equal and not equal. c                 b    t           d             }|                      |            d           d S )Nc                  ~    t          j        t                    } t          j        t                    }| |k    | |k    fS r   r   r   os     r   r   z4TestEqualNotEqual.test_list_empty_equal.<locals>.foo]  s4    #E**A#E**A616>!r   TFr$   rz   s     r   test_list_empty_equalz'TestEqualNotEqual.test_list_empty_equal\  s?    		" 	" 
	"
 	.....r   c                 b    t           d             }|                      |            d           d S )Nc                      t          j        t                    } |                     d           t          j        t                    }|                    d           | |k    | |k    fS rw   rx   r*  s     r   r   z8TestEqualNotEqual.test_list_singleton_equal.<locals>.foof  R    #E**AHHQKKK#E**AHHQKKK616>!r   r,  r$   rz   s     r   test_list_singleton_equalz+TestEqualNotEqual.test_list_singleton_equale  ?    		" 	" 
	" 	.....r   c                 b    t           d             }|                      |            d           d S )Nc                      t          j        t                    } |                     d           t          j        t                    }|                    d           | |k    | |k    fS r  rx   r*  s     r   r   z<TestEqualNotEqual.test_list_singleton_not_equal.<locals>.fooq  r0  r   FTr$   rz   s     r   test_list_singleton_not_equalz/TestEqualNotEqual.test_list_singleton_not_equalp  r2  r   c                 b    t           d             }|                      |            d           d S )Nc                      t          j        t                    } |                     d           t          j        t                    }| |k    | |k    fS rw   rx   r*  s     r   r   z8TestEqualNotEqual.test_list_length_mismatch.<locals>.foo|  sC    #E**AHHQKKK#E**A616>!r   r5  r$   rz   s     r   test_list_length_mismatchz+TestEqualNotEqual.test_list_length_mismatch{  s?    		" 	" 
	" 	.....r   c                 b    t           d             }|                      |            d           d S )Nc                      t          j        t                    } t          j        t                    }t          d          D ],}|                     |           |                    |           -| |k    | |k    fS r  r   r   r+  r   s      r   r   z7TestEqualNotEqual.test_list_multiple_equal.<locals>.foo  si    #E**A#E**A2YY  616>!r   r,  r$   rz   s     r   test_list_multiple_equalz*TestEqualNotEqual.test_list_multiple_equal  s?    		" 	" 
	" 	.....r   c                 b    t           d             }|                      |            d           d S )Nc                      t          j        t                    } t          j        t                    }t          d          D ],}|                     |           |                    |           -d|d<   | |k    | |k    fS )Nr^   *   rO   r   r<  s      r   r   z;TestEqualNotEqual.test_list_multiple_not_equal.<locals>.foo  sr    #E**A#E**A2YY  AbE616>!r   r5  r$   rz   s     r   test_list_multiple_not_equalz.TestEqualNotEqual.test_list_multiple_not_equal  s?    		" 	" 
	" 	.....r   N)
r3   r4   r5   r6   r-  r1  r6  r9  r=  rA  r7   r   r   r'  r'  Y  st        ))/ / /	/ 	/ 	/	/ 	/ 	// / /
/ 
/ 
// / / / /r   r'  c                       e Zd ZdZd Zd ZdS )TestIterzTest list iter. c                     t           d             }d}|                      ||          t          |                     d S )Nc                 z    t          j        t                    }|                    |            d}|D ]}||z  }|S rw   r  )r   r   rr   s       r   r   z$TestIter.test_list_iter.<locals>.foo  sE    #E**AHHUOOOA  QHr   r!   r"   r1   rd   )r   r%   sumr'   r   r   s      r   test_list_iterzTestIter.test_list_iter  sX    		 	 
	 CJJJJ	
 	
 	
 	
 	
r   c                 D   |                                   t          d             }|                     t                    5 } |             d d d            n# 1 swxY w Y   |                      dj        di t                      t          |j                             d S )Nc                      t          j        t                    } |                     d           | D ]}|                     |           d S )NrG  )r   r   r   r  r   ra   s     r   r   z2TestIter.test_list_iter_self_mutation.<locals>.foo  sN    #E**AHH\"""   r   z!list was mutated during iterationr7   )	r   r   rQ   rR   rS   formatlocalsrT   rU   rV   s      r   test_list_iter_self_mutationz%TestIter.test_list_iter_self_mutation  s    !!!		 	 
	 |,, 	CEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	6/6BBBB !!	
 	
 	
 	
 	
r  N)r3   r4   r5   r6   rJ  rO  r7   r   r   rC  rC    s8        
 
 
$
 
 
 
 
r   rC  c                       e Zd ZdZd ZdS )TestStringItemz%Test list can take strings as items. c                     t           d             } |            }|                     g dt          |                     d S )Nc                  "   t          j        t          j                  } |                     d           |                     d           |                     d           |                     d           | d         | d         | d         | d         fS )	Nr  bcdr   r!   r"   r1   )r   r   r   unicode_typer   rP   s    r   r   z,TestStringItem.test_string_item.<locals>.foo  sp    #E$677AHHSMMMHHSMMMHHSMMMHHSMMMQ41qtQqT))r   )r  rT  rU  rV  )r   r%   r,   rI  s      r   test_string_itemzTestStringItem.test_string_item  sQ    		* 	* 
	* ---tE{{;;;;;r   N)r3   r4   r5   r6   rX  r7   r   r   rQ  rQ    s)        //< < < < <r   rQ  c                   N    e Zd Zed             Zd Zd Zd Zd Zd Z	d Z
d Zd	S )
TestItemCastingc                 j    t          j        |          }|                     | d                     d S rw   )r   r   r   )fromtytotyr   s      r   r   zTestItemCasting.foo  s2    %%	r   c                 <    t                               ||           d S r   )rZ  r   )r'   r\  r]  s      r   
check_goodzTestItemCasting.check_good  s    FD)))))r   c                    |                      t                    5 }t                              ||           d d d            n# 1 swxY w Y   |                      dj        di t                      t          |j                             d S )Nz%cannot safely cast {fromty} to {toty}r7   )	rQ   r   rZ  r   rS   rM  rN  rT   rU   )r'   r\  r]  rW   s       r   	check_badzTestItemCasting.check_bad  s    {++ 	.v---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.:3:FFVXXFF !!	
 	
 	
 	
 	
s   AA
Ac                    |                      t          j        t          j                   |                      t          j        t          j                   |                      t          j        t          j                   |                      t          j        t          j                   |                     t          j        t          j                   |                      t          j	        t          j                   d S r   )
r_  r   r   float32float64
complex128int64ra  	complex64int8r'   s    r   test_cast_int_toz TestItemCasting.test_cast_int_to  s    U]333U]333U%5666U%5666u{EO444
EO44444r   c                    |                      t          j        t          j                   |                      t          j        t          j                   |                      t          j        t          j                   d S r   )r_  r   rc  rd  rg  re  ri  s    r   test_cast_float_toz"TestItemCasting.test_cast_float_to  sQ    u}555u777u'788888r   c                    |                      t          j        t          j                   |                      t          j        t          j                   |                      t          j        t          j                   d S r   )r_  r   booleanr   rd  re  ri  s    r   test_cast_bool_toz!TestItemCasting.test_cast_bool_to  sQ    u{333u}555u'788888r   c                     t           d             }|                     t                    5 } |             d d d            n# 1 swxY w Y   |                     dt	          |j                             d S )Nc                  b    t          j        t                    } |                     d           d S )Nr   rx   rP   s    r   r   z7TestItemCasting.test_cast_fail_unicode_int.<locals>.foo  s%    #E**AHHUOOOOOr   z(cannot safely cast unicode_type to int32r   rQ   r   rS   rT   rU   rV   s      r   test_cast_fail_unicode_intz*TestItemCasting.test_cast_fail_unicode_int  s    		 	 
	 {++ 	vCEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	6 !!	
 	
 	
 	
 	
   AA	Ac                     t           d             }|                     t                    5 } |             d d d            n# 1 swxY w Y   |                     dt	          |j                             d S )Nc                      t          j        t          j                  } |                     t          d                     d S rw   )r   r   r   rW  r   r   rP   s    r   r   z7TestItemCasting.test_cast_fail_int_unicode.<locals>.foo  s3    #E$677AHHU1XXr   z!Cannot cast int32 to unicode_typerr  rV   s      r   test_cast_fail_int_unicodez*TestItemCasting.test_cast_fail_int_unicode	  s    		 	 
	 {++ 	vCEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	/ !!	
 	
 	
 	
 	
rt  N)r3   r4   r5   r   r   r_  ra  rj  rl  ro  rs  rw  r7   r   r   rZ  rZ    s        	  
T* * *
 
 
5 5 59 9 9
9 9 9

 
 

 
 
 
 
r   rZ  c                  |    t          j        t                    } |                     t          d                     | S r  rx   rP   s    r   make_test_listry    s/    E""AHHU1XXHr   c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )TestImmutablec                 `    t           d             }|                      |                       d S )Nc                  F    t                      } |                                 S r   )ry  _is_mutablerP   s    r   r   z,TestImmutable.test_is_immutable.<locals>.foo"  s      A==??"r   ry  rz   s     r   test_is_immutablezTestImmutable.test_is_immutable!  s;    		# 	# 
	# 	r   c                 `    t           d             }|                      |                       d S )Nc                  n    t                      } |                                  |                                 S r   ry  _make_immutabler~  rP   s    r   r   z;TestImmutable.test_make_immutable_is_immutable.<locals>.foo)  s-      A==??"r   r  rz   s     r    test_make_immutable_is_immutablez.TestImmutable.test_make_immutable_is_immutable(  s=    		# 	# 
	# 	r   c                     t           d             } |            \  }}|                     |d           |                     |           d S )Nc                      t                      } |                                  t          |           |                                 fS r   )ry  r  r   r~  rP   s    r   r   zATestImmutable.test_length_still_works_when_immutable.<locals>.foo1  s8      Aq66!--//))r   r!   r   r%   r  )r'   r   r   mutables       r   &test_length_still_works_when_immutablez4TestImmutable.test_length_still_works_when_immutable0  s\    		* 	* 
	* #%%###!!!!!r   c                     t           d             } |            \  }}|                     |d           |                     |           d S )Nc                  ~    t                      } |                                  | d         |                                 fS rw   r  rP   s    r   r   zBTestImmutable.test_getitem_still_works_when_immutable.<locals>.foo;  s6      AQ4((r   r!   r  )r'   r   	test_itemr  s       r   'test_getitem_still_works_when_immutablez5TestImmutable.test_getitem_still_works_when_immutable:  s]    		) 	) 
	) !SUU	7A&&&!!!!!r   c                    |                                   t          d             }|                     t                    5 } |             d d d            n# 1 swxY w Y   |                     dt          |j                             d S )Nc                      t                      } |                                  |                     t          d                     d S r  )ry  r  r   r   rP   s    r   r   z,TestImmutable.test_append_fails.<locals>.fooG  s=      AHHU1XXr   list is immutabler  rV   s      r   test_append_failszTestImmutable.test_append_failsD  s    !!!		 	 
	 z** 	fCEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 !!	
 	
 	
 	
 	
r  c                    |                                   d }dD ]q} ||          }|                     t                    5 } |             ddd           n# 1 swxY w Y   |                     dt	          |j                             rdS )z@ Test that any attempt to mutate an immutable typed list fails. c                     i }t          t          d                    |                     |           t          |d                   S )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   rM  r   )linecontexts     r   generate_functionz<TestImmutable.test_mutation_fails.<locals>.generate_functionW  sP    G 	 F4LL	" 	" $+	, 	, 	, '''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   rQ   r  rS   rT   rU   )r'   r  r  r   rW   s        r   test_mutation_failsz!TestImmutable.test_mutation_failsS  s    !!!	( 	( 	(	 	 	D $#D))C"":.. &              MM#F$%%   	 	s   AA	A	N)	r3   r4   r5   r  r  r  r  r  r  r7   r   r   r{  r{    sn               " " "" " "
 
 
! ! ! ! !r   r{  N),r6   textwrapr   numbar   r   numba.extendingr   
numba.corer   numba.core.errorsr   numba.tests.supportr	   r
   r   r   numba.typedr   r   r   r9   r?   rZ   rt   r   r  r2  rY  r}  r  r  r  r  r  r  r  r  r'  rC  rQ  rZ  ry  r{  r7   r   r   <module>r     sL                      , , , , , ,       ) ) ) ) ) )1 1 1 1 1 1 1 1 1 1 1 1 ( ( ( ( ( ( ( (/ / / / /_h / / /:, , , , , , , ,
 
 
 
 
_h 
 
 
@- - - - - - - -:y, y, y, y, y,/8 y, y, y,xp
 p
 p
 p
 p
 p
 p
 p
fu- u- u- u- u-/8 u- u- u-pO O O O Oox O O Odn n n n nOX n n nb"% "% "% "% "%?H "% "% "%J %  %  %  %  %  %  %  %F
 
 
 
 
( 
 
 
<N
 N
 N
 N
 N
( N
 N
 N
b; ; ; ; ;( ; ; ;|# # # # # # # #B1 1 1 1 1/8 1 1 1B@ @ @ @ @ @ @ @DP
 P
 P
 P
 P
 P
 P
 P
fC/ C/ C/ C/ C/ C/ C/ C/L$
 $
 $
 $
 $
 $
 $
 $
N< < < < <_h < < <">
 >
 >
 >
 >
h >
 >
 >
B   U U U U UOX U U U U Ur   