Exemplo n.º 1
0
    def test_count_calls_decorator(self):
        @count_calls
        def test():
            pass

        for i in xrange(10):
            test()
        self.assertEqual(counter("test_calls").get_count(), 10)
Exemplo n.º 2
0
 def get_snapshot(self):
     """
     Creates a statistical snapshot from the current set of values.
     """
     copy = []
     for i in xrange(self.size()):
         copy.append(self.values[i])
     return Snapshot(copy)
Exemplo n.º 3
0
 def get_snapshot(self):
     """
     Creates a statistical snapshot from the current set of values.
     """
     copy = []
     for i in xrange(self.size()):
         copy.append(self.values[i])
     return Snapshot(copy)
Exemplo n.º 4
0
    def test_count_calls_decorator(self):
        @count_calls
        def test():
            pass

        for i in xrange(10):
            test()
        self.assertEqual(counter("test_calls").get_count(), 10)
Exemplo n.º 5
0
    def test_mean_rate_one_per_second(self, time_mock):
        time_mock.return_value = 0.0
        self.meter = Meter("test")
        for i in xrange(10):
            self.meter.mark()
            time_mock.return_value += 1

        self.meter._tick()
        self.assertAlmostEqual(self.meter.get_mean_rate(), 1)
Exemplo n.º 6
0
    def test_mean_rate_one_per_second(self, time_mock):
        time_mock.return_value = 0.0
        self.meter = Meter("test")
        for i in xrange(10):
            self.meter.mark()
            time_mock.return_value += 1

        self.meter._tick()
        self.assertAlmostEqual(self.meter.get_mean_rate(), 1)
Exemplo n.º 7
0
    def __init__(self, reservoir_size):
        """
        Create a new L{UniformSample}.

        @type reservoir_size: C{int}
        @param reservoir_size: the number of params to keep in the sampling reservoir
        """
        self.values = [0 for x in xrange(reservoir_size)]
        self.clear()
Exemplo n.º 8
0
    def __init__(self, reservoir_size):
        """
        Create a new L{UniformSample}.

        @type reservoir_size: C{int}
        @param reservoir_size: the number of params to keep in the sampling reservoir
        """
        self.values = [0 for x in xrange(reservoir_size)]
        self.clear()
Exemplo n.º 9
0
    def test_meter_calls_decorator(self, time_mock):
        time_mock.return_value = 0
        @meter_calls
        def test():
            pass

        for i in xrange(10):
            test()
        time_mock.return_value = 10
        self.assertAlmostEqual(meter("test_calls").get_mean_rate(), 1.0)
Exemplo n.º 10
0
    def test_a_sample_of_100_out_of_1000_elements(self):
        sample = UniformSample(100)
        for i in xrange(1000):
            sample.update(i)
        snapshot = sample.get_snapshot()

        self.assertEqual(sample.size(), 100)
        self.assertEqual(snapshot.size(), 100)

        for i in snapshot.get_values():
            self.assertTrue(i < 1000 and i >= 0)
Exemplo n.º 11
0
    def test_a_heavily_biased_sample_of_100_out_of_1000_elements(self):
        sample = ExponentiallyDecayingSample(1000, 0.01)
        for i in xrange(100):
            sample.update(i)
        snapshot = sample.get_snapshot()

        self.assertEqual(sample.size(), 100)
        self.assertEqual(snapshot.size(), 100)

        for i in snapshot.get_values():
            self.assertTrue(i < 100 and i >= 0)
Exemplo n.º 12
0
    def test_a_heavily_biased_sample_of_100_out_of_1000_elements(self):
        sample = ExponentiallyDecayingSample(1000, 0.01)
        for i in xrange(100):
            sample.update(i)
        snapshot = sample.get_snapshot()

        self.assertEqual(sample.size(), 100)
        self.assertEqual(snapshot.size(), 100)

        for i in snapshot.get_values():
            self.assertTrue(i < 100 and i >= 0)
Exemplo n.º 13
0
    def test_meter_calls_decorator(self, time_mock):
        time_mock.return_value = 0

        @meter_calls
        def test():
            pass

        for i in xrange(10):
            test()
        time_mock.return_value = 10
        self.assertAlmostEqual(meter("test_calls").get_mean_rate(), 1.0)
Exemplo n.º 14
0
    def test_a_sample_of_100_out_of_1000_elements(self):
        sample = UniformSample(100)
        for i in xrange(1000):
            sample.update(i)
        snapshot = sample.get_snapshot()

        self.assertEqual(sample.size(), 100)
        self.assertEqual(snapshot.size(), 100)

        for i in snapshot.get_values():
            self.assertTrue(i < 1000 and i >= 0)
