def test_nonzero(self): """ Test disjoint set bool evaluation """ self.assertFalse(djset()) self.assertTrue(djset([1, 2, 3])) self.assertTrue(djset([1, 2, 3], [4, 5, 6])) self.assertTrue(djset([1, 2, 3], [4, 5, 6], [5, 6]))
def test_length(self): """ Test disjoint set length """ self.assertEquals(0, len(djset())) self.assertEquals(3, len(djset([1, 2, 3]))) self.assertEquals(6, len(djset([1, 2, 3], [4, 5, 6]))) self.assertEquals(6, len(djset([1, 2, 3], [4, 5, 6], [5, 6])))
def test_single(self): """ Test adding items to disjoint set """ s = djset() s.add([1, 2, 3]) self.assertEquals({1, 2, 3}, s.data[1])
def test_heads(self): """ Test disjoint set heads """ s = djset() s.add([1, 2, 3]) s.add([4, 5, 6]) self.assertTrue([1, 4], list(s.heads()))
def test_contains(self): """ Test disjoint set contains operator """ s = djset() s.add([1, 2, 3]) s.add([4, 5, 6]) self.assertTrue(2 in s) self.assertTrue(5 in s)
def test_exclusive(self): """ Test adding mutually exclusive items to disjoint set. """ s = djset() s.add([1, 2, 3]) s.add([4, 5, 6]) self.assertEquals({1, 2, 3}, s.data[1]) self.assertEquals({4, 5, 6}, s.data[4])
def test_join(self): """ Test joining partitions in disjoint set """ s = djset() s.add([1, 2, 3]) s.add([4, 5, 6]) s.add([2, 5]) self.assertEquals({1, 2, 3, 4, 5, 6}, s.data[1]) self.assertFalse(2 in s.data)