Esempio n. 1
0
    def merge(cls, X, Y):
        assert X.user_key == Y.user_key, "User keys do not match"
        assert X.user_key is not None, "user_key must be set"

        following = LWWSet.merge(X.following, Y.following)
        followers = LWWSet.merge(X.following, Y.following)

        new = cls()
        new.user_key = X.user_key
        new.following = following
        new.followers = followers
        
        return new
Esempio n. 2
0
    def merge(cls, X, Y):
        assert X.user_key == Y.user_key, "User keys do not match"
        assert X.user_key is not None, "user_key must be set"

        following = LWWSet.merge(X.following, Y.following)
        followers = LWWSet.merge(X.following, Y.following)

        new = cls()
        new.user_key = X.user_key
        new.following = following
        new.followers = followers

        return new
Esempio n. 3
0
def test_lwwset():
    A = LWWSet()

    fake_time = 1

    def mock_time():
        return fake_time

    old_time = sets.time
    sets.time = mock_time

    A.add("eric")

    B = A.clone()
    C = A.clone()

    # Test that concurrent updates favor add
    fake_time = 2
    B.add("eric")
    C.remove("eric")

    D = LWWSet.merge(B, C)

    assert D.value == set(["eric"])

    sets.time = old_time
Esempio n. 4
0
def test_lwwset():
    A = LWWSet()
    
    fake_time = 1

    def mock_time():
        return fake_time
    old_time = sets.time
    sets.time = mock_time

    A.add("eric")

    B = A.clone()
    C = A.clone()

    # Test that concurrent updates favor add
    fake_time = 2
    B.add("eric")
    C.remove("eric")

    D = LWWSet.merge(B, C)

    assert D.value == set(["eric"])

    sets.time = old_time