def test_gset(): """ {},{} / \ A{eric},{} B{glenn},{} +eric +glenn | | A{eric mark},{} | +mark | / \ | / \ \ / \ \ / B2{glenn tom} +tom \ / \ AB{eric mark glenn} \ <<merge>> \ / \ / ABB2{eric mark tom glenn} <<merge>> """ A = GSet() B = GSet() A.add("eric") A.add("mark") B.add("glenn") B2 = B.clone() AB = GSet.merge(A, B) B2.add("tom") ABB2 = GSet.merge(AB, B2) assert ABB2.value == {"eric", "mark", "tom", "glenn"}, ABB2.value
def __init__(self): self.A = GSet() self.R = GSet()
def merge(cls, X, Y): merged = GSet() merged._payload = X._payload.union(Y._payload) return merged