# indexing assert_eq('somestring'[0], "s") assert_eq('somestring'[1], "o") assert_eq('somestring'[4], "s") assert_eq('somestring'[9], "g") assert_eq('somestring'[-1], "g") assert_eq('somestring'[-2], "n") assert_eq('somestring'[-10], "s") --- 'abcdef'[10] ### index out of range --- 'abcdef'[-11] ### index out of range --- # slicing assert_eq('0123'[0:-1], "012") assert_eq('012345'[2:4], "23") assert_eq('012345'[-2:-1], "4") assert_eq(''[1:2], "") assert_eq('012'[1:0], "") assert_eq('0123'[-10:10], "0123") assert_eq('01234'[::1], "01234") assert_eq('01234'[1::1], "1234") assert_eq('01234'[:2:1], "01") assert_eq('01234'[1:3:1], "12") assert_eq('01234'[-4:-2:1], "12") assert_eq('01234'[-10:10:1], "01234") assert_eq('01234'[::42], "0") assert_eq(''[::1], "") assert_eq(''[::-1], "") assert_eq('0123456'[::3], "036") assert_eq('01234567'[1:7:3], "14") assert_eq('01234'[::-1], "43210") assert_eq('01234'[4::-1], "43210") assert_eq('01234'[:0:-1], "4321") assert_eq('01234'[3:1:-1], "32") assert_eq('01234'[::-2], "420") assert_eq('01234'[::-10], "4") assert_eq('123'[3:1:1], "") assert_eq('123'[1:3:-1], "") --- '123'[::0] ### slice step cannot be zero --- '123'[1::0] ### slice step cannot be zero --- '123'[:3:0] ### slice step cannot be zero --- '123'[1:3:0] ### slice step cannot be zero --- '123'['a'::] ### slice start must be an integer, not 'a' --- '123'[:'b':] ### slice end must be an integer, not 'b' ---