diff --git a/Lib/test/test_math.py b/Lib/test/test_math.py index 690bde6c67cadf..51a14d574f6b0d 100644 --- a/Lib/test/test_math.py +++ b/Lib/test/test_math.py @@ -959,6 +959,10 @@ def testDist(self): # Test allowable types (those with __float__) self.assertEqual(dist((14.0, 1.0), (2.0, -4.0)), 13.0) self.assertEqual(dist((14, 1), (2, -4)), 13) + self.assertEqual(dist((FloatLike(14.), 1), (2, -4)), 13) + self.assertEqual(dist((11, 1), (FloatLike(-1.), -4)), 13) + self.assertEqual(dist((14, FloatLike(-1.)), (2, -6)), 13) + self.assertEqual(dist((14, -1), (2, -6)), 13) self.assertEqual(dist((D(14), D(1)), (D(2), D(-4))), D(13)) self.assertEqual(dist((F(14, 32), F(1, 32)), (F(2, 32), F(-4, 32))), F(13, 32)) @@ -1016,6 +1020,12 @@ class T(tuple): with self.assertRaises(TypeError): dist([1], 2) + class BadFloat: + __float__ = BadDescr() + + with self.assertRaises(ValueError): + dist([1], [BadFloat()]) + # Verify that the one dimensional case is equivalent to abs() for i in range(20): p, q = random.random(), random.random()