装配test_mql管路连接
This commit is contained in:
1 parent
3818b011d5
commit
03a6db10ad
3 files changed
+184
-2
No files matched your search
@@ -0,0 +1,72 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
|
||||
from PythonModels.reporting.amesim_results import load_test_mql_amesim_results
|
||||
from PythonModels.reporting.test_mql_variables import build_test_mql_variable_catalog
|
||||
from PythonModels.systems.test_mql_lines import build_test_mql_line_assembly
|
||||
|
||||
|
||||
REPO_ROOT = Path(__file__).resolve().parents[1]
|
||||
TEST_MQL_AME = REPO_ROOT / "AmesimModels" / "test_mql.ame"
|
||||
|
||||
|
||||
class TestMqlLineAssemblyTests(unittest.TestCase):
|
||||
@classmethod
|
||||
def setUpClass(cls) -> None:
|
||||
cls.amesim_results = load_test_mql_amesim_results(TEST_MQL_AME)
|
||||
cls.variable_catalog = build_test_mql_variable_catalog(cls.amesim_results)
|
||||
cls.assembly = build_test_mql_line_assembly(
|
||||
cls.amesim_results,
|
||||
cls.variable_catalog,
|
||||
)
|
||||
|
||||
def test_assembles_expected_line_counts(self) -> None:
|
||||
self.assertEqual(self.assembly.line_count, 40)
|
||||
self.assertEqual(
|
||||
self.assembly.counts_by_submodel(),
|
||||
{"PNL0001": 20, "PNL0003": 8, "PNL0002": 8, "PNL00R": 4},
|
||||
)
|
||||
self.assertIn("pneumatic_69", self.assembly.aliases())
|
||||
self.assertIn("pneumatic_100", self.assembly.aliases())
|
||||
|
||||
def test_preserves_connection_topology(self) -> None:
|
||||
line = self.assembly.by_alias("pneumatic_69")
|
||||
|
||||
self.assertEqual(line.index, 37)
|
||||
self.assertEqual(line.submodel, "PNL0001")
|
||||
self.assertEqual(line.pattern, "C-R")
|
||||
self.assertEqual(line.source_component, "pnnode4_16")
|
||||
self.assertEqual(line.source_port, "port_2")
|
||||
self.assertEqual(line.target_component, "pn_c1_8")
|
||||
self.assertEqual(line.target_port, "port_1")
|
||||
self.assertTrue(line.has_compliance)
|
||||
self.assertTrue(line.has_resistance)
|
||||
|
||||
def test_line_data_paths_are_attached_from_amesim_results(self) -> None:
|
||||
line = self.assembly.by_alias("pneumatic_69")
|
||||
|
||||
self.assertIn("dh1@pneumatic_69", line.data_paths)
|
||||
self.assertIn("dm1@pneumatic_69", line.data_paths)
|
||||
self.assertIn("dh1", line.signal_names)
|
||||
self.assertIn("dm1", line.signal_names)
|
||||
|
||||
def test_resistance_only_line_keeps_r_pattern(self) -> None:
|
||||
line = self.assembly.by_alias("pneumatic_100")
|
||||
|
||||
self.assertEqual(line.submodel, "PNL00R")
|
||||
self.assertEqual(line.pattern, "R")
|
||||
self.assertFalse(line.has_compliance)
|
||||
self.assertTrue(line.has_resistance)
|
||||
self.assertIn("dm1@pneumatic_100", line.data_paths)
|
||||
|
||||
def test_rcr_and_crc_patterns_are_distinct(self) -> None:
|
||||
self.assertEqual(self.assembly.by_alias("pneumatic_80").pattern, "R-C-R")
|
||||
self.assertEqual(self.assembly.by_alias("pneumatic_75").pattern, "C-R-C")
|
||||
self.assertEqual(len(self.assembly.by_submodel("PNL0002")), 8)
|
||||
self.assertEqual(len(self.assembly.by_submodel("PNL0003")), 8)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in new issue
Block a user