Example #1
0
    def test_min_max_del(self):
        x = RedBlackTree()

        self.assertIsNone(x.min())
        self.assertIsNone(x.max())

        for value in xrange(0, 32, 2):
            x[value] = value

        try:
            ignored = x[1]
            self.fail("Expected KeyError")
        except KeyError:
            pass

        self.assertEqual(x.min(), (0, 0))
        self.assertEqual(x.max(), (30, 30))
        self.assertEqual(x.min(15), (14, 14))
        self.assertEqual(x.max(15), (16, 16))
        self.assertEqual(x.min(16), (16, 16))
        self.assertEqual(x.max(16), (16, 16))
        self.assertIsNone(x.min(-20))
        self.assertIsNone(x.max(40))

        del x[18]
        self.assertEqual(x.min(17), (16, 16))
        self.assertEqual(x.max(17), (20, 20))

        self.assertEqual(x.root.key, 6)
        del x[6]
        self.assertEqual(x.min(6), (4, 4))
        self.assertEqual(x.max(6), (8, 8))
        return