summaryrefslogtreecommitdiff
path: root/src/python/stdlib/test/test_abstract_numbers.py
diff options
context:
space:
mode:
authorSimon <simon@hardwired.org.uk>2011-03-22 17:58:52 (GMT)
committer Simon <simon@hardwired.org.uk>2011-03-22 17:58:52 (GMT)
commit2e401babb793238564ca640fc802a52ab7f6c293 (patch)
tree87a9b471e82604e76f96d556f5771322fb31818a /src/python/stdlib/test/test_abstract_numbers.py
parentc096b2b14a200a0cc0a08cfea839c9e7f4edf22e (diff)
parent04a9cbcb8855e64db660a8c6e23d79114b4afd83 (diff)
downloadpowder-2e401babb793238564ca640fc802a52ab7f6c293.zip
powder-2e401babb793238564ca640fc802a52ab7f6c293.tar.gz
Python console
Diffstat (limited to 'src/python/stdlib/test/test_abstract_numbers.py')
-rw-r--r--src/python/stdlib/test/test_abstract_numbers.py52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/python/stdlib/test/test_abstract_numbers.py b/src/python/stdlib/test/test_abstract_numbers.py
new file mode 100644
index 0000000..925f8cf
--- /dev/null
+++ b/src/python/stdlib/test/test_abstract_numbers.py
@@ -0,0 +1,52 @@
+"""Unit tests for numbers.py."""
+
+import math
+import unittest
+from numbers import Complex, Real, Rational, Integral
+from test import test_support
+
+class TestNumbers(unittest.TestCase):
+ def test_int(self):
+ self.assertTrue(issubclass(int, Integral))
+ self.assertTrue(issubclass(int, Complex))
+
+ 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_long(self):
+ self.assertTrue(issubclass(long, Integral))
+ self.assertTrue(issubclass(long, Complex))
+
+ self.assertEqual(7, long(7).real)
+ self.assertEqual(0, long(7).imag)
+ self.assertEqual(7, long(7).conjugate())
+ self.assertEqual(7, long(7).numerator)
+ self.assertEqual(1, long(7).denominator)
+
+ def test_float(self):
+ self.assertFalse(issubclass(float, Rational))
+ self.assertTrue(issubclass(float, Real))
+
+ 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.assertFalse(issubclass(complex, Real))
+ self.assertTrue(issubclass(complex, Complex))
+
+ c1, c2 = complex(3, 2), complex(4,1)
+ # XXX: This is not ideal, but see the comment in math_trunc().
+ self.assertRaises(AttributeError, math.trunc, c1)
+ self.assertRaises(TypeError, float, c1)
+ self.assertRaises(TypeError, int, c1)
+
+def test_main():
+ test_support.run_unittest(TestNumbers)
+
+
+if __name__ == "__main__":
+ unittest.main()