]> git.proxmox.com Git - mirror_edk2.git/blobdiff - AppPkg/Applications/Python/Python-2.7.2/Lib/test/test_int.py
edk2: Remove AppPkg, StdLib, StdLibPrivateInternalFiles
[mirror_edk2.git] / AppPkg / Applications / Python / Python-2.7.2 / Lib / test / test_int.py
diff --git a/AppPkg/Applications/Python/Python-2.7.2/Lib/test/test_int.py b/AppPkg/Applications/Python/Python-2.7.2/Lib/test/test_int.py
deleted file mode 100644 (file)
index 64177b3..0000000
+++ /dev/null
@@ -1,406 +0,0 @@
-import sys\r
-\r
-import unittest\r
-from test.test_support import run_unittest, have_unicode\r
-import math\r
-\r
-L = [\r
-        ('0', 0),\r
-        ('1', 1),\r
-        ('9', 9),\r
-        ('10', 10),\r
-        ('99', 99),\r
-        ('100', 100),\r
-        ('314', 314),\r
-        (' 314', 314),\r
-        ('314 ', 314),\r
-        ('  \t\t  314  \t\t  ', 314),\r
-        (repr(sys.maxint), sys.maxint),\r
-        ('  1x', ValueError),\r
-        ('  1  ', 1),\r
-        ('  1\02  ', ValueError),\r
-        ('', ValueError),\r
-        (' ', ValueError),\r
-        ('  \t\t  ', ValueError)\r
-]\r
-if have_unicode:\r
-    L += [\r
-        (unicode('0'), 0),\r
-        (unicode('1'), 1),\r
-        (unicode('9'), 9),\r
-        (unicode('10'), 10),\r
-        (unicode('99'), 99),\r
-        (unicode('100'), 100),\r
-        (unicode('314'), 314),\r
-        (unicode(' 314'), 314),\r
-        (unicode('\u0663\u0661\u0664 ','raw-unicode-escape'), 314),\r
-        (unicode('  \t\t  314  \t\t  '), 314),\r
-        (unicode('  1x'), ValueError),\r
-        (unicode('  1  '), 1),\r
-        (unicode('  1\02  '), ValueError),\r
-        (unicode(''), ValueError),\r
-        (unicode(' '), ValueError),\r
-        (unicode('  \t\t  '), ValueError),\r
-        (unichr(0x200), ValueError),\r
-]\r
-\r
-class IntTestCases(unittest.TestCase):\r
-\r
-    def test_basic(self):\r
-        self.assertEqual(int(314), 314)\r
-        self.assertEqual(int(3.14), 3)\r
-        self.assertEqual(int(314L), 314)\r
-        # Check that conversion from float truncates towards zero\r
-        self.assertEqual(int(-3.14), -3)\r
-        self.assertEqual(int(3.9), 3)\r
-        self.assertEqual(int(-3.9), -3)\r
-        self.assertEqual(int(3.5), 3)\r
-        self.assertEqual(int(-3.5), -3)\r
-        # Different base:\r
-        self.assertEqual(int("10",16), 16L)\r
-        if have_unicode:\r
-            self.assertEqual(int(unicode("10"),16), 16L)\r
-        # Test conversion from strings and various anomalies\r
-        for s, v in L:\r
-            for sign in "", "+", "-":\r
-                for prefix in "", " ", "\t", "  \t\t  ":\r
-                    ss = prefix + sign + s\r
-                    vv = v\r
-                    if sign == "-" and v is not ValueError:\r
-                        vv = -v\r
-                    try:\r
-                        self.assertEqual(int(ss), vv)\r
-                    except v:\r
-                        pass\r
-\r
-        s = repr(-1-sys.maxint)\r
-        x = int(s)\r
-        self.assertEqual(x+1, -sys.maxint)\r
-        self.assertIsInstance(x, int)\r
-        # should return long\r
-        self.assertEqual(int(s[1:]), sys.maxint+1)\r
-\r
-        # should return long\r
-        x = int(1e100)\r
-        self.assertIsInstance(x, long)\r
-        x = int(-1e100)\r
-        self.assertIsInstance(x, long)\r
-\r
-\r
-        # SF bug 434186:  0x80000000/2 != 0x80000000>>1.\r
-        # Worked by accident in Windows release build, but failed in debug build.\r
-        # Failed in all Linux builds.\r
-        x = -1-sys.maxint\r
-        self.assertEqual(x >> 1, x//2)\r
-\r
-        self.assertRaises(ValueError, int, '123\0')\r
-        self.assertRaises(ValueError, int, '53', 40)\r
-\r
-        # SF bug 1545497: embedded NULs were not detected with\r
-        # explicit base\r
-        self.assertRaises(ValueError, int, '123\0', 10)\r
-        self.assertRaises(ValueError, int, '123\x00 245', 20)\r
-\r
-        x = int('1' * 600)\r
-        self.assertIsInstance(x, long)\r
-\r
-        if have_unicode:\r
-            x = int(unichr(0x661) * 600)\r
-            self.assertIsInstance(x, long)\r
-\r
-        self.assertRaises(TypeError, int, 1, 12)\r
-\r
-        self.assertEqual(int('0123', 0), 83)\r
-        self.assertEqual(int('0x123', 16), 291)\r
-\r
-        # Bug 1679: "0x" is not a valid hex literal\r
-        self.assertRaises(ValueError, int, "0x", 16)\r
-        self.assertRaises(ValueError, int, "0x", 0)\r
-\r
-        self.assertRaises(ValueError, int, "0o", 8)\r
-        self.assertRaises(ValueError, int, "0o", 0)\r
-\r
-        self.assertRaises(ValueError, int, "0b", 2)\r
-        self.assertRaises(ValueError, int, "0b", 0)\r
-\r
-\r
-        # SF bug 1334662: int(string, base) wrong answers\r
-        # Various representations of 2**32 evaluated to 0\r
-        # rather than 2**32 in previous versions\r
-\r
-        self.assertEqual(int('100000000000000000000000000000000', 2), 4294967296L)\r
-        self.assertEqual(int('102002022201221111211', 3), 4294967296L)\r
-        self.assertEqual(int('10000000000000000', 4), 4294967296L)\r
-        self.assertEqual(int('32244002423141', 5), 4294967296L)\r
-        self.assertEqual(int('1550104015504', 6), 4294967296L)\r
-        self.assertEqual(int('211301422354', 7), 4294967296L)\r
-        self.assertEqual(int('40000000000', 8), 4294967296L)\r
-        self.assertEqual(int('12068657454', 9), 4294967296L)\r
-        self.assertEqual(int('4294967296', 10), 4294967296L)\r
-        self.assertEqual(int('1904440554', 11), 4294967296L)\r
-        self.assertEqual(int('9ba461594', 12), 4294967296L)\r
-        self.assertEqual(int('535a79889', 13), 4294967296L)\r
-        self.assertEqual(int('2ca5b7464', 14), 4294967296L)\r
-        self.assertEqual(int('1a20dcd81', 15), 4294967296L)\r
-        self.assertEqual(int('100000000', 16), 4294967296L)\r
-        self.assertEqual(int('a7ffda91', 17), 4294967296L)\r
-        self.assertEqual(int('704he7g4', 18), 4294967296L)\r
-        self.assertEqual(int('4f5aff66', 19), 4294967296L)\r
-        self.assertEqual(int('3723ai4g', 20), 4294967296L)\r
-        self.assertEqual(int('281d55i4', 21), 4294967296L)\r
-        self.assertEqual(int('1fj8b184', 22), 4294967296L)\r
-        self.assertEqual(int('1606k7ic', 23), 4294967296L)\r
-        self.assertEqual(int('mb994ag', 24), 4294967296L)\r
-        self.assertEqual(int('hek2mgl', 25), 4294967296L)\r
-        self.assertEqual(int('dnchbnm', 26), 4294967296L)\r
-        self.assertEqual(int('b28jpdm', 27), 4294967296L)\r
-        self.assertEqual(int('8pfgih4', 28), 4294967296L)\r
-        self.assertEqual(int('76beigg', 29), 4294967296L)\r
-        self.assertEqual(int('5qmcpqg', 30), 4294967296L)\r
-        self.assertEqual(int('4q0jto4', 31), 4294967296L)\r
-        self.assertEqual(int('4000000', 32), 4294967296L)\r
-        self.assertEqual(int('3aokq94', 33), 4294967296L)\r
-        self.assertEqual(int('2qhxjli', 34), 4294967296L)\r
-        self.assertEqual(int('2br45qb', 35), 4294967296L)\r
-        self.assertEqual(int('1z141z4', 36), 4294967296L)\r
-\r
-        # tests with base 0\r
-        # this fails on 3.0, but in 2.x the old octal syntax is allowed\r
-        self.assertEqual(int(' 0123  ', 0), 83)\r
-        self.assertEqual(int(' 0123  ', 0), 83)\r
-        self.assertEqual(int('000', 0), 0)\r
-        self.assertEqual(int('0o123', 0), 83)\r
-        self.assertEqual(int('0x123', 0), 291)\r
-        self.assertEqual(int('0b100', 0), 4)\r
-        self.assertEqual(int(' 0O123   ', 0), 83)\r
-        self.assertEqual(int(' 0X123  ', 0), 291)\r
-        self.assertEqual(int(' 0B100 ', 0), 4)\r
-        self.assertEqual(int('0', 0), 0)\r
-        self.assertEqual(int('+0', 0), 0)\r
-        self.assertEqual(int('-0', 0), 0)\r
-        self.assertEqual(int('00', 0), 0)\r
-        self.assertRaises(ValueError, int, '08', 0)\r
-        self.assertRaises(ValueError, int, '-012395', 0)\r
-\r
-        # without base still base 10\r
-        self.assertEqual(int('0123'), 123)\r
-        self.assertEqual(int('0123', 10), 123)\r
-\r
-        # tests with prefix and base != 0\r
-        self.assertEqual(int('0x123', 16), 291)\r
-        self.assertEqual(int('0o123', 8), 83)\r
-        self.assertEqual(int('0b100', 2), 4)\r
-        self.assertEqual(int('0X123', 16), 291)\r
-        self.assertEqual(int('0O123', 8), 83)\r
-        self.assertEqual(int('0B100', 2), 4)\r
-\r
-        # the code has special checks for the first character after the\r
-        #  type prefix\r
-        self.assertRaises(ValueError, int, '0b2', 2)\r
-        self.assertRaises(ValueError, int, '0b02', 2)\r
-        self.assertRaises(ValueError, int, '0B2', 2)\r
-        self.assertRaises(ValueError, int, '0B02', 2)\r
-        self.assertRaises(ValueError, int, '0o8', 8)\r
-        self.assertRaises(ValueError, int, '0o08', 8)\r
-        self.assertRaises(ValueError, int, '0O8', 8)\r
-        self.assertRaises(ValueError, int, '0O08', 8)\r
-        self.assertRaises(ValueError, int, '0xg', 16)\r
-        self.assertRaises(ValueError, int, '0x0g', 16)\r
-        self.assertRaises(ValueError, int, '0Xg', 16)\r
-        self.assertRaises(ValueError, int, '0X0g', 16)\r
-\r
-        # SF bug 1334662: int(string, base) wrong answers\r
-        # Checks for proper evaluation of 2**32 + 1\r
-        self.assertEqual(int('100000000000000000000000000000001', 2), 4294967297L)\r
-        self.assertEqual(int('102002022201221111212', 3), 4294967297L)\r
-        self.assertEqual(int('10000000000000001', 4), 4294967297L)\r
-        self.assertEqual(int('32244002423142', 5), 4294967297L)\r
-        self.assertEqual(int('1550104015505', 6), 4294967297L)\r
-        self.assertEqual(int('211301422355', 7), 4294967297L)\r
-        self.assertEqual(int('40000000001', 8), 4294967297L)\r
-        self.assertEqual(int('12068657455', 9), 4294967297L)\r
-        self.assertEqual(int('4294967297', 10), 4294967297L)\r
-        self.assertEqual(int('1904440555', 11), 4294967297L)\r
-        self.assertEqual(int('9ba461595', 12), 4294967297L)\r
-        self.assertEqual(int('535a7988a', 13), 4294967297L)\r
-        self.assertEqual(int('2ca5b7465', 14), 4294967297L)\r
-        self.assertEqual(int('1a20dcd82', 15), 4294967297L)\r
-        self.assertEqual(int('100000001', 16), 4294967297L)\r
-        self.assertEqual(int('a7ffda92', 17), 4294967297L)\r
-        self.assertEqual(int('704he7g5', 18), 4294967297L)\r
-        self.assertEqual(int('4f5aff67', 19), 4294967297L)\r
-        self.assertEqual(int('3723ai4h', 20), 4294967297L)\r
-        self.assertEqual(int('281d55i5', 21), 4294967297L)\r
-        self.assertEqual(int('1fj8b185', 22), 4294967297L)\r
-        self.assertEqual(int('1606k7id', 23), 4294967297L)\r
-        self.assertEqual(int('mb994ah', 24), 4294967297L)\r
-        self.assertEqual(int('hek2mgm', 25), 4294967297L)\r
-        self.assertEqual(int('dnchbnn', 26), 4294967297L)\r
-        self.assertEqual(int('b28jpdn', 27), 4294967297L)\r
-        self.assertEqual(int('8pfgih5', 28), 4294967297L)\r
-        self.assertEqual(int('76beigh', 29), 4294967297L)\r
-        self.assertEqual(int('5qmcpqh', 30), 4294967297L)\r
-        self.assertEqual(int('4q0jto5', 31), 4294967297L)\r
-        self.assertEqual(int('4000001', 32), 4294967297L)\r
-        self.assertEqual(int('3aokq95', 33), 4294967297L)\r
-        self.assertEqual(int('2qhxjlj', 34), 4294967297L)\r
-        self.assertEqual(int('2br45qc', 35), 4294967297L)\r
-        self.assertEqual(int('1z141z5', 36), 4294967297L)\r
-\r
-    def test_bit_length(self):\r
-        tiny = 1e-10\r
-        for x in xrange(-65000, 65000):\r
-            k = x.bit_length()\r
-            # Check equivalence with Python version\r
-            self.assertEqual(k, len(bin(x).lstrip('-0b')))\r
-            # Behaviour as specified in the docs\r
-            if x != 0:\r
-                self.assertTrue(2**(k-1) <= abs(x) < 2**k)\r
-            else:\r
-                self.assertEqual(k, 0)\r
-            # Alternative definition: x.bit_length() == 1 + floor(log_2(x))\r
-            if x != 0:\r
-                # When x is an exact power of 2, numeric errors can\r
-                # cause floor(log(x)/log(2)) to be one too small; for\r
-                # small x this can be fixed by adding a small quantity\r
-                # to the quotient before taking the floor.\r
-                self.assertEqual(k, 1 + math.floor(\r
-                        math.log(abs(x))/math.log(2) + tiny))\r
-\r
-        self.assertEqual((0).bit_length(), 0)\r
-        self.assertEqual((1).bit_length(), 1)\r
-        self.assertEqual((-1).bit_length(), 1)\r
-        self.assertEqual((2).bit_length(), 2)\r
-        self.assertEqual((-2).bit_length(), 2)\r
-        for i in [2, 3, 15, 16, 17, 31, 32, 33, 63, 64]:\r
-            a = 2**i\r
-            self.assertEqual((a-1).bit_length(), i)\r
-            self.assertEqual((1-a).bit_length(), i)\r
-            self.assertEqual((a).bit_length(), i+1)\r
-            self.assertEqual((-a).bit_length(), i+1)\r
-            self.assertEqual((a+1).bit_length(), i+1)\r
-            self.assertEqual((-a-1).bit_length(), i+1)\r
-\r
-    @unittest.skipUnless(float.__getformat__("double").startswith("IEEE"),\r
-                         "test requires IEEE 754 doubles")\r
-    def test_float_conversion(self):\r
-        # values exactly representable as floats\r
-        exact_values = [-2, -1, 0, 1, 2, 2**52, 2**53-1, 2**53, 2**53+2,\r
-                         2**53+4, 2**54-4, 2**54-2, 2**63, -2**63, 2**64,\r
-                         -2**64, 10**20, 10**21, 10**22]\r
-        for value in exact_values:\r
-            self.assertEqual(int(float(int(value))), value)\r
-\r
-        # test round-half-to-even\r
-        self.assertEqual(int(float(2**53+1)), 2**53)\r
-        self.assertEqual(int(float(2**53+2)), 2**53+2)\r
-        self.assertEqual(int(float(2**53+3)), 2**53+4)\r
-        self.assertEqual(int(float(2**53+5)), 2**53+4)\r
-        self.assertEqual(int(float(2**53+6)), 2**53+6)\r
-        self.assertEqual(int(float(2**53+7)), 2**53+8)\r
-\r
-        self.assertEqual(int(float(-2**53-1)), -2**53)\r
-        self.assertEqual(int(float(-2**53-2)), -2**53-2)\r
-        self.assertEqual(int(float(-2**53-3)), -2**53-4)\r
-        self.assertEqual(int(float(-2**53-5)), -2**53-4)\r
-        self.assertEqual(int(float(-2**53-6)), -2**53-6)\r
-        self.assertEqual(int(float(-2**53-7)), -2**53-8)\r
-\r
-        self.assertEqual(int(float(2**54-2)), 2**54-2)\r
-        self.assertEqual(int(float(2**54-1)), 2**54)\r
-        self.assertEqual(int(float(2**54+2)), 2**54)\r
-        self.assertEqual(int(float(2**54+3)), 2**54+4)\r
-        self.assertEqual(int(float(2**54+5)), 2**54+4)\r
-        self.assertEqual(int(float(2**54+6)), 2**54+8)\r
-        self.assertEqual(int(float(2**54+10)), 2**54+8)\r
-        self.assertEqual(int(float(2**54+11)), 2**54+12)\r
-\r
-    def test_intconversion(self):\r
-        # Test __int__()\r
-        class ClassicMissingMethods:\r
-            pass\r
-        self.assertRaises(AttributeError, int, ClassicMissingMethods())\r
-\r
-        class MissingMethods(object):\r
-            pass\r
-        self.assertRaises(TypeError, int, MissingMethods())\r
-\r
-        class Foo0:\r
-            def __int__(self):\r
-                return 42\r
-\r
-        class Foo1(object):\r
-            def __int__(self):\r
-                return 42\r
-\r
-        class Foo2(int):\r
-            def __int__(self):\r
-                return 42\r
-\r
-        class Foo3(int):\r
-            def __int__(self):\r
-                return self\r
-\r
-        class Foo4(int):\r
-            def __int__(self):\r
-                return 42L\r
-\r
-        class Foo5(int):\r
-            def __int__(self):\r
-                return 42.\r
-\r
-        self.assertEqual(int(Foo0()), 42)\r
-        self.assertEqual(int(Foo1()), 42)\r
-        self.assertEqual(int(Foo2()), 42)\r
-        self.assertEqual(int(Foo3()), 0)\r
-        self.assertEqual(int(Foo4()), 42L)\r
-        self.assertRaises(TypeError, int, Foo5())\r
-\r
-        class Classic:\r
-            pass\r
-        for base in (object, Classic):\r
-            class IntOverridesTrunc(base):\r
-                def __int__(self):\r
-                    return 42\r
-                def __trunc__(self):\r
-                    return -12\r
-            self.assertEqual(int(IntOverridesTrunc()), 42)\r
-\r
-            class JustTrunc(base):\r
-                def __trunc__(self):\r
-                    return 42\r
-            self.assertEqual(int(JustTrunc()), 42)\r
-\r
-            for trunc_result_base in (object, Classic):\r
-                class Integral(trunc_result_base):\r
-                    def __int__(self):\r
-                        return 42\r
-\r
-                class TruncReturnsNonInt(base):\r
-                    def __trunc__(self):\r
-                        return Integral()\r
-                self.assertEqual(int(TruncReturnsNonInt()), 42)\r
-\r
-                class NonIntegral(trunc_result_base):\r
-                    def __trunc__(self):\r
-                        # Check that we avoid infinite recursion.\r
-                        return NonIntegral()\r
-\r
-                class TruncReturnsNonIntegral(base):\r
-                    def __trunc__(self):\r
-                        return NonIntegral()\r
-                try:\r
-                    int(TruncReturnsNonIntegral())\r
-                except TypeError as e:\r
-                    self.assertEqual(str(e),\r
-                                      "__trunc__ returned non-Integral"\r
-                                      " (type NonIntegral)")\r
-                else:\r
-                    self.fail("Failed to raise TypeError with %s" %\r
-                              ((base, trunc_result_base),))\r
-\r
-def test_main():\r
-    run_unittest(IntTestCases)\r
-\r
-if __name__ == "__main__":\r
-    test_main()\r