cpython: 2dafb2f3e7ff (original) (raw)
--- a/Lib/test/test_timeit.py +++ b/Lib/test/test_timeit.py @@ -12,7 +12,7 @@ from test.support import captured_stderr DEFAULT_NUMBER = 1000000
timeit's default number of repetitions.
-DEFAULT_REPEAT = 3 +DEFAULT_REPEAT = 5
XXX: some tests are commented out that would improve the coverage but take a
long time to run because they test the default number of loops, which is
@@ -226,7 +226,7 @@ class TestTimeit(unittest.TestCase): t.print_exc(s) self.assert_exc_string(s.getvalue(), 'ZeroDivisionError')
def run_main(self, seconds_per_increment=1.0, switches=None, timer=None): if timer is None: @@ -252,31 +252,31 @@ class TestTimeit(unittest.TestCase): def test_main_seconds(self): s = self.run_main(seconds_per_increment=5.5)
self.assertEqual(s, "1 loop, best of 3: 5.5 sec per loop\n")[](#l1.25)
self.assertEqual(s, "1 loop, best of 5: 5.5 sec per loop\n")[](#l1.26)
def test_main_milliseconds(self): s = self.run_main(seconds_per_increment=0.0055)
self.assertEqual(s, "100 loops, best of 3: 5.5 msec per loop\n")[](#l1.30)
self.assertEqual(s, "100 loops, best of 5: 5.5 msec per loop\n")[](#l1.31)
def test_main_microseconds(self): s = self.run_main(seconds_per_increment=0.0000025, switches=['-n100'])
self.assertEqual(s, "100 loops, best of 3: 2.5 usec per loop\n")[](#l1.35)
self.assertEqual(s, "100 loops, best of 5: 2.5 usec per loop\n")[](#l1.36)
def test_main_fixed_iters(self): s = self.run_main(seconds_per_increment=2.0, switches=['-n35'])
self.assertEqual(s, "35 loops, best of 3: 2 sec per loop\n")[](#l1.40)
self.assertEqual(s, "35 loops, best of 5: 2 sec per loop\n")[](#l1.41)
def test_main_setup(self): s = self.run_main(seconds_per_increment=2.0, switches=['-n35', '-s', 'print("CustomSetup")'])
self.assertEqual(s, "CustomSetup\n" * 3 +[](#l1.46)
"35 loops, best of 3: 2 sec per loop\n")[](#l1.47)
self.assertEqual(s, "CustomSetup\n" * DEFAULT_REPEAT +[](#l1.48)
"35 loops, best of 5: 2 sec per loop\n")[](#l1.49)
def test_main_multiple_setups(self): s = self.run_main(seconds_per_increment=2.0, switches=['-n35', '-s', 'a = "CustomSetup"', '-s', 'print(a)'])
self.assertEqual(s, "CustomSetup\n" * 3 +[](#l1.54)
"35 loops, best of 3: 2 sec per loop\n")[](#l1.55)
self.assertEqual(s, "CustomSetup\n" * DEFAULT_REPEAT +[](#l1.56)
"35 loops, best of 5: 2 sec per loop\n")[](#l1.57)
def test_main_fixed_reps(self): s = self.run_main(seconds_per_increment=60.0, switches=['-r9']) @@ -309,8 +309,8 @@ class TestTimeit(unittest.TestCase): s = self.run_main(switches=['-v']) self.assertEqual(s, dedent("""[](#l1.63) 1 loop -> 1 secs
raw times: 1 1 1[](#l1.65)
1 loop, best of 3: 1 sec per loop[](#l1.66)
raw times: 1 1 1 1 1[](#l1.67)
1 loop, best of 5: 1 sec per loop[](#l1.68) """))[](#l1.69)
def test_main_very_verbose(self): @@ -321,23 +321,23 @@ class TestTimeit(unittest.TestCase): 100 loops -> 0.005 secs 1000 loops -> 0.05 secs 10000 loops -> 0.5 secs
raw times: 0.5 0.5 0.5[](#l1.76)
10000 loops, best of 3: 50 usec per loop[](#l1.77)
raw times: 0.5 0.5 0.5 0.5 0.5[](#l1.78)
10000 loops, best of 5: 50 usec per loop[](#l1.79) """))[](#l1.80)
def test_main_with_time_unit(self): unit_sec = self.run_main(seconds_per_increment=0.002, switches=['-u', 'sec']) self.assertEqual(unit_sec,
"100 loops, best of 3: 0.002 sec per loop\n")[](#l1.86)
"100 loops, best of 5: 0.002 sec per loop\n")[](#l1.87) unit_msec = self.run_main(seconds_per_increment=0.002,[](#l1.88) switches=['-u', 'msec'])[](#l1.89) self.assertEqual(unit_msec,[](#l1.90)
"100 loops, best of 3: 2 msec per loop\n")[](#l1.91)
"100 loops, best of 5: 2 msec per loop\n")[](#l1.92) unit_usec = self.run_main(seconds_per_increment=0.002,[](#l1.93) switches=['-u', 'usec'])[](#l1.94) self.assertEqual(unit_usec,[](#l1.95)
"100 loops, best of 3: 2e+03 usec per loop\n")[](#l1.96)
"100 loops, best of 5: 2e+03 usec per loop\n")[](#l1.97) # Test invalid unit input[](#l1.98) with captured_stderr() as error_stringio:[](#l1.99) invalid = self.run_main(seconds_per_increment=0.002,[](#l1.100)
--- a/Lib/timeit.py +++ b/Lib/timeit.py @@ -59,7 +59,7 @@ import itertools dummy_src_name = "" default_number = 1000000 -default_repeat = 3 +default_repeat = 5 default_timer = time.perf_counter _globals = globals
--- a/Misc/NEWS +++ b/Misc/NEWS @@ -88,6 +88,9 @@ Core and Builtins Library ------- +- Issue #28240: timeit now repeats the benchmarks 5 times instead of only 3