def test_exponential_counter__reset(self): counter = ExponentialCounter(1024) for _ in range(100): value = counter.counter() assert value >= 1 - self.MAX_DELTA assert value <= 1 + self.MAX_DELTA counter.reset()
def test_exponential_counter__counter(self): def assert_range(number, exponent): assert number >= 2**exponent * (1 - self.MAX_DELTA) assert number <= 2**exponent * (1 + self.MAX_DELTA) counter = ExponentialCounter(1024) prev_value = counter.counter() assert_range(prev_value, 0) for i in range(9): value = counter.counter() assert_range(value, 1 + i) assert value > prev_value prev_value = value
def test_exponential_counter__max_value(self): counter = ExponentialCounter(5) max_value = 5 * (1 + self.MAX_DELTA) for _ in range(100): value = counter.counter() assert value <= max_value