Skip to content

Commit 753a6f8

Browse files
committed
Add and update tests
1 parent 83ba6b4 commit 753a6f8

File tree

3 files changed

+40
-3
lines changed

3 files changed

+40
-3
lines changed

integration_tests/expr_09.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,41 @@ def main0():
88
print(-i1 ^ -i2)
99
assert -i1 ^ -i2 == 6
1010

11+
12+
def test_multiple_assign_1():
13+
a: i32; b: i32; c: i32
14+
d: f64; e: f32; g: i32
15+
g = 5
16+
d = e = g + 1.0
17+
a = b = c = 10
18+
assert a == b
19+
assert b == c
20+
assert a == 10
21+
x: f32; y: f64
22+
x = y = 23.0
23+
assert abs(x - 23.0) < 1e-6
24+
assert abs(y - 23.0) < 1e-12
25+
assert abs(e - 6.0) < 1e-6
26+
assert abs(d - 6.0) < 1e-12
27+
i: list[f64]; j: list[f64]; k: list[f64] = []
28+
g = 0
29+
for g in range(10):
30+
k.append(g*2.0 + 5.0)
31+
i = j = k
32+
for g in range(10):
33+
assert abs(i[g] - j[g]) < 1e-12
34+
assert abs(i[g] - k[g]) < 1e-12
35+
assert abs(g*2.0 + 5.0 - k[g]) < 1e-12
36+
37+
38+
def test_issue_928():
39+
a: i32; b: i32; c: tuple[i32, i32]
40+
a, b = c = 2, 1
41+
assert a == 2
42+
assert b == 1
43+
assert c[0] == a and c[1] == b
44+
45+
46+
test_multiple_assign_1()
47+
test_issue_928()
1148
main0()

