def test_insertion_left_left(self): d = SplayDict() d.put(0, 0) d.put(-1, -1) d.put(-2, -2) self.assertEqual(len(d), 3, "Length should reflect number of items inserted,")
def test_insertion_right_left(self): d = SplayDict() d.put(0, 0) d.put(2, 2) d.put(1, 1) self.assertEqual(len(d), 3, "Length should reflect number of items inserted,")
def test_fuzz_insertions(self): """A test that inserts random keys into the tree and checks that they were all inserted.""" key_range = 2**64 value_range = 1024 key_set = set() d = SplayDict() for value in range(0, value_range): key = randint(0, key_range) d.put(key, value) key_set.add(key) keys = list(d.keys()) self.assertEqual(len(keys), len(key_set), "Length should reflect number of items inserted.") self.assertEqual(len(keys), len(list(keys)), "Iteration should find all items in tree.")
def test_predecessor(self): d = SplayDict() d.put(0, 0) d.put(-1, -1) d.put(1, 1) self.assertEqual(d.predecessor(0), (-1, -1)) self.assertEqual(d.predecessor(1), (0, 0))
def test_successor(self): d = SplayDict() d.put(0, 0) d.put(-1, -1) d.put(1, 1) self.assertEqual(d.successor(-1), (0, 0)) self.assertEqual(d.successor(0), (1, 1))
def test_deletion(self): d = SplayDict() d.put(0, 0) d.put(-1, -1) d.put(1, 1) self.assertEqual(len(d), 3, "Length should reflect number of items inserted,") self.assertIn(0, d) d.delete(0) self.assertEqual(len(d), 2) self.assertNotIn(0, d) d.delete(1) self.assertEqual(len(d), 1) self.assertNotIn(1, d)