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
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
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
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)
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)
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))
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)
def test_validate_intervals_passes(self, remap_months): register = TimeIntervalRegister() register.register(IntervalSet('remap_months', remap_months))
def test_raises_error_on_no_definition(self): register = TimeIntervalRegister() with raises(ValueError): register.get_entry('blobby')