diff --git a/tests/micropython/viper_binop_arith.py b/tests/micropython/viper_binop_arith.py new file mode 100644 index 0000000000..137b8c1040 --- /dev/null +++ b/tests/micropython/viper_binop_arith.py @@ -0,0 +1,36 @@ +# test arithmetic operators + +@micropython.viper +def add(x:int, y:int): + print(x + y) + print(y + x) +add(1, 2) +add(42, 3) +add(-1, 2) +add(-42, -3) + +@micropython.viper +def sub(x:int, y:int): + print(x - y) + print(y - x) +sub(1, 2) +sub(42, 3) +sub(-1, 2) +sub(-42, -3) + +@micropython.viper +def shl(x:int, y:int): + print(x << y) +shl(1, 0) +shl(1, 3) +shl(1, 30) +shl(42, 10) +shl(-42, 10) + +@micropython.viper +def shr(x:int, y:int): + print(x >> y) +shr(1, 0) +shr(1, 3) +shr(42, 2) +shr(-42, 2) diff --git a/tests/micropython/viper_binop_arith.py.exp b/tests/micropython/viper_binop_arith.py.exp new file mode 100644 index 0000000000..f10e998cd6 --- /dev/null +++ b/tests/micropython/viper_binop_arith.py.exp @@ -0,0 +1,25 @@ +3 +3 +45 +45 +1 +1 +-45 +-45 +-1 +1 +39 +-39 +-3 +3 +-39 +39 +1 +8 +1073741824 +43008 +-43008 +1 +0 +10 +-11 diff --git a/tests/micropython/viper_binop_comp.py b/tests/micropython/viper_binop_comp.py new file mode 100644 index 0000000000..dcf91ed89d --- /dev/null +++ b/tests/micropython/viper_binop_comp.py @@ -0,0 +1,21 @@ +# test comparison operators +@micropython.viper +def f(x:int, y:int): + if x < y: + print(x, "<", y) + if x > y: + print(x, ">", y) + if x == y: + print(x, "==", y) + if x <= y: + print(x, "<=", y) + if x >= y: + print(x, ">=", y) + if x != y: + print(x, "!=", y) + +f(1, 1) +f(2, 1) +f(1, 2) +f(2, -1) +f(-2, 1) diff --git a/tests/micropython/viper_binop_comp.py.exp b/tests/micropython/viper_binop_comp.py.exp new file mode 100644 index 0000000000..20a8289310 --- /dev/null +++ b/tests/micropython/viper_binop_comp.py.exp @@ -0,0 +1,15 @@ +1 == 1 +1 <= 1 +1 >= 1 +2 > 1 +2 >= 1 +2 != 1 +1 < 2 +1 <= 2 +1 != 2 +2 > -1 +2 >= -1 +2 != -1 +-2 < 1 +-2 <= 1 +-2 != 1