コード例 #1
0
    def test_hash_table_insertion_and_retrieval(self):
        ht = HashTable(8)

        ht.insert("key-0", "val-0")
        ht.insert("key-1", "val-1")
        ht.insert("key-2", "val-2")
        ht.insert("key-3", "val-3")
        ht.insert("key-4", "val-4")
        ht.insert("key-5", "val-5")
        ht.insert("key-6", "val-6")
        ht.insert("key-7", "val-7")
        ht.insert("key-8", "val-8")
        ht.insert("key-9", "val-9")

        return_value = ht.retrieve("key-0")
        self.assertTrue(return_value == "val-0")
        return_value = ht.retrieve("key-1")
        self.assertTrue(return_value == "val-1")
        return_value = ht.retrieve("key-2")
        self.assertTrue(return_value == "val-2")
        return_value = ht.retrieve("key-3")
        self.assertTrue(return_value == "val-3")
        return_value = ht.retrieve("key-4")
        self.assertTrue(return_value == "val-4")
        return_value = ht.retrieve("key-5")
        self.assertTrue(return_value == "val-5")
        return_value = ht.retrieve("key-6")
        self.assertTrue(return_value == "val-6")
        return_value = ht.retrieve("key-7")
        self.assertTrue(return_value == "val-7")
        return_value = ht.retrieve("key-8")
        self.assertTrue(return_value == "val-8")
        return_value = ht.retrieve("key-9")
        self.assertTrue(return_value == "val-9")
コード例 #2
0
    def test_hash_table_insertion_overwrites_correctly(self):
        ht = HashTable(8)

        ht.insert("key-0", "val-0")
        ht.insert("key-1", "val-1")
        ht.insert("key-2", "val-2")
        ht.insert("key-3", "val-3")
        ht.insert("key-4", "val-4")
        ht.insert("key-5", "val-5")
        ht.insert("key-6", "val-6")
        ht.insert("key-7", "val-7")
        ht.insert("key-8", "val-8")
        ht.insert("key-9", "val-9")

        ht.insert("key-0", "new-val-0")
        ht.insert("key-1", "new-val-1")
        ht.insert("key-2", "new-val-2")
        ht.insert("key-3", "new-val-3")
        ht.insert("key-4", "new-val-4")
        ht.insert("key-5", "new-val-5")
        ht.insert("key-6", "new-val-6")
        ht.insert("key-7", "new-val-7")
        ht.insert("key-8", "new-val-8")
        ht.insert("key-9", "new-val-9")

        return_value = ht.retrieve("key-0")
        self.assertTrue(return_value == "new-val-0")
        return_value = ht.retrieve("key-1")
        self.assertTrue(return_value == "new-val-1")
        return_value = ht.retrieve("key-2")
        self.assertTrue(return_value == "new-val-2")
        return_value = ht.retrieve("key-3")
        self.assertTrue(return_value == "new-val-3")
        return_value = ht.retrieve("key-4")
        self.assertTrue(return_value == "new-val-4")
        return_value = ht.retrieve("key-5")
        self.assertTrue(return_value == "new-val-5")
        return_value = ht.retrieve("key-6")
        self.assertTrue(return_value == "new-val-6")
        return_value = ht.retrieve("key-7")
        self.assertTrue(return_value == "new-val-7")
        return_value = ht.retrieve("key-8")
        self.assertTrue(return_value == "new-val-8")
        return_value = ht.retrieve("key-9")
        self.assertTrue(return_value == "new-val-9")
コード例 #3
0
    def test_hash_table_resize(self):
        ht = HashTable(8)

        ht.insert("key-0", "val-0")
        ht.insert("key-1", "val-1")
        ht.insert("key-2", "val-2")
        ht.insert("key-3", "val-3")
        ht.insert("key-4", "val-4")
        ht.insert("key-5", "val-5")
        ht.insert("key-6", "val-6")
        ht.insert("key-7", "val-7")
        ht.insert("key-8", "val-8")
        ht.insert("key-9", "val-9")

        ht.resize()

        self.assertTrue(len(ht.storage) == 16)

        return_value = ht.retrieve("key-0")
        self.assertTrue(return_value == "val-0")
        return_value = ht.retrieve("key-1")
        self.assertTrue(return_value == "val-1")
        return_value = ht.retrieve("key-2")
        self.assertTrue(return_value == "val-2")
        return_value = ht.retrieve("key-3")
        self.assertTrue(return_value == "val-3")
        return_value = ht.retrieve("key-4")
        self.assertTrue(return_value == "val-4")
        return_value = ht.retrieve("key-5")
        self.assertTrue(return_value == "val-5")
        return_value = ht.retrieve("key-6")
        self.assertTrue(return_value == "val-6")
        return_value = ht.retrieve("key-7")
        self.assertTrue(return_value == "val-7")
        return_value = ht.retrieve("key-8")
        self.assertTrue(return_value == "val-8")
        return_value = ht.retrieve("key-9")
        self.assertTrue(return_value == "val-9")