Skip to content

Commit e62c1a2

Browse files
committed
Add more tests for subscript
1 parent 4f0198d commit e62c1a2

File tree

5 files changed

+16
-6
lines changed

5 files changed

+16
-6
lines changed

tests/reference/asr-subscript1-1acfc19.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
"basename": "asr-subscript1-1acfc19",
33
"cmd": "lpython --show-asr --no-color {infile} -o {outfile}",
44
"infile": "tests/subscript1.py",
5-
"infile_hash": "24efc3980ad13e8772a093253b380c91ce3b38071d69200e5af33d36",
5+
"infile_hash": "5d229893d3e13ea4463e8ed47eb3798be0b8c28f5ef6b6c773e87b80",
66
"outfile": null,
77
"outfile_hash": null,
88
"stdout": "asr-subscript1-1acfc19.stdout",
9-
"stdout_hash": "f7bf6b29c18149b3c536af48eb59a1133156ac03fba83603a083d0fb",
9+
"stdout_hash": "bb7b8b7478d50742985082735dfa0d2cf059f67e66a730c1c14915e2",
1010
"stderr": null,
1111
"stderr_hash": null,
1212
"returncode": 0
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
(TranslationUnit (SymbolTable 1 {main_program: (Program (SymbolTable 3 {}) main_program [] []), test_subscript: (Subroutine (SymbolTable 2 {A: (Variable 2 A Local () () Default (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 5 (Integer 4 [])))]) Source Public Required .false.), B: (Variable 2 B Local () () Default (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 2 (Integer 4 [])))]) Source Public Required .false.), i: (Variable 2 i Local () () Default (Integer 4 []) Source Public Required .false.), s: (Variable 2 s Local () () Default (Character 1 -2 () []) Source Public Required .false.)}) test_subscript [] [(= (Var 2 s) (ConstantString "abc" (Character 1 3 () [])) ()) (= (Var 2 s) (ArrayRef 2 s [(() (ConstantInteger 0 (Integer 4 [])) ())] (Character 1 -2 () []) ()) ()) (= (Var 2 s) (ArrayRef 2 s [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 2 (Integer 4 [])) ())] (Character 1 -2 () []) ()) ()) (= (Var 2 i) (ArrayRef 2 A [(() (ConstantInteger 0 (Integer 4 [])) ())] (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 5 (Integer 4 [])))]) ()) ()) (= (Var 2 B) (ArrayRef 2 A [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 3 (Integer 4 [])) ())] (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 5 (Integer 4 [])))]) ()) ())] Source Public Implementation () .false. .false.)}) [])
1+
(TranslationUnit (SymbolTable 1 {main_program: (Program (SymbolTable 3 {}) main_program [] []), test_subscript: (Subroutine (SymbolTable 2 {A: (Variable 2 A Local () () Default (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 5 (Integer 4 [])))]) Source Public Required .false.), B: (Variable 2 B Local () () Default (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 2 (Integer 4 [])))]) Source Public Required .false.), i: (Variable 2 i Local () () Default (Integer 4 []) Source Public Required .false.), s: (Variable 2 s Local () () Default (Character 1 -2 () []) Source Public Required .false.)}) test_subscript [] [(= (Var 2 s) (ConstantString "abc" (Character 1 3 () [])) ()) (= (Var 2 s) (ArrayRef 2 s [(() (ConstantInteger 0 (Integer 4 [])) ())] (Character 1 -2 () []) ()) ()) (= (Var 2 s) (ArrayRef 2 s [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 2 (Integer 4 [])) ())] (Character 1 -2 () []) ()) ()) (= (Var 2 s) (ArrayRef 2 s [(() () ())] (Character 1 -2 () []) ()) ()) (= (Var 2 s) (ArrayRef 2 s [(() () (UnaryOp USub (ConstantInteger 1 (Integer 4 [])) (Integer 4 []) (ConstantInteger -1 (Integer 4 []))))] (Character 1 -2 () []) ()) ()) (= (Var 2 s) (ArrayRef 2 s [(() () (ConstantInteger 2 (Integer 4 [])))] (Character 1 -2 () []) ()) ()) (= (Var 2 s) (ArrayRef 2 s [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 88 (Integer 4 [])) (ConstantInteger 1 (Integer 4 [])))] (Character 1 -2 () []) ()) ()) (= (Var 2 s) (ArrayRef 2 s [(() (ConstantInteger 1 (Integer 4 [])) (UnaryOp USub (ConstantInteger 4 (Integer 4 [])) (Integer 4 []) (ConstantInteger -4 (Integer 4 []))))] (Character 1 -2 () []) ()) ()) (= (Var 2 s) (ArrayRef 2 s [((UnaryOp USub (ConstantInteger 89 (Integer 4 [])) (Integer 4 []) (ConstantInteger -89 (Integer 4 []))) () (ConstantInteger 4 (Integer 4 [])))] (Character 1 -2 () []) ()) ()) (= (Var 2 s) (ArrayRef 2 s [((UnaryOp USub (ConstantInteger 3 (Integer 4 [])) (Integer 4 []) (ConstantInteger -3 (Integer 4 []))) (UnaryOp USub (ConstantInteger 3 (Integer 4 [])) (Integer 4 []) (ConstantInteger -3 (Integer 4 []))) (UnaryOp USub (ConstantInteger 3 (Integer 4 [])) (Integer 4 []) (ConstantInteger -3 (Integer 4 []))))] (Character 1 -2 () []) ()) ()) (= (Var 2 s) (ArrayRef 2 s [((ConstantInteger 2 (Integer 4 [])) (ConstantInteger 3 (Integer 4 [])) ())] (Character 1 -2 () []) ()) ()) (= (Var 2 i) (ArrayRef 2 A [(() (ConstantInteger 0 (Integer 4 [])) ())] (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 5 (Integer 4 [])))]) ()) ()) (= (Var 2 B) (ArrayRef 2 A [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 3 (Integer 4 [])) ())] (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 5 (Integer 4 [])))]) ()) ()) (= (Var 2 B) (ArrayRef 2 A [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 2 (Integer 4 [])) (ConstantInteger 3 (Integer 4 [])))] (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 5 (Integer 4 [])))]) ()) ())] Source Public Implementation () .false. .false.)}) [])

