Example #1
0
    def test_months_load(self, months):
        """Pass a monthly time-interval definition into the register

        """
        register = TimeIntervalRegister()
        register.register(IntervalSet('months', months))

        actual = register.get_entry('months')

        expected_names = \
            ['1_0', '1_1', '1_2', '1_3', '1_4', '1_5',
             '1_6', '1_7', '1_8', '1_9', '1_10', '1_11']

        expected = [Interval('1_0', ('P0M', 'P1M')),
                    Interval('1_1', ('P1M', 'P2M')),
                    Interval('1_2', ('P2M', 'P3M')),
                    Interval('1_3', ('P3M', 'P4M')),
                    Interval('1_4', ('P4M', 'P5M')),
                    Interval('1_5', ('P5M', 'P6M')),
                    Interval('1_6', ('P6M', 'P7M')),
                    Interval('1_7', ('P7M', 'P8M')),
                    Interval('1_8', ('P8M', 'P9M')),
                    Interval('1_9', ('P9M', 'P10M')),
                    Interval('1_10', ('P10M', 'P11M')),
                    Interval('1_11', ('P11M', 'P12M'))]

        for name, interval in zip(expected_names, expected):
            assert actual.data[name] == interval
Example #2
0
    def test_remap_interval_load(self, remap_months):
        register = TimeIntervalRegister()

        intervals = IntervalSet('remap_months', remap_months)

        register.register(intervals)

        actual = register.get_entry('remap_months')

        assert actual == intervals
Example #3
0
    def test_interval_loads(self):
        """Pass a time-interval definition into the register

        """
        data = [{'id': '1_1', 'start': 'PT0H', 'end': 'PT1H'}]

        register = TimeIntervalRegister()
        register.register(IntervalSet('energy_supply_hourly', data))
        assert register.names == ['energy_supply_hourly']

        actual = register.get_entry('energy_supply_hourly')

        element = Interval('1_1', ('PT0H', 'PT1H'), base_year=2010)
        expected = OrderedDict()
        expected['1_1'] = element

        assert actual.data == expected
Example #4
0
    def test_convert_from_month_to_seasons(self, months, seasons, monthly_data,
                                           monthly_data_as_seasons):
        register = TimeIntervalRegister()
        register.register(IntervalSet('months', months))
        register.register(IntervalSet('seasons', seasons))

        actual = register.convert(monthly_data, 'months', 'seasons')
        expected = monthly_data_as_seasons
        assert np.allclose(actual, expected, rtol=1e-05, atol=1e-08)
Example #5
0
    def test_remap_months_to_timeslices(self, months, monthly_data,
                                        remap_months, remap_month_data):
        register = TimeIntervalRegister()
        register.register(IntervalSet('months', months))
        register.register(IntervalSet('remap_months', remap_months))

        actual = register.convert(monthly_data, 'months', 'remap_months')
        expected = remap_month_data

        assert np.allclose(actual, expected, rtol=1e-05, atol=1e-08)
Example #6
0
 def test_interval_load_duplicate_name_raises(self, months):
     """Tests that error is raised if a duplicate name is used
     for an interval set
     """
     register = TimeIntervalRegister()
     register.register(IntervalSet('months', months))
     with raises(ValueError):
         register.register(IntervalSet('months', months))
Example #7
0
    def test_convert_from_hour_to_day(self, twenty_four_hours, one_day):

        data = np.ones(24)

        register = TimeIntervalRegister()
        register.register(IntervalSet('hourly_day', twenty_four_hours))
        register.register(IntervalSet('one_day', one_day))

        actual = register.convert(data, 'hourly_day', 'one_day')
        expected = np.array([24])

        assert np.allclose(actual, expected, rtol=1e-05, atol=1e-08)
Example #8
0
    def test_validate_intervals_passes(self, remap_months):

        register = TimeIntervalRegister()
        register.register(IntervalSet('remap_months', remap_months))
Example #9
0
    def test_raises_error_on_no_definition(self):

        register = TimeIntervalRegister()
        with raises(ValueError):
            register.get_entry('blobby')