Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_backoff_zero_start():
from boltons.iterutils import backoff
assert backoff(0, 16) == [0.0, 1.0, 2.0, 4.0, 8.0, 16.0]
assert backoff(0, 15) == [0.0, 1.0, 2.0, 4.0, 8.0, 15.0]
slow_backoff = [round(x, 2) for x in backoff(0, 2.9, factor=1.2)]
assert slow_backoff == [0.0, 1.0, 1.2, 1.44, 1.73, 2.07, 2.49, 2.9]
def test_backoff_basic():
from boltons.iterutils import backoff
assert backoff(1, 16) == [1.0, 2.0, 4.0, 8.0, 16.0]
assert backoff(1, 1) == [1.0]
assert backoff(2, 15) == [2.0, 4.0, 8.0, 15.0]
def test_backoff_jitter():
from boltons.iterutils import backoff
start, stop = 1, 256
unjittered = backoff(start, stop)
jittered = backoff(start, stop, jitter=True)
assert len(unjittered) == len(jittered)
assert [u >= j for u, j in zip(unjittered, jittered)]
neg_jittered = backoff(start, stop, jitter=-0.01)
assert len(unjittered) == len(neg_jittered)
assert [u <= j for u, j in zip(unjittered, neg_jittered)]
o_jittered = backoff(start, stop, jitter=-0.0)
assert len(unjittered) == len(o_jittered)
assert [u == j for u, j in zip(unjittered, o_jittered)]
nonconst_jittered = backoff(stop, stop, count=5, jitter=True)
assert len(nonconst_jittered) == 5
# no two should be equal realistically
assert len(set(nonconst_jittered)) == 5
def test_backoff_jitter():
from boltons.iterutils import backoff
start, stop = 1, 256
unjittered = backoff(start, stop)
jittered = backoff(start, stop, jitter=True)
assert len(unjittered) == len(jittered)
assert [u >= j for u, j in zip(unjittered, jittered)]
neg_jittered = backoff(start, stop, jitter=-0.01)
assert len(unjittered) == len(neg_jittered)
assert [u <= j for u, j in zip(unjittered, neg_jittered)]
o_jittered = backoff(start, stop, jitter=-0.0)
assert len(unjittered) == len(o_jittered)
assert [u == j for u, j in zip(unjittered, o_jittered)]
nonconst_jittered = backoff(stop, stop, count=5, jitter=True)
assert len(nonconst_jittered) == 5
# no two should be equal realistically
unjittered = backoff(start, stop)
jittered = backoff(start, stop, jitter=True)
assert len(unjittered) == len(jittered)
assert [u >= j for u, j in zip(unjittered, jittered)]
neg_jittered = backoff(start, stop, jitter=-0.01)
assert len(unjittered) == len(neg_jittered)
assert [u <= j for u, j in zip(unjittered, neg_jittered)]
o_jittered = backoff(start, stop, jitter=-0.0)
assert len(unjittered) == len(o_jittered)
assert [u == j for u, j in zip(unjittered, o_jittered)]
nonconst_jittered = backoff(stop, stop, count=5, jitter=True)
assert len(nonconst_jittered) == 5
# no two should be equal realistically
assert len(set(nonconst_jittered)) == 5
def test_backoff_zero_start():
from boltons.iterutils import backoff
assert backoff(0, 16) == [0.0, 1.0, 2.0, 4.0, 8.0, 16.0]
assert backoff(0, 15) == [0.0, 1.0, 2.0, 4.0, 8.0, 15.0]
slow_backoff = [round(x, 2) for x in backoff(0, 2.9, factor=1.2)]
assert slow_backoff == [0.0, 1.0, 1.2, 1.44, 1.73, 2.07, 2.49, 2.9]
def test_backoff_validation():
from boltons.iterutils import backoff
with pytest.raises(ValueError):
backoff(8, 2)
with pytest.raises(ValueError):
backoff(1, 0)
with pytest.raises(ValueError):
backoff(-1, 10)
with pytest.raises(ValueError):
backoff(2, 8, factor=0)
with pytest.raises(ValueError):
backoff(2, 8, jitter=20)
def test_backoff_validation():
from boltons.iterutils import backoff
with pytest.raises(ValueError):
backoff(8, 2)
with pytest.raises(ValueError):
backoff(1, 0)
with pytest.raises(ValueError):
backoff(-1, 10)
with pytest.raises(ValueError):
backoff(2, 8, factor=0)
with pytest.raises(ValueError):
backoff(2, 8, jitter=20)
def test_backoff_jitter():
from boltons.iterutils import backoff
start, stop = 1, 256
unjittered = backoff(start, stop)
jittered = backoff(start, stop, jitter=True)
assert len(unjittered) == len(jittered)
assert [u >= j for u, j in zip(unjittered, jittered)]
neg_jittered = backoff(start, stop, jitter=-0.01)
assert len(unjittered) == len(neg_jittered)
assert [u <= j for u, j in zip(unjittered, neg_jittered)]
o_jittered = backoff(start, stop, jitter=-0.0)
assert len(unjittered) == len(o_jittered)
assert [u == j for u, j in zip(unjittered, o_jittered)]
nonconst_jittered = backoff(stop, stop, count=5, jitter=True)
assert len(nonconst_jittered) == 5
from boltons.iterutils import backoff
start, stop = 1, 256
unjittered = backoff(start, stop)
jittered = backoff(start, stop, jitter=True)
assert len(unjittered) == len(jittered)
assert [u >= j for u, j in zip(unjittered, jittered)]
neg_jittered = backoff(start, stop, jitter=-0.01)
assert len(unjittered) == len(neg_jittered)
assert [u <= j for u, j in zip(unjittered, neg_jittered)]
o_jittered = backoff(start, stop, jitter=-0.0)
assert len(unjittered) == len(o_jittered)
assert [u == j for u, j in zip(unjittered, o_jittered)]
nonconst_jittered = backoff(stop, stop, count=5, jitter=True)
assert len(nonconst_jittered) == 5
# no two should be equal realistically
assert len(set(nonconst_jittered)) == 5