🐐 Compound assignment
This commit is contained in:
25
tests.py
25
tests.py
@@ -265,6 +265,31 @@ assignment_tests = [
|
||||
Designa(ID("x"), BinOp(ID("x"), Numeral("I"), "SYMBOL_PLUS")),
|
||||
ExpressionStatement(ID("x"))]),
|
||||
ValInt(3)),
|
||||
# Compound assignment — AVGE (+=)
|
||||
("DESIGNA x VT V\nx AVGE III\nx",
|
||||
Program([], [Designa(ID("x"), Numeral("V")),
|
||||
Designa(ID("x"), BinOp(ID("x"), Numeral("III"), "SYMBOL_PLUS")),
|
||||
ExpressionStatement(ID("x"))]),
|
||||
ValInt(8)),
|
||||
# Compound assignment — MINVE (-=)
|
||||
("DESIGNA x VT X\nx MINVE III\nx",
|
||||
Program([], [Designa(ID("x"), Numeral("X")),
|
||||
Designa(ID("x"), BinOp(ID("x"), Numeral("III"), "SYMBOL_MINUS")),
|
||||
ExpressionStatement(ID("x"))]),
|
||||
ValInt(7)),
|
||||
# AVGE with complex expression
|
||||
("DESIGNA x VT I\nx AVGE II + III\nx",
|
||||
Program([], [Designa(ID("x"), Numeral("I")),
|
||||
Designa(ID("x"), BinOp(ID("x"), BinOp(Numeral("II"), Numeral("III"), "SYMBOL_PLUS"), "SYMBOL_PLUS")),
|
||||
ExpressionStatement(ID("x"))]),
|
||||
ValInt(6)),
|
||||
# AVGE inside a loop (DONICVM range is exclusive of upper bound: I VSQVE III = [1, 2])
|
||||
("DESIGNA s VT NVLLVS\nDONICVM i VT I VSQVE III FACE {\ns AVGE i\n}\ns",
|
||||
Program([], [Designa(ID("s"), Nullus()),
|
||||
PerStatement(DataRangeArray(Numeral("I"), Numeral("III")), ID("i"),
|
||||
[Designa(ID("s"), BinOp(ID("s"), ID("i"), "SYMBOL_PLUS"))]),
|
||||
ExpressionStatement(ID("s"))]),
|
||||
ValInt(3)),
|
||||
]
|
||||
|
||||
class TestAssignment(unittest.TestCase):
|
||||
|
||||
Reference in New Issue
Block a user