示例#1
0
class HashSetTest(unittest.TestCase):
    def setUp(self):
        self.set = HashSet()

    def test_find(self):
        phone1 = Phone('017-0774-1234-5678', 'Maria')
        phone2 = Phone('112-4567-1122-9740', 'Sasha')
        phone3 = Phone('150-2570-7171-7575', 'Helen')
        self.set.add(phone1)
        self.set.add(phone2)
        self.set.add(phone3)

        self.assertTrue(self.set.find(phone1))
        self.assertTrue(self.set.find(phone2))
        self.assertTrue(self.set.find(phone3))
        self.assertFalse(self.set.find(Phone('123', 'test')))

    def test_remove(self):
        phone1 = Phone('017-0774-1234-5678', 'Maria')
        phone2 = Phone('112-4567-1122-9740', 'Sasha')
        phone3 = Phone('150-2570-7171-7575', 'Helen')
        self.set.add(phone1)
        self.set.add(phone2)
        self.set.add(phone3)

        self.assertEqual('Maria', self.set.remove(phone1).name)
        self.assertEqual('Sasha', self.set.remove(phone2).name)
        self.assertEqual('Helen', self.set.remove(phone3).name)
        self.assertIsNone(self.set.remove(Phone('123', 'test')))
    def test_remove(self):
        hs = HashSet(["Shane", "Alan", "Laurel"])
        assert hs.size == 3
        assert hs.contains("Shane") == True
        assert hs.contains("Alan") == True
        assert hs.contains("Laurel") == True

        hs.remove("Alan")
        assert hs.size == 2
        assert hs.contains("Alan") == False
        assert hs.contains("Shane") == True
        assert hs.contains("Laurel") == True

        hs.remove("Shane")
        assert hs.size == 1
        assert hs.contains("Alan") == False
        assert hs.contains("Shane") == False
        assert hs.contains("Laurel") == True

        hs.remove("Laurel")
        assert hs.size == 0
        assert hs.contains("Alan") == False
        assert hs.contains("Shane") == False
        assert hs.contains("Laurel") == False