symbian-qemu-0.9.1-12/python-2.6.1/Lib/test/test_abstract_numbers.py
author Martin Trojer <martin.trojer@nokia.com>
Mon, 09 Nov 2009 09:51:45 +0000
changeset 18 cb29cd53a788
parent 1 2fb8b9db1c86
permissions -rw-r--r--
Documentation edits, addition of e32test wiki page.

"""Unit tests for numbers.py."""

import math
import operator
import unittest
from numbers import Complex, Real, Rational, Integral
from numbers import Number
from test import test_support

class TestNumbers(unittest.TestCase):
    def test_int(self):
        self.failUnless(issubclass(int, Integral))
        self.failUnless(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.failUnless(issubclass(long, Integral))
        self.failUnless(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.failIf(issubclass(float, Rational))
        self.failUnless(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.failIf(issubclass(complex, Real))
        self.failUnless(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()