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)
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))
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)
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))
def binaryop_in(stk): v2 = stk.pop() v1 = stk.pop() stk.append(any(values_equal(elem_type, v1, v2elem) for v2elem in v2))
def _has_key(stk): k = stk.pop() m = stk.pop() stk.append(any(values_equal(key_type, k, kk) for kk in m.keys()))