Beispiel #1
0
 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,")
Beispiel #2
0
 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,")
Beispiel #3
0
    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.")
Beispiel #4
0
 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))
Beispiel #5
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))
Beispiel #6
0
 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)