예제 #1
0
 def test_unexpected_positions(self):
     size = 10
     map = HashMap(size)
     self.assertEqual(9, map._position(-1))
     self.assertEqual(8, map._position(-2))
     self.assertRaises(ValueError, map._position, None)
     self.assertRaises(ValueError, map._position, 'test')
     self.assertRaises(ValueError, map._position, '')
예제 #2
0
    def test_put_other_objects(self):
        # Dummy class
        class Test:
            self.value = 0

        test_object = Test()

        map = HashMap()
        map.put(test_object, 'Apple')
        self.assertEqual('Apple', map.get(test_object))
예제 #3
0
 def test_hash_function(self):
     hashed_things_with_seed_eleven = [[1276629, 'Apple'],
                                       [13980558, 'Banana'],
                                       [34879626494972, 'dragon fruit'],
                                       [60, 1], [61, 2], [62, 3],
                                       [141627, True], [1329462, False],
                                       [133201, None]]
     map = HashMap()
     map.seed = 11
     for entry in hashed_things_with_seed_eleven:
         self.assertEqual(
             entry[0], map._hash(entry[1]),
             'Expected hash \'{expected}\' for key \'{key}\''.format(
                 expected=entry[0], key=entry[1]))
예제 #4
0
 def test_put_integer(self):
     map = HashMap()
     map.put(-1, -1)
     map.put(0, 0)
     map.put(1, 1)
     self.assertEqual(-1, map.get(-1))
     self.assertEqual(0, map.get(0))
     self.assertEqual(1, map.get(1))
예제 #5
0
 def test_expected_positions(self):
     size = 10
     map = HashMap(size)
     self.assertEqual(0, map._position(0))
     self.assertEqual(1, map._position(1))
     self.assertEqual(2, map._position(2))
     self.assertEqual(3, map._position(3))
     self.assertEqual(4, map._position(4))
     self.assertEqual(5, map._position(5))
     self.assertEqual(6, map._position(6))
     self.assertEqual(7, map._position(7))
     self.assertEqual(8, map._position(8))
     self.assertEqual(9, map._position(9))
     self.assertEqual(0, map._position(10))
     self.assertEqual(1, map._position(11))
     self.assertEqual(2, map._position(12))
     self.assertEqual(3, map._position(13))
예제 #6
0
 def test_large_with_lots_of_entries(self):
     map = HashMap(2)
     map.put('Apple', 'Apple')
     for index in range(0, 2000):
         map.put('Apple' + str(index), 'Apple')
     self.assertEqual('Apple', map.get('Apple'))
예제 #7
0
 def test_get_on_empty_map(self):
     map = HashMap()
     self.assertIsNone(map.get('Apple'))
예제 #8
0
 def test_put_and_get_different_types(self):
     map = HashMap(2)
     map.put('Apple', 'Apple')
     map.put('Orange', 'Orange')
     map.put('Grape', 'Grape')
     map.put(1, 1)
     map.put(2, 2)
     map.put(3, 3)
     self.assertEqual('Apple', map.get('Apple'))
     self.assertEqual('Orange', map.get('Orange'))
     self.assertEqual('Grape', map.get('Grape'))
     self.assertEqual(1, map.get(1))
     self.assertEqual(2, map.get(2))
     self.assertEqual(3, map.get(3))
예제 #9
0
 def test_put_string(self):
     map = HashMap()
     map.put('Apple', 'Apple')
     map.put('Orange', 'Orange')
     map.put('Grape', 'Grape')
     self.assertEqual('Apple', map.get('Apple'))
     self.assertEqual('Orange', map.get('Orange'))
     self.assertEqual('Grape', map.get('Grape'))
예제 #10
0
 def test_put_same_key(self):
     map = HashMap()
     map.put('Apple', 'Are good good for you')
     map.put('Apple', 'Are bad for you')
     map.put('Apple', 0)
     self.assertEqual(0, map.get('Apple'))