def test_read_frd_massflow_networkpressure(self): # read data from frd file frd_file = join(testtools.get_fem_test_home_dir(), "ccx", "Flow1D_thermomech.frd") from feminout.importCcxFrdResults import read_frd_result as read_frd frd_content = read_frd(frd_file) # do something with the read data frd_content_len = [] for key in sorted(frd_content.keys()): frd_content_len.append(len(frd_content[key])) print("read data") print(frd_content_len) print(sorted(frd_content.keys())) # print(frd_content) read_mflow = frd_content["Results"][12]["mflow"] read_npressure = frd_content["Results"][12]["npressure"] res_len = [len(read_mflow), len(read_npressure)] print(res_len) print(read_mflow) print(read_npressure) # create the expected data print("\nexpected data") efc = {} # expected frd content efc["Nodes"] = { 2: FreeCAD.Vector(0.0, 0.0, -50.0), 3: FreeCAD.Vector(0.0, 0.0, -4300.0), 4: FreeCAD.Vector(4950.0, 0.0, -4300.0), 5: FreeCAD.Vector(5000.0, 0.0, -4300.0), 6: FreeCAD.Vector(8535.53, 0.0, -7835.53), 7: FreeCAD.Vector(8569.88, 0.0, -7870.88), 8: FreeCAD.Vector(12105.4, 0.0, -11406.4), 9: FreeCAD.Vector(12140.8, 0.0, -11441.8), 10: FreeCAD.Vector(13908.5, 0.0, -13209.5), 11: FreeCAD.Vector(13943.9, 0.0, -13244.9), 12: FreeCAD.Vector(15047.0, 0.0, -14348.0), 13: FreeCAD.Vector(15047.0, 0.0, -7947.97), 15: FreeCAD.Vector(0.0, 0.0, 0.0), 16: FreeCAD.Vector(0.0, 0.0, -2175.0), 17: FreeCAD.Vector(2475.0, 0.0, -4300.0), 18: FreeCAD.Vector(4975.0, 0.0, -4300.0), 19: FreeCAD.Vector(6767.77, 0.0, -6067.77), 20: FreeCAD.Vector(8552.71, 0.0, -7853.21), 21: FreeCAD.Vector(10337.6, 0.0, -9638.64), 22: FreeCAD.Vector(12123.1, 0.0, -11424.1), 23: FreeCAD.Vector(13024.6, 0.0, -12325.6), 24: FreeCAD.Vector(13926.2, 0.0, -13227.2), 25: FreeCAD.Vector(14495.4, 0.0, -13796.4), 26: FreeCAD.Vector(15047.0, 0.0, -11148.0), 27: FreeCAD.Vector(15047.0, 0.0, -7897.97) } efc["Seg2Elem"] = {1: (15, 2), 13: (13, 27)} efc["Seg3Elem"] = {} """ deleted during reading because of the inout file efc["Seg3Elem"] = { 2: (2, 16, 3), 3: (3, 17, 4), 4: (4, 18, 5), 5: (5, 19, 6), 6: (6, 20, 7), 7: (7, 21, 8), 8: (8, 22, 9), 9: (9, 23, 10), 10: (10, 24, 11), 11: (11, 25, 12), 12: (12, 26, 13) } """ # faces efc["Tria3Elem"] = efc["Tria6Elem"] = {} efc["Quad4Elem"] = efc["Quad8Elem"] = {} # volumes efc["Tetra4Elem"] = efc["Tetra10Elem"] = {} efc["Hexa8Elem"] = efc["Hexa20Elem"] = {} efc["Penta6Elem"] = efc["Penta15Elem"] = {} efc["Results"] = [ { "time": 0.00390625 }, { "time": 0.0078125 }, { "time": 0.0136719 }, { "time": 0.0224609 }, { "time": 0.0356445 }, { "time": 0.0554199 }, { "time": 0.085083 }, { "time": 0.129578 }, { "time": 0.19632 }, { "time": 0.296432 }, { "time": 0.446602 }, { "time": 0.671856 }, { "number": 0, "time": 1.0, "mflow": { 1: 78.3918, # added during reading because of the inout file 2: 78.3918, 3: 78.3918, 4: 78.3918, 5: 78.3918, 6: 78.3918, 7: 78.3918, 8: 78.3918, 9: 78.3918, 10: 78.3918, 11: 78.3918, 12: 78.3918, 13: 78.3918, 15: 78.3918, 16: 78.3918, 17: 78.3918, 18: 78.3918, 19: 78.3918, 20: 78.3918, 21: 78.3918, 22: 78.3918, 23: 78.3918, 24: 78.3918, 25: 78.3918, 26: 78.3918, 27: 78.3918, 28: 78.3918 # added during reading because of the inout file }, "npressure": { 1: 0.1, # added during reading because of the inout file 2: 0.1, 3: 0.134840, 4: 0.128261, 5: 0.127949, 6: 0.155918, 7: 0.157797, 8: 0.191647, 9: 0.178953, 10: 0.180849, 11: 0.161476, 12: 0.162658, 13: 0.1, 15: 0.1, 16: 0.117420, 17: 0.131551, 18: 0.128105, 19: 0.141934, 20: 0.156857, 21: 0.174722, 22: 0.185300, 23: 0.179901, 24: 0.171162, 25: 0.162067, 26: 0.131329, 27: 0.1, 28: 0.1 # added during reading because of the inout file } } ] expected_frd_content = efc # do something with the expected data expected_frd_content_len = [] for key in sorted(expected_frd_content.keys()): expected_frd_content_len.append(len(expected_frd_content[key])) print(expected_frd_content_len) print(sorted(expected_frd_content.keys())) # expected results expected_mflow = expected_frd_content["Results"][12]["mflow"] expected_npressure = expected_frd_content["Results"][12]["npressure"] expected_res_len = [len(expected_mflow), len(expected_npressure)] print(expected_res_len) print(expected_mflow) print(expected_npressure) # tests self.assertEqual(frd_content_len, expected_frd_content_len, "Length's of read frd data values are unexpected") self.assertEqual(frd_content["Nodes"], expected_frd_content["Nodes"], "Values of read node data are unexpected") self.assertEqual(frd_content["Seg2Elem"], expected_frd_content["Seg2Elem"], "Values of read Seg2 data are unexpected") self.assertEqual(frd_content["Seg3Elem"], expected_frd_content["Seg3Elem"], "Values of read Seg3 data are unexpected") self.assertEqual(res_len, expected_res_len, "Length's of read result data values are unexpected") self.assertEqual(read_mflow, expected_mflow, "Values of read mflow result data are unexpected") self.assertEqual( read_npressure, expected_npressure, "Values of read npressure result data are unexpected")
def test_read_frd_massflow_networkpressure(self): # read data from frd file frd_file = testtools.get_fem_test_home_dir() + 'ccx/Flow1D_thermomech.frd' from feminout.importCcxFrdResults import read_frd_result as read_frd frd_content = read_frd(frd_file) # do something with the read data frd_content_len = [] for key in sorted(frd_content.keys()): frd_content_len.append(len(frd_content[key])) print('read data') print(frd_content_len) print(sorted(frd_content.keys())) # print(frd_content) read_mflow = frd_content['Results'][12]['mflow'] read_npressure = frd_content['Results'][12]['npressure'] res_len = [ len(read_mflow), len(read_npressure) ] print(res_len) print(read_mflow) print(read_npressure) # create the expected data print('\nexpected data') efc = {} # expected frd content efc['Nodes'] = { 2: FreeCAD.Vector(0.0, 0.0, -50.0), 3: FreeCAD.Vector(0.0, 0.0, -4300.0), 4: FreeCAD.Vector(4950.0, 0.0, -4300.0), 5: FreeCAD.Vector(5000.0, 0.0, -4300.0), 6: FreeCAD.Vector(8535.53, 0.0, -7835.53), 7: FreeCAD.Vector(8569.88, 0.0, -7870.88), 8: FreeCAD.Vector(12105.4, 0.0, -11406.4), 9: FreeCAD.Vector(12140.8, 0.0, -11441.8), 10: FreeCAD.Vector(13908.5, 0.0, -13209.5), 11: FreeCAD.Vector(13943.9, 0.0, -13244.9), 12: FreeCAD.Vector(15047.0, 0.0, -14348.0), 13: FreeCAD.Vector(15047.0, 0.0, -7947.97), 15: FreeCAD.Vector(0.0, 0.0, 0.0), 16: FreeCAD.Vector(0.0, 0.0, -2175.0), 17: FreeCAD.Vector(2475.0, 0.0, -4300.0), 18: FreeCAD.Vector(4975.0, 0.0, -4300.0), 19: FreeCAD.Vector(6767.77, 0.0, -6067.77), 20: FreeCAD.Vector(8552.71, 0.0, -7853.21), 21: FreeCAD.Vector(10337.6, 0.0, -9638.64), 22: FreeCAD.Vector(12123.1, 0.0, -11424.1), 23: FreeCAD.Vector(13024.6, 0.0, -12325.6), 24: FreeCAD.Vector(13926.2, 0.0, -13227.2), 25: FreeCAD.Vector(14495.4, 0.0, -13796.4), 26: FreeCAD.Vector(15047.0, 0.0, -11148.0), 27: FreeCAD.Vector(15047.0, 0.0, -7897.97) } efc['Seg2Elem'] = { 1: (15, 2), 13: (13, 27) } efc['Seg3Elem'] = {} ''' deleted during reading because of the inout file efc['Seg3Elem'] = { 2: (2, 16, 3), 3: (3, 17, 4), 4: (4, 18, 5), 5: (5, 19, 6), 6: (6, 20, 7), 7: (7, 21, 8), 8: (8, 22, 9), 9: (9, 23, 10), 10: (10, 24, 11), 11: (11, 25, 12), 12: (12, 26, 13) } ''' efc['Tria3Elem'] = efc['Tria6Elem'] = efc['Quad4Elem'] = efc['Quad8Elem'] = {} # faces efc['Tetra4Elem'] = efc['Tetra10Elem'] = efc['Hexa8Elem'] = efc['Hexa20Elem'] = efc['Penta6Elem'] = efc['Penta15Elem'] = {} # volumes efc['Results'] = [ {'time': 0.00390625}, {'time': 0.0078125}, {'time': 0.0136719}, {'time': 0.0224609}, {'time': 0.0356445}, {'time': 0.0554199}, {'time': 0.085083}, {'time': 0.129578}, {'time': 0.19632}, {'time': 0.296432}, {'time': 0.446602}, {'time': 0.671856}, { 'number': 0, 'time': 1.0, 'mflow': { 1: 78.3918, # added during reading because of the inout file 2: 78.3918, 3: 78.3918, 4: 78.3918, 5: 78.3918, 6: 78.3918, 7: 78.3918, 8: 78.3918, 9: 78.3918, 10: 78.3918, 11: 78.3918, 12: 78.3918, 13: 78.3918, 15: 78.3918, 16: 78.3918, 17: 78.3918, 18: 78.3918, 19: 78.3918, 20: 78.3918, 21: 78.3918, 22: 78.3918, 23: 78.3918, 24: 78.3918, 25: 78.3918, 26: 78.3918, 27: 78.3918, 28: 78.3918 # added during reading because of the inout file }, 'npressure': { 1: 0.1, # added during reading because of the inout file 2: 0.1, 3: 0.134840, 4: 0.128261, 5: 0.127949, 6: 0.155918, 7: 0.157797, 8: 0.191647, 9: 0.178953, 10: 0.180849, 11: 0.161476, 12: 0.162658, 13: 0.1, 15: 0.1, 16: 0.117420, 17: 0.131551, 18: 0.128105, 19: 0.141934, 20: 0.156857, 21: 0.174722, 22: 0.185300, 23: 0.179901, 24: 0.171162, 25: 0.162067, 26: 0.131329, 27: 0.1, 28: 0.1 # added during reading because of the inout file } } ] expected_frd_content = efc # do something with the expected data expected_frd_content_len = [] for key in sorted(expected_frd_content.keys()): expected_frd_content_len.append(len(expected_frd_content[key])) print(expected_frd_content_len) print(sorted(expected_frd_content.keys())) # expected results expected_mflow = expected_frd_content['Results'][12]['mflow'] expected_npressure = expected_frd_content['Results'][12]['npressure'] expected_res_len = [ len(expected_mflow), len(expected_npressure) ] print(expected_res_len) print(expected_mflow) print(expected_npressure) # tests self.assertEqual(frd_content_len, expected_frd_content_len, "Length's of read frd data values are unexpected") self.assertEqual(frd_content['Nodes'], expected_frd_content['Nodes'], "Values of read node data are unexpected") self.assertEqual(frd_content['Seg2Elem'], expected_frd_content['Seg2Elem'], "Values of read Seg2 data are unexpected") self.assertEqual(frd_content['Seg3Elem'], expected_frd_content['Seg3Elem'], "Values of read Seg3 data are unexpected") self.assertEqual(res_len, expected_res_len, "Length's of read result data values are unexpected") self.assertEqual(read_mflow, expected_mflow, "Values of read mflow result data are unexpected") self.assertEqual(read_npressure, expected_npressure, "Values of read npressure result data are unexpected")