diff options
Diffstat (limited to 'tests/basics')
-rw-r--r-- | tests/basics/builtin_hash.py | 11 | ||||
-rw-r--r-- | tests/basics/del_global.py | 18 | ||||
-rw-r--r-- | tests/basics/del_name.py | 2 | ||||
-rw-r--r-- | tests/basics/fun_largestate.py | 4 | ||||
-rw-r--r-- | tests/basics/int1.py | 3 | ||||
-rw-r--r-- | tests/basics/int_small.py | 9 | ||||
-rw-r--r-- | tests/basics/unary_op.py | 5 |
7 files changed, 51 insertions, 1 deletions
diff --git a/tests/basics/builtin_hash.py b/tests/basics/builtin_hash.py index c4c7019b47..0abfe980e1 100644 --- a/tests/basics/builtin_hash.py +++ b/tests/basics/builtin_hash.py @@ -1,5 +1,16 @@ # test builtin hash function +print(hash(False)) +print(hash(True)) +print({():1}) # hash tuple +print({1 << 66:1}) # hash big int +print(hash in {hash:1}) # hash function + +try: + hash([]) +except TypeError: + print("TypeError") + class A: def __hash__(self): return 123 diff --git a/tests/basics/del_global.py b/tests/basics/del_global.py new file mode 100644 index 0000000000..24ecec8e84 --- /dev/null +++ b/tests/basics/del_global.py @@ -0,0 +1,18 @@ +# del global + +def do_del(): + global x + del x + +x = 1 +print(x) +do_del() +try: + print(x) +except NameError: + print("NameError") +try: + do_del() +except: # NameError: + # FIXME uPy returns KeyError for this + print("NameError") diff --git a/tests/basics/del_name.py b/tests/basics/del_name.py index f75a2f5dc6..c92be54d3b 100644 --- a/tests/basics/del_name.py +++ b/tests/basics/del_name.py @@ -1,4 +1,4 @@ -# del global +# del name x = 1 print(x) diff --git a/tests/basics/fun_largestate.py b/tests/basics/fun_largestate.py index c83f730dcb..f13619295f 100644 --- a/tests/basics/fun_largestate.py +++ b/tests/basics/fun_largestate.py @@ -129,5 +129,9 @@ def f(): x125 = 1 x126 = 1 +f() + def g(): x = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,] + +g() diff --git a/tests/basics/int1.py b/tests/basics/int1.py index 01e0b0b407..89d4fd9d4b 100644 --- a/tests/basics/int1.py +++ b/tests/basics/int1.py @@ -1,3 +1,6 @@ +print(int(False)) +print(int(True)) + print(int(0)) print(int(1)) print(int(+1)) diff --git a/tests/basics/int_small.py b/tests/basics/int_small.py index 1b2c983e23..496e830d26 100644 --- a/tests/basics/int_small.py +++ b/tests/basics/int_small.py @@ -49,6 +49,15 @@ print(a) # This would overflow #a -= 1 +# negative shifts are not allowed +try: + a << -1 +except ValueError: + print("ValueError") +try: + a >> -1 +except ValueError: + print("ValueError") # Shifts to big amounts are undefined behavior in C and is CPU-specific diff --git a/tests/basics/unary_op.py b/tests/basics/unary_op.py index 9846285d55..3084c273e7 100644 --- a/tests/basics/unary_op.py +++ b/tests/basics/unary_op.py @@ -1,3 +1,8 @@ +x = 1 +print(+x) +print(-x) +print(~x) + print(not None) print(not False) print(not True) |