summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_timeit.py
diff options
context:
space:
mode:
authorSteven D'Aprano <steve@pearwood.info>2016-08-14 15:27:03 (GMT)
committerSteven D'Aprano <steve@pearwood.info>2016-08-14 15:27:03 (GMT)
commit09f4f711b67a310873a4cb084f7c413ef3addcd3 (patch)
tree6b018c4f8307857aa5cbc25adffa1daaaf5225b2 /Lib/test/test_timeit.py
parent9171a8b4cea3e7b30e4f2c0a989d7f7b8ffabe73 (diff)
downloadcpython-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.py22
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()