mirror of https://github.com/python/cpython.git
This patch also provides a simple way to share tests going forward between test_int and test_long.
This commit is contained in:
parent
33e05e7905
commit
6f70fe8046
|
@ -45,7 +45,25 @@
|
||||||
(unichr(0x200), ValueError),
|
(unichr(0x200), ValueError),
|
||||||
]
|
]
|
||||||
|
|
||||||
class IntTestCases(unittest.TestCase):
|
class IntLongCommonTests(object):
|
||||||
|
|
||||||
|
"""Mixin of test cases to share between both test_int and test_long."""
|
||||||
|
|
||||||
|
# Change to int or long in the TestCase subclass.
|
||||||
|
ntype = None
|
||||||
|
|
||||||
|
def test_no_args(self):
|
||||||
|
self.assertEqual(self.ntype(), 0)
|
||||||
|
|
||||||
|
def test_keyword_args(self):
|
||||||
|
# Test invoking constructor using keyword arguments.
|
||||||
|
self.assertEqual(self.ntype(x=1.2), 1)
|
||||||
|
self.assertEqual(self.ntype('100', base=2), 4)
|
||||||
|
self.assertEqual(self.ntype(x='100', base=2), 4)
|
||||||
|
|
||||||
|
class IntTestCases(IntLongCommonTests, unittest.TestCase):
|
||||||
|
|
||||||
|
ntype = int
|
||||||
|
|
||||||
def test_basic(self):
|
def test_basic(self):
|
||||||
self.assertEqual(int(314), 314)
|
self.assertEqual(int(314), 314)
|
||||||
|
@ -316,15 +334,6 @@ def test_float_conversion(self):
|
||||||
self.assertEqual(int(float(2**54+10)), 2**54+8)
|
self.assertEqual(int(float(2**54+10)), 2**54+8)
|
||||||
self.assertEqual(int(float(2**54+11)), 2**54+12)
|
self.assertEqual(int(float(2**54+11)), 2**54+12)
|
||||||
|
|
||||||
def test_no_args(self):
|
|
||||||
self.assertEquals(int(), 0)
|
|
||||||
|
|
||||||
def test_keyword_args(self):
|
|
||||||
# Test invoking int() using keyword arguments.
|
|
||||||
self.assertEquals(int(x=1.2), 1)
|
|
||||||
self.assertEquals(int('100', base=2), 4)
|
|
||||||
self.assertEquals(int(x='100', base=2), 4)
|
|
||||||
|
|
||||||
def test_valid_non_numeric_input_types_for_x(self):
|
def test_valid_non_numeric_input_types_for_x(self):
|
||||||
# Test possible valid non-numeric types for x, including subclasses
|
# Test possible valid non-numeric types for x, including subclasses
|
||||||
# of the allowed built-in types.
|
# of the allowed built-in types.
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
import unittest
|
import unittest
|
||||||
from test import test_support
|
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
import random
|
import random
|
||||||
import math
|
import math
|
||||||
|
|
||||||
|
from test import test_int, test_support
|
||||||
|
|
||||||
# Used for lazy formatting of failure messages
|
# Used for lazy formatting of failure messages
|
||||||
class Frm(object):
|
class Frm(object):
|
||||||
def __init__(self, format, *args):
|
def __init__(self, format, *args):
|
||||||
|
@ -78,8 +79,9 @@ def __str__(self):
|
||||||
(unichr(0x200), ValueError),
|
(unichr(0x200), ValueError),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
class LongTest(test_int.IntLongCommonTests, unittest.TestCase):
|
||||||
|
|
||||||
class LongTest(unittest.TestCase):
|
ntype = long
|
||||||
|
|
||||||
# Get quasi-random long consisting of ndigits digits (in base BASE).
|
# Get quasi-random long consisting of ndigits digits (in base BASE).
|
||||||
# quasi == the most-significant digit will not be 0, and the number
|
# quasi == the most-significant digit will not be 0, and the number
|
||||||
|
|
Loading…
Reference in New Issue