Exemplo n.º 15
0
    def test_a_sample_of_100_out_of_10_elements(self):
        sample = ExponentiallyDecayingSample(100, 0.99)
        for i in xrange(10):
            sample.update(i)
        snapshot = sample.get_snapshot()

        self.assertEqual(sample.size(), 10)
        self.assertEqual(snapshot.size(), 10)
        self.assertAlmostEqual(snapshot.get_median(), 4.5)

        for i in snapshot.get_values():
            self.assertTrue(i < 10 and i >= 0)
Exemplo n.º 16
0
    def test_a_sample_of_100_out_of_10_elements(self):
        sample = ExponentiallyDecayingSample(100, 0.99)
        for i in xrange(10):
            sample.update(i)
        snapshot = sample.get_snapshot()

        self.assertEqual(sample.size(), 10)
        self.assertEqual(snapshot.size(), 10)
        self.assertAlmostEqual(snapshot.get_median(), 4.5)

        for i in snapshot.get_values():
            self.assertTrue(i < 10 and i >= 0)
Exemplo n.º 17
0
    def test_long_period_of_inactivity_should_not_corrupt_sampling_state(self):
        twisted_clock = Clock()
        sample = ExponentiallyDecayingSample(10, 0.015, twisted_clock.seconds)
        for i in xrange(1000):
            sample.update(1000 + i)
            twisted_clock.advance(0.1)

        self.assertTrue(sample.get_snapshot().size() == 10)
        self._assert_all_values_between(sample, 1000, 2000)

        twisted_clock.advance(15*3600)
        sample.update(2000)
        self.assertTrue(sample.get_snapshot().size() == 2)
        self._assert_all_values_between(sample, 1000, 3000)

        for i in xrange(1000):
            sample.update(3000 + i)
            twisted_clock.advance(0.1)

        self.assertTrue(sample.get_snapshot().size() == 10)
        self._assert_all_values_between(sample, 3000, 4000)
Exemplo n.º 18
0
    def test_long_period_of_inactivity_should_not_corrupt_sampling_state(self):
        twisted_clock = Clock()
        sample = ExponentiallyDecayingSample(10, 0.015, twisted_clock.seconds)
        for i in xrange(1000):
            sample.update(1000 + i)
            twisted_clock.advance(0.1)

        self.assertTrue(sample.get_snapshot().size() == 10)
        self._assert_all_values_between(sample, 1000, 2000)

        twisted_clock.advance(15 * 3600)
        sample.update(2000)
        self.assertTrue(sample.get_snapshot().size() == 2)
        self._assert_all_values_between(sample, 1000, 3000)

        for i in xrange(1000):
            sample.update(3000 + i)
            twisted_clock.advance(0.1)

        self.assertTrue(sample.get_snapshot().size() == 10)
        self._assert_all_values_between(sample, 3000, 4000)
Exemplo n.º 19
0
    def test_histogram_with_1000_elements(self):
        for histogram in self.histogram_b, self.histogram_u:
            histogram.clear()
            for i in xrange(1, 1001):
                histogram.update(i)

            self.assertEqual(histogram.get_count(), 1000)
            self.assertAlmostEqual(histogram.get_max(), 1000)
            self.assertAlmostEqual(histogram.get_min(), 1)
            self.assertAlmostEqual(histogram.get_mean(), 500.5)
            self.assertAlmostEqual(histogram.get_std_dev(), 288.8194360957494, places=3)
            self.assertAlmostEqual(histogram.get_sum(), 500500)

            snapshot = histogram.get_snapshot()
            self.assertAlmostEqual(snapshot.get_median(), 500.5)
            self.assertAlmostEqual(snapshot.get_75th_percentile(), 750.75)
            self.assertAlmostEqual(snapshot.get_99th_percentile(), 990.99)
            self.assertAlmostEqual(snapshot.size(), 1000)
Exemplo n.º 20
0
    def test_time_calls_decorator(self, time_mock):
        time_mock.return_value = 0.0
        @time_calls
        def test():
            time_mock.return_value += 1.0

        for i in xrange(10):
            test()
        _timer = timer("test_calls")
        snapshot = _timer.get_snapshot()
        self.assertEqual(_timer.get_count(), 10)
        self.assertEqual(_timer.get_max(), 1)
        self.assertEqual(_timer.get_min(), 1)
        self.assertAlmostEqual(_timer.get_std_dev(), 0)
        self.assertAlmostEqual(snapshot.get_75th_percentile(), 1.0)
        self.assertAlmostEqual(snapshot.get_98th_percentile(), 1.0)
        self.assertAlmostEqual(snapshot.get_99th_percentile(), 1.0)
        self.assertAlmostEqual(snapshot.get_999th_percentile(), 1.0)
