def test_sum(): a = TimeSeries() a.set(datetime.datetime(2015, 3, 1), 1) a.set(datetime.datetime(2015, 3, 2), 0) a.set(datetime.datetime(2015, 3, 3), 1) a.set(datetime.datetime(2015, 3, 4), 0) b = TimeSeries() b.set(datetime.datetime(2015, 3, 1), 0) b.set(datetime.datetime(2015, 3, 1, 12), 1) b.set(datetime.datetime(2015, 3, 2), 0) b.set(datetime.datetime(2015, 3, 2, 12), 1) b.set(datetime.datetime(2015, 3, 3), 0) c = TimeSeries() c.set(datetime.datetime(2015, 3, 1), 0) c.set(datetime.datetime(2015, 3, 1, 18), 1) c.set(datetime.datetime(2015, 3, 5), 0) ts_sum = TimeSeries.from_many_sum([a, b, c]) # test before domain, should give default value assert ts_sum[datetime.datetime(2015, 2, 24)] == 0 # test values throughout sum assert ts_sum[datetime.datetime(2015, 3, 1)] == 1 assert ts_sum[datetime.datetime(2015, 3, 1, 6)] == 1 assert ts_sum[datetime.datetime(2015, 3, 1, 12)] == 2 assert ts_sum[datetime.datetime(2015, 3, 1, 13)] == 2 assert ts_sum[datetime.datetime(2015, 3, 1, 17)] == 2 assert ts_sum[datetime.datetime(2015, 3, 1, 18)] == 3 assert ts_sum[datetime.datetime(2015, 3, 1, 19)] == 3 assert ts_sum[datetime.datetime(2015, 3, 3)] == 2 assert ts_sum[datetime.datetime(2015, 3, 4)] == 1 assert ts_sum[datetime.datetime(2015, 3, 4, 18)] == 1 assert ts_sum[datetime.datetime(2015, 3, 5)] == 0 # test after domain, should give last value assert ts_sum[datetime.datetime(2015, 3, 6)] == 0 baseline = 0 for ts in [a, b, c]: for i, j in ts: print i.isoformat(), j + baseline print '' baseline += 1.2 ts_sum = TimeSeries.from_many_sum([a, b, c]) for i, j in ts_sum: print i.isoformat(), j + baseline
def example_sum(): a = TimeSeries() a.set(datetime.datetime(2015, 3, 1), 1) a.set(datetime.datetime(2015, 3, 2), 0) a.set(datetime.datetime(2015, 3, 3), 1) a.set(datetime.datetime(2015, 3, 5), 0) a.set(datetime.datetime(2015, 3, 6), 0) b = TimeSeries() b.set(datetime.datetime(2015, 3, 1), 0) b.set(datetime.datetime(2015, 3, 2, 12), 1) b.set(datetime.datetime(2015, 3, 3, 13, 13), 0) b.set(datetime.datetime(2015, 3, 4), 1) b.set(datetime.datetime(2015, 3, 5), 0) b.set(datetime.datetime(2015, 3, 5, 12), 1) b.set(datetime.datetime(2015, 3, 5, 19), 0) c = TimeSeries() c.set(datetime.datetime(2015, 3, 1, 17), 0) c.set(datetime.datetime(2015, 3, 1, 21), 1) c.set(datetime.datetime(2015, 3, 2, 13, 13), 0) c.set(datetime.datetime(2015, 3, 4, 18), 1) c.set(datetime.datetime(2015, 3, 5, 4), 0) # output the three time series for i, ts in enumerate([a, b, c]): for (t0, v0), (t1, v1) in ts.iterintervals(1): print t0.isoformat(), i print t1.isoformat(), i print '' for (t0, v0), (t1, v1) in ts.iterintervals(0): print t0.isoformat(), i print t1.isoformat(), i print '' # output the sum # for dt, i in sum([a, b, c]): # print dt.isoformat(), i # print '' for dt, i in TimeSeries.from_many_sum([a, b, c]): print dt.isoformat(), i