aboutsummaryrefslogtreecommitdiff
path: root/tests/micropython/viper_binop_comp_uint.py
diff options
context:
space:
mode:
authorDamien George2020-06-26 18:26:39 +1000
committerDamien George2020-06-27 00:24:04 +1000
commit41fa8b5482089bdd7fa5478fe24f32913b23967c (patch)
tree25efbc78d3b14a448882d4a7a503ddd4d7efcf47 /tests/micropython/viper_binop_comp_uint.py
parentb3b8706d27cffbfc4cdd447b204ae7083283d13c (diff)
py/emitnative: Implement binary operations for viper uint operands.
uint types in viper mode can now be used for all binary operators except floor-divide and modulo. Fixes issue #1847 and issue #6177. Signed-off-by: Damien George <damien@micropython.org>
Diffstat (limited to 'tests/micropython/viper_binop_comp_uint.py')
-rw-r--r--tests/micropython/viper_binop_comp_uint.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/micropython/viper_binop_comp_uint.py b/tests/micropython/viper_binop_comp_uint.py
new file mode 100644
index 000000000..85aa32c78
--- /dev/null
+++ b/tests/micropython/viper_binop_comp_uint.py
@@ -0,0 +1,31 @@
+# test comparison operators with uint type
+
+
+@micropython.viper
+def f(x: uint, y: uint):
+ if x < y:
+ print(" <", end="")
+ if x > y:
+ print(" >", end="")
+ if x == y:
+ print(" ==", end="")
+ if x <= y:
+ print(" <=", end="")
+ if x >= y:
+ print(" >=", end="")
+ if x != y:
+ print(" !=", end="")
+
+
+def test(a, b):
+ print(a, b, end="")
+ f(a, b)
+ print()
+
+
+test(1, 1)
+test(2, 1)
+test(1, 2)
+test(2, -1)
+test(-2, 1)
+test(-2, -1)