Exemplo n.º 21
0
    def test_hist_calls_decorator(self):
        @hist_calls
        def test(n):
            return n

        for i in xrange(1, 11):
            test(i)

        _histogram = histogram("test_calls")
        snapshot = _histogram.get_snapshot()
        self.assertAlmostEqual(_histogram.get_mean(), 5.5)
        self.assertEqual(_histogram.get_max(), 10)
        self.assertEqual(_histogram.get_min(), 1)
        self.assertAlmostEqual(_histogram.get_std_dev(), 3.02765, places=5)
        self.assertAlmostEqual(_histogram.get_variance(), 9.16667, places=5)
        self.assertAlmostEqual(snapshot.get_75th_percentile(), 8.25)
        self.assertAlmostEqual(snapshot.get_98th_percentile(), 10.0)
        self.assertAlmostEqual(snapshot.get_99th_percentile(), 10.0)
        self.assertAlmostEqual(snapshot.get_999th_percentile(), 10.0)
Exemplo n.º 22
0
    def test_time_calls_decorator(self, time_mock):
        time_mock.return_value = 0.0

        @time_calls
        def test():
            time_mock.return_value += 1.0

        for i in xrange(10):
            test()
        _timer = timer("test_calls")
        snapshot = _timer.get_snapshot()
        self.assertEqual(_timer.get_count(), 10)
        self.assertEqual(_timer.get_max(), 1)
        self.assertEqual(_timer.get_min(), 1)
        self.assertAlmostEqual(_timer.get_std_dev(), 0)
        self.assertAlmostEqual(snapshot.get_75th_percentile(), 1.0)
        self.assertAlmostEqual(snapshot.get_98th_percentile(), 1.0)
        self.assertAlmostEqual(snapshot.get_99th_percentile(), 1.0)
        self.assertAlmostEqual(snapshot.get_999th_percentile(), 1.0)
Exemplo n.º 23
0
    def test_hist_calls_decorator(self):
        @hist_calls
        def test(n):
            return n

        for i in xrange(1, 11):
            test(i)

        _histogram = histogram("test_calls")
        snapshot = _histogram.get_snapshot()
        self.assertAlmostEqual(_histogram.get_mean(), 5.5)
        self.assertEqual(_histogram.get_max(), 10)
        self.assertEqual(_histogram.get_min(), 1)
        self.assertAlmostEqual(_histogram.get_std_dev(), 3.02765, places=5)
        self.assertAlmostEqual(_histogram.get_variance(), 9.16667, places=5)
        self.assertAlmostEqual(snapshot.get_75th_percentile(), 8.25)
        self.assertAlmostEqual(snapshot.get_98th_percentile(), 10.0)
        self.assertAlmostEqual(snapshot.get_99th_percentile(), 10.0)
        self.assertAlmostEqual(snapshot.get_999th_percentile(), 10.0)
Exemplo n.º 24
0
    def test_histogram_with_1000_elements(self):
        for histogram in self.histogram_b, self.histogram_u:
            histogram.clear()
            for i in xrange(1, 1001):
                histogram.update(i)

            self.assertEqual(histogram.get_count(), 1000)
            self.assertAlmostEqual(histogram.get_max(), 1000)
            self.assertAlmostEqual(histogram.get_min(), 1)
            self.assertAlmostEqual(histogram.get_mean(), 500.5)
            self.assertAlmostEqual(histogram.get_std_dev(),
                                   288.8194360957494,
                                   places=3)
            self.assertAlmostEqual(histogram.get_sum(), 500500)

            snapshot = histogram.get_snapshot()
            self.assertAlmostEqual(snapshot.get_median(), 500.5)
            self.assertAlmostEqual(snapshot.get_75th_percentile(), 750.75)
            self.assertAlmostEqual(snapshot.get_99th_percentile(), 990.99)
            self.assertAlmostEqual(snapshot.size(), 1000)
Exemplo n.º 25
0
 def clear(self):
     """
     Clears the sample, setting all values to zero.
     """
     self.values = [0 for x in xrange(len(self.values))]
     self.count = 0
Exemplo n.º 26
0
 def clear(self):
     """
     Clears the sample, setting all values to zero.
     """
     self.values = [0 for x in xrange(len(self.values))]
     self.count = 0
Exemplo n.º 27
0
 def elapse_minute(self, time_mock):
     for i in xrange(0, 12):
         time_mock.return_value += 5
         self.ewma.tick()
Exemplo n.º 28
0
 def elapse_minute(self, time_mock):
     for i in xrange(0, 12):
         time_mock.return_value += 5
         self.ewma.tick()