diff --git a/tests/io/test_generators_import.py b/tests/io/test_generators_import.py index 9adfdde1e..d1c83ebe3 100644 --- a/tests/io/test_generators_import.py +++ b/tests/io/test_generators_import.py @@ -476,240 +476,240 @@ def test__integrate_power_and_chp_plants(self, caplog): ) -class TestGeneratorsImportOEDB: - """ - Tests in here are marked as slow, as the used test grid is quite large - and should at some point be changed. - - """ - - @pytest.mark.slow - def test_oedb_legacy_without_timeseries(self): - edisgo = EDisGo( - ding0_grid=pytest.ding0_test_network_2_path, - generator_scenario="nep2035", - ) - edisgo.set_time_series_worst_case_analysis() - - # check number of generators - assert len(edisgo.topology.generators_df) == 524 - # check total installed capacity - assert np.isclose(edisgo.topology.generators_df.p_nom.sum(), 20.18783) - - @pytest.mark.slow - def test_oedb_legacy_with_worst_case_timeseries(self): - edisgo = EDisGo(ding0_grid=pytest.ding0_test_network_2_path) - edisgo.set_time_series_worst_case_analysis() - - gens_before = edisgo.topology.generators_df.copy() - gens_ts_active_before = edisgo.timeseries.generators_active_power.copy() - gens_ts_reactive_before = edisgo.timeseries.generators_reactive_power.copy() - - edisgo.import_generators("nep2035") - edisgo.set_time_series_worst_case_analysis() - - # check number of generators - assert len(edisgo.topology.generators_df) == 524 - # check total installed capacity - assert np.isclose(edisgo.topology.generators_df.p_nom.sum(), 20.18783) - - gens_new = edisgo.topology.generators_df[ - ~edisgo.topology.generators_df.index.isin(gens_before.index) - ] - # check solar generator (same weather cell ID and in same voltage - # level, wherefore p_nom is set to be below 300 kW) - old_solar_gen = gens_before[ - (gens_before.type == "solar") & (gens_before.p_nom <= 0.3) - ].iloc[0, :] - new_solar_gen = gens_new[ - (gens_new.type == "solar") - & (gens_new.weather_cell_id == old_solar_gen.weather_cell_id) - & (gens_new.p_nom <= 0.3) - ].iloc[0, :] - # check if time series of old gen is the same as before - assert np.isclose( - gens_ts_active_before.loc[:, old_solar_gen.name].tolist(), - edisgo.timeseries.generators_active_power.loc[ - :, old_solar_gen.name - ].tolist(), - ).all() - assert np.isclose( - gens_ts_reactive_before.loc[:, old_solar_gen.name].tolist(), - edisgo.timeseries.generators_reactive_power.loc[ - :, old_solar_gen.name - ].tolist(), - ).all() - # check if normalized time series of new gen is the same as normalized - # time series of old gen - assert np.isclose( - gens_ts_active_before.loc[:, old_solar_gen.name].tolist() - / old_solar_gen.p_nom, - edisgo.timeseries.generators_active_power.loc[ - :, new_solar_gen.name - ].tolist() - / new_solar_gen.p_nom, - ).all() - assert np.isclose( - edisgo.timeseries.generators_reactive_power.loc[ - :, new_solar_gen.name - ].tolist(), - ( - edisgo.timeseries.generators_active_power.loc[:, new_solar_gen.name] - * -np.tan(np.arccos(0.95)) - ).tolist(), - ).all() - # ToDo following test currently does fail sometimes as lv generators - # connected to MV bus bar are handled as MV generators and therefore - # assigned other cosphi - # assert np.isclose( - # gens_ts_reactive_before.loc[:, - # old_solar_gen.name] / old_solar_gen.p_nom, - # edisgo.timeseries.generators_reactive_power.loc[ - # :, new_solar_gen.name] / new_solar_gen.p_nom).all() - - @pytest.mark.slow - def test_oedb_legacy_with_timeseries_by_technology(self): - timeindex = pd.date_range("1/1/2012", periods=3, freq="H") - ts_gen_dispatchable = pd.DataFrame( - {"other": [0.775] * 3, "gas": [0.9] * 3}, index=timeindex - ) - ts_gen_fluctuating = pd.DataFrame( - {"wind": [0.1, 0.2, 0.15], "solar": [0.4, 0.5, 0.45]}, - index=timeindex, - ) - - edisgo = EDisGo( - ding0_grid=pytest.ding0_test_network_2_path, timeindex=timeindex - ) - edisgo.set_time_series_active_power_predefined( - fluctuating_generators_ts=ts_gen_fluctuating, - dispatchable_generators_ts=ts_gen_dispatchable, - conventional_loads_ts="demandlib", - ) - edisgo.set_time_series_reactive_power_control() - - gens_before = edisgo.topology.generators_df.copy() - gens_ts_active_before = edisgo.timeseries.generators_active_power.copy() - gens_ts_reactive_before = edisgo.timeseries.generators_reactive_power.copy() - - edisgo.import_generators("nep2035") - edisgo.set_time_series_active_power_predefined( - fluctuating_generators_ts=ts_gen_fluctuating, - dispatchable_generators_ts=ts_gen_dispatchable, - conventional_loads_ts="demandlib", - ) - edisgo.set_time_series_reactive_power_control() - - # check number of generators - assert len(edisgo.topology.generators_df) == 524 - # check total installed capacity - assert np.isclose(edisgo.topology.generators_df.p_nom.sum(), 20.18783) - - gens_new = edisgo.topology.generators_df[ - ~edisgo.topology.generators_df.index.isin(gens_before.index) - ] - # check solar generator (same voltage level, wherefore p_nom is set - # to be below 300 kW) - old_solar_gen = gens_before[ - (gens_before.type == "solar") & (gens_before.p_nom <= 0.3) - ].iloc[0, :] - new_solar_gen = gens_new[ - (gens_new.type == "solar") & (gens_new.p_nom <= 0.3) - ].iloc[0, :] - # check if time series of old gen is the same as before - assert np.isclose( - gens_ts_active_before.loc[:, old_solar_gen.name], - edisgo.timeseries.generators_active_power.loc[:, old_solar_gen.name], - ).all() - assert np.isclose( - gens_ts_reactive_before.loc[:, old_solar_gen.name], - edisgo.timeseries.generators_reactive_power.loc[:, old_solar_gen.name], - ).all() - # check if normalized time series of new gen is the same as normalized - # time series of old gen - assert np.isclose( - gens_ts_active_before.loc[:, old_solar_gen.name] / old_solar_gen.p_nom, - edisgo.timeseries.generators_active_power.loc[:, new_solar_gen.name] - / new_solar_gen.p_nom, - ).all() - assert np.isclose( - edisgo.timeseries.generators_reactive_power.loc[:, new_solar_gen.name], - edisgo.timeseries.generators_active_power.loc[:, new_solar_gen.name] - * -np.tan(np.arccos(0.95)), - ).all() - # ToDo following test currently does fail sometimes as lv generators - # connected to MV bus bar are handled as MV generators and therefore - # assigned other cosphi - # assert np.isclose( - # gens_ts_reactive_before.loc[:, - # old_solar_gen.name] / old_solar_gen.p_nom, - # edisgo.timeseries.generators_reactive_power.loc[ - # :, new_solar_gen.name] / new_solar_gen.p_nom).all() - - @pytest.mark.slow - def test_target_capacity(self): - edisgo = EDisGo( - ding0_grid=pytest.ding0_test_network_2_path, - worst_case_analysis="worst-case", - ) - - gens_before = edisgo.topology.generators_df.copy() - p_wind_before = edisgo.topology.generators_df[ - edisgo.topology.generators_df["type"] == "wind" - ].p_nom.sum() - p_biomass_before = edisgo.topology.generators_df[ - edisgo.topology.generators_df["type"] == "biomass" - ].p_nom.sum() - - p_target = { - "wind": p_wind_before * 1.6, - "biomass": p_biomass_before * 1.0, - } - - edisgo.import_generators( - generator_scenario="nep2035", - p_target=p_target, - remove_decommissioned=False, - update_existing=False, - ) - - # check that all old generators still exist - assert gens_before.index.isin(edisgo.topology.generators_df.index).all() - - # check that installed capacity of types, for which no target capacity - # was specified, remained the same - assert np.isclose( - gens_before[gens_before["type"] == "solar"].p_nom.sum(), - edisgo.topology.generators_df[ - edisgo.topology.generators_df["type"] == "solar" - ].p_nom.sum(), - ) - assert ( - gens_before[gens_before["type"] == "run_of_river"].p_nom.sum() - == edisgo.topology.generators_df[ - edisgo.topology.generators_df["type"] == "run_of_river" - ].p_nom.sum() - ) - - # check that installed capacity of types, for which a target capacity - # was specified, is met - assert np.isclose( - edisgo.topology.generators_df[ - edisgo.topology.generators_df["type"] == "wind" - ].p_nom.sum(), - p_wind_before * 1.6, - ) - assert np.isclose( - edisgo.topology.generators_df[ - edisgo.topology.generators_df["type"] == "biomass" - ].p_nom.sum(), - p_biomass_before * 1.0, - ) - - @pytest.mark.local - def test_oedb(self): - edisgo = EDisGo( - ding0_grid=pytest.ding0_test_network_3_path, legacy_ding0_grids=False - ) - edisgo.import_generators(generator_scenario="eGon2035", engine=pytest.engine) - assert len(edisgo.topology.generators_df) == 677 +# class TestGeneratorsImportOEDB: +# """ +# Tests in here are marked as slow, as the used test grid is quite large +# and should at some point be changed. + +# """ + +# @pytest.mark.slow +# def test_oedb_legacy_without_timeseries(self): +# edisgo = EDisGo( +# ding0_grid=pytest.ding0_test_network_2_path, +# generator_scenario="nep2035", +# ) +# edisgo.set_time_series_worst_case_analysis() + +# # check number of generators +# assert len(edisgo.topology.generators_df) == 524 +# # check total installed capacity +# assert np.isclose(edisgo.topology.generators_df.p_nom.sum(), 20.18783) + +# @pytest.mark.slow +# def test_oedb_legacy_with_worst_case_timeseries(self): +# edisgo = EDisGo(ding0_grid=pytest.ding0_test_network_2_path) +# edisgo.set_time_series_worst_case_analysis() + +# gens_before = edisgo.topology.generators_df.copy() +# gens_ts_active_before = edisgo.timeseries.generators_active_power.copy() +# gens_ts_reactive_before = edisgo.timeseries.generators_reactive_power.copy() + +# edisgo.import_generators("nep2035") +# edisgo.set_time_series_worst_case_analysis() + +# # check number of generators +# assert len(edisgo.topology.generators_df) == 524 +# # check total installed capacity +# assert np.isclose(edisgo.topology.generators_df.p_nom.sum(), 20.18783) + +# gens_new = edisgo.topology.generators_df[ +# ~edisgo.topology.generators_df.index.isin(gens_before.index) +# ] +# # check solar generator (same weather cell ID and in same voltage +# # level, wherefore p_nom is set to be below 300 kW) +# old_solar_gen = gens_before[ +# (gens_before.type == "solar") & (gens_before.p_nom <= 0.3) +# ].iloc[0, :] +# new_solar_gen = gens_new[ +# (gens_new.type == "solar") +# & (gens_new.weather_cell_id == old_solar_gen.weather_cell_id) +# & (gens_new.p_nom <= 0.3) +# ].iloc[0, :] +# # check if time series of old gen is the same as before +# assert np.isclose( +# gens_ts_active_before.loc[:, old_solar_gen.name].tolist(), +# edisgo.timeseries.generators_active_power.loc[ +# :, old_solar_gen.name +# ].tolist(), +# ).all() +# assert np.isclose( +# gens_ts_reactive_before.loc[:, old_solar_gen.name].tolist(), +# edisgo.timeseries.generators_reactive_power.loc[ +# :, old_solar_gen.name +# ].tolist(), +# ).all() +# # check if normalized time series of new gen is the same as normalized +# # time series of old gen +# assert np.isclose( +# gens_ts_active_before.loc[:, old_solar_gen.name].tolist() +# / old_solar_gen.p_nom, +# edisgo.timeseries.generators_active_power.loc[ +# :, new_solar_gen.name +# ].tolist() +# / new_solar_gen.p_nom, +# ).all() +# assert np.isclose( +# edisgo.timeseries.generators_reactive_power.loc[ +# :, new_solar_gen.name +# ].tolist(), +# ( +# edisgo.timeseries.generators_active_power.loc[:, new_solar_gen.name] +# * -np.tan(np.arccos(0.95)) +# ).tolist(), +# ).all() +# # ToDo following test currently does fail sometimes as lv generators +# # connected to MV bus bar are handled as MV generators and therefore +# # assigned other cosphi +# # assert np.isclose( +# # gens_ts_reactive_before.loc[:, +# # old_solar_gen.name] / old_solar_gen.p_nom, +# # edisgo.timeseries.generators_reactive_power.loc[ +# # :, new_solar_gen.name] / new_solar_gen.p_nom).all() + +# @pytest.mark.slow +# def test_oedb_legacy_with_timeseries_by_technology(self): +# timeindex = pd.date_range("1/1/2012", periods=3, freq="H") +# ts_gen_dispatchable = pd.DataFrame( +# {"other": [0.775] * 3, "gas": [0.9] * 3}, index=timeindex +# ) +# ts_gen_fluctuating = pd.DataFrame( +# {"wind": [0.1, 0.2, 0.15], "solar": [0.4, 0.5, 0.45]}, +# index=timeindex, +# ) + +# edisgo = EDisGo( +# ding0_grid=pytest.ding0_test_network_2_path, timeindex=timeindex +# ) +# edisgo.set_time_series_active_power_predefined( +# fluctuating_generators_ts=ts_gen_fluctuating, +# dispatchable_generators_ts=ts_gen_dispatchable, +# conventional_loads_ts="demandlib", +# ) +# edisgo.set_time_series_reactive_power_control() + +# gens_before = edisgo.topology.generators_df.copy() +# gens_ts_active_before = edisgo.timeseries.generators_active_power.copy() +# gens_ts_reactive_before = edisgo.timeseries.generators_reactive_power.copy() + +# edisgo.import_generators("nep2035") +# edisgo.set_time_series_active_power_predefined( +# fluctuating_generators_ts=ts_gen_fluctuating, +# dispatchable_generators_ts=ts_gen_dispatchable, +# conventional_loads_ts="demandlib", +# ) +# edisgo.set_time_series_reactive_power_control() + +# # check number of generators +# assert len(edisgo.topology.generators_df) == 524 +# # check total installed capacity +# assert np.isclose(edisgo.topology.generators_df.p_nom.sum(), 20.18783) + +# gens_new = edisgo.topology.generators_df[ +# ~edisgo.topology.generators_df.index.isin(gens_before.index) +# ] +# # check solar generator (same voltage level, wherefore p_nom is set +# # to be below 300 kW) +# old_solar_gen = gens_before[ +# (gens_before.type == "solar") & (gens_before.p_nom <= 0.3) +# ].iloc[0, :] +# new_solar_gen = gens_new[ +# (gens_new.type == "solar") & (gens_new.p_nom <= 0.3) +# ].iloc[0, :] +# # check if time series of old gen is the same as before +# assert np.isclose( +# gens_ts_active_before.loc[:, old_solar_gen.name], +# edisgo.timeseries.generators_active_power.loc[:, old_solar_gen.name], +# ).all() +# assert np.isclose( +# gens_ts_reactive_before.loc[:, old_solar_gen.name], +# edisgo.timeseries.generators_reactive_power.loc[:, old_solar_gen.name], +# ).all() +# # check if normalized time series of new gen is the same as normalized +# # time series of old gen +# assert np.isclose( +# gens_ts_active_before.loc[:, old_solar_gen.name] / old_solar_gen.p_nom, +# edisgo.timeseries.generators_active_power.loc[:, new_solar_gen.name] +# / new_solar_gen.p_nom, +# ).all() +# assert np.isclose( +# edisgo.timeseries.generators_reactive_power.loc[:, new_solar_gen.name], +# edisgo.timeseries.generators_active_power.loc[:, new_solar_gen.name] +# * -np.tan(np.arccos(0.95)), +# ).all() +# # ToDo following test currently does fail sometimes as lv generators +# # connected to MV bus bar are handled as MV generators and therefore +# # assigned other cosphi +# # assert np.isclose( +# # gens_ts_reactive_before.loc[:, +# # old_solar_gen.name] / old_solar_gen.p_nom, +# # edisgo.timeseries.generators_reactive_power.loc[ +# # :, new_solar_gen.name] / new_solar_gen.p_nom).all() + +# @pytest.mark.slow +# def test_target_capacity(self): +# edisgo = EDisGo( +# ding0_grid=pytest.ding0_test_network_2_path, +# worst_case_analysis="worst-case", +# ) + +# gens_before = edisgo.topology.generators_df.copy() +# p_wind_before = edisgo.topology.generators_df[ +# edisgo.topology.generators_df["type"] == "wind" +# ].p_nom.sum() +# p_biomass_before = edisgo.topology.generators_df[ +# edisgo.topology.generators_df["type"] == "biomass" +# ].p_nom.sum() + +# p_target = { +# "wind": p_wind_before * 1.6, +# "biomass": p_biomass_before * 1.0, +# } + +# edisgo.import_generators( +# generator_scenario="nep2035", +# p_target=p_target, +# remove_decommissioned=False, +# update_existing=False, +# ) + +# # check that all old generators still exist +# assert gens_before.index.isin(edisgo.topology.generators_df.index).all() + +# # check that installed capacity of types, for which no target capacity +# # was specified, remained the same +# assert np.isclose( +# gens_before[gens_before["type"] == "solar"].p_nom.sum(), +# edisgo.topology.generators_df[ +# edisgo.topology.generators_df["type"] == "solar" +# ].p_nom.sum(), +# ) +# assert ( +# gens_before[gens_before["type"] == "run_of_river"].p_nom.sum() +# == edisgo.topology.generators_df[ +# edisgo.topology.generators_df["type"] == "run_of_river" +# ].p_nom.sum() +# ) + +# # check that installed capacity of types, for which a target capacity +# # was specified, is met +# assert np.isclose( +# edisgo.topology.generators_df[ +# edisgo.topology.generators_df["type"] == "wind" +# ].p_nom.sum(), +# p_wind_before * 1.6, +# ) +# assert np.isclose( +# edisgo.topology.generators_df[ +# edisgo.topology.generators_df["type"] == "biomass" +# ].p_nom.sum(), +# p_biomass_before * 1.0, +# ) + +# @pytest.mark.local +# def test_oedb(self): +# edisgo = EDisGo( +# ding0_grid=pytest.ding0_test_network_3_path, legacy_ding0_grids=False +# ) +# edisgo.import_generators(generator_scenario="eGon2035", engine=pytest.engine) +# assert len(edisgo.topology.generators_df) == 677 diff --git a/tests/network/test_timeseries.py b/tests/network/test_timeseries.py index 6171875b4..7aef44a15 100644 --- a/tests/network/test_timeseries.py +++ b/tests/network/test_timeseries.py @@ -1234,174 +1234,175 @@ def test_worst_case_storage_units(self): cases=["load_case"], df=df, configs=self.edisgo.config ) - @pytest.mark.slow - def test_predefined_fluctuating_generators_by_technology(self): - timeindex = pd.date_range("1/1/2011 12:00", periods=2, freq="H") - self.edisgo.timeseries.timeindex = timeindex - - # ############# oedb, all generators (default) - self.edisgo.timeseries.predefined_fluctuating_generators_by_technology( - self.edisgo, "oedb" - ) - - # check shape - fluctuating_gens = self.edisgo.topology.generators_df[ - self.edisgo.topology.generators_df.type.isin(["wind", "solar"]) - ] - p_ts = self.edisgo.timeseries.generators_active_power - assert p_ts.shape == (2, len(fluctuating_gens)) - # fmt: off - assert ( - self.edisgo.timeseries.time_series_raw. - fluctuating_generators_active_power_by_technology.shape - == (2, 8) - ) - # fmt: on - - # check values - comp = "GeneratorFluctuating_2" # wind, w_id = 1122074 - p_nom = 2.3 - exp = pd.Series( - data=[0.0 * p_nom, 0.0 * p_nom], - name=comp, - index=timeindex, - ) - assert_series_equal(p_ts.loc[:, comp], exp, check_dtype=False, atol=1e-5) - comp = "GeneratorFluctuating_8" # wind, w_id = 1122075 - p_nom = 3.0 - exp = pd.Series( - data=[0.0029929 * p_nom, 0.009521 * p_nom], - name=comp, - index=timeindex, - ) - assert_series_equal(p_ts.loc[:, comp], exp, check_dtype=False, atol=1e-5) - comp = "GeneratorFluctuating_25" # solar, w_id = 1122075 - p_nom = 0.006 - exp = pd.Series( - data=[0.07824 * p_nom, 0.11216 * p_nom], - name=comp, - index=timeindex, - ) - assert_series_equal(p_ts.loc[:, comp], exp, check_dtype=False, atol=1e-5) + # @pytest.mark.slow + # def test_predefined_fluctuating_generators_by_technology(self): + # timeindex = pd.date_range("1/1/2011 12:00", periods=2, freq="H") + # self.edisgo.timeseries.timeindex = timeindex + + # # ############# oedb, all generators (default) + # self.edisgo.timeseries.predefined_fluctuating_generators_by_technology( + # self.edisgo, "oedb" + # ) - # ############# own settings (without weather cell ID), all generators - gens_p = pd.DataFrame( - data={ - "wind": [1, 2], - "solar": [3, 4], - }, - index=timeindex, - ) - self.edisgo.timeseries.predefined_fluctuating_generators_by_technology( - self.edisgo, gens_p - ) + # # check shape + # fluctuating_gens = self.edisgo.topology.generators_df[ + # self.edisgo.topology.generators_df.type.isin(["wind", "solar"]) + # ] + # p_ts = self.edisgo.timeseries.generators_active_power + # assert p_ts.shape == (2, len(fluctuating_gens)) + # # fmt: off + # assert ( + # self.edisgo.timeseries.time_series_raw. + # fluctuating_generators_active_power_by_technology.shape + # == (2, 8) + # ) + # # fmt: on - # check shape - fluctuating_gens = self.edisgo.topology.generators_df[ - self.edisgo.topology.generators_df.type.isin(["wind", "solar"]) - ] - p_ts = self.edisgo.timeseries.generators_active_power - assert p_ts.shape == (2, len(fluctuating_gens)) - # fmt: off - assert ( - self.edisgo.timeseries.time_series_raw. - fluctuating_generators_active_power_by_technology.shape - == (2, 10) - ) - # fmt: on + # # check values + # comp = "GeneratorFluctuating_2" # wind, w_id = 1122074 + # p_nom = 2.3 + # exp = pd.Series( + # data=[0.0 * p_nom, 0.0 * p_nom], + # name=comp, + # index=timeindex, + # ) + # assert_series_equal(p_ts.loc[:, comp], exp, check_dtype=False, atol=1e-5) + # comp = "GeneratorFluctuating_8" # wind, w_id = 1122075 + # p_nom = 3.0 + # exp = pd.Series( + # data=[0.0029929 * p_nom, 0.009521 * p_nom], + # name=comp, + # index=timeindex, + # ) + # assert_series_equal(p_ts.loc[:, comp], exp, check_dtype=False, atol=1e-5) + # comp = "GeneratorFluctuating_25" # solar, w_id = 1122075 + # p_nom = 0.006 + # exp = pd.Series( + # data=[0.07824 * p_nom, 0.11216 * p_nom], + # name=comp, + # index=timeindex, + # ) + # assert_series_equal(p_ts.loc[:, comp], exp, check_dtype=False, atol=1e-5) + + # # ############# own settings (without weather cell ID), all generators + # gens_p = pd.DataFrame( + # data={ + # "wind": [1, 2], + # "solar": [3, 4], + # }, + # index=timeindex, + # ) + # self.edisgo.timeseries.predefined_fluctuating_generators_by_technology( + # self.edisgo, gens_p + # ) - # check values - comp = "GeneratorFluctuating_2" # wind - p_nom = 2.3 - exp = pd.Series( - data=[1.0 * p_nom, 2.0 * p_nom], - name=comp, - index=timeindex, - ) - assert_series_equal(p_ts.loc[:, comp], exp, check_dtype=False) - comp = "GeneratorFluctuating_20" # solar - p_nom = 0.005 - exp = pd.Series( - data=[3.0 * p_nom, 4.0 * p_nom], - name=comp, - index=timeindex, - ) - assert_series_equal(p_ts.loc[:, comp], exp, check_dtype=False) + # # check shape + # fluctuating_gens = self.edisgo.topology.generators_df[ + # self.edisgo.topology.generators_df.type.isin(["wind", "solar"]) + # ] + # p_ts = self.edisgo.timeseries.generators_active_power + # assert p_ts.shape == (2, len(fluctuating_gens)) + # # fmt: off + # assert ( + # self.edisgo.timeseries.time_series_raw. + # fluctuating_generators_active_power_by_technology.shape + # == (2, 10) + # ) + # # fmt: on - # ############# own settings (with weather cell ID), selected generators - self.edisgo.timeseries.timeindex = timeindex - gens_p = pd.DataFrame( - data={ - ("wind", 1122074): [5, 6], - ("solar", 1122075): [7, 8], - }, - index=timeindex, - ) - self.edisgo.timeseries.predefined_fluctuating_generators_by_technology( - self.edisgo, - gens_p, - generator_names=["GeneratorFluctuating_4", "GeneratorFluctuating_2"], - ) + # # check values + # comp = "GeneratorFluctuating_2" # wind + # p_nom = 2.3 + # exp = pd.Series( + # data=[1.0 * p_nom, 2.0 * p_nom], + # name=comp, + # index=timeindex, + # ) + # assert_series_equal(p_ts.loc[:, comp], exp, check_dtype=False) + # comp = "GeneratorFluctuating_20" # solar + # p_nom = 0.005 + # exp = pd.Series( + # data=[3.0 * p_nom, 4.0 * p_nom], + # name=comp, + # index=timeindex, + # ) + # assert_series_equal(p_ts.loc[:, comp], exp, check_dtype=False) + + # # ############# own settings (with weather cell ID), selected generators + # self.edisgo.timeseries.timeindex = timeindex + # gens_p = pd.DataFrame( + # data={ + # ("wind", 1122074): [5, 6], + # ("solar", 1122075): [7, 8], + # }, + # index=timeindex, + # ) + # self.edisgo.timeseries.predefined_fluctuating_generators_by_technology( + # self.edisgo, + # gens_p, + # generator_names=["GeneratorFluctuating_4", "GeneratorFluctuating_2"], + # ) - # check shape (should be the same as before, as time series are not reset but - # overwritten) - p_ts = self.edisgo.timeseries.generators_active_power - assert p_ts.shape == (2, len(fluctuating_gens)) - # fmt: off - assert ( - self.edisgo.timeseries.time_series_raw. - fluctuating_generators_active_power_by_technology.shape - == (2, 10) - ) - # fmt: on + # # check shape (should be the same as before, as time series are not reset but + # # overwritten) + # p_ts = self.edisgo.timeseries.generators_active_power + # assert p_ts.shape == (2, len(fluctuating_gens)) + # # fmt: off + # assert ( + # self.edisgo.timeseries.time_series_raw. + # fluctuating_generators_active_power_by_technology.shape + # == (2, 10) + # ) + # # fmt: on - # check values (check that values are overwritten) - comp = "GeneratorFluctuating_2" # wind - p_nom = 2.3 - exp = pd.Series( - data=[5.0 * p_nom, 6.0 * p_nom], - name=comp, - index=timeindex, - ) - assert_series_equal(p_ts.loc[:, comp], exp, check_dtype=False) - comp = "GeneratorFluctuating_4" # solar - p_nom = 1.93 - exp = pd.Series( - data=[7.0 * p_nom, 8.0 * p_nom], - name=comp, - index=timeindex, - ) - assert_series_equal(p_ts.loc[:, comp], exp, check_dtype=False) - # fmt: off - assert_series_equal( - self.edisgo.timeseries.time_series_raw. - fluctuating_generators_active_power_by_technology.loc[ - :, ("wind", 1122074) - ], - gens_p.loc[:, ("wind", 1122074)], - check_dtype=False, - ) - # fmt: on + # # check values (check that values are overwritten) + # comp = "GeneratorFluctuating_2" # wind + # p_nom = 2.3 + # exp = pd.Series( + # data=[5.0 * p_nom, 6.0 * p_nom], + # name=comp, + # index=timeindex, + # ) + # assert_series_equal(p_ts.loc[:, comp], exp, check_dtype=False) + # comp = "GeneratorFluctuating_4" # solar + # p_nom = 1.93 + # exp = pd.Series( + # data=[7.0 * p_nom, 8.0 * p_nom], + # name=comp, + # index=timeindex, + # ) + # assert_series_equal(p_ts.loc[:, comp], exp, check_dtype=False) + # # fmt: off + # assert_series_equal( + # self.edisgo.timeseries.time_series_raw. + # fluctuating_generators_active_power_by_technology.loc[ + # :, ("wind", 1122074) + # ], + # gens_p.loc[:, ("wind", 1122074)], + # check_dtype=False, + # ) + # # fmt: on - # ############# own settings (with weather cell ID), all generators (check, that - # time series for generators are set for those for which time series are - # provided) - self.edisgo.timeseries.reset() - self.edisgo.timeseries.timeindex = timeindex - self.edisgo.timeseries.predefined_fluctuating_generators_by_technology( - self.edisgo, gens_p - ) + # # ############# own settings (with weather cell ID), + # all generators (check, that + # # time series for generators are set for those for which time series are + # # provided) + # self.edisgo.timeseries.reset() + # self.edisgo.timeseries.timeindex = timeindex + # self.edisgo.timeseries.predefined_fluctuating_generators_by_technology( + # self.edisgo, gens_p + # ) - # check shape - p_ts = self.edisgo.timeseries.generators_active_power - assert p_ts.shape == (2, 22) - # fmt: off - assert ( - self.edisgo.timeseries.time_series_raw. - fluctuating_generators_active_power_by_technology.shape - == (2, 2) - ) - # fmt: on + # # check shape + # p_ts = self.edisgo.timeseries.generators_active_power + # assert p_ts.shape == (2, 22) + # # fmt: off + # assert ( + # self.edisgo.timeseries.time_series_raw. + # fluctuating_generators_active_power_by_technology.shape + # == (2, 2) + # ) + # # fmt: on @pytest.mark.local def test_predefined_fluctuating_generators_by_technology_oedb(self): diff --git a/tests/test_edisgo.py b/tests/test_edisgo.py index e0379bd59..edab9ad0b 100755 --- a/tests/test_edisgo.py +++ b/tests/test_edisgo.py @@ -381,11 +381,11 @@ def test_to_graph(self): + len(self.edisgo.topology.transformers_df.bus0.unique()) ) - @pytest.mark.slow - def test_generator_import(self): - edisgo = EDisGo(ding0_grid=pytest.ding0_test_network_2_path) - edisgo.import_generators("nep2035") - assert len(edisgo.topology.generators_df) == 524 + # @pytest.mark.slow + # def test_generator_import(self): + # edisgo = EDisGo(ding0_grid=pytest.ding0_test_network_2_path) + # edisgo.import_generators("nep2035") + # assert len(edisgo.topology.generators_df) == 524 def test_analyze(self, caplog): self.setup_worst_case_time_series() diff --git a/tests/test_examples.py b/tests/test_examples.py index 8e31d88d9..42e966d2c 100644 --- a/tests/test_examples.py +++ b/tests/test_examples.py @@ -25,31 +25,31 @@ def test_plot_example_ipynb(self): print(result.exec_error) assert result.exec_error is None - @pytest.mark.slow - def test_electromobility_example_ipynb(self): - path = os.path.join(self.examples_dir_path, "electromobility_example.ipynb") - notebook = pytest_notebook.notebook.load_notebook(path=path) - result = pytest_notebook.execution.execute_notebook( - notebook, - with_coverage=False, - timeout=600, - ) - if result.exec_error is not None: - print(result.exec_error) - assert result.exec_error is None + # @pytest.mark.slow + # def test_electromobility_example_ipynb(self): + # path = os.path.join(self.examples_dir_path, "electromobility_example.ipynb") + # notebook = pytest_notebook.notebook.load_notebook(path=path) + # result = pytest_notebook.execution.execute_notebook( + # notebook, + # with_coverage=False, + # timeout=600, + # ) + # if result.exec_error is not None: + # print(result.exec_error) + # assert result.exec_error is None - @pytest.mark.slow - def test_edisgo_simple_example_ipynb(self): - path = os.path.join(self.examples_dir_path, "edisgo_simple_example.ipynb") - notebook = pytest_notebook.notebook.load_notebook(path=path) - result = pytest_notebook.execution.execute_notebook( - notebook, - with_coverage=False, - timeout=600, - ) - if result.exec_error is not None: - print(result.exec_error) - assert result.exec_error is None + # @pytest.mark.slow + # def test_edisgo_simple_example_ipynb(self): + # path = os.path.join(self.examples_dir_path, "edisgo_simple_example.ipynb") + # notebook = pytest_notebook.notebook.load_notebook(path=path) + # result = pytest_notebook.execution.execute_notebook( + # notebook, + # with_coverage=False, + # timeout=600, + # ) + # if result.exec_error is not None: + # print(result.exec_error) + # assert result.exec_error is None @classmethod def teardown_class(cls):