2626PGM_ASYM_OUTPUT_FILE = PGM_PP_TEST_DATA / "pgm_asym_output_data.json"
2727PP_V2_NET_OUTPUT_FILE = PGM_PP_TEST_DATA / "pp_v2_net_output.json"
2828PP_V2_NET_3PH_OUTPUT_FILE = PGM_PP_TEST_DATA / "pp_v2_net_3ph_output.json"
29+ PP_V2_NET_3PH_OUTPUT_FILE_CURRENT_LOADING = PGM_PP_TEST_DATA / "pp_v2_net_3ph_output_current_loading.json"
2930
3031
3132@contextmanager
@@ -47,12 +48,12 @@ def load_and_convert_pgm_data() -> PandaPowerData:
4748
4849
4950@lru_cache
50- def load_and_convert_pgm_data_3ph () -> PandaPowerData :
51+ def load_and_convert_pgm_data_3ph (trafo_loading = "power" ) -> PandaPowerData :
5152 """
5253 Load and convert the power_grid_model results
5354 """
5455 data , _ = load_json_single_dataset (PGM_ASYM_OUTPUT_FILE , data_type = "asym_output" )
55- converter = PandaPowerConverter (trafo_loading = "power" )
56+ converter = PandaPowerConverter (trafo_loading = trafo_loading )
5657 converter .load_input_data (load_validation_data_3ph (), make_extra_info = False )
5758 return converter .convert (data = data )
5859
@@ -66,11 +67,14 @@ def load_validation_data() -> PandaPowerData:
6667
6768
6869@lru_cache
69- def load_validation_data_3ph () -> PandaPowerData :
70+ def load_validation_data_3ph (trafo_loading = "power" ) -> PandaPowerData :
7071 """
7172 Load the validation data from the pp file
7273 """
73- return pp .file_io .from_json (PP_V2_NET_3PH_OUTPUT_FILE )
74+ if trafo_loading == "power" :
75+ return pp .file_io .from_json (PP_V2_NET_3PH_OUTPUT_FILE )
76+ else :
77+ return pp .file_io .from_json (PP_V2_NET_3PH_OUTPUT_FILE_CURRENT_LOADING )
7478
7579
7680@pytest .fixture
@@ -83,13 +87,13 @@ def output_data() -> Tuple[PandaPowerData, PandaPowerData]:
8387 return actual , expected
8488
8589
86- @pytest .fixture
87- def output_data_3ph () -> Tuple [PandaPowerData , PandaPowerData ]:
90+ @pytest .fixture ( params = [ "power" , "current" ])
91+ def output_data_3ph (request ) -> Tuple [PandaPowerData , PandaPowerData ]:
8892 """
8993 Load the pandapower network and the json file, and return the output_data
9094 """
91- actual = load_and_convert_pgm_data_3ph ()
92- expected = load_validation_data_3ph ()
95+ actual = load_and_convert_pgm_data_3ph (request . param )
96+ expected = load_validation_data_3ph (request . param )
9397 return actual , expected
9498
9599
@@ -202,11 +206,23 @@ def compare_result(actual, expected, *, rtol):
202206
203207 pgm_net = pp_net_3ph_minimal_trafo ()
204208 pp_net = pp_net_3ph_minimal_trafo ()
209+ # Asymmetric Load
210+ pp .runpp_pgm (pgm_net , symmetric = False )
211+ pp .runpp_3ph (pp_net )
212+ check_result (pgm_net )
213+ check_result (pp_net )
214+ compare_result (pgm_net , pp_net , rtol = 0.04 )
215+
216+ # Symmetric Load
217+ pgm_net .asymmetric_load .loc [:, ['p_a_mw' , 'p_b_mw' , 'p_c_mw' ]] = 0.2
218+ pgm_net .asymmetric_load .loc [:, ['q_a_mvar' , 'q_b_mvar' , 'q_c_mar' ]] = 0.05
219+ pp_net .asymmetric_load .loc [:, ['p_a_mw' , 'p_b_mw' , 'p_c_mw' ]] = 0.2
220+ pp_net .asymmetric_load .loc [:, ['q_a_mvar' , 'q_b_mvar' , 'q_c_mar' ]] = 0.05
205221 pp .runpp_pgm (pgm_net , symmetric = False )
206222 pp .runpp_3ph (pp_net )
207223 check_result (pgm_net )
208224 check_result (pp_net )
209- compare_result (pgm_net , pp_net , rtol = 0.004 )
225+ compare_result (pgm_net , pp_net , rtol = 0.005 )
210226
211227
212228def test_output_data (output_data : Tuple [PandaPowerData , PandaPowerData ]):
@@ -247,10 +263,7 @@ def test_attributes(output_data: Tuple[PandaPowerData, PandaPowerData], componen
247263 pd .testing .assert_series_equal (actual_values , expected_values , atol = 5e-4 , rtol = 1e-4 )
248264
249265
250- # The following test only works for those components where valid data is returned by
251- # load_and_convert_pgm_data_3ph. since this is failing for trafo_output_3ph (returning
252- # from first "if", this function's output is not being tested currently.
253- @pytest .mark .parametrize (("component" , "attribute" ), component_attributes_df (load_and_convert_pgm_data_3ph ()))
266+ @pytest .mark .parametrize (("component" , "attribute" ), component_attributes_df (load_and_convert_pgm_data_3ph ()))
254267def test_attributes_3ph (output_data_3ph : Tuple [PandaPowerData , PandaPowerData ], component : str , attribute : str ):
255268 """
256269 For each attribute, check if the actual values are consistent with the expected values for asym
0 commit comments