f3e4c505d1
Implements dictionary union according to PEP 584's specifications, minus the fact that dictionary entries are not guaranteed to be in insertion order. This feature is enabled with MICROPY_CPYTHON_COMPAT. Includes a new test. With the assistance of Fangrui Qin <qinf@purdue.edu> Signed-off-by: Rayane Chatrieux <rayane.chatrieux@gmail.com> Signed-off-by: Damien George <damien@micropython.org>
37 lines
620 B
Python
37 lines
620 B
Python
# 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)
|