diff options
Diffstat (limited to 'tests/basics')
| -rw-r--r-- | tests/basics/dict_union.py | 36 | ||||
| -rw-r--r-- | tests/basics/dict_union.py.exp | 12 |
2 files changed, 48 insertions, 0 deletions
diff --git a/tests/basics/dict_union.py b/tests/basics/dict_union.py new file mode 100644 index 000000000..606b1c4c5 --- /dev/null +++ b/tests/basics/dict_union.py @@ -0,0 +1,36 @@ +# Test dictionary union. +# +# The tests sort the resulting dictionaries for now, since map insertion +# order is not implemented in MicroPython. + +try: + {} | {} +except TypeError: + print("SKIP") + raise SystemExit + + +def print_sorted_dict(d): + print(sorted(d.items())) + + +def test_union(a, b): + print_sorted_dict(a | b) + print_sorted_dict(b | a) + a |= a + print_sorted_dict(a) + a |= b + print_sorted_dict(a) + + +d = {} +e = {} +test_union(d, e) + +d = {1: "apple"} +e = {1: "cheese"} +test_union(d, e) + +d = {"spam": 1, "eggs": 2, "cheese": 3} +e = {"cheese": "cheddar", "aardvark": "Ethel"} +test_union(d, e) diff --git a/tests/basics/dict_union.py.exp b/tests/basics/dict_union.py.exp new file mode 100644 index 000000000..7a8f83bd5 --- /dev/null +++ b/tests/basics/dict_union.py.exp @@ -0,0 +1,12 @@ +[] +[] +[] +[] +[(1, 'cheese')] +[(1, 'apple')] +[(1, 'apple')] +[(1, 'cheese')] +[('aardvark', 'Ethel'), ('cheese', 'cheddar'), ('eggs', 2), ('spam', 1)] +[('aardvark', 'Ethel'), ('cheese', 3), ('eggs', 2), ('spam', 1)] +[('cheese', 3), ('eggs', 2), ('spam', 1)] +[('aardvark', 'Ethel'), ('cheese', 'cheddar'), ('eggs', 2), ('spam', 1)] |
