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