Exemplo n.º 1
0
    def test_deep_eq(self):
        t = THandle("H", INT)

        h1 = Handle(address=0, value=0)
        h2 = Handle(address=0, value=1)
        assert h1 != h2
        assert values_equal(t, h1, h2)

        h3 = Handle(address=1, value=0)
        b1 = Bag((h1, h3, h3))
        b2 = Bag((h3, h2, h3))
        assert b1 != b2
        assert values_equal(TBag(t), b1, b2)
Exemplo n.º 2
0
    def test_deep_eq(self):
        t = THandle("H", INT)

        h1 = Handle(address=0, value=0)
        h2 = Handle(address=0, value=1)
        assert h1 != h2
        assert values_equal(t, h1, h2)

        h3 = Handle(address=1, value=0)
        b1 = Bag((h1, h3, h3))
        b2 = Bag((h3, h2, h3))
        assert b1 != b2
        assert values_equal(TBag(t), b1, b2)
Exemplo n.º 3
0
 def unaryop_distinct(stk):
     v = stk.pop()
     res = []
     for x in v:
         if not any(values_equal(elem_type, x, y) for y in res):
             res.append(x)
     stk.append(Bag(res))
Exemplo n.º 4
0
 def unaryop_areunique(stk):
     v = stk.pop()
     l = sorted(v, key=keyfunc)
     res = True
     for i in range(len(l) - 1):
         if values_equal(elem_type, l[i], l[i+1]):
             res = False
             break
     stk.append(res)
Exemplo n.º 5
0
 def binaryop_sub_lists(stk):
     v2 = stk.pop()
     v1 = stk.pop()
     elems = list(v1)
     for x in v2:
         for i in range(len(elems)):
             if values_equal(elem_type, x, elems[i]):
                 del elems[i]
                 break
     stk.append(tuple(elems))
Exemplo n.º 6
0
 def binaryop_in(stk):
     v2 = stk.pop()
     v1 = stk.pop()
     stk.append(any(values_equal(elem_type, v1, v2elem) for v2elem in v2))
Exemplo n.º 7
0
 def _has_key(stk):
     k = stk.pop()
     m = stk.pop()
     stk.append(any(values_equal(key_type, k, kk) for kk in m.keys()))