aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/skylark/testdata/list_slices.sky
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/skylark/testdata/list_slices.sky')
-rw-r--r--src/test/skylark/testdata/list_slices.sky22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/test/skylark/testdata/list_slices.sky b/src/test/skylark/testdata/list_slices.sky
index 3ec2999cba..b79661e23c 100644
--- a/src/test/skylark/testdata/list_slices.sky
+++ b/src/test/skylark/testdata/list_slices.sky
@@ -46,6 +46,16 @@ assert_eq((1, 2, 3, 4, 5)[3:1:-1], (4, 3))
assert_eq((1, 2, 3, 4, 5)[::-2], (5, 3, 1))
assert_eq((1, 2, 3, 4, 5)[::-10], (5,))
+# index
+assert_eq(['a', 'b', 'c', 'd'][0], 'a')
+assert_eq(['a', 'b', 'c', 'd'][1], 'b')
+assert_eq(['a', 'b', 'c', 'd'][-1], 'd')
+assert_eq(['a', 'b', 'c', 'd'][-2], 'c')
+assert_eq([0, 1, 2][-3], 0)
+assert_eq([0, 1, 2][-2], 1)
+assert_eq([0, 1, 2][-1], 2)
+assert_eq([0, 1, 2][0], 0)
+
---
'123'['a'::] ### slice start must be an integer, not 'a'
---
@@ -60,3 +70,15 @@ assert_eq((1, 2, 3, 4, 5)[::-10], (5,))
[1, 2, 3][:3:0] ### slice step cannot be zero
---
[1, 2, 3][1:3:0] ### slice step cannot be zero
+---
+[[1], [2]]['a'] ### indices must be integers, not string
+---
+[0, 1, 2][3] ### index out of range (index is 3, but sequence has 3 elements)
+---
+[0, 1, 2][-4] ### index out of range (index is -4, but sequence has 3 elements)
+---
+[0][-2] ### index out of range (index is -2, but sequence has 1 elements)
+---
+[0][1] ### index out of range (index is 1, but sequence has 1 elements)
+---
+[][1] ### index out of range (index is 1, but sequence has 0 elements)