tests/reference/ast-subscript1-bd5584b.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
"basename": "ast-subscript1-bd5584b",
33
"cmd": "lpython --show-ast --no-color {infile} -o {outfile}",
44
"infile": "tests/subscript1.py",
5-
"infile_hash": "24efc3980ad13e8772a093253b380c91ce3b38071d69200e5af33d36",
5+
"infile_hash": "5d229893d3e13ea4463e8ed47eb3798be0b8c28f5ef6b6c773e87b80",
66
"outfile": null,
77
"outfile_hash": null,
88
"stdout": "ast-subscript1-bd5584b.stdout",
9-
"stdout_hash": "a3078483928581b43987ad69903c0319507833a869b1e1fe7d52edb5",
9+
"stdout_hash": "64e0e5bf1c53e455034996484f2449e2e18f526448a00dd79b58fb32",
1010
"stderr": null,
1111
"stderr_hash": null,
1212
"returncode": 0
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
(Module [(FunctionDef test_subscript ([] [] [] [] [] [] []) [(AnnAssign (Name s Store) (Name str Load) () 1) (Assign [(Name s Store)] (ConstantStr "abc" ()) ()) (Assign [(Name s Store)] (Subscript (Name s Load) (ConstantInt 0 ()) Load) ()) (Assign [(Name s Store)] (Subscript (Name s Load) (Slice (ConstantInt 1 ()) (ConstantInt 2 ()) ()) Load) ()) (AnnAssign (Name A Store) (Subscript (Name i32 Load) (ConstantInt 5 ()) Load) () 1) (AnnAssign (Name B Store) (Subscript (Name i32 Load) (ConstantInt 2 ()) Load) () 1) (AnnAssign (Name i Store) (Name i32 Load) () 1) (Assign [(Name i Store)] (Subscript (Name A Load) (ConstantInt 0 ()) Load) ()) (Assign [(Name B Store)] (Subscript (Name A Load) (Slice (ConstantInt 1 ()) (ConstantInt 3 ()) ()) Load) ())] [] () ())] [])
1+
(Module [(FunctionDef test_subscript ([] [] [] [] [] [] []) [(AnnAssign (Name s Store) (Name str Load) () 1) (Assign [(Name s Store)] (ConstantStr "abc" ()) ()) (Assign [(Name s Store)] (Subscript (Name s Load) (ConstantInt 0 ()) Load) ()) (Assign [(Name s Store)] (Subscript (Name s Load) (Slice (ConstantInt 1 ()) (ConstantInt 2 ()) ()) Load) ()) (Assign [(Name s Store)] (Subscript (Name s Load) (Slice () () ()) Load) ()) (Assign [(Name s Store)] (Subscript (Name s Load) (Slice () () (UnaryOp USub (ConstantInt 1 ()))) Load) ()) (Assign [(Name s Store)] (Subscript (Name s Load) (Slice () () (ConstantInt 2 ())) Load) ()) (Assign [(Name s Store)] (Subscript (Name s Load) (Slice (ConstantInt 1 ()) (ConstantInt 88 ()) (ConstantInt 1 ())) Load) ()) (Assign [(Name s Store)] (Subscript (Name s Load) (Slice () (ConstantInt 1 ()) (UnaryOp USub (ConstantInt 4 ()))) Load) ()) (Assign [(Name s Store)] (Subscript (Name s Load) (Slice (UnaryOp USub (ConstantInt 89 ())) () (ConstantInt 4 ())) Load) ()) (Assign [(Name s Store)] (Subscript (Name s Load) (Slice (UnaryOp USub (ConstantInt 3 ())) (UnaryOp USub (ConstantInt 3 ())) (UnaryOp USub (ConstantInt 3 ()))) Load) ()) (Assign [(Name s Store)] (Subscript (Name s Load) (Slice (ConstantInt 2 ()) (ConstantInt 3 ()) ()) Load) ()) (AnnAssign (Name A Store) (Subscript (Name i32 Load) (ConstantInt 5 ()) Load) () 1) (AnnAssign (Name B Store) (Subscript (Name i32 Load) (ConstantInt 2 ()) Load) () 1) (AnnAssign (Name i Store) (Name i32 Load) () 1) (Assign [(Name i Store)] (Subscript (Name A Load) (ConstantInt 0 ()) Load) ()) (Assign [(Name B Store)] (Subscript (Name A Load) (Slice (ConstantInt 1 ()) (ConstantInt 3 ()) ()) Load) ()) (Assign [(Name B Store)] (Subscript (Name A Load) (Slice (ConstantInt 1 ()) (ConstantInt 2 ()) (ConstantInt 3 ())) Load) ())] [] () ())] [])

tests/subscript1.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,19 @@ def test_subscript():
33
s = 'abc'
44
s = s[0]
55
s = s[1:2]
6+
s = s[::]
7+
s = s[::-1]
8+
s = s[::2]
9+
s = s[1:88:1]
10+
s = s[:1:-4]
11+
s = s[-89::4]
12+
s = s[-3:-3:-3]
13+
s = s[2:3:]
14+
615

716
A: i32[5]
817
B: i32[2]
918
i: i32
1019
i = A[0]
1120
B = A[1:3]
21+
B = A[1:2:3]

0 commit comments

Comments
 (0)