mirror of https://github.com/tqdm/tqdm.git
tests:perf:capsys upgrades
This commit is contained in:
parent
31367d0a7a
commit
ebea958110
|
@ -11,8 +11,7 @@ except ImportError:
|
|||
import sys
|
||||
|
||||
from tqdm import tqdm, trange
|
||||
from .tests_tqdm import importorskip, skip, StringIO, closing, _range, \
|
||||
patch_lock
|
||||
from .tests_tqdm import importorskip, skip, _range, patch_lock
|
||||
|
||||
|
||||
def cpu_sleep(t):
|
||||
|
@ -81,12 +80,6 @@ def retry_on_except(n=3, check_cpu_time=True):
|
|||
return wrapper
|
||||
|
||||
|
||||
class MockIO(StringIO):
|
||||
"""Wraps StringIO to mock a file with no I/O"""
|
||||
def write(self, _):
|
||||
return
|
||||
|
||||
|
||||
def simple_progress(iterable=None, total=None, file=sys.stdout, desc='',
|
||||
leave=False, miniters=1, mininterval=0.1, width=60):
|
||||
"""Simple progress bar reproducing tqdm's major features"""
|
||||
|
@ -166,64 +159,59 @@ def assert_performance(thresh, name_left, time_left, name_right, time_right):
|
|||
|
||||
|
||||
@retry_on_except()
|
||||
def test_iter_basic_overhead():
|
||||
def test_iter_basic_overhead(capsys):
|
||||
"""Test overhead of iteration based tqdm"""
|
||||
|
||||
total = int(1e6)
|
||||
|
||||
with closing(MockIO()) as our_file:
|
||||
a = 0
|
||||
with trange(total, file=our_file) as t:
|
||||
with relative_timer() as time_tqdm:
|
||||
for i in t:
|
||||
a += i
|
||||
assert a == (total * total - total) / 2.0
|
||||
|
||||
a = 0
|
||||
with relative_timer() as time_bench:
|
||||
for i in _range(total):
|
||||
a = 0
|
||||
with trange(total) as t:
|
||||
with relative_timer() as time_tqdm:
|
||||
for i in t:
|
||||
a += i
|
||||
our_file.write(a)
|
||||
assert a == (total * total - total) / 2.0
|
||||
|
||||
a = 0
|
||||
with relative_timer() as time_bench:
|
||||
for i in _range(total):
|
||||
a += i
|
||||
sys.stdout.write(str(a))
|
||||
|
||||
assert_performance(3, 'trange', time_tqdm(), 'range', time_bench())
|
||||
|
||||
|
||||
@retry_on_except()
|
||||
def test_manual_basic_overhead():
|
||||
def test_manual_basic_overhead(capsys):
|
||||
"""Test overhead of manual tqdm"""
|
||||
|
||||
total = int(1e6)
|
||||
|
||||
with closing(MockIO()) as our_file:
|
||||
with tqdm(total=total * 10, file=our_file, leave=True) as t:
|
||||
a = 0
|
||||
with relative_timer() as time_tqdm:
|
||||
for i in _range(total):
|
||||
a += i
|
||||
t.update(10)
|
||||
|
||||
with tqdm(total=total * 10, leave=True) as t:
|
||||
a = 0
|
||||
with relative_timer() as time_bench:
|
||||
with relative_timer() as time_tqdm:
|
||||
for i in _range(total):
|
||||
a += i
|
||||
our_file.write(a)
|
||||
t.update(10)
|
||||
|
||||
a = 0
|
||||
with relative_timer() as time_bench:
|
||||
for i in _range(total):
|
||||
a += i
|
||||
sys.stdout.write(str(a))
|
||||
|
||||
assert_performance(5, 'tqdm', time_tqdm(), 'range', time_bench())
|
||||
|
||||
|
||||
def worker(total, blocking=True):
|
||||
def incr_bar(x):
|
||||
with closing(StringIO()) as our_file:
|
||||
for _ in trange(total, file=our_file, lock_args=None if blocking else
|
||||
(False,), miniters=1, mininterval=0, maxinterval=0):
|
||||
pass
|
||||
for _ in trange(total, lock_args=None if blocking else (False,),
|
||||
miniters=1, mininterval=0, maxinterval=0):
|
||||
pass
|
||||
return x + 1
|
||||
return incr_bar
|
||||
|
||||
|
||||
@retry_on_except()
|
||||
@patch_lock(thread=True)
|
||||
def test_lock_args():
|
||||
def test_lock_args(capsys):
|
||||
"""Test overhead of nonblocking threads"""
|
||||
ThreadPoolExecutor = importorskip('concurrent.futures').ThreadPoolExecutor
|
||||
|
||||
|
@ -246,99 +234,91 @@ def test_lock_args():
|
|||
|
||||
|
||||
@retry_on_except(10)
|
||||
def test_iter_overhead_hard():
|
||||
def test_iter_overhead_hard(capsys):
|
||||
"""Test overhead of iteration based tqdm (hard)"""
|
||||
|
||||
total = int(1e5)
|
||||
|
||||
with closing(MockIO()) as our_file:
|
||||
a = 0
|
||||
with trange(total, file=our_file, leave=True, miniters=1,
|
||||
mininterval=0, maxinterval=0) as t:
|
||||
with relative_timer() as time_tqdm:
|
||||
for i in t:
|
||||
a += i
|
||||
assert a == (total * total - total) / 2.0
|
||||
|
||||
a = 0
|
||||
with relative_timer() as time_bench:
|
||||
for i in _range(total):
|
||||
a = 0
|
||||
with trange(total, leave=True, miniters=1,
|
||||
mininterval=0, maxinterval=0) as t:
|
||||
with relative_timer() as time_tqdm:
|
||||
for i in t:
|
||||
a += i
|
||||
our_file.write(("%i" % a) * 40)
|
||||
assert a == (total * total - total) / 2.0
|
||||
|
||||
a = 0
|
||||
with relative_timer() as time_bench:
|
||||
for i in _range(total):
|
||||
a += i
|
||||
sys.stdout.write(("%i" % a) * 40)
|
||||
|
||||
assert_performance(130, 'trange', time_tqdm(), 'range', time_bench())
|
||||
|
||||
|
||||
@retry_on_except(10)
|
||||
def test_manual_overhead_hard():
|
||||
def test_manual_overhead_hard(capsys):
|
||||
"""Test overhead of manual tqdm (hard)"""
|
||||
|
||||
total = int(1e5)
|
||||
|
||||
with closing(MockIO()) as our_file:
|
||||
with tqdm(total=total * 10, file=our_file, leave=True, miniters=1,
|
||||
mininterval=0, maxinterval=0) as t:
|
||||
a = 0
|
||||
with relative_timer() as time_tqdm:
|
||||
for i in _range(total):
|
||||
a += i
|
||||
t.update(10)
|
||||
|
||||
with tqdm(total=total * 10, leave=True, miniters=1,
|
||||
mininterval=0, maxinterval=0) as t:
|
||||
a = 0
|
||||
with relative_timer() as time_bench:
|
||||
with relative_timer() as time_tqdm:
|
||||
for i in _range(total):
|
||||
a += i
|
||||
our_file.write(("%i" % a) * 40)
|
||||
t.update(10)
|
||||
|
||||
a = 0
|
||||
with relative_timer() as time_bench:
|
||||
for i in _range(total):
|
||||
a += i
|
||||
sys.stdout.write(("%i" % a) * 40)
|
||||
|
||||
assert_performance(130, 'tqdm', time_tqdm(), 'range', time_bench())
|
||||
|
||||
|
||||
@retry_on_except(10)
|
||||
def test_iter_overhead_simplebar_hard():
|
||||
def test_iter_overhead_simplebar_hard(capsys):
|
||||
"""Test overhead of iteration based tqdm vs simple progress bar (hard)"""
|
||||
|
||||
total = int(1e4)
|
||||
|
||||
with closing(MockIO()) as our_file:
|
||||
a = 0
|
||||
with trange(total, file=our_file, leave=True, miniters=1,
|
||||
mininterval=0, maxinterval=0) as t:
|
||||
with relative_timer() as time_tqdm:
|
||||
for i in t:
|
||||
a += i
|
||||
assert a == (total * total - total) / 2.0
|
||||
|
||||
a = 0
|
||||
s = simple_progress(_range(total), file=our_file, leave=True,
|
||||
miniters=1, mininterval=0)
|
||||
with relative_timer() as time_bench:
|
||||
for i in s:
|
||||
a = 0
|
||||
with trange(total, leave=True, miniters=1,
|
||||
mininterval=0, maxinterval=0) as t:
|
||||
with relative_timer() as time_tqdm:
|
||||
for i in t:
|
||||
a += i
|
||||
assert a == (total * total - total) / 2.0
|
||||
|
||||
a = 0
|
||||
s = simple_progress(_range(total), leave=True,
|
||||
miniters=1, mininterval=0)
|
||||
with relative_timer() as time_bench:
|
||||
for i in s:
|
||||
a += i
|
||||
|
||||
assert_performance(10, 'trange', time_tqdm(), 'simple_progress', time_bench())
|
||||
|
||||
|
||||
@retry_on_except(10)
|
||||
def test_manual_overhead_simplebar_hard():
|
||||
def test_manual_overhead_simplebar_hard(capsys):
|
||||
"""Test overhead of manual tqdm vs simple progress bar (hard)"""
|
||||
|
||||
total = int(1e4)
|
||||
|
||||
with closing(MockIO()) as our_file:
|
||||
with tqdm(total=total * 10, file=our_file, leave=True, miniters=1,
|
||||
mininterval=0, maxinterval=0) as t:
|
||||
a = 0
|
||||
with relative_timer() as time_tqdm:
|
||||
for i in _range(total):
|
||||
a += i
|
||||
t.update(10)
|
||||
|
||||
simplebar_update = simple_progress(total=total * 10, file=our_file, leave=True,
|
||||
miniters=1, mininterval=0)
|
||||
with tqdm(total=total * 10, leave=True, miniters=1,
|
||||
mininterval=0, maxinterval=0) as t:
|
||||
a = 0
|
||||
with relative_timer() as time_bench:
|
||||
with relative_timer() as time_tqdm:
|
||||
for i in _range(total):
|
||||
a += i
|
||||
simplebar_update(10)
|
||||
t.update(10)
|
||||
|
||||
simplebar_update = simple_progress(total=total * 10, leave=True,
|
||||
miniters=1, mininterval=0)
|
||||
a = 0
|
||||
with relative_timer() as time_bench:
|
||||
for i in _range(total):
|
||||
a += i
|
||||
simplebar_update(10)
|
||||
|
||||
assert_performance(10, 'tqdm', time_tqdm(), 'simple_progress', time_bench())
|
||||
|
|
Loading…
Reference in New Issue