Exemplo n.º 1
0
    def test_unionAgo_unionTwiceSubTree_unionTimeShouldChange(self):
        set = RetroactiveUnionFind()
        set.unionAgo('a1','a2', tdelta = 5) 
        set.unionAgo('a2','a3', tdelta = 14) 
        set.unionAgo('a3','a4', tdelta = 7) 
        
        set.unionAgo('a2','b1', tdelta = 7)
        set.unionAgo('b1','b2', tdelta = 7)
        set.unionAgo('b2','b3', tdelta = 7)

        self.assertEqual(set.sameSetAgo('b3','a4',6), False)
        set.unionAgo('b3','a4',6)
        self.assertEqual(set.sameSetAgo('b3','a4',6), True)
Exemplo n.º 2
0
    def test_unionAgo_unionAtTime_samesetAfterShouldSucceed(self):
        set = RetroactiveUnionFind()
        set.unionAgo('a1','a2', tdelta = 5) 
        a1 = set.forest.getNode('a1')        
        a2 = set.forest.getNode('a2')

        self.assertEqual(set.sameSetAgo('a1','a2',7), True)
Exemplo n.º 3
0
    def test_unionAgo_unionAtTime_samesetBeforeShouldFail(self):
        set = RetroactiveUnionFind()
        set.unionAgo('a1','a2', tdelta = 5) 
        a1 = set.forest.getNode('a1')        
        a2 = set.forest.getNode('a2')

        self.assertEqual(set.sameSetAgo('a1','a2',2), False)
Exemplo n.º 4
0
    def test_unionAgo_unionTwice_pToPreXIntact(self):
        set = RetroactiveUnionFind()
        set.unionAgo('a1','a2', tdelta = 5) 
        set.unionAgo('a2','a3', tdelta = 3) 
        set.unionAgo('a3','a4', tdelta = 7) 
        set.unionAgo('a4','a5', tdelta = 14) 
        set.unionAgo('a5','a6', tdelta = 7) 

        set.unionAgo('a3','b1', tdelta = 7)
        set.unionAgo('b1','b2', tdelta = 7)
        set.unionAgo('b2','b3', tdelta = 7)

        set.unionAgo('b3','a6',6)

        # p to preX
        self.assertEqual(set.sameSetAgo('a1','a4',7), True)
        # check the other branch for safety
        self.assertEqual(set.sameSetAgo('a1','b2',7), True)
Exemplo n.º 5
0
    def test_unionAgo_unionTwice_cToPostXIntact(self):
        set = RetroactiveUnionFind()
        set.unionAgo('a1','a2', tdelta = 5) 
        set.unionAgo('a2','a3', tdelta = 3) 
        set.unionAgo('a3','a4', tdelta = 7) 
        set.unionAgo('a4','a5', tdelta = 14) 
        set.unionAgo('a5','a6', tdelta = 7) 

        set.unionAgo('a3','b1', tdelta = 7)
        set.unionAgo('b1','b2', tdelta = 7)
        set.unionAgo('b2','b3', tdelta = 7)

        set.unionAgo('b3','a6',6)

        # c to postX
        self.assertEqual(set.sameSetAgo('b2','a5',14), True)
Exemplo n.º 6
0
    def test_unionAgo_unionTwice_unionTimeShouldChange(self):
        set = RetroactiveUnionFind()
        set.unionAgo('a1','a2', tdelta = 5) 
        set.unionAgo('a1','a2', tdelta = 2) 

        self.assertEqual(set.sameSetAgo('a1','a2',2), True)