10c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi"""Unit tests for numbers.py.""" 20c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi 30c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yiimport math 40c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yiimport unittest 50c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yifrom numbers import Complex, Real, Rational, Integral 60c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yifrom test import test_support 70c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi 80c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yiclass TestNumbers(unittest.TestCase): 90c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi def test_int(self): 100c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi self.assertTrue(issubclass(int, Integral)) 110c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi self.assertTrue(issubclass(int, Complex)) 120c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi 130c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi self.assertEqual(7, int(7).real) 140c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi self.assertEqual(0, int(7).imag) 150c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi self.assertEqual(7, int(7).conjugate()) 160c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi self.assertEqual(7, int(7).numerator) 170c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi self.assertEqual(1, int(7).denominator) 180c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi 190c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi def test_long(self): 200c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi self.assertTrue(issubclass(long, Integral)) 210c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi self.assertTrue(issubclass(long, Complex)) 220c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi 230c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi self.assertEqual(7, long(7).real) 240c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi self.assertEqual(0, long(7).imag) 250c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi self.assertEqual(7, long(7).conjugate()) 260c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi self.assertEqual(7, long(7).numerator) 270c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi self.assertEqual(1, long(7).denominator) 280c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi 290c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi def test_float(self): 300c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi self.assertFalse(issubclass(float, Rational)) 310c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi self.assertTrue(issubclass(float, Real)) 320c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi 330c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi self.assertEqual(7.3, float(7.3).real) 340c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi self.assertEqual(0, float(7.3).imag) 350c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi self.assertEqual(7.3, float(7.3).conjugate()) 360c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi 370c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi def test_complex(self): 380c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi self.assertFalse(issubclass(complex, Real)) 390c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi self.assertTrue(issubclass(complex, Complex)) 400c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi 410c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi c1, c2 = complex(3, 2), complex(4,1) 420c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi # XXX: This is not ideal, but see the comment in math_trunc(). 430c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi self.assertRaises(AttributeError, math.trunc, c1) 440c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi self.assertRaises(TypeError, float, c1) 450c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi self.assertRaises(TypeError, int, c1) 460c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi 470c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yidef test_main(): 480c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi test_support.run_unittest(TestNumbers) 490c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi 500c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi 510c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yiif __name__ == "__main__": 520c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi unittest.main() 53