def test_get_simbench_net(sb_codes=None, n=8, scenarios=None, input_path=None): """ Test nets exctracted from csv (shortened) folder. 'shortened' and 'test' must be set properly in extract_simbench_grids_from_csv.py If sb_codes is None, randomn simbench codes are tested in the number of n. If in input_path is None, no input_path will be given to get_simbench_net() """ shortened = input_path is not None and "shortened" in input_path scenarios = scenarios if scenarios is not None else [0, 1, 2] if not sb_codes: sb_codes = [] for scenario in scenarios: sb_codes += sb.collect_all_simbench_codes(scenario=scenario, shortened=shortened) first = 2 # always test the first 2 (complete_data and complete_grid) np.random.seed(int(time.time())) sb_codes = [ sb_codes[i] for i in np.append( np.random.randint(first, len(sb_codes) - first, n), range(first)) ] else: sb_codes = sb.ensure_iterability(sb_codes) for sb_code_info in sb_codes: sb_code, sb_code_params = sb.get_simbench_code_and_parameters( sb_code_info) logger.info("Get SimBench net '%s'" % sb_code) net = sb.get_simbench_net(sb_code, input_path=input_path) logger.info("Now test validity...") _test_net_validity(net, sb_code_params, shortened, input_path=input_path)
def test_simbench_code_occurance(): all_ = sb.collect_all_simbench_codes() _occurance_test(all_, "1-complete_data-mixed-all-1-sw") _occurance_test(all_, "1-EHVHVMVLV-mixed-all-2-sw") _occurance_test(all_, "1-HVMV-mixed-all-0-sw") _occurance_test(all_, "1-MVLV-urban-5.303-1-no_sw") _occurance_test(all_, "1-HV-mixed--0-sw") _occurance_test(all_, "1-MV-semiurb--0-sw") _occurance_test(all_, "1-LV-rural1--2-sw") _occurance_test(all_, "1-EHVHV-mixed-1-0-no_sw") _occurance_test(all_, "1-HV-urban--2-sw")
def test_collect_all_simbench_codes_on_a_sample_basis(): all_codes = sb.collect_all_simbench_codes() assert len(all_codes) == 246 _occurance_test(all_codes, '1-MVLV-rural-all-0-sw') single_zone_codes = sb.collect_all_simbench_codes(lv_level="", all_data=False) assert len(single_zone_codes) == 78 _occurance_test(single_zone_codes, '1-MV-comm--1-no_sw') all_data_codes = sb.collect_all_simbench_codes(hv_level="") assert len(all_data_codes) == 6 _occurance_test(all_data_codes, '1-complete_data-mixed-all-2-sw') mv_grids_without_switch_and_lv = sb.collect_all_simbench_codes( hv_level="MV", lv_level="", breaker_rep="no_sw", all_data=False) assert len(mv_grids_without_switch_and_lv) == 12 _occurance_test(mv_grids_without_switch_and_lv, '1-MV-semiurb--1-no_sw') urban_hv_grid_scenario1_codes = sb.collect_all_simbench_codes( hv_level="HV", hv_type="urban", scenario=1, all_data=False) assert len(urban_hv_grid_scenario1_codes) == 10 _occurance_test(urban_hv_grid_scenario1_codes, '1-HVMV-urban-4.201-1-no_sw') rural_and_urban_mv_grid_scenario1_codes = sb.collect_all_simbench_codes( hv_level="MV", lv_level="", hv_type=["rural", "urban"], scenario=1, all_data=False) assert len(rural_and_urban_mv_grid_scenario1_codes) == 4 _occurance_test(rural_and_urban_mv_grid_scenario1_codes, '1-MV-rural--1-sw')
all_branch_nodes = pd.concat([lA, lB, tA, tB], ignore_index=True) dupl_branch_nodes = set( all_branch_nodes.loc[all_branch_nodes.duplicated()]) aux_nodes = csv_data["Node"]["id"].loc[csv_data["Node"]["type"] == "auxiliary"] return sorted(dupl_branch_nodes & set(aux_nodes)) def test_aux_nodes_without_multiple_connected_branches(): """ Test csv_data if there are auxiliary nodes with more than one connected branch element. """ for scenario in range(3): csv_data = sb.read_csv_data(sb.complete_data_path(scenario), sep=";") annwdb = aux_node_names_with_dupl_branches(csv_data) assert not len(annwdb) if __name__ == '__main__': if 0: pytest.main([__file__, "-xs"]) else: # test_get_bus_bus_switch_indices_from_csv() # test_get_relevant_subnets() # test_get_extracted_csv_data_from_dict(print_instead=True) # test_generate_no_sw_variant() # test_get_simbench_net() test_get_simbench_net(sb_codes=sb.collect_all_simbench_codes( scenario=0)[::-1]) # test_aux_nodes_without_multiple_connected_branches() pass
def test_simbench_code_conversion(): all_ = sb.collect_all_simbench_codes() for input_code in all_: sb_code_parameters = sb.get_parameters_from_simbench_code(input_code) output_code = sb.get_simbench_code_from_parameters(sb_code_parameters) assert input_code == output_code