mirror of
https://github.com/donnemartin/interactive-coding-challenges
synced 2026-01-10 19:38:02 +00:00
@@ -1,7 +1,7 @@
|
||||
from nose.tools import assert_equal, assert_raises
|
||||
import unittest
|
||||
|
||||
|
||||
class TestHashMap(object):
|
||||
class TestHashMap(unittest.TestCase):
|
||||
|
||||
# TODO: It would be better if we had unit tests for each
|
||||
# method in addition to the following end-to-end test
|
||||
@@ -9,31 +9,31 @@ class TestHashMap(object):
|
||||
hash_table = HashTable(10)
|
||||
|
||||
print("Test: get on an empty hash table index")
|
||||
assert_raises(KeyError, hash_table.get, 0)
|
||||
self.assertRaises(KeyError, hash_table.get, 0)
|
||||
|
||||
print("Test: set on an empty hash table index")
|
||||
hash_table.set(0, 'foo')
|
||||
assert_equal(hash_table.get(0), 'foo')
|
||||
self.assertEqual(hash_table.get(0), 'foo')
|
||||
hash_table.set(1, 'bar')
|
||||
assert_equal(hash_table.get(1), 'bar')
|
||||
self.assertEqual(hash_table.get(1), 'bar')
|
||||
|
||||
print("Test: set on a non empty hash table index")
|
||||
hash_table.set(10, 'foo2')
|
||||
assert_equal(hash_table.get(0), 'foo')
|
||||
assert_equal(hash_table.get(10), 'foo2')
|
||||
self.assertEqual(hash_table.get(0), 'foo')
|
||||
self.assertEqual(hash_table.get(10), 'foo2')
|
||||
|
||||
print("Test: set on a key that already exists")
|
||||
hash_table.set(10, 'foo3')
|
||||
assert_equal(hash_table.get(0), 'foo')
|
||||
assert_equal(hash_table.get(10), 'foo3')
|
||||
self.assertEqual(hash_table.get(0), 'foo')
|
||||
self.assertEqual(hash_table.get(10), 'foo3')
|
||||
|
||||
print("Test: remove on a key that already exists")
|
||||
hash_table.remove(10)
|
||||
assert_equal(hash_table.get(0), 'foo')
|
||||
assert_raises(KeyError, hash_table.get, 10)
|
||||
self.assertEqual(hash_table.get(0), 'foo')
|
||||
self.assertRaises(KeyError, hash_table.get, 10)
|
||||
|
||||
print("Test: remove on a key that doesn't exist")
|
||||
assert_raises(KeyError, hash_table.remove, -1)
|
||||
self.assertRaises(KeyError, hash_table.remove, -1)
|
||||
|
||||
print('Success: test_end_to_end')
|
||||
|
||||
@@ -44,4 +44,4 @@ def main():
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
main()
|
||||
|
||||
Reference in New Issue
Block a user