Ejemplo n.º 1
0
 def test_hash_table_insertion_and_retrieval(self):
   ht = HashTable(8)
   
   hash_table_insert(ht, "key-0", "val-0")
   hash_table_insert(ht, "key-1", "val-1")
   hash_table_insert(ht, "key-2", "val-2")
   hash_table_insert(ht, "key-3", "val-3")
   hash_table_insert(ht, "key-4", "val-4")
   hash_table_insert(ht, "key-5", "val-5")
   hash_table_insert(ht, "key-6", "val-6")
   hash_table_insert(ht, "key-7", "val-7")
   hash_table_insert(ht, "key-8", "val-8")
   hash_table_insert(ht, "key-9", "val-9")
   
   return_value = hash_table_retrieve(ht, "key-0")
   self.assertTrue(return_value == "val-0")
   return_value = hash_table_retrieve(ht, "key-1")
   self.assertTrue(return_value == "val-1")
   return_value = hash_table_retrieve(ht, "key-2")
   self.assertTrue(return_value == "val-2")
   return_value = hash_table_retrieve(ht, "key-3")
   self.assertTrue(return_value == "val-3")
   return_value = hash_table_retrieve(ht, "key-4")
   self.assertTrue(return_value == "val-4")
   return_value = hash_table_retrieve(ht, "key-5")
   self.assertTrue(return_value == "val-5")
   return_value = hash_table_retrieve(ht, "key-6")
   self.assertTrue(return_value == "val-6")
   return_value = hash_table_retrieve(ht, "key-7")
   self.assertTrue(return_value == "val-7")
   return_value = hash_table_retrieve(ht, "key-8")
   self.assertTrue(return_value == "val-8")
   return_value = hash_table_retrieve(ht, "key-9")
   self.assertTrue(return_value == "val-9")
Ejemplo n.º 2
0
    def test_hash_table_removes_correctly(self):
        ht = HashTable(8)

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

        print(ht.storage)
        hash_table_remove(ht, "key-9")
        hash_table_remove(ht, "key-8")
        hash_table_remove(ht, "key-7")
        hash_table_remove(ht, "key-6")
        hash_table_remove(ht, "key-5")
        hash_table_remove(ht, "key-4")
        hash_table_remove(ht, "key-3")
        hash_table_remove(ht, "key-2")
        hash_table_remove(ht, "key-1")
        hash_table_remove(ht, "key-0")

        return_value = hash_table_retrieve(ht, "key-0")
        self.assertTrue(return_value is None)
        return_value = hash_table_retrieve(ht, "key-1")
        self.assertTrue(return_value is None)
        return_value = hash_table_retrieve(ht, "key-2")
        self.assertTrue(return_value is None)
        return_value = hash_table_retrieve(ht, "key-3")
        self.assertTrue(return_value is None)
        return_value = hash_table_retrieve(ht, "key-4")
        self.assertTrue(return_value is None)
        return_value = hash_table_retrieve(ht, "key-5")
        self.assertTrue(return_value is None)
        return_value = hash_table_retrieve(ht, "key-6")
        self.assertTrue(return_value is None)
        return_value = hash_table_retrieve(ht, "key-7")
        self.assertTrue(return_value is None)
        return_value = hash_table_retrieve(ht, "key-8")
        self.assertTrue(return_value is None)
        return_value = hash_table_retrieve(ht, "key-9")
        self.assertTrue(return_value is None)
Ejemplo n.º 3
0
  def test_hash_table_resize(self):
    ht = HashTable(8)
    
    hash_table_insert(ht, "key-0", "val-0")
    hash_table_insert(ht, "key-1", "val-1")
    hash_table_insert(ht, "key-2", "val-2")
    hash_table_insert(ht, "key-3", "val-3")
    hash_table_insert(ht, "key-4", "val-4")
    hash_table_insert(ht, "key-5", "val-5")
    hash_table_insert(ht, "key-6", "val-6")
    hash_table_insert(ht, "key-7", "val-7")
    hash_table_insert(ht, "key-8", "val-8")
    hash_table_insert(ht, "key-9", "val-9")

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

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