summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_abstract_numbers.py
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2007-08-30 17:45:54 (GMT)
committerGuido van Rossum <guido@python.org>2007-08-30 17:45:54 (GMT)
commit1daf954dcf6fa5630b049f1d1edcc9cc656ea5be (patch)
tree95de5f7d39e32bfb755eba5988c92f366f714782 /Lib/test/test_abstract_numbers.py
parent3cd6537beb7df1831fcd7cfdc6d74616648feddf (diff)
downloadcpython-1daf954dcf6fa5630b049f1d1edcc9cc656ea5be.zip
cpython-1daf954dcf6fa5630b049f1d1edcc9cc656ea5be.tar.gz
cpython-1daf954dcf6fa5630b049f1d1edcc9cc656ea5be.tar.bz2
Add numbers.py. I suspect this is an old version, but Jeffrey is out
of town, and it will have to do for now.
Diffstat (limited to 'Lib/test/test_abstract_numbers.py')
-rw-r--r--Lib/test/test_abstract_numbers.py53
1 files changed, 53 insertions, 0 deletions
diff --git a/Lib/test/test_abstract_numbers.py b/Lib/test/test_abstract_numbers.py
new file mode 100644
index 0000000..9fffd28
--- /dev/null
+++ b/Lib/test/test_abstract_numbers.py
@@ -0,0 +1,53 @@
+"""Unit tests for numbers.py."""
+
+import unittest
+from test import test_support
+from numbers import Number
+from numbers import Exact, Inexact
+from numbers import Complex, Real, Rational, Integral
+import operator
+
+class TestNumbers(unittest.TestCase):
+ def test_int(self):
+ self.failUnless(issubclass(int, Integral))
+ self.failUnless(issubclass(int, Complex))
+ self.failUnless(issubclass(int, Exact))
+ self.failIf(issubclass(int, Inexact))
+
+ self.assertEqual(7, int(7).real)
+ self.assertEqual(0, int(7).imag)
+ self.assertEqual(7, int(7).conjugate())
+ self.assertEqual(7, int(7).numerator)
+ self.assertEqual(1, int(7).denominator)
+
+ def test_float(self):
+ self.failIf(issubclass(float, Rational))
+ self.failUnless(issubclass(float, Real))
+ self.failIf(issubclass(float, Exact))
+ self.failUnless(issubclass(float, Inexact))
+
+ self.assertEqual(7.3, float(7.3).real)
+ self.assertEqual(0, float(7.3).imag)
+ self.assertEqual(7.3, float(7.3).conjugate())
+
+ def test_complex(self):
+ self.failIf(issubclass(complex, Real))
+ self.failUnless(issubclass(complex, Complex))
+ self.failIf(issubclass(complex, Exact))
+ self.failUnless(issubclass(complex, Inexact))
+
+ c1, c2 = complex(3, 2), complex(4,1)
+ # TODO: Uncomment this test when trunc() exists.
+ #self.assertRaises(None, trunc, c1)
+ self.assertRaises(TypeError, operator.mod, c1, c2)
+ self.assertRaises(TypeError, divmod, c1, c2)
+ self.assertRaises(TypeError, operator.floordiv, c1, c2)
+ self.assertRaises(TypeError, float, c1)
+ self.assertRaises(TypeError, int, c1)
+
+def test_main():
+ test_support.run_unittest(TestNumbers)
+
+
+if __name__ == "__main__":
+ unittest.main()