summaryrefslogtreecommitdiff
path: root/tests/micropython/viper_misc.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/micropython/viper_misc.py')
-rw-r--r--tests/micropython/viper_misc.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/micropython/viper_misc.py b/tests/micropython/viper_misc.py
index 41389c751..f9267f65c 100644
--- a/tests/micropython/viper_misc.py
+++ b/tests/micropython/viper_misc.py
@@ -1,5 +1,6 @@
import micropython
+
# viper function taking and returning ints
@micropython.viper
def viper_int(x: int, y: int) -> int:
@@ -8,6 +9,7 @@ def viper_int(x: int, y: int) -> int:
print(viper_int(1, 2))
+
# viper function taking and returning objects
@micropython.viper
def viper_object(x: object, y: object) -> object:
@@ -16,6 +18,7 @@ def viper_object(x: object, y: object) -> object:
print(viper_object(1, 2))
+
# return None as non-object (should return 0)
@micropython.viper
def viper_ret_none() -> int:
@@ -24,6 +27,7 @@ def viper_ret_none() -> int:
print(viper_ret_none())
+
# return Ellipsis as object
@micropython.viper
def viper_ret_ellipsis() -> object:
@@ -32,6 +36,7 @@ def viper_ret_ellipsis() -> object:
print(viper_ret_ellipsis())
+
# 3 args
@micropython.viper
def viper_3args(a: int, b: int, c: int) -> int:
@@ -40,6 +45,7 @@ def viper_3args(a: int, b: int, c: int) -> int:
print(viper_3args(1, 2, 3))
+
# 4 args
@micropython.viper
def viper_4args(a: int, b: int, c: int, d: int) -> int:
@@ -49,6 +55,7 @@ def viper_4args(a: int, b: int, c: int, d: int) -> int:
# viper call with 4 args not yet supported
# print(viper_4args(1, 2, 3, 4))
+
# a local (should have automatic type int)
@micropython.viper
def viper_local(x: int) -> int:
@@ -58,6 +65,7 @@ def viper_local(x: int) -> int:
print(viper_local(3))
+
# without type annotation, types should default to object
@micropython.viper
def viper_no_annotation(x, y):
@@ -66,6 +74,7 @@ def viper_no_annotation(x, y):
print(viper_no_annotation(4, 5))
+
# a for loop
@micropython.viper
def viper_for(a: int, b: int) -> int:
@@ -77,6 +86,7 @@ def viper_for(a: int, b: int) -> int:
print(viper_for(10, 10000))
+
# accessing a global
@micropython.viper
def viper_access_global():
@@ -87,6 +97,7 @@ def viper_access_global():
print(viper_access_global(), gl)
+
# calling print with object and int types
@micropython.viper
def viper_print(x, y: int):
@@ -95,6 +106,7 @@ def viper_print(x, y: int):
viper_print(1, 2)
+
# convert constants to objects in tuple
@micropython.viper
def viper_tuple_consts(x):
@@ -103,6 +115,7 @@ def viper_tuple_consts(x):
print(viper_tuple_consts(0))
+
# making a tuple from an object and an int
@micropython.viper
def viper_tuple(x, y: int):
@@ -111,6 +124,7 @@ def viper_tuple(x, y: int):
print(viper_tuple(1, 2))
+
# making a list from an object and an int
@micropython.viper
def viper_list(x, y: int):
@@ -119,6 +133,7 @@ def viper_list(x, y: int):
print(viper_list(1, 2))
+
# making a set from an object and an int
@micropython.viper
def viper_set(x, y: int):
@@ -127,6 +142,7 @@ def viper_set(x, y: int):
print(sorted(list(viper_set(1, 2))))
+
# raising an exception
@micropython.viper
def viper_raise(x: int):
@@ -138,6 +154,7 @@ try:
except OSError as e:
print(repr(e))
+
# calling GC after defining the function
@micropython.viper
def viper_gc() -> int: