Пример #1
0
 def test_fa(self):
     """Test the aggregation of a single daily events to a monthly event."""
     timeserie = TimeseriesStub()
     timeserie.add_value(datetime(2010, 12, 8), 20)
     monthly_events = [event for event in timeserie.monthly_events()]
     expected_monthly_events = [(datetime(2010, 12, 1), 20)]
     self.assertEqual(expected_monthly_events, monthly_events)
Пример #2
0
 def test_fa(self):
     """Test the aggregation of a single daily events to a monthly event."""
     timeserie = TimeseriesStub()
     timeserie.add_value(datetime(2010, 12, 8), 20)
     monthly_events = [event for event in timeserie.monthly_events()]
     expected_monthly_events = [(datetime(2010, 12, 1), 20)]
     self.assertEqual(expected_monthly_events, monthly_events)
Пример #3
0
 def test_d(self):
     """Test the value after the first date & time is zero."""
     timeserie = TimeseriesStub()
     today = datetime(2010, 11, 24)
     timeserie.add_value(today, 20.0)
     tomorrow = today + timedelta(1)
     self.assertAlmostEqual(0.0, timeserie.get_value(tomorrow))
Пример #4
0
 def test_ea(self):
     """Test the value before the third date & time is the second value."""
     today = datetime(2010, 12, 20)
     timeserie = TimeseriesStub((today, 10.0),
                                (today + timedelta(1), 20.0),
                                (today + timedelta(2), 30.0))
     self.assertAlmostEqual(20.0, timeserie.get_value(today + timedelta(1)))
Пример #5
0
 def test_d(self):
     """Test the value after the first date & time is zero."""
     timeserie = TimeseriesStub()
     today = datetime(2010, 11, 24)
     timeserie.add_value(today, 20.0)
     tomorrow = today + timedelta(1)
     self.assertAlmostEqual(0.0, timeserie.get_value(tomorrow))
Пример #6
0
 def test_aa(self):
     """Test the case with timeseries that have different times."""
     today = datetime(2011, 11, 3, 0, 0)
     later_today = datetime(2011, 11, 3, 9, 0)
     timeseries = [
         TimeseriesStub((today, 2)),
         TimeseriesStub((later_today, 4))
     ]
     events = [event for event in enumerate_events(*timeseries)]
     self.assertEqual([((today, 2), (later_today, 4))], events)
Пример #7
0
    def test_c(self):
        """Test the case that the time series contains an empty time series"""
        today = datetime(2010, 12, 2)
        precipitation = TimeseriesStub()
        precipitation.add_value(today, 5)
        evaporation = TimeseriesStub()
        events = [e for e in enumerate_events(precipitation, evaporation)]

        expected_events = [((today, 5), (today, 0))]
        self.assertEqual(expected_events[0], events[0])
Пример #8
0
    def test_c(self):
        """Test the case that the time series contains an empty time series"""
        today = datetime(2010, 12, 2)
        precipitation = TimeseriesStub()
        precipitation.add_value(today, 5)
        evaporation = TimeseriesStub()
        events = [e for e in enumerate_events(precipitation, evaporation)]

        expected_events = [((today, 5), (today, 0))]
        self.assertEqual(expected_events[0], events[0])
Пример #9
0
    def test_a(self):
        """Test the aggregation of a single daily event to an average monthly
        event.

        """
        timeserie = TimeseriesStub()
        timeserie.add_value(datetime(2010, 12, 8), 20)
        avg_monthly_events = [e for e in average_monthly_events(timeserie)]
        expected_avg_monthly_events = [(datetime(2010, 12, 1), 20.0)]
        self.assertEqual(expected_avg_monthly_events, avg_monthly_events)
Пример #10
0
    def test_a(self):
        """Test the aggregation of a single daily event to an average monthly
        event.

        """
        timeserie = TimeseriesStub()
        timeserie.add_value(datetime(2010, 12, 8), 20)
        avg_monthly_events = [e for e in average_monthly_events(timeserie)]
        expected_avg_monthly_events = [(datetime(2010, 12, 1), 20.0)]
        self.assertEqual(expected_avg_monthly_events, avg_monthly_events)
Пример #11
0
 def test_h(self):
     """Test multiply_timeseries on time series."""
     today = datetime(2010, 12, 5)
     tomorrow = datetime(2010, 12, 6)
     timeserie = TimeseriesStub()
     timeserie.add_value(today, 10)
     timeserie.add_value(tomorrow, 20)
     expected_timeserie = [(today, 40), (tomorrow, 80)]
     multiplied_timeseries = \
          list(multiply_timeseries(timeserie, 4).events())
     self.assertEqual(expected_timeserie, multiplied_timeseries)
Пример #12
0
    def test_ga(self):
        """Test add_timeseries on time series with different start and end
        dates.

        """
        today = datetime(2010, 12, 5)
        tomorrow = datetime(2010, 12, 6)
        timeserie_a = TimeseriesStub((today, 10))
        timeserie_b = TimeseriesStub((tomorrow, 40))
        expected_events = [(today, 10), (tomorrow, 40)]
        events = list(add_timeseries(timeserie_a, timeserie_b).events())
        self.assertEqual(expected_events, events)
Пример #13
0
 def test_a(self):
     timeseries = TimeseriesStub((datetime(2011, 1, 26), 0.0),
                                 (datetime(2011, 2, 3), 10.0),
                                 (datetime(2011, 2, 28), 0.0))
     timeseries_restricted = \
          TimeseriesRestrictedStub(timeseries=timeseries,
                                   start_date=datetime(2011, 2, 2),
                                   end_date=datetime(2011, 2, 5))
     expected_timeseries = TimeseriesStub((datetime(2011, 2, 2), 0.0),
                                          (datetime(2011, 2, 3), 10.0),
                                          (datetime(2011, 2, 4), 0.0))
     self.assertEqual(list(expected_timeseries.events()), \
                      list(timeseries_restricted.events()))
Пример #14
0
 def test_a(self):
     timeseries = TimeseriesStub((datetime(2011, 1, 26), 0.0),
                                 (datetime(2011, 2, 3), 10.0),
                                 (datetime(2011, 2, 28), 0.0))
     timeseries_restricted = \
          TimeseriesRestrictedStub(timeseries=timeseries,
                                   start_date=datetime(2011, 2, 2),
                                   end_date=datetime(2011, 2, 5))
     expected_timeseries = TimeseriesStub((datetime(2011, 2, 2), 0.0),
                                          (datetime(2011, 2, 3), 10.0),
                                          (datetime(2011, 2, 4), 0.0))
     self.assertEqual(list(expected_timeseries.events()), \
                      list(timeseries_restricted.events()))
Пример #15
0
    def test_b(self):
        """Test the aggregation of multiple daily events to an average monthly
        event.

        The daily events lie within a single month.

        """
        timeserie = TimeseriesStub()
        timeserie.add_value(datetime(2010, 12, 8), 20)
        timeserie.add_value(datetime(2010, 12, 9), 30)
        timeserie.add_value(datetime(2010, 12, 10), 40)
        avg_monthly_events = [e for e in average_monthly_events(timeserie)]
        expected_avg_monthly_events = [(datetime(2010, 12, 1), 30.0)]
        self.assertEqual(expected_avg_monthly_events, avg_monthly_events)
Пример #16
0
 def test_g(self):
     """Test add_timeseries on time series with same start and end date."""
     today = datetime(2010, 12, 5)
     tomorrow = datetime(2010, 12, 6)
     timeserie_a = TimeseriesStub()
     timeserie_a.add_value(today, 10)
     timeserie_a.add_value(tomorrow, 20)
     timeserie_b = TimeseriesStub()
     timeserie_b.add_value(today, 30)
     timeserie_b.add_value(tomorrow, 40)
     expected_timeserie = [(today, 40), (tomorrow, 60)]
     summed_timeseries = \
          list(add_timeseries(timeserie_a, timeserie_b).events())
     self.assertEqual(expected_timeserie, summed_timeseries)
Пример #17
0
    def test_b(self):
        """Test the case that the time series contain different dates"""
        today = datetime(2010, 12, 2)
        tomorrow = datetime(2010, 12, 3)
        precipitation = TimeseriesStub()
        precipitation.add_value(today, 5)
        evaporation = TimeseriesStub()
        evaporation.add_value(today, 10)
        evaporation.add_value(tomorrow, 30)
        events = [e for e in enumerate_events(precipitation, evaporation)]

        expected_events = [((today, 5), (today, 10)),
                           ((tomorrow, 0), (tomorrow, 30))]
        self.assertEqual(expected_events[0], events[0])
        self.assertEqual(expected_events[1], events[1])
Пример #18
0
 def test_i(self):
     """Test split_timeseries on time series."""
     timeserie = TimeseriesStub()
     timeserie.add_value(datetime(2010, 12, 7), 10)
     timeserie.add_value(datetime(2010, 12, 8), 20)
     timeserie.add_value(datetime(2010, 12, 9), -5)
     expected_negative_timeserie_events = [(datetime(2010, 12, 7), 0),
                                           (datetime(2010, 12, 8), 0),
                                           (datetime(2010, 12, 9), -5)]
     expected_positive_timeserie_events = [(datetime(2010, 12, 7), 10),
                                           (datetime(2010, 12, 8), 20),
                                           (datetime(2010, 12, 9), 0)]
     splitted_timeseries = split_timeseries(timeserie)
     self.assertEqual(expected_negative_timeserie_events, \
                      list(splitted_timeseries[0].events()))
     self.assertEqual(expected_positive_timeserie_events, \
                      list(splitted_timeseries[1].events()))
Пример #19
0
    def test_fc(self):
        """Test the aggregation of a multiple daily events to monthly
        events.

        """
        timeserie = TimeseriesStub()
        timeserie.add_value(datetime(2010, 12, 8), 20)
        timeserie.add_value(datetime(2010, 12, 9), 30)
        timeserie.add_value(datetime(2010, 12, 10), 40)
        timeserie.add_value(datetime(2011, 1, 1), 50)
        monthly_events = [event for event in timeserie.monthly_events()]
        expected_monthly_events = [(datetime(2010, 12, 1), 90),
                                   (datetime(2011, 1, 1), 50)]
        self.assertEqual(expected_monthly_events, monthly_events)
Пример #20
0
 def test_e(self):
     """Test the value before the second date & time is zero."""
     timeserie = TimeseriesStub()
     today = datetime(2010, 11, 24)
     timeserie.add_value(today, 20.0)
     tomorrow = today + timedelta(1)
     day_after_tomorrow = tomorrow + timedelta(1)
     timeserie.add_value(day_after_tomorrow, 30.0)
     self.assertAlmostEqual(0.0, timeserie.get_value(tomorrow))
Пример #21
0
 def test_l(self):
     """Test map_timeseries on a non-empty timeseries."""
     timeseries = TimeseriesStub((datetime(2011, 7, 6), 10),
                                 (datetime(2011, 7, 7), 20),
                                 (datetime(2011, 7, 8), 30))
     expected_events = [(datetime(2011, 7, 6), -10),
                        (datetime(2011, 7, 7), -20),
                        (datetime(2011, 7, 8), -30)]
     map_function = lambda v: -1.0 * abs(v)
     events = list(map_timeseries(timeseries, map_function).events())
     self.assertEqual(expected_events, events)
Пример #22
0
    def test_fc(self):
        """Test the aggregation of a multiple daily events to monthly
        events.

        """
        timeserie = TimeseriesStub()
        timeserie.add_value(datetime(2010, 12, 8), 20)
        timeserie.add_value(datetime(2010, 12, 9), 30)
        timeserie.add_value(datetime(2010, 12, 10), 40)
        timeserie.add_value(datetime(2011, 1, 1), 50)
        monthly_events = [event for event in timeserie.monthly_events()]
        expected_monthly_events = [(datetime(2010, 12, 1), 90),
                                   (datetime(2011, 1, 1), 50)]
        self.assertEqual(expected_monthly_events, monthly_events)
Пример #23
0
    def test_b(self):
        """Test the case that the time series contain different dates"""
        today = datetime(2010, 12, 2)
        tomorrow = datetime(2010, 12, 3)
        precipitation = TimeseriesStub()
        precipitation.add_value(today, 5)
        evaporation = TimeseriesStub()
        evaporation.add_value(today, 10)
        evaporation.add_value(tomorrow, 30)
        events = [e for e in enumerate_events(precipitation, evaporation)]

        expected_events = [((today, 5), (today, 10)),
                           ((tomorrow, 0), (tomorrow, 30))]
        self.assertEqual(expected_events[0], events[0])
        self.assertEqual(expected_events[1], events[1])
