diff options
author | Steven D'Aprano <steve@pearwood.info> | 2016-08-14 15:27:03 (GMT) |
---|---|---|
committer | Steven D'Aprano <steve@pearwood.info> | 2016-08-14 15:27:03 (GMT) |
commit | 09f4f711b67a310873a4cb084f7c413ef3addcd3 (patch) | |
tree | 6b018c4f8307857aa5cbc25adffa1daaaf5225b2 /Lib/test/test_timeit.py | |
parent | 9171a8b4cea3e7b30e4f2c0a989d7f7b8ffabe73 (diff) | |
download | cpython-09f4f711b67a310873a4cb084f7c413ef3addcd3.zip cpython-09f4f711b67a310873a4cb084f7c413ef3addcd3.tar.gz cpython-09f4f711b67a310873a4cb084f7c413ef3addcd3.tar.bz2 |
Issue6422 add autorange method to timeit.Timer
Diffstat (limited to 'Lib/test/test_timeit.py')
-rw-r--r-- | Lib/test/test_timeit.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/Lib/test/test_timeit.py b/Lib/test/test_timeit.py index 2db3c1b..1a95e29 100644 --- a/Lib/test/test_timeit.py +++ b/Lib/test/test_timeit.py @@ -354,6 +354,28 @@ class TestTimeit(unittest.TestCase): s = self.run_main(switches=['-n1', '1/0']) self.assert_exc_string(error_stringio.getvalue(), 'ZeroDivisionError') + def autorange(self, callback=None): + timer = FakeTimer(seconds_per_increment=0.001) + t = timeit.Timer(stmt=self.fake_stmt, setup=self.fake_setup, timer=timer) + return t.autorange(callback) + + def test_autorange(self): + num_loops, time_taken = self.autorange() + self.assertEqual(num_loops, 1000) + self.assertEqual(time_taken, 1.0) + + def test_autorange_with_callback(self): + def callback(a, b): + print("{} {:.3f}".format(a, b)) + with captured_stdout() as s: + num_loops, time_taken = self.autorange(callback) + self.assertEqual(num_loops, 1000) + self.assertEqual(time_taken, 1.0) + expected = ('10 0.010\n' + '100 0.100\n' + '1000 1.000\n') + self.assertEqual(s.getvalue(), expected) + if __name__ == '__main__': unittest.main() |