예제 #1
0
 def setUp(self):
     self.logstats = LogStats()
예제 #2
0
class SimpleLogTest(unittest.TestCase):

    def setUp(self):
        self.logstats = LogStats()

    def test_median_1(self):
        self.logstats.add_event(1303320839.166726, 70)
        self.logstats.add_event(1303320839.166726, 80)
        self.logstats.add_event(1303320839.166726, 90)
        self.logstats.add_event(1303320839.166726, 100) # Median
        self.logstats.add_event(1303320839.166726, 110)
        self.logstats.add_event(1303320839.166726, 120)
        self.logstats.add_event(1303320839.166726, 150)
        self.assertEqual(self.logstats.get_median(), 100)

    def test_median_2(self):
        self.logstats.add_event(1303320839.166726, 100) # Median
        self.assertEqual(self.logstats.get_median(), 100)

    def test_median_3(self):
        self.logstats.add_event(1303320839.166726, 50)
        self.logstats.add_event(1303320839.166726, 100)
        self.logstats.add_event(1303320839.166726, 100) # Median
        self.logstats.add_event(1303320839.166726, 100)
        self.logstats.add_event(1303320839.166726, 150)
        self.assertEqual(self.logstats.get_median(), 100)

    def test_save_load(self):
        self.logstats.add_event(1303320839.166726, 50)
        self.logstats.add_event(1303320839.166726, 100)
        self.logstats.add_event(1303320839.166726, 100) # Median
        self.logstats.add_event(1303320839.166726, 100)
        self.logstats.add_event(1303320839.166726, 150)

        self.logstats.save('/tmp/logstats.dump')

        self.logstats.reset()

        self.assertRaises(KeyError, self.logstats.get_median, 100)

        self.logstats.load('/tmp/logstats.dump')

        self.assertEqual(self.logstats.get_median(), 100)

    def test_aggregated(self):
        self.logstats.add_aggregated_events({"50": 10, "100": 20, "150": 10})

        self.assertEqual(self.logstats.get_median(), 100)

        self.assertRaises(ValueError, self.logstats.add_aggregated_events, {"55": 10, "107": 20, "153": 10})

    def assert_median(self, median):
        self.assertEquals(median, self.logstats.get_median())
        self.assertEquals(median, self.logstats.get_percentile(50))

    def test_median(self):
        self.logstats.add_event(1303000010, 200)
        self.assert_median(200)
        self.logstats.add_event(1303000020, 100)
        self.assert_median(150)
        self.logstats.add_event(1303000030, 50)
        self.assert_median(100)

    def test_median_with_resolution(self):
        self.logstats.add_event(1303000010, 109)
        self.assert_median(100)

        self.logstats.add_event(1303000020, 204)
        self.assert_median(150)

        self.logstats.add_event(1303000030, 1000)
        self.assert_median(200)

    def test_invalid(self):
        self.assertRaises(ValueError, self.logstats.add_event, 1303320839.166726, -20)