def test_max(self, model): # Add two scenarios scA = Scenario(model, 'Scenario A', size=2) scB = Scenario(model, 'Scenario B', size=5) values = np.arange(366, dtype=np.float64) p1 = DailyProfileParameter(values) p2 = ConstantScenarioParameter(scB, np.arange(scB.size, dtype=np.float64)) p = AggregatedParameter([p1, p2], agg_func='max') p.setup(model) for ts in model.timestepper: month = ts.datetime.month day = ts.datetime.day iday = int((datetime.datetime(2016, month, day) - datetime.datetime(2016, 1, 1)).days) for i in range(scB.size): si = ScenarioIndex(i, np.array([0, i], dtype=np.int32)) np.testing.assert_allclose(p.value(ts, si), max(values[iday], i))
def test_min(self, model): # Add two scenarios scA = Scenario(model, 'Scenario A', size=2) scB = Scenario(model, 'Scenario B', size=5) values = np.arange(366, dtype=np.float64) p1 = DailyProfileParameter(values) p2 = ConstantScenarioParameter(scB, np.arange(scB.size, dtype=np.float64)) p = AggregatedParameter([ p1, ], agg_func='min') p.add(p2) p.setup(model) for ts in model.timestepper: iday = ts.datetime.dayofyear - 1 for i in range(scB.size): si = ScenarioIndex(i, np.array([0, i], dtype=np.int32)) np.testing.assert_allclose(p.value(ts, si), min(values[iday], i))