1edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep"""Unit tests for numbers.py.""" 2edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep 3edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoepimport math 4edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoepimport unittest 5edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoepfrom numbers import Complex, Real, Rational, Integral 6edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoepfrom test import test_support 7edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep 8edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoepclass TestNumbers(unittest.TestCase): 9edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep def test_int(self): 10edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep self.assertTrue(issubclass(int, Integral)) 11edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep self.assertTrue(issubclass(int, Complex)) 12edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep 13edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep self.assertEqual(7, int(7).real) 14edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep self.assertEqual(0, int(7).imag) 15edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep self.assertEqual(7, int(7).conjugate()) 16edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep self.assertEqual(7, int(7).numerator) 17edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep self.assertEqual(1, int(7).denominator) 18edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep 19edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep def test_long(self): 20edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep self.assertTrue(issubclass(long, Integral)) 21edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep self.assertTrue(issubclass(long, Complex)) 22edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep 23edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep self.assertEqual(7, long(7).real) 24edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep self.assertEqual(0, long(7).imag) 25edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep self.assertEqual(7, long(7).conjugate()) 26edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep self.assertEqual(7, long(7).numerator) 27edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep self.assertEqual(1, long(7).denominator) 28edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep 29edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep def test_float(self): 30edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep self.assertFalse(issubclass(float, Rational)) 31edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep self.assertTrue(issubclass(float, Real)) 32edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep 33edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep self.assertEqual(7.3, float(7.3).real) 34edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep self.assertEqual(0, float(7.3).imag) 35edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep self.assertEqual(7.3, float(7.3).conjugate()) 36edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep 37edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep def test_complex(self): 38edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep self.assertFalse(issubclass(complex, Real)) 39edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep self.assertTrue(issubclass(complex, Complex)) 40edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep 41edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep c1, c2 = complex(3, 2), complex(4,1) 42edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep # XXX: This is not ideal, but see the comment in math_trunc(). 43edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep self.assertRaises(AttributeError, math.trunc, c1) 44edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep self.assertRaises(TypeError, float, c1) 45edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep self.assertRaises(TypeError, int, c1) 46edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep 47edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoepdef test_main(): 48edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep test_support.run_unittest(TestNumbers) 49edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep 50edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep 51edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoepif __name__ == "__main__": 52edbb763a2b63074cd468a5d33a17908b2cc0654Jeff Vander Stoep unittest.main() 53