Lichen

tests/operator_support.py

544:8df59b6c2c68
2017-02-05 Paul Boddie Fixed internal mapping methods to accept explicit bucket sequences, preventing confusion when searching for entries in one set of buckets while attempting to populate another. Implemented various dictionary and set methods. Added set iteration support. Expanded the test of sets.
     1 class A:     2     def __init__(self, x):     3         self.x = x     4     def __sub__(self, other):     5         return self.x - other.x     6      7 class B:     8     def __init__(self, x):     9         self.x = x    10     def __rsub__(self, other):    11         return other.x - self.x    12     13 class C:    14     def __init__(self, x):    15         self.x = x    16     17 a = A(10)    18 b = B(5)    19 c = C(3)    20     21 print a - b                         # 5    22 print c - b                         # -2    23 print a - c                         # 7    24     25 try:    26     print b - c                     # should raise an exception    27 except TypeError:    28     print "b - c: b and c do not respectively support the __sub__ and __rsub__ operations"