To test our hash table, we create HashTable and store a few elements in it, then try to retrieve them. We will also try to get() a key that does not exist. We also use the two strings, ad and ga, which had the collision and returned the same hash value by our hashing function. To properly evaluate the work of the hash table, we throw this collision as well, just to see that the collision is properly resolved. See the example code, as follows:
ht = HashTable()
ht.put("good", "eggs")
ht.put("better", "ham")
ht.put("best", "spam")
ht.put("ad", "do not")
ht.put("ga", "collide")
for key in ("good", "better", "best", "worst", "ad", "ga"):
v = ht.get(key)
print(v)
Running the preceding code returns the following:
% python hashtable.py
eggs
ham
spam
None
do not
collide
As you can see, looking up the worst key returns None, since the key does not exist. The ad and ga keys also return their corresponding values, showing that the collision between them is properly handled.