def testTheSimplestCase(self): # so we want to count my guests # and they all alike to me, I'm a sociopath # so we want only to count them in time metrica = Metrica(name='guest_visits', axes=[]) my_birthday = datetime.datetime(2006, 2, 7) # my 14th birthday. sorry for that day = datetime.timedelta(days=1) month = datetime.timedelta(days=31) yesterday = my_birthday - day before_yesterday = yesterday - day prev_month = my_birthday - month prev_month_and_a_day_back = prev_month - day metrica.kick(date=prev_month_and_a_day_back) for i in xrange(2): metrica.kick(date=prev_month) for i in xrange(5): metrica.kick(date=before_yesterday) for i in xrange(8): metrica.kick(date=yesterday) for i in xrange(20): # all my friends have come metrica.kick(date=my_birthday) # so, how many of them have visited me? self.assertEquals(metrica.timespan(year=2006, month=1).total(), 3) self.assertEquals(metrica.timespan(year=2006, month=2).total(), 33) self.assertEquals(metrica.timespan(year=2006).timespan(month=2).total(), 33) self.assertEquals(metrica.timespan(year=2006, month=3).total(), 0) self.assertEquals(metrica.timespan(year=2006, month=2, day=7).total(), 20) self.assertEquals(metrica.timespan(year=2006).total(), 36) self.assertEquals(metrica.total(), 36) # looks like that # and also an iterator months = list(metrica.timespan(year=2006).iterate())[:3] self.assertEquals(months, [(1, 3), (2, 33), (3, 0)]) years = list(metrica.timespan().iterate()) self.assertEquals(years, [(2006, 36)])
def testTheSimplestCase(self): # so we want to count my guests # and they all alike to me, I'm a sociopath # so we want only to count them in time metrica = Metrica(name='guest_visits', axes=[]) my_birthday = datetime.datetime(2006, 2, 7) # my 14th birthday. sorry for that day = datetime.timedelta(days=1) month = datetime.timedelta(days=31) yesterday = my_birthday - day before_yesterday = yesterday - day prev_month = my_birthday - month prev_month_and_a_day_back = prev_month - day metrica.kick(date=prev_month_and_a_day_back) for i in xrange(2): metrica.kick(date=prev_month) for i in xrange(5): metrica.kick(date=before_yesterday) for i in xrange(8): metrica.kick(date=yesterday) for i in xrange(20): # all my friends have come metrica.kick(date=my_birthday) # so, how many of them have visited me? self.assertEquals(metrica.timespan(year=2006, month=1).total(), 3) self.assertEquals(metrica.timespan(year=2006, month=2).total(), 33) self.assertEquals( metrica.timespan(year=2006).timespan(month=2).total(), 33) self.assertEquals(metrica.timespan(year=2006, month=3).total(), 0) self.assertEquals( metrica.timespan(year=2006, month=2, day=7).total(), 20) self.assertEquals(metrica.timespan(year=2006).total(), 36) self.assertEquals(metrica.total(), 36) # looks like that # and also an iterator months = list(metrica.timespan(year=2006).iterate())[:3] self.assertEquals(months, [(1, 3), (2, 33), (3, 0)]) years = list(metrica.timespan().iterate()) self.assertEquals(years, [(2006, 36)])
def testWeighedMetrics(self): metrica = Metrica(name='some_weighed_metrics', axes=[], multiplier=100) d1 = datetime.datetime(2010, 2, 7) d2 = datetime.datetime(2010, 2, 8) d3 = datetime.datetime(2010, 2, 9) metrica.kick(date=d1, value=12) metrica.kick(date=d1, value=2) metrica.kick(date=d2, value=7.5) metrica.kick(date=d2, value=0.16) metrica.kick(date=d3) self.assertEquals(metrica.total(), 22.66) self.assertEquals(metrica.timespan(year=2010, month=2, day=8).total(), 7.66)
def testWeighedMetrics(self): metrica = Metrica(name='some_weighed_metrics', axes=[], multiplier=100) d1 = datetime.datetime(2010, 2, 7) d2 = datetime.datetime(2010, 2, 8) d3 = datetime.datetime(2010, 2, 9) metrica.kick(date=d1, value=12) metrica.kick(date=d1, value=2) metrica.kick(date=d2, value=7.5) metrica.kick(date=d2, value=0.16) metrica.kick(date=d3) self.assertEquals(metrica.total(), 22.66) self.assertEquals( metrica.timespan(year=2010, month=2, day=8).total(), 7.66)