示例#1
0
 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()
示例#2
0
    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
示例#3
0
 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