Пример #24
0
 def test_f(self):
     """Test missing dates are automatically added as zeros."""
     timeserie = TimeseriesStub()
     today = datetime(2010, 12, 3)
     tomorrow = datetime(2010, 12, 4)
     day_after_tomorrow = datetime(2010, 12, 5)
     timeserie.add_value(today, 20)
     timeserie.add_value(day_after_tomorrow, 30)
     events = [event for event in timeserie.events()]
     expected_events = [(today, 20), (tomorrow, 0),
                        (day_after_tomorrow, 30)]
     self.assertEqual(expected_events, events)
Пример #25
0
    def test_c(self):
        """Test the aggregation of multiple daily events to an average monthly
        event.

        The daily events lie within two consecutive months.

        """
        timeserie = TimeseriesStub()
        timeserie.add_value(datetime(2010, 12, 8), 20)
        timeserie.add_value(datetime(2010, 12, 9), 30)
        timeserie.add_value(datetime(2010, 12, 10), 40)
        timeserie.add_value(datetime(2011, 1, 1), 50)
        avg_monthly_events = [e for e in average_monthly_events(timeserie)]
        expected_avg_monthly_events = [(datetime(2010, 12, 1), 3.75),
                                       (datetime(2011, 1, 1), 50.0)]
        self.assertEqual(expected_avg_monthly_events, avg_monthly_events)
Пример #26
0
 def test_e(self):
     """Test the value before the second date & time is zero."""
     timeserie = TimeseriesStub()
     today = datetime(2010, 11, 24)
     timeserie.add_value(today, 20.0)
     tomorrow = today + timedelta(1)
     day_after_tomorrow = tomorrow + timedelta(1)
     timeserie.add_value(day_after_tomorrow, 30.0)
     self.assertAlmostEqual(0.0, timeserie.get_value(tomorrow))
Пример #27
0
 def test_h(self):
     """Test multiply_timeseries on time series."""
     today = datetime(2010, 12, 5)
     tomorrow = datetime(2010, 12, 6)
     timeserie = TimeseriesStub()
     timeserie.add_value(today, 10)
     timeserie.add_value(tomorrow, 20)
     expected_timeserie = [(today, 40), (tomorrow, 80)]
     multiplied_timeseries = \
          list(multiply_timeseries(timeserie, 4).events())
     self.assertEqual(expected_timeserie, multiplied_timeseries)
Пример #28
0
 def test_f(self):
     """Test missing dates are automatically added as zeros."""
     timeserie = TimeseriesStub()
     today = datetime(2010, 12, 3)
     tomorrow = datetime(2010, 12, 4)
     day_after_tomorrow = datetime(2010, 12, 5)
     timeserie.add_value(today, 20)
     timeserie.add_value(day_after_tomorrow, 30)
     events = [event for event in timeserie.events()]
     expected_events = [(today, 20),
                        (tomorrow, 0),
                        (day_after_tomorrow, 30)]
     self.assertEqual(expected_events, events)
Пример #29
0
 def test_i(self):
     """Test split_timeseries on time series."""
     timeserie = TimeseriesStub()
     timeserie.add_value(datetime(2010, 12, 7), 10)
     timeserie.add_value(datetime(2010, 12, 8), 20)
     timeserie.add_value(datetime(2010, 12, 9), -5)
     expected_negative_timeserie_events = [(datetime(2010, 12, 7), 0),
                                           (datetime(2010, 12, 8), 0),
                                           (datetime(2010, 12, 9), -5)]
     expected_positive_timeserie_events = [(datetime(2010, 12, 7), 10),
                                           (datetime(2010, 12, 8), 20),
                                           (datetime(2010, 12, 9), 0)]
     splitted_timeseries = split_timeseries(timeserie)
     self.assertEqual(expected_negative_timeserie_events, \
                      list(splitted_timeseries[0].events()))
     self.assertEqual(expected_positive_timeserie_events, \
                      list(splitted_timeseries[1].events()))
Пример #30
0
 def test_ea(self):
     """Test the value before the third date & time is the second value."""
     today = datetime(2010, 12, 20)
     timeserie = TimeseriesStub((today, 10.0), (today + timedelta(1), 20.0),
                                (today + timedelta(2), 30.0))
     self.assertAlmostEqual(20.0, timeserie.get_value(today + timedelta(1)))
Пример #31
0
 def test_j(self):
     """Test create_empty_timeseries on an empty timeseries."""
     timeseries = TimeseriesStub()
     self.assertEqual(TimeseriesStub(), create_empty_timeseries(timeseries))
Пример #32
0
 def test_c(self):
     """Test the value on the first date & time is the first value."""
     timeserie = TimeseriesStub()
     today = datetime(2010, 11, 24)
     timeserie.add_value(today, 20.0)
     self.assertAlmostEqual(20.0, timeserie.get_value(today))
Пример #33
0
 def test_k(self):
     """Test create_empty_timeseries on a non-empty timeseries."""
     timeseries = TimeseriesStub((datetime(2011, 1, 26), 10))
     expected_timeseries = TimeseriesStub((datetime(2011, 1, 26), 0.0))
     self.assertEqual(expected_timeseries,
                      create_empty_timeseries(timeseries))
Пример #34
0
    def test_a(self):
        today = datetime(2010, 12, 2)
        tomorrow = datetime(2010, 12, 3)
        precipitation = TimeseriesStub()
        precipitation.add_value(today, 5)
        precipitation.add_value(tomorrow, 10)
        evaporation = TimeseriesStub()
        evaporation.add_value(today, 20)
        evaporation.add_value(tomorrow, 30)
        seepage = TimeseriesStub()
        seepage.add_value(today, 10)
        seepage.add_value(tomorrow, 20)
        events = [
            e for e in enumerate_events(precipitation, evaporation, seepage)
        ]

        expected_events = [((today, 5), (today, 20), (today, 10)),
                           ((tomorrow, 10), (tomorrow, 30), (tomorrow, 20))]
        self.assertEqual(expected_events, events)
Пример #35
0
    def test_e(self):
        """Test enumerate_events returns an empty list with an empty time
        series.

        """
        self.assertEqual([], list(enumerate_events(TimeseriesStub())))
Пример #36
0
    def test_a(self):
        today = datetime(2010, 12, 2)
        tomorrow = datetime(2010, 12, 3)
        precipitation = TimeseriesStub()
        precipitation.add_value(today, 5)
        precipitation.add_value(tomorrow, 10)
        evaporation = TimeseriesStub()
        evaporation.add_value(today, 20)
        evaporation.add_value(tomorrow, 30)
        seepage = TimeseriesStub()
        seepage.add_value(today, 10)
        seepage.add_value(tomorrow, 20)
        events = [e for e in enumerate_events(precipitation,
                                              evaporation,
                                              seepage)]

        expected_events = [((today, 5), (today, 20), (today, 10)),
                           ((tomorrow, 10), (tomorrow, 30), (tomorrow, 20))]
        self.assertEqual(expected_events, events)
Пример #37
0
 def test_c(self):
     """Test the value on the first date & time is the first value."""
     timeserie = TimeseriesStub()
     today = datetime(2010, 11, 24)
     timeserie.add_value(today, 20.0)
     self.assertAlmostEqual(20.0, timeserie.get_value(today))
Пример #38
0
 def test_g(self):
     """Test add_timeseries on time series with same start and end date."""
     today = datetime(2010, 12, 5)
     tomorrow = datetime(2010, 12, 6)
     timeserie_a = TimeseriesStub()
     timeserie_a.add_value(today, 10)
     timeserie_a.add_value(tomorrow, 20)
     timeserie_b = TimeseriesStub()
     timeserie_b.add_value(today, 30)
     timeserie_b.add_value(tomorrow, 40)
     expected_timeserie = [(today, 40), (tomorrow, 60)]
     summed_timeseries = \
          list(add_timeseries(timeserie_a, timeserie_b).events())
     self.assertEqual(expected_timeserie, summed_timeseries)