from core.project_base import ProjectBase from core.swmm.swmm_project import SwmmProject as Project from core.swmm.inp_reader_project import ProjectReader from datetime import * inp_file_name = 'C:\Data\SWMM\Example1.inp' status_file_name = 'C:\Data\SWMM\Example1.rpt' output_filename = 'C:\Data\SWMM\Example1.out' model_path = '..\..\Externals\swmm\model\swmm5_x64.dll' model_api = pyswmm(inp_file_name, status_file_name, output_filename, model_path) _last_displayed_days = -1 project = Project() project_reader = ProjectReader() project_reader.read_file(project, inp_file_name) if project_reader.input_err_msg: print('problem reading input file') def compute_total_days(project): # Compute the simulation duration in days from the Project's simulation options. try: end_date = datetime.strptime( project.options.dates.end_date + ' ' + project.options.dates.end_time, "%m/%d/%Y %H:%M:%S") start_date = datetime.strptime( project.options.dates.start_date + ' ' + project.options.dates.start_time, "%m/%d/%Y %H:%M:%S") return (end_date - start_date).days except:
def runTest(self): directory = os.path.dirname( os.path.abspath( inspect.getframeinfo(inspect.currentframe()).filename)) inp_filename = directory + '\\' + "CrossSectionAllShapes.inp" with open(inp_filename, "r") as f: source_text = f.read() project_reader = ProjectReader() project_writer = ProjectWriter() my_project = SwmmProject() project_reader.read_file(my_project, os.path.join(directory, inp_filename)) my_xsections = my_project.xsections assert len(my_xsections.value) == 26 actual_text = project_writer.write_xsections.as_text(my_xsections) msg = '\nSet:\n' + source_text + '\nGet:\n' + actual_text self.assertTrue(match(actual_text, source_text), msg) # my_copy = project_reader.read_xsections(section_text) # copy_text = project_writer.write_xsections.as_text(my_copy) # my_copy.set_text(my_xsections.get_text()) # assert match(section_text, copy_text) for index in range( 1, 25): # Purposely not checking last line: second CUSTOM test assert my_xsections.value[index].link == str(index) assert my_xsections.value[index].shape == CrossSectionShape(index) cur_section = my_xsections.value[1] assert cur_section.geometry1 == "1.5" assert cur_section.geometry2 == "0" assert cur_section.geometry3 == "0" assert cur_section.geometry4 == "0" assert cur_section.barrels == "1" cur_section = my_xsections.value[2] assert cur_section.geometry1 == "11" assert cur_section.geometry2 == "12" assert cur_section.geometry3 == "0" assert cur_section.geometry4 == "0" assert cur_section.barrels == "6" cur_section = my_xsections.value[3] assert cur_section.geometry1 == "9" assert cur_section.geometry2 == "13" assert cur_section.geometry3 == "0" assert cur_section.geometry4 == "0" assert cur_section.barrels == "6" cur_section = my_xsections.value[4] assert cur_section.geometry1 == "14" assert cur_section.geometry2 == "15" assert cur_section.geometry3 == "0" assert cur_section.geometry4 == "0" assert cur_section.barrels == "5" cur_section = my_xsections.value[5] assert cur_section.geometry1 == "1" assert cur_section.geometry2 == "4" assert cur_section.geometry3 == "2" assert cur_section.geometry4 == "0" assert cur_section.barrels == "1" cur_section = my_xsections.value[6] assert cur_section.geometry1 == "3" assert cur_section.geometry2 == "4" assert cur_section.geometry3 == "5" assert cur_section.geometry4 == "6" assert cur_section.barrels == "2" cur_section = my_xsections.value[7] assert cur_section.geometry1 == "4" assert cur_section.geometry2 == "6" assert cur_section.geometry3 == "0" assert cur_section.geometry4 == "0" assert cur_section.barrels == "2" cur_section = my_xsections.value[8] assert cur_section.geometry1 == "1.167" assert cur_section.geometry2 == "1.917" assert cur_section.geometry3 == "1" assert cur_section.geometry4 == "0" assert cur_section.barrels == "9" cur_section = my_xsections.value[9] assert cur_section.geometry1 == "2.833" assert cur_section.geometry2 == "1.833" assert cur_section.geometry3 == "3" assert cur_section.geometry4 == "0" assert cur_section.barrels == "1" cur_section = my_xsections.value[10] assert cur_section.geometry1 == "1.250" assert cur_section.geometry2 == "1.750" assert cur_section.geometry3 == "19" assert cur_section.geometry4 == "0" assert cur_section.barrels == "10" cur_section = my_xsections.value[11] assert cur_section.geometry1 == "5" assert cur_section.geometry2 == "7" assert cur_section.geometry3 == "0" assert cur_section.geometry4 == "0" assert cur_section.barrels == "3" cur_section = my_xsections.value[12] assert cur_section.geometry1 == "13" assert cur_section.geometry2 == "15" assert cur_section.geometry3 == "17" assert cur_section.geometry4 == "0" assert cur_section.barrels == "2" cur_section = my_xsections.value[13] assert cur_section.geometry1 == "17" assert cur_section.geometry2 == "18" assert cur_section.geometry3 == "19" assert cur_section.geometry4 == "0" assert cur_section.barrels == "1" cur_section = my_xsections.value[14] assert cur_section.geometry1 == "19" assert cur_section.geometry2 == "20" assert cur_section.geometry3 == "21" assert cur_section.geometry4 == "0" assert cur_section.barrels == "13" cur_section = my_xsections.value[15] assert cur_section.geometry1 == "21" assert cur_section.geometry2 == "22" assert cur_section.geometry3 == "23" assert cur_section.geometry4 == "0" assert cur_section.barrels == "20" cur_section = my_xsections.value[16] assert cur_section.geometry1 == "24" assert cur_section.geometry2 == "0" assert cur_section.geometry3 == "0" assert cur_section.geometry4 == "0" assert cur_section.barrels == "23" cur_section = my_xsections.value[17] assert cur_section.geometry1 == "26" assert cur_section.geometry2 == "0" assert cur_section.geometry3 == "0" assert cur_section.geometry4 == "0" assert cur_section.barrels == "25" cur_section = my_xsections.value[18] assert int(float(cur_section.geometry1)) == 47 assert cur_section.geometry2 == "0" assert cur_section.geometry3 == "0" assert cur_section.geometry4 == "0" assert cur_section.barrels == "1" cur_section = my_xsections.value[19] assert int(cur_section.geometry1) == 19 assert cur_section.geometry2 == "0" assert cur_section.geometry3 == "0" assert cur_section.geometry4 == "0" assert cur_section.barrels == "6" cur_section = my_xsections.value[20] assert int(cur_section.geometry1) == 20 assert cur_section.geometry2 == "0" assert cur_section.geometry3 == "0" assert cur_section.geometry4 == "0" assert cur_section.barrels == "6" cur_section = my_xsections.value[21] assert cur_section.geometry1 == "17" assert cur_section.geometry2 == "0" assert cur_section.geometry3 == "0" assert cur_section.geometry4 == "0" assert cur_section.barrels == "7" cur_section = my_xsections.value[22] assert cur_section.geometry1 == "1.222" assert cur_section.geometry2 == "0" assert cur_section.geometry3 == "0" assert cur_section.geometry4 == "0" assert cur_section.barrels == "11" cur_section = my_xsections.value[23] # assert cur_section.transect == "Tran1" assert cur_section.geometry1 == "Tran1" cur_section = my_xsections.value[24] assert cur_section.geometry1 == "2.833" assert cur_section.curve == "curve1" assert cur_section.barrels == "4" cur_section = my_xsections.value[25] assert cur_section.geometry1 == "2.933" assert cur_section.curve == "curve2" assert cur_section.barrels == "5"