def test_gage_precipitation(run_sim): total = solver.raingage_get_precipitation(0, shared_enum.RainResult.TOTAL) snowfall = solver.raingage_get_precipitation(0, shared_enum.RainResult.SNOWFALL) rainfall = solver.raingage_get_precipitation(0, shared_enum.RainResult.RAINFALL) assert total == 0.0 assert snowfall == 0.0 assert rainfall == 0.0 for i in range(0, 250): solver.swmm_step() total = solver.raingage_get_precipitation(0, shared_enum.RainResult.TOTAL) snowfall = solver.raingage_get_precipitation(0, shared_enum.RainResult.SNOWFALL) rainfall = solver.raingage_get_precipitation(0, shared_enum.RainResult.RAINFALL) assert total == 0.4 assert snowfall == 0.0 assert rainfall == 0.4 solver.raingage_set_precipitation(0, 1.0) for i in range(0, 250): solver.swmm_step() total = solver.raingage_get_precipitation(0, shared_enum.RainResult.TOTAL) snowfall = solver.raingage_get_precipitation(0, shared_enum.RainResult.SNOWFALL) rainfall = solver.raingage_get_precipitation(0, shared_enum.RainResult.RAINFALL) assert total == 1.0 assert snowfall == 0.0 assert rainfall == 1.0
def test_subcatch_get_result(run_sim): rain = solver.subcatch_get_result(0, shared_enum.SubcatchResult.RAIN) evaporation = solver.subcatch_get_result(0, shared_enum.SubcatchResult.EVAPORATION) assert rain == 0.0 assert evaporation == 0.0 for i in range(0, 100): solver.swmm_step() rain = solver.subcatch_get_result(0, shared_enum.SubcatchResult.RAIN) evaporation = solver.subcatch_get_result(0, shared_enum.SubcatchResult.EVAPORATION) assert rain == pytest.approx(0.25, 0.1) assert evaporation == pytest.approx(0.0, 0.1)
def test_node_get_result(run_sim): total_inflow = solver.node_get_result(0, shared_enum.NodeResult.TOTAL_INFLOW) total_outflow = solver.node_get_result(0, shared_enum.NodeResult.TOTAL_OUTFLOW) assert total_inflow == 0.0 assert total_outflow == 0.0 for i in range(0, 100): solver.swmm_step() total_inflow = solver.node_get_result(0, shared_enum.NodeResult.TOTAL_INFLOW) total_outflow = solver.node_get_result(0, shared_enum.NodeResult.TOTAL_OUTFLOW) assert total_inflow == pytest.approx(1.07, 0.1) assert total_outflow == pytest.approx(1.07, 0.1)
def test_link_get_result(run_sim): flow = solver.link_get_result(0, shared_enum.LinkResult.FLOW) depth = solver.link_get_result(0, shared_enum.LinkResult.DEPTH) assert flow == 0.0 assert depth == 0.0 for i in range(0, 100): solver.swmm_step() flow = solver.link_get_result(0, shared_enum.LinkResult.FLOW) depth = solver.link_get_result(0, shared_enum.LinkResult.DEPTH) assert flow == pytest.approx(1.054, 0.1) assert depth == pytest.approx(0.268, 0.1)
def test_outfall_set_stage(run_sim): head = solver.node_get_result(13, shared_enum.NodeResult.HEAD) head == 975 for i in range(0, 100): solver.swmm_step() head = solver.node_get_result(13, shared_enum.NodeResult.HEAD) assert head == pytest.approx(975.519, 0.1) solver.outfall_set_stage(13, 1000) solver.swmm_step()
def test_link_set_target_setting(run_sim): target_setting = solver.link_get_result(0, shared_enum.LinkResult.TARGET_SETTING) assert target_setting == 1.0 solver.link_set_target_setting(0, 0.5) target_setting = solver.link_get_result(0, shared_enum.LinkResult.TARGET_SETTING) assert target_setting == 0.5 for i in range(0, 250): solver.swmm_step() target_setting = solver.link_get_result(0, shared_enum.LinkResult.TARGET_SETTING) target_setting == 0.5
def test_subcatch_get_pollutant(run_sim): pollut = solver.subcatch_get_pollutant(0, shared_enum.SubcatchPollutant.BUILD_UP) tss, lead = tuple(pollut) assert tss == 0.0 assert lead == 0.0 for i in range(0, 250): solver.swmm_step() pollut = solver.subcatch_get_pollutant(0, shared_enum.SubcatchPollutant.BUILD_UP) tss, lead = tuple(pollut) assert tss == pytest.approx(44.246, 0.1) assert lead == 0.0
def test_node_get_pollutant(run_sim): pollut = solver.node_get_pollutant(0, shared_enum.NodePollutant.QUALITY) tss, lead = tuple(pollut) assert tss == 0.0 assert lead == 0.0 for i in range(0, 250): solver.swmm_step() pollut = solver.node_get_pollutant(0, shared_enum.NodePollutant.QUALITY) tss, lead = tuple(pollut) assert tss == pytest.approx(14.7179, 0.1) assert lead == pytest.approx(2.9435, 0.1)
def test_subcatch_get_stats(run_sim): while True: time = solver.swmm_step() if time == 0: break stats = solver.subcatch_get_stats(0)
def test_link_get_stats(run_sim): while True: time = solver.swmm_step() if time == 0: break link_stats = solver.link_get_stats(0)
def test_lid_usage_get_result(run_lid_sim): while True: time = solver.swmm_step() if time == 0: break result = solver.lid_usage_get_result(0, 0, shared_enum.LidResult.SURFACE_OUTFLOW)
def test_lid_usage_get_flux_rate(run_lid_sim): while True: time = solver.swmm_step() if time == 0: break rate = solver.lid_usage_get_flux_rate(0, 0, shared_enum.LidLayer.SURFACE)
def test_node_get_stats(before_end): while True: time = solver.swmm_step() if time == 0: break node_stats = solver.node_get_stats(5) assert node_stats.maxDepth == pytest.approx(1.15, 0.1)
def test_pump_get_stats(run_sim): index = solver.project_get_index(shared_enum.ObjectType.LINK, 'P1') while True: time = solver.swmm_step() if time == 0: break stats = solver.pump_get_stats(index)
def test_lid_group_get_result(run_lid_sim): index = solver.project_get_index(shared_enum.ObjectType.SUBCATCH, 'wBC') while True: time = solver.swmm_step() if time == 0: break result = solver.lid_group_get_result(index, shared_enum.LidResult.OLD_DRAIN_FLOW)
def test_node_total_inflow(run_sim): total_inflow = solver.node_get_total_inflow(0) assert total_inflow == 0.0 for i in range(0, 550): solver.swmm_step() total_inflow = solver.node_get_total_inflow(0) assert total_inflow == pytest.approx(42639.814, 0.1) solver.node_set_total_inflow(0, 1.0) for i in range(0, 550): solver.swmm_step() total_inflow = solver.node_get_total_inflow(0) assert total_inflow == pytest.approx(75644.471, 0.1)
def test_storage_get_stats(before_end): node_index = solver.project_get_index(shared_enum.ObjectType.NODE, 'SU1') while True: time = solver.swmm_step() if time == 0: break stor_stats = solver.storage_get_stats(node_index) assert stor_stats.avgVol == pytest.approx(0, 0.1)
def test_step(handle): solver.swmm_start(0) while True: time = solver.swmm_step() if time == 0: break solver.swmm_end() solver.swmm_report()
def before_end(request): solver.swmm_open(INPUT_FILE_EXAMPLE_1, REPORT_FILE_TEST_1, OUTPUT_FILE_TEST_1) solver.swmm_start(0) while True: time = solver.swmm_step() if time == 0: break def close(): solver.swmm_end() solver.swmm_close() request.addfinalizer(close)