micropython

internal_tests/objectset.py

759:28ed9334c861
2013-11-29 Paul Boddie Added more notes about invocation, particularly around dynamic function contexts and their presence in method invocations. syspython-as-target
     1 #!/usr/bin/env python     2      3 from micropython.objectset import ObjectSet, combine_mapping_dicts     4      5 # Test storage.     6      7 o1 = ObjectSet()     8 o1.add("a")     9 o1.add("b")    10 o1.add("c")    11 print "o1 =", o1    12     13 # Test storage with associated data.    14     15 o2 = ObjectSet()    16 o2.add("b")    17 o2["c"] = ["x"]    18 o2.add("d")    19 o2["d"].update(set(["p", "q"]))    20 print "o2 =", o2    21     22 print "o1 == o2", o1 == o2    23 print "o1 != o2", o1 != o2    24 assert o1 != o2    25     26 # Test merging.    27     28 o12 = o1.merge(o2)    29 print "o1 =", o1    30 print "o2 =", o2    31 print "o12 =", o12    32     33 o12_keys = o12.keys()    34 o12_keys.sort()    35 print "o12_keys =", o12_keys    36 assert o12_keys == ["a", "b", "c", "d"]    37     38 # Test copying.    39     40 o1_copy = ObjectSet(o1)    41 print "o1 =", o1    42 print "o1_copy =", o1_copy    43 print "o1 == o1_copy", o1 == o1_copy    44 assert o1 == o1_copy    45     46 # Test updating.    47     48 o1_copy.update(o2)    49 print "o1_copy =", o1_copy    50 print "o1 != o1_copy", o1 != o1_copy    51 print "o12 == o1_copy", o12 == o1_copy    52 assert o1 != o1_copy    53 assert o12 == o1_copy    54     55 o3 = ObjectSet()    56 o3.add("c")    57 o3["c"].add("y")    58 print "o3 =", o3    59     60 # Test combining.    61     62 d1 = {'a' : [ObjectSet(['f', 'g']), ObjectSet(['f', 'h'])]}    63 d2 = {'a' : [ObjectSet(['f']), ObjectSet(['e', 'f', 'g'])]}    64 d3 = combine_mapping_dicts(d1, d2)    65 print "d1 =", d1    66 print "d2 =", d2    67 print "d3 =", d3    68 assert d3["a"] == [ObjectSet(['f', 'g']), ObjectSet(['f', 'h']), ObjectSet(['e', 'f', 'g']), ObjectSet(['e', 'f', 'g', 'h'])]    69     70 # Test combining with empty sets.    71     72 d4 = {'a' : None}    73 d5 = combine_mapping_dicts(d1, d4)    74 print "d4 =", d4    75 print "d5 =", d5    76 assert d5 == d1    77     78 # vim: tabstop=4 expandtab shiftwidth=4