Speed up test_dict by about 10x by only checking selected dict literal sizes,

instead of every integer from 0 to 400. Exhaustive testing wastes time without
providing enough more assurance that the code is correct.
This commit is contained in:
Jeffrey Yasskin 2008-03-18 05:12:41 +00:00
parent a14585308a
commit ed414654c4
1 changed files with 6 additions and 4 deletions

View File

@ -12,12 +12,14 @@ class DictTest(unittest.TestCase):
def test_literal_constructor(self): def test_literal_constructor(self):
# check literal constructor for different sized dicts (to exercise the BUILD_MAP oparg # check literal constructor for different sized dicts (to exercise the BUILD_MAP oparg
items = [] for n in (0, 1, 6, 256, 400):
for n in range(400): items = [(''.join([random.choice(string.letters)
for j in range(8)]),
i)
for i in range(n)]
random.shuffle(items)
dictliteral = '{' + ', '.join('%r: %d' % item for item in items) + '}' dictliteral = '{' + ', '.join('%r: %d' % item for item in items) + '}'
self.assertEqual(eval(dictliteral), dict(items)) self.assertEqual(eval(dictliteral), dict(items))
items.append((''.join([random.choice(string.letters) for j in range(8)]), n))
random.shuffle(items)
def test_bool(self): def test_bool(self):
self.assert_(not {}) self.assert_(not {})