补充test_mql P4邻接拓扑解析

This commit is contained in:
huojiarong committed 2026-07-17 10:05:26 +00:00
1 parent 8af0a27e4c
commit 43e238034a
3 files changed
+191

No files matched your search

+72
View File
@@ -99,6 +99,78 @@ class TestMqlPneumaticNode4Tests(unittest.TestCase):
self.assertEqual(system.typed_node4_count, 8)
self.assertEqual(system.node4_assembly["pnnode4_17"].alias, "pnnode4_17")
def test_pnnode4_17_neighborhood_maps_adjacent_p4_nodes(self) -> None:
system = TestMqlSystem()
neighborhood = system.p4_node_neighborhood("pnnode4_17")
self.assertEqual(neighborhood.node_alias, "pnnode4_17")
self.assertEqual(neighborhood.primary.line_alias, "pneumatic_68")
self.assertEqual(neighborhood.primary.chamber_alias, "pn_c1_9")
self.assertEqual(neighborhood.port_1.line_alias, "pneumatic_86")
self.assertEqual(neighborhood.port_1.remote_node_alias, "pnnode4_18")
self.assertEqual(neighborhood.port_1.remote_port, "port_3")
self.assertEqual(neighborhood.port_3.line_alias, "pneumatic_83")
self.assertEqual(neighborhood.port_3.remote_node_alias, "pnnode4_16")
self.assertEqual(neighborhood.port_3.remote_port, "port_1")
self.assertEqual(neighborhood.port_4.orifice_alias, "pn_morifice_9")
self.assertEqual(neighborhood.port_4.direct_line_alias, "pneumatic_90")
def test_adjacent_p4_node_primary_pressures_match_their_pnl0001_states(self) -> None:
index = 500
self.assertAlmostEqual(
self.results.series("press1@pnnode4_18")[index],
self.results.series("p2@pneumatic_66")[index],
)
self.assertAlmostEqual(
self.results.series("press1@pnnode4_16")[index],
self.results.series("p2@pneumatic_69")[index],
)
def test_adjacent_p4_node_baselines_match_adjacent_flow_sums(self) -> None:
index = 500
pnnode4_18 = self.nodes["pnnode4_18"].balance(
port_2_temperature_k=self.results.series("temp1@pnnode4_18")[index],
port_2_pressure_pa=(
self.results.series("press1@pnnode4_18")[index] + 101_300.0
),
port_1_enthalpy_flow_w=self.results.series("dh1@pneumatic_80")[index],
port_1_mass_flow_g_s=self.results.series("dm1@pneumatic_80")[index],
port_3_enthalpy_flow_w=self.results.series("dh2@pneumatic_86")[index],
port_3_mass_flow_g_s=self.results.series("dm2@pneumatic_86")[index],
port_4_enthalpy_flow_w=self.results.series("dh2@pn_morifice_10")[index],
port_4_mass_flow_g_s=self.results.series("dm2@pn_morifice_10")[index],
)
pnnode4_16 = self.nodes["pnnode4_16"].balance(
port_2_temperature_k=self.results.series("temp1@pnnode4_16")[index],
port_2_pressure_pa=(
self.results.series("press1@pnnode4_16")[index] + 101_300.0
),
port_1_enthalpy_flow_w=self.results.series("dh1@pneumatic_83")[index],
port_1_mass_flow_g_s=self.results.series("dm1@pneumatic_83")[index],
port_3_enthalpy_flow_w=self.results.series("dh2@pneumatic_95")[index],
port_3_mass_flow_g_s=self.results.series("dm2@pneumatic_95")[index],
port_4_enthalpy_flow_w=self.results.series("dh2@pn_morifice_1")[index],
port_4_mass_flow_g_s=self.results.series("dm2@pn_morifice_1")[index],
)
self.assertAlmostEqual(
pnnode4_18.port_2_mass_flow_g_s,
self.results.series("dm2@pnnode4_18")[index],
)
self.assertAlmostEqual(
pnnode4_18.port_2_enthalpy_flow_w,
self.results.series("dh2@pnnode4_18")[index],
)
self.assertAlmostEqual(
pnnode4_16.port_2_mass_flow_g_s,
self.results.series("dm2@pnnode4_16")[index],
)
self.assertAlmostEqual(
pnnode4_16.port_2_enthalpy_flow_w,
self.results.series("dh2@pnnode4_16")[index],
)
def test_port_two_flow_is_exact_sum_of_ports_one_three_and_four(self) -> None:
balance = self.nodes["pnnode4_17"].balance(
port_2_temperature_k=281.0,