<s> """<STR_LIT>""" <EOL> import unittest <EOL> import sys <EOL> import pickle <EOL> def iterfunc ( seqn ) : <EOL> '<STR_LIT>' <EOL> for i in seqn : <EOL> yield i <EOL> class Sequence : <EOL> '<STR_LIT>' <EOL> def __init__ ( self , seqn ) : <EOL> self . seqn = seqn <EOL> def __getitem__ ( self , i ) : <EOL> return self . seqn [ i ] <EOL> class IterFunc : <EOL> '<STR_LIT>' <EOL> def __init__ ( self , seqn ) : <EOL> self . seqn = seqn <EOL> self . i = <NUM_LIT:0> <EOL> def __iter__ ( self ) : <EOL> return self <EOL> def __next__ ( self ) : <EOL> if self . i >= len ( self . seqn ) : raise StopIteration <EOL> v = self . seqn [ self . i ] <EOL> self . i += <NUM_LIT:1> <EOL> return v <EOL> class IterGen : <EOL> '<STR_LIT>' <EOL> def __init__ ( self , seqn ) : <EOL> self . seqn = seqn <EOL> self . i = <NUM_LIT:0> <EOL> def __iter__ ( self ) : <EOL> for val in self . seqn : <EOL> yield val <EOL> class IterNextOnly : <EOL> '<STR_LIT>' <EOL> def __init__ ( self , seqn ) : <EOL> self . seqn = seqn <EOL> self . i = <NUM_LIT:0> <EOL> def __next__ ( self ) : <EOL> if self . i >= len ( self . seqn ) : raise StopIteration <EOL> v = self . seqn [ self . i ] <EOL> self . i += <NUM_LIT:1> <EOL> return v <EOL> class IterNoNext : <EOL> '<STR_LIT>' <EOL> def __init__ ( self , seqn ) : <EOL> self . seqn = seqn <EOL> self . i = <NUM_LIT:0> <EOL> def __iter__ ( self ) : <EOL> return self <EOL> class IterGenExc : <EOL> '<STR_LIT>' <EOL> def __init__ ( self , seqn ) : <EOL> self . seqn = seqn <EOL> self . i = <NUM_LIT:0> <EOL> def __iter__ ( self ) : <EOL> return self <EOL> def __next__ ( self ) : <EOL> <NUM_LIT:3> // <NUM_LIT:0> <EOL> class IterFuncStop : <EOL> '<STR_LIT>' <EOL> def __init__ ( self , seqn ) : <EOL> pass <EOL> def __iter__ ( self ) : <EOL> return self <EOL> def __next__ ( self ) : <EOL> raise StopIteration <EOL> from itertools import chain <EOL> def itermulti ( seqn ) : <EOL> '<STR_LIT>' <EOL> return chain ( map ( lambda x : x , iterfunc ( IterGen ( Sequence ( seqn ) ) ) ) ) <EOL> class CommonTest ( unittest . TestCase ) : <EOL> type2test = None <EOL> def test_constructors ( self ) : <EOL> l0 = [ ] <EOL> l1 = [ <NUM_LIT:0> ] <EOL> l2 = [ <NUM_LIT:0> , <NUM_LIT:1> ] <EOL> u = self . type2test ( ) <EOL> u0 = self . type2test ( l0 ) <EOL> u1 = self . type2test ( l1 ) <EOL> u2 = self . type2test ( l2 ) <EOL> uu = self . type2test ( u ) <EOL> uu0 = self . type2test ( u0 ) <EOL> uu1 = self . type2test ( u1 ) <EOL> uu2 = self . type2test ( u2 ) <EOL> v = self . type2test ( tuple ( u ) ) <EOL> class OtherSeq : <EOL> def __init__ ( self , initseq ) : <EOL> self . __data = initseq <EOL> def __len__ ( self ) : <EOL> return len ( self . __data ) <EOL> def __getitem__ ( self , i ) : <EOL> return self . __data [ i ] <EOL> s = OtherSeq ( u0 ) <EOL> v0 = self . type2test ( s ) <EOL> self . assertEqual ( len ( v0 ) , len ( s ) ) <EOL> s = "<STR_LIT>" <EOL> vv = self . type2test ( s ) <EOL> self . assertEqual ( len ( vv ) , len ( s ) ) <EOL> for s in ( "<STR_LIT>" , "<STR_LIT>" , range ( <NUM_LIT:1000> ) , ( '<STR_LIT>' , <NUM_LIT> ) , range ( <NUM_LIT> , <NUM_LIT> , <NUM_LIT:5> ) ) : <EOL> for g in ( Sequence , IterFunc , IterGen , <EOL> itermulti , iterfunc ) : <EOL> self . assertEqual ( self . type2test ( g ( s ) ) , self . type2test ( s ) ) <EOL> self . assertEqual ( self . type2test ( IterFuncStop ( s ) ) , self . type2test ( ) ) <EOL> self . assertEqual ( self . type2test ( c for c in "<STR_LIT>" ) , self . type2test ( "<STR_LIT>" ) ) <EOL> self . assertRaises ( TypeError , self . type2test , IterNextOnly ( s ) ) <EOL> self . assertRaises ( TypeError , self . type2test , IterNoNext ( s ) ) <EOL> self . assertRaises ( ZeroDivisionError , self . type2test , IterGenExc ( s ) ) <EOL> def test_truth ( self ) : <EOL> self . assertFalse ( self . type2test ( ) ) <EOL> self . assertTrue ( self . type2test ( [ <NUM_LIT> ] ) ) <EOL> def test_getitem ( self ) : <EOL> u = self . type2test ( [ <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:4> ] ) <EOL> for i in range ( len ( u ) ) : <EOL> self . assertEqual ( u [ i ] , i ) <EOL> self . assertEqual ( u [ int ( i ) ] , i ) <EOL> for i in range ( - len ( u ) , - <NUM_LIT:1> ) : <EOL> self . assertEqual ( u [ i ] , len ( u ) + i ) <EOL> self . assertEqual ( u [ int ( i ) ] , len ( u ) + i ) <EOL> self . assertRaises ( IndexError , u . __getitem__ , - len ( u ) - <NUM_LIT:1> ) <EOL> self . assertRaises ( IndexError , u . __getitem__ , len ( u ) ) <EOL> self . assertRaises ( ValueError , u . __getitem__ , slice ( <NUM_LIT:0> , <NUM_LIT:10> , <NUM_LIT:0> ) ) <EOL> u = self . type2test ( ) <EOL> self . assertRaises ( IndexError , u . __getitem__ , <NUM_LIT:0> ) <EOL> self . assertRaises ( IndexError , u . __getitem__ , - <NUM_LIT:1> ) <EOL> self . assertRaises ( TypeError , u . __getitem__ ) <EOL> a = self . type2test ( [ <NUM_LIT:10> , <NUM_LIT:11> ] ) <EOL> self . assertEqual ( a [ <NUM_LIT:0> ] , <NUM_LIT:10> ) <EOL> self . assertEqual ( a [ <NUM_LIT:1> ] , <NUM_LIT:11> ) <EOL> self . assertEqual ( a [ - <NUM_LIT:2> ] , <NUM_LIT:10> ) <EOL> self . assertEqual ( a [ - <NUM_LIT:1> ] , <NUM_LIT:11> ) <EOL> self . assertRaises ( IndexError , a . __getitem__ , - <NUM_LIT:3> ) <EOL> self . assertRaises ( IndexError , a . __getitem__ , <NUM_LIT:3> ) <EOL> def test_getslice ( self ) : <EOL> l = [ <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:4> ] <EOL> u = self . type2test ( l ) <EOL> self . assertEqual ( u [ <NUM_LIT:0> : <NUM_LIT:0> ] , self . type2test ( ) ) <EOL> self . assertEqual ( u [ <NUM_LIT:1> : <NUM_LIT:2> ] , self . type2test ( [ <NUM_LIT:1> ] ) ) <EOL> self . assertEqual ( u [ - <NUM_LIT:2> : - <NUM_LIT:1> ] , self . type2test ( [ <NUM_LIT:3> ] ) ) <EOL> self . assertEqual ( u [ - <NUM_LIT:1000> : <NUM_LIT:1000> ] , u ) <EOL> self . assertEqual ( u [ <NUM_LIT:1000> : - <NUM_LIT:1000> ] , self . type2test ( [ ] ) ) <EOL> self . assertEqual ( u [ : ] , u ) <EOL> self . assertEqual ( u [ <NUM_LIT:1> : None ] , self . type2test ( [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:4> ] ) ) <EOL> self . assertEqual ( u [ None : <NUM_LIT:3> ] , self . type2test ( [ <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> ] ) ) <EOL> self . assertEqual ( u [ : : ] , u ) <EOL> self . assertEqual ( u [ : : <NUM_LIT:2> ] , self . type2test ( [ <NUM_LIT:0> , <NUM_LIT:2> , <NUM_LIT:4> ] ) ) <EOL> self . assertEqual ( u [ <NUM_LIT:1> : : <NUM_LIT:2> ] , self . type2test ( [ <NUM_LIT:1> , <NUM_LIT:3> ] ) ) <EOL> self . assertEqual ( u [ : : - <NUM_LIT:1> ] , self . type2test ( [ <NUM_LIT:4> , <NUM_LIT:3> , <NUM_LIT:2> , <NUM_LIT:1> , <NUM_LIT:0> ] ) ) <EOL> self . assertEqual ( u [ : : - <NUM_LIT:2> ] , self . type2test ( [ <NUM_LIT:4> , <NUM_LIT:2> , <NUM_LIT:0> ] ) ) <EOL> self . assertEqual ( u [ <NUM_LIT:3> : : - <NUM_LIT:2> ] , self . type2test ( [ <NUM_LIT:3> , <NUM_LIT:1> ] ) ) <EOL> self . assertEqual ( u [ <NUM_LIT:3> : <NUM_LIT:3> : - <NUM_LIT:2> ] , self . type2test ( [ ] ) ) <EOL> self . assertEqual ( u [ <NUM_LIT:3> : <NUM_LIT:2> : - <NUM_LIT:2> ] , self . type2test ( [ <NUM_LIT:3> ] ) ) <EOL> self . assertEqual ( u [ <NUM_LIT:3> : <NUM_LIT:1> : - <NUM_LIT:2> ] , self . type2test ( [ <NUM_LIT:3> ] ) ) <EOL> self . assertEqual ( u [ <NUM_LIT:3> : <NUM_LIT:0> : - <NUM_LIT:2> ] , self . type2test ( [ <NUM_LIT:3> , <NUM_LIT:1> ] ) ) <EOL> self . assertEqual ( u [ : : - <NUM_LIT:100> ] , self . type2test ( [ <NUM_LIT:4> ] ) ) <EOL> self . assertEqual ( u [ <NUM_LIT:100> : - <NUM_LIT:100> : ] , self . type2test ( [ ] ) ) <EOL> self . assertEqual ( u [ - <NUM_LIT:100> : <NUM_LIT:100> : ] , u ) <EOL> self . assertEqual ( u [ <NUM_LIT:100> : - <NUM_LIT:100> : - <NUM_LIT:1> ] , u [ : : - <NUM_LIT:1> ] ) <EOL> self . assertEqual ( u [ - <NUM_LIT:100> : <NUM_LIT:100> : - <NUM_LIT:1> ] , self . type2test ( [ ] ) ) <EOL> self . assertEqual ( u [ - <NUM_LIT:100> : <NUM_LIT:100> : <NUM_LIT:2> ] , self . type2test ( [ <NUM_LIT:0> , <NUM_LIT:2> , <NUM_LIT:4> ] ) ) <EOL> a = self . type2test ( [ <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:4> ] ) <EOL> self . assertEqual ( a [ - pow ( <NUM_LIT:2> , <NUM_LIT> ) : <NUM_LIT:3> ] , self . type2test ( [ <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> ] ) ) <EOL> self . assertEqual ( a [ <NUM_LIT:3> : pow ( <NUM_LIT:2> , <NUM_LIT> ) ] , self . type2test ( [ <NUM_LIT:3> , <NUM_LIT:4> ] ) ) <EOL> def test_contains ( self ) : <EOL> u = self . type2test ( [ <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> ] ) <EOL> for i in u : <EOL> self . assertIn ( i , u ) <EOL> for i in min ( u ) - <NUM_LIT:1> , max ( u ) + <NUM_LIT:1> : <EOL> self . assertNotIn ( i , u ) <EOL> self . assertRaises ( TypeError , u . __contains__ ) <EOL> def test_contains_fake ( self ) : <EOL> class AllEq : <EOL> def __eq__ ( self , other ) : <EOL> return True <EOL> __hash__ = None <EOL> self . assertNotIn ( AllEq ( ) , self . type2test ( [ ] ) ) <EOL> self . assertIn ( AllEq ( ) , self . type2test ( [ <NUM_LIT:1> ] ) ) <EOL> def test_contains_order ( self ) : <EOL> class DoNotTestEq ( Exception ) : <EOL> pass <EOL> class StopCompares : <EOL> def __eq__ ( self , other ) : <EOL> raise DoNotTestEq <EOL> checkfirst = self . type2test ( [ <NUM_LIT:1> , StopCompares ( ) ] ) <EOL> self . assertIn ( <NUM_LIT:1> , checkfirst ) <EOL> checklast = self . type2test ( [ StopCompares ( ) , <NUM_LIT:1> ] ) <EOL> self . assertRaises ( DoNotTestEq , checklast . __contains__ , <NUM_LIT:1> ) <EOL> def test_len ( self ) : <EOL> self . assertEqual ( len ( self . type2test ( ) ) , <NUM_LIT:0> ) <EOL> self . assertEqual ( len ( self . type2test ( [ ] ) ) , <NUM_LIT:0> ) <EOL> self . assertEqual ( len ( self . type2test ( [ <NUM_LIT:0> ] ) ) , <NUM_LIT:1> ) <EOL> self . assertEqual ( len ( self . type2test ( [ <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> ] ) ) , <NUM_LIT:3> ) <EOL> def test_minmax ( self ) : <EOL> u = self . type2test ( [ <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> ] ) <EOL> self . assertEqual ( min ( u ) , <NUM_LIT:0> ) <EOL> self . assertEqual ( max ( u ) , <NUM_LIT:2> ) <EOL> def test_addmul ( self ) : <EOL> u1 = self . type2test ( [ <NUM_LIT:0> ] ) <EOL> u2 = self . type2test ( [ <NUM_LIT:0> , <NUM_LIT:1> ] ) <EOL> self . assertEqual ( u1 , u1 + self . type2test ( ) ) <EOL> self . assertEqual ( u1 , self . type2test ( ) + u1 ) <EOL> self . assertEqual ( u1 + self . type2test ( [ <NUM_LIT:1> ] ) , u2 ) <EOL> self . assertEqual ( self . type2test ( [ - <NUM_LIT:1> ] ) + u1 , self . type2test ( [ - <NUM_LIT:1> , <NUM_LIT:0> ] ) ) <EOL> self . assertEqual ( self . type2test ( ) , u2 * <NUM_LIT:0> ) <EOL> self . assertEqual ( self . type2test ( ) , <NUM_LIT:0> * u2 ) <EOL> self . assertEqual ( self . type2test ( ) , u2 * <NUM_LIT:0> ) <EOL> self . assertEqual ( self . type2test ( ) , <NUM_LIT:0> * u2 ) <EOL> self . assertEqual ( u2 , u2 * <NUM_LIT:1> ) <EOL> self . assertEqual ( u2 , <NUM_LIT:1> * u2 ) <EOL> self . assertEqual ( u2 , u2 * <NUM_LIT:1> ) <EOL> self . assertEqual ( u2 , <NUM_LIT:1> * u2 ) <EOL> self . assertEqual ( u2 + u2 , u2 * <NUM_LIT:2> ) <EOL> self . assertEqual ( u2 + u2 , <NUM_LIT:2> * u2 ) <EOL> self . assertEqual ( u2 + u2 , u2 * <NUM_LIT:2> ) <EOL> self . assertEqual ( u2 + u2 , <NUM_LIT:2> * u2 ) <EOL> self . assertEqual ( u2 + u2 + u2 , u2 * <NUM_LIT:3> ) <EOL> self . assertEqual ( u2 + u2 + u2 , <NUM_LIT:3> * u2 ) <EOL> class subclass ( self . type2test ) : <EOL> pass <EOL> u3 = subclass ( [ <NUM_LIT:0> , <NUM_LIT:1> ] ) <EOL> self . assertEqual ( u3 , u3 * <NUM_LIT:1> ) <EOL> self . assertIsNot ( u3 , u3 * <NUM_LIT:1> ) <EOL> def test_iadd ( self ) : <EOL> u = self . type2test ( [ <NUM_LIT:0> , <NUM_LIT:1> ] ) <EOL> u += self . type2test ( ) <EOL> self . assertEqual ( u , self . type2test ( [ <NUM_LIT:0> , <NUM_LIT:1> ] ) ) <EOL> u += self . type2test ( [ <NUM_LIT:2> , <NUM_LIT:3> ] ) <EOL> self . assertEqual ( u , self . type2test ( [ <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> ] ) ) <EOL> u += self . type2test ( [ <NUM_LIT:4> , <NUM_LIT:5> ] ) <EOL> self . assertEqual ( u , self . type2test ( [ <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> ] ) ) <EOL> u = self . type2test ( "<STR_LIT>" ) <EOL> u += self . type2test ( "<STR_LIT>" ) <EOL> self . assertEqual ( u , self . type2test ( "<STR_LIT>" ) ) <EOL> def test_imul ( self ) : <EOL> u = self . type2test ( [ <NUM_LIT:0> , <NUM_LIT:1> ] ) <EOL> u *= <NUM_LIT:3> <EOL> self . assertEqual ( u , self . type2test ( [ <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:1> ] ) ) <EOL> def test_getitemoverwriteiter ( self ) : <EOL> class T ( self . type2test ) : <EOL> def __getitem__ ( self , key ) : <EOL> return str ( key ) + '<STR_LIT>' <EOL> self . assertEqual ( next ( iter ( T ( ( <NUM_LIT:1> , <NUM_LIT:2> ) ) ) ) , <NUM_LIT:1> ) <EOL> def test_repeat ( self ) : <EOL> for m in range ( <NUM_LIT:4> ) : <EOL> s = tuple ( range ( m ) ) <EOL> for n in range ( - <NUM_LIT:3> , <NUM_LIT:5> ) : <EOL> self . assertEqual ( self . type2test ( s * n ) , self . type2test ( s ) * n ) <EOL> self . assertEqual ( self . type2test ( s ) * ( - <NUM_LIT:4> ) , self . type2test ( [ ] ) ) <EOL> self . assertEqual ( id ( s ) , id ( s * <NUM_LIT:1> ) ) <EOL> def test_bigrepeat ( self ) : <EOL> import sys <EOL> if sys . maxsize <= <NUM_LIT> : <EOL> x = self . type2test ( [ <NUM_LIT:0> ] ) <EOL> x *= <NUM_LIT:2> ** <NUM_LIT:16> <EOL> self . assertRaises ( MemoryError , x . __mul__ , <NUM_LIT:2> ** <NUM_LIT:16> ) <EOL> if hasattr ( x , '<STR_LIT>' ) : <EOL> self . assertRaises ( MemoryError , x . __imul__ , <NUM_LIT:2> ** <NUM_LIT:16> ) <EOL> def test_subscript ( self ) : <EOL> a = self . type2test ( [ <NUM_LIT:10> , <NUM_LIT:11> ] ) <EOL> self . assertEqual ( a . __getitem__ ( <NUM_LIT:0> ) , <NUM_LIT:10> ) <EOL> self . assertEqual ( a . __getitem__ ( <NUM_LIT:1> ) , <NUM_LIT:11> ) <EOL> self . assertEqual ( a . __getitem__ ( - <NUM_LIT:2> ) , <NUM_LIT:10> ) <EOL> self . assertEqual ( a . __getitem__ ( - <NUM_LIT:1> ) , <NUM_LIT:11> ) <EOL> self . assertRaises ( IndexError , a . __getitem__ , - <NUM_LIT:3> ) <EOL> self . assertRaises ( IndexError , a . __getitem__ , <NUM_LIT:3> ) <EOL> self . assertEqual ( a . __getitem__ ( slice ( <NUM_LIT:0> , <NUM_LIT:1> ) ) , self . type2test ( [ <NUM_LIT:10> ] ) ) <EOL> self . assertEqual ( a . __getitem__ ( slice ( <NUM_LIT:1> , <NUM_LIT:2> ) ) , self . type2test ( [ <NUM_LIT:11> ] ) ) <EOL> self . assertEqual ( a . __getitem__ ( slice ( <NUM_LIT:0> , <NUM_LIT:2> ) ) , self . type2test ( [ <NUM_LIT:10> , <NUM_LIT:11> ] ) ) <EOL> self . assertEqual ( a . __getitem__ ( slice ( <NUM_LIT:0> , <NUM_LIT:3> ) ) , self . type2test ( [ <NUM_LIT:10> , <NUM_LIT:11> ] ) ) <EOL> self . assertEqual ( a . __getitem__ ( slice ( <NUM_LIT:3> , <NUM_LIT:5> ) ) , self . type2test ( [ ] ) ) <EOL> self . assertRaises ( ValueError , a . __getitem__ , slice ( <NUM_LIT:0> , <NUM_LIT:10> , <NUM_LIT:0> ) ) <EOL> self . assertRaises ( TypeError , a . __getitem__ , '<STR_LIT:x>' ) <EOL> def test_count ( self ) : <EOL> a = self . type2test ( [ <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> ] ) * <NUM_LIT:3> <EOL> self . assertEqual ( a . count ( <NUM_LIT:0> ) , <NUM_LIT:3> ) <EOL> self . assertEqual ( a . count ( <NUM_LIT:1> ) , <NUM_LIT:3> ) <EOL> self . assertEqual ( a . count ( <NUM_LIT:3> ) , <NUM_LIT:0> ) <EOL> self . assertRaises ( TypeError , a . count ) <EOL> class BadExc ( Exception ) : <EOL> pass <EOL> class BadCmp : <EOL> def __eq__ ( self , other ) : <EOL> if other == <NUM_LIT:2> : <EOL> raise BadExc ( ) <EOL> return False <EOL> self . assertRaises ( BadExc , a . count , BadCmp ( ) ) <EOL> def test_index ( self ) : <EOL> u = self . type2test ( [ <NUM_LIT:0> , <NUM_LIT:1> ] ) <EOL> self . assertEqual ( u . index ( <NUM_LIT:0> ) , <NUM_LIT:0> ) <EOL> self . assertEqual ( u . index ( <NUM_LIT:1> ) , <NUM_LIT:1> ) <EOL> self . assertRaises ( ValueError , u . index , <NUM_LIT:2> ) <EOL> u = self . type2test ( [ - <NUM_LIT:2> , - <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> ] ) <EOL> self . assertEqual ( u . count ( <NUM_LIT:0> ) , <NUM_LIT:2> ) <EOL> self . assertEqual ( u . index ( <NUM_LIT:0> ) , <NUM_LIT:2> ) <EOL> self . assertEqual ( u . index ( <NUM_LIT:0> , <NUM_LIT:2> ) , <NUM_LIT:2> ) <EOL> self . assertEqual ( u . index ( - <NUM_LIT:2> , - <NUM_LIT:10> ) , <NUM_LIT:0> ) <EOL> self . assertEqual ( u . index ( <NUM_LIT:0> , <NUM_LIT:3> ) , <NUM_LIT:3> ) <EOL> self . assertEqual ( u . index ( <NUM_LIT:0> , <NUM_LIT:3> , <NUM_LIT:4> ) , <NUM_LIT:3> ) <EOL> self . assertRaises ( ValueError , u . index , <NUM_LIT:2> , <NUM_LIT:0> , - <NUM_LIT:10> ) <EOL> self . assertRaises ( TypeError , u . index ) <EOL> class BadExc ( Exception ) : <EOL> pass <EOL> class BadCmp : <EOL> def __eq__ ( self , other ) : <EOL> if other == <NUM_LIT:2> : <EOL> raise BadExc ( ) <EOL> return False <EOL> a = self . type2test ( [ <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> ] ) <EOL> self . assertRaises ( BadExc , a . index , BadCmp ( ) ) <EOL> a = self . type2test ( [ - <NUM_LIT:2> , - <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> ] ) <EOL> self . assertEqual ( a . index ( <NUM_LIT:0> ) , <NUM_LIT:2> ) <EOL> self . assertEqual ( a . index ( <NUM_LIT:0> , <NUM_LIT:2> ) , <NUM_LIT:2> ) <EOL> self . assertEqual ( a . index ( <NUM_LIT:0> , - <NUM_LIT:4> ) , <NUM_LIT:2> ) <EOL> self . assertEqual ( a . index ( - <NUM_LIT:2> , - <NUM_LIT:10> ) , <NUM_LIT:0> ) <EOL> self . assertEqual ( a . index ( <NUM_LIT:0> , <NUM_LIT:3> ) , <NUM_LIT:3> ) <EOL> self . assertEqual ( a . index ( <NUM_LIT:0> , - <NUM_LIT:3> ) , <NUM_LIT:3> ) <EOL> self . assertEqual ( a . index ( <NUM_LIT:0> , <NUM_LIT:3> , <NUM_LIT:4> ) , <NUM_LIT:3> ) <EOL> self . assertEqual ( a . index ( <NUM_LIT:0> , - <NUM_LIT:3> , - <NUM_LIT:2> ) , <NUM_LIT:3> ) <EOL> self . assertEqual ( a . index ( <NUM_LIT:0> , - <NUM_LIT:4> * sys . maxsize , <NUM_LIT:4> * sys . maxsize ) , <NUM_LIT:2> ) <EOL> self . assertRaises ( ValueError , a . index , <NUM_LIT:0> , <NUM_LIT:4> * sys . maxsize , - <NUM_LIT:4> * sys . maxsize ) <EOL> self . assertRaises ( ValueError , a . index , <NUM_LIT:2> , <NUM_LIT:0> , - <NUM_LIT:10> ) <EOL> def test_pickle ( self ) : <EOL> lst = self . type2test ( [ <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT:6> , <NUM_LIT:7> ] ) <EOL> lst2 = pickle . loads ( pickle . dumps ( lst ) ) <EOL> self . assertEqual ( lst2 , lst ) <EOL> self . assertNotEqual ( id ( lst2 ) , id ( lst ) ) </s>