tests/reference/asr-expr_09-f3e89c8.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
"basename": "asr-expr_09-f3e89c8",
33
"cmd": "lpython --show-asr --no-color {infile} -o {outfile}",
44
"infile": "tests/../integration_tests/expr_09.py",
5-
"infile_hash": "7a3cdb6538c8d2d8e4555683aeac4f9b074be2fcaa6fe4532c01bf1a",
5+
"infile_hash": "51dfe55e01443840104d583e5e21ba3dd48fa33a95f1f943aac1d5d0",
66
"outfile": null,
77
"outfile_hash": null,
88
"stdout": "asr-expr_09-f3e89c8.stdout",
9-
"stdout_hash": "167f5176a21663f13aff75078c19a6bd7e07d7cab2605ef6302d9b8a",
9+
"stdout_hash": "66cf441a7ed60ad292ae9933ae51d8aac76f803201b809eac2689a33",
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 {_lpython_main_program: (Function (SymbolTable 4 {}) _lpython_main_program [] [] [(SubroutineCall 1 main0 () [] ())] () Source Public Implementation () .false. .false. .false.), main0: (Function (SymbolTable 2 {i1: (Variable 2 i1 Local () () Default (Integer 4 []) Source Public Required .false.), i2: (Variable 2 i2 Local () () Default (Integer 4 []) Source Public Required .false.)}) main0 [] [] [(= (Var 2 i1) (IntegerConstant 10 (Integer 4 [])) ()) (= (Var 2 i2) (IntegerConstant 4 (Integer 4 [])) ()) (= (Var 2 i1) (IntegerConstant 3 (Integer 4 [])) ()) (= (Var 2 i2) (IntegerConstant 5 (Integer 4 [])) ()) (Print () [(IntegerBinOp (IntegerUnaryMinus (Var 2 i1) (Integer 4 []) ()) BitXor (IntegerUnaryMinus (Var 2 i2) (Integer 4 []) ()) (Integer 4 []) ())] () ()) (Assert (IntegerCompare (IntegerBinOp (IntegerUnaryMinus (Var 2 i1) (Integer 4 []) ()) BitXor (IntegerUnaryMinus (Var 2 i2) (Integer 4 []) ()) (Integer 4 []) ()) Eq (IntegerConstant 6 (Integer 4 [])) (Logical 4 []) ()) ())] () Source Public Implementation () .false. .false. .false.), main_program: (Program (SymbolTable 3 {}) main_program [] [(SubroutineCall 1 _lpython_main_program () [] ())])}) [])
1+
(TranslationUnit (SymbolTable 1 {_lpython_main_program: (Function (SymbolTable 86 {}) _lpython_main_program [] [] [(SubroutineCall 1 test_multiple_assign_1 () [] ()) (SubroutineCall 1 test_issue_928 () [] ()) (SubroutineCall 1 main0 () [] ())] () Source Public Implementation () .false. .false. .false.), abs@__lpython_overloaded_0__abs: (ExternalSymbol 1 abs@__lpython_overloaded_0__abs 6 __lpython_overloaded_0__abs lpython_builtin [] __lpython_overloaded_0__abs Public), lpython_builtin: (IntrinsicModule lpython_builtin), main0: (Function (SymbolTable 2 {i1: (Variable 2 i1 Local () () Default (Integer 4 []) Source Public Required .false.), i2: (Variable 2 i2 Local () () Default (Integer 4 []) Source Public Required .false.)}) main0 [] [] [(= (Var 2 i1) (IntegerConstant 10 (Integer 4 [])) ()) (= (Var 2 i2) (IntegerConstant 4 (Integer 4 [])) ()) (= (Var 2 i1) (IntegerConstant 3 (Integer 4 [])) ()) (= (Var 2 i2) (IntegerConstant 5 (Integer 4 [])) ()) (Print () [(IntegerBinOp (IntegerUnaryMinus (Var 2 i1) (Integer 4 []) ()) BitXor (IntegerUnaryMinus (Var 2 i2) (Integer 4 []) ()) (Integer 4 []) ())] () ()) (Assert (IntegerCompare (IntegerBinOp (IntegerUnaryMinus (Var 2 i1) (Integer 4 []) ()) BitXor (IntegerUnaryMinus (Var 2 i2) (Integer 4 []) ()) (Integer 4 []) ()) Eq (IntegerConstant 6 (Integer 4 [])) (Logical 4 []) ()) ())] () Source Public Implementation () .false. .false. .false.), main_program: (Program (SymbolTable 85 {}) main_program [] [(SubroutineCall 1 _lpython_main_program () [] ())]), test_issue_928: (Function (SymbolTable 4 {a: (Variable 4 a Local () () Default (Integer 4 []) Source Public Required .false.), b: (Variable 4 b Local () () Default (Integer 4 []) Source Public Required .false.), c: (Variable 4 c Local () () Default (Tuple [(Integer 4 []) (Integer 4 [])]) Source Public Required .false.)}) test_issue_928 [] [] [(= (TupleConstant [(Var 4 a) (Var 4 b)] (Tuple [(Integer 4 []) (Integer 4 [])])) (TupleConstant [(IntegerConstant 2 (Integer 4 [])) (IntegerConstant 1 (Integer 4 []))] (Tuple [(Integer 4 []) (Integer 4 [])])) ()) (= (Var 4 c) (TupleConstant [(IntegerConstant 2 (Integer 4 [])) (IntegerConstant 1 (Integer 4 []))] (Tuple [(Integer 4 []) (Integer 4 [])])) ()) (Assert (IntegerCompare (Var 4 a) Eq (IntegerConstant 2 (Integer 4 [])) (Logical 4 []) ()) ()) (Assert (IntegerCompare (Var 4 b) Eq (IntegerConstant 1 (Integer 4 [])) (Logical 4 []) ()) ()) (Assert (LogicalBinOp (IntegerCompare (TupleItem (Var 4 c) (IntegerConstant 0 (Integer 4 [])) (Integer 4 []) ()) Eq (Var 4 a) (Logical 4 []) ()) And (IntegerCompare (TupleItem (Var 4 c) (IntegerConstant 1 (Integer 4 [])) (Integer 4 []) ()) Eq (Var 4 b) (Logical 4 []) ()) (Logical 4 []) ()) ())] () Source Public Implementation () .false. .false. .false.), test_multiple_assign_1: (Function (SymbolTable 3 {a: (Variable 3 a Local () () Default (Integer 4 []) Source Public Required .false.), abs: (ExternalSymbol 3 abs 6 abs lpython_builtin [] abs Private), b: (Variable 3 b Local () () Default (Integer 4 []) Source Public Required .false.), c: (Variable 3 c Local () () Default (Integer 4 []) Source Public Required .false.), d: (Variable 3 d Local () () Default (Real 8 []) Source Public Required .false.), e: (Variable 3 e Local () () Default (Real 4 []) Source Public Required .false.), g: (Variable 3 g Local () () Default (Integer 4 []) Source Public Required .false.), i: (Variable 3 i Local () () Default (List (Real 8 [])) Source Public Required .false.), j: (Variable 3 j Local () () Default (List (Real 8 [])) Source Public Required .false.), k: (Variable 3 k Local () () Default (List (Real 8 [])) Source Public Required .false.), x: (Variable 3 x Local () () Default (Real 4 []) Source Public Required .false.), y: (Variable 3 y Local () () Default (Real 8 []) Source Public Required .false.)}) test_multiple_assign_1 [] [] [(= (Var 3 g) (IntegerConstant 5 (Integer 4 [])) ()) (= (Var 3 d) (RealBinOp (Cast (Var 3 g) IntegerToReal (Real 8 []) ()) Add (RealConstant 1.000000 (Real 8 [])) (Real 8 []) ()) ()) (= (Var 3 e) (Cast (RealBinOp (Cast (Var 3 g) IntegerToReal (Real 8 []) ()) Add (RealConstant 1.000000 (Real 8 [])) (Real 8 []) ()) RealToReal (Real 4 []) ()) ()) (= (Var 3 a) (IntegerConstant 10 (Integer 4 [])) ()) (= (Var 3 b) (IntegerConstant 10 (Integer 4 [])) ()) (= (Var 3 c) (IntegerConstant 10 (Integer 4 [])) ()) (Assert (IntegerCompare (Var 3 a) Eq (Var 3 b) (Logical 4 []) ()) ()) (Assert (IntegerCompare (Var 3 b) Eq (Var 3 c) (Logical 4 []) ()) ()) (Assert (IntegerCompare (Var 3 a) Eq (IntegerConstant 10 (Integer 4 [])) (Logical 4 []) ()) ()) (= (Var 3 x) (Cast (RealConstant 23.000000 (Real 8 [])) RealToReal (Real 4 []) (RealConstant 23.000000 (Real 4 []))) ()) (= (Var 3 y) (RealConstant 23.000000 (Real 8 [])) ()) (Assert (RealCompare (FunctionCall 1 abs@__lpython_overloaded_0__abs 3 abs [((RealBinOp (Cast (Var 3 x) RealToReal (Real 8 []) ()) Sub (RealConstant 23.000000 (Real 8 [])) (Real 8 []) ()))] (Real 8 []) () ()) Lt (RealConstant 0.000001 (Real 8 [])) (Logical 4 []) ()) ()) (Assert (RealCompare (FunctionCall 1 abs@__lpython_overloaded_0__abs 3 abs [((RealBinOp (Var 3 y) Sub (RealConstant 23.000000 (Real 8 [])) (Real 8 []) ()))] (Real 8 []) () ()) Lt (RealConstant 0.000000 (Real 8 [])) (Logical 4 []) ()) ()) (Assert (RealCompare (FunctionCall 1 abs@__lpython_overloaded_0__abs 3 abs [((RealBinOp (Cast (Var 3 e) RealToReal (Real 8 []) ()) Sub (RealConstant 6.000000 (Real 8 [])) (Real 8 []) ()))] (Real 8 []) () ()) Lt (RealConstant 0.000001 (Real 8 [])) (Logical 4 []) ()) ()) (Assert (RealCompare (FunctionCall 1 abs@__lpython_overloaded_0__abs 3 abs [((RealBinOp (Var 3 d) Sub (RealConstant 6.000000 (Real 8 [])) (Real 8 []) ()))] (Real 8 []) () ()) Lt (RealConstant 0.000000 (Real 8 [])) (Logical 4 []) ()) ()) (= (Var 3 k) (ListConstant [] (List (Real 8 []))) ()) (= (Var 3 g) (IntegerConstant 0 (Integer 4 [])) ()) (DoLoop ((Var 3 g) (IntegerConstant 0 (Integer 4 [])) (IntegerBinOp (IntegerConstant 10 (Integer 4 [])) Sub (IntegerConstant 1 (Integer 4 [])) (Integer 4 []) (IntegerConstant 9 (Integer 4 []))) (IntegerConstant 1 (Integer 4 []))) [(ListAppend (Var 3 k) (RealBinOp (RealBinOp (Cast (Var 3 g) IntegerToReal (Real 8 []) ()) Mul (RealConstant 2.000000 (Real 8 [])) (Real 8 []) ()) Add (RealConstant 5.000000 (Real 8 [])) (Real 8 []) ()))]) (= (Var 3 i) (Var 3 k) ()) (= (Var 3 j) (Var 3 k) ()) (DoLoop ((Var 3 g) (IntegerConstant 0 (Integer 4 [])) (IntegerBinOp (IntegerConstant 10 (Integer 4 [])) Sub (IntegerConstant 1 (Integer 4 [])) (Integer 4 []) (IntegerConstant 9 (Integer 4 []))) (IntegerConstant 1 (Integer 4 []))) [(Assert (RealCompare (FunctionCall 1 abs@__lpython_overloaded_0__abs 3 abs [((RealBinOp (ListItem (Var 3 i) (Var 3 g) (Real 8 []) ()) Sub (ListItem (Var 3 j) (Var 3 g) (Real 8 []) ()) (Real 8 []) ()))] (Real 8 []) () ()) Lt (RealConstant 0.000000 (Real 8 [])) (Logical 4 []) ()) ()) (Assert (RealCompare (FunctionCall 1 abs@__lpython_overloaded_0__abs 3 abs [((RealBinOp (ListItem (Var 3 i) (Var 3 g) (Real 8 []) ()) Sub (ListItem (Var 3 k) (Var 3 g) (Real 8 []) ()) (Real 8 []) ()))] (Real 8 []) () ()) Lt (RealConstant 0.000000 (Real 8 [])) (Logical 4 []) ()) ()) (Assert (RealCompare (FunctionCall 1 abs@__lpython_overloaded_0__abs 3 abs [((RealBinOp (RealBinOp (RealBinOp (Cast (Var 3 g) IntegerToReal (Real 8 []) ()) Mul (RealConstant 2.000000 (Real 8 [])) (Real 8 []) ()) Add (RealConstant 5.000000 (Real 8 [])) (Real 8 []) ()) Sub (ListItem (Var 3 k) (Var 3 g) (Real 8 []) ()) (Real 8 []) ()))] (Real 8 []) () ()) Lt (RealConstant 0.000000 (Real 8 [])) (Logical 4 []) ()) ())])] () Source Public Implementation () .false. .false. .false.)}) [])

0 commit comments

Comments
 (0)