补充test_mql pneumatic_96候选短窗口对比

This commit is contained in:
huojiarong committed 2026-07-29 09:02:55 +00:00
1 parent a8a68f6dd4
commit e17a952bee
2 files changed
+391 -14

No files matched your search

@@ -19,12 +19,15 @@ from PythonModels.scripts.run_test_mql_full_state_comparison import (
TestMqlPnvoUpstreamEnthalpyDiagnostic,
TestMqlPnl0001PressureLossCalibrationDiagnostic,
TestMqlPnvoEventBoundaryDiagnostic,
TestMqlPnvoEventWindowCandidateComparisonDiagnostic,
TestMqlPnvoEventWindowCandidateMetricComparison,
TestMqlPnvoEventWindowDiagnostic,
TestMqlPnvoEventWindowSampleDiagnostic,
TestMqlPnvoFlowParameterDiagnostic,
TestMqlPnvoEventWindowSegmentDiagnostic,
format_test_mql_full_state_comparison_summary,
format_test_mql_pnvo_event_boundary_summary,
format_test_mql_pnvo_event_window_candidate_comparison_summary,
format_test_mql_pnvo_event_window_summary,
run_test_mql_full_state_comparison,
_ideal_pn2vol_reference_dtemp,
@@ -899,6 +902,73 @@ class RunTestMqlFullStateComparisonScriptTests(unittest.TestCase):
self.assertIn("Final comparison:", summary)
self.assertTrue(summary.endswith("\n"))
def test_formats_pnvo_event_window_candidate_comparison(self) -> None:
data_paths = ("press@pn_c1_8", "dm2@pn_morifice_1")
default_diagnostic = TestMqlPnvoEventWindowDiagnostic(
orifice_alias="pn_morifice_1",
event_time_s=0.04,
final_time_s=0.05,
data_paths=data_paths,
segment_diagnostics=(),
sample_diagnostics=(),
python_values_by_data_path={
"press@pn_c1_8": 1.0,
"dm2@pn_morifice_1": 10.0,
},
amesim_values_by_data_path={
"press@pn_c1_8": 4.0,
"dm2@pn_morifice_1": 8.0,
},
)
candidate_diagnostic = TestMqlPnvoEventWindowDiagnostic(
orifice_alias="pn_morifice_1",
event_time_s=0.04,
final_time_s=0.05,
data_paths=data_paths,
segment_diagnostics=(),
sample_diagnostics=(),
python_values_by_data_path={
"press@pn_c1_8": 3.0,
"dm2@pn_morifice_1": 13.0,
},
amesim_values_by_data_path={
"press@pn_c1_8": 4.0,
"dm2@pn_morifice_1": 8.0,
},
)
metric = TestMqlPnvoEventWindowCandidateMetricComparison(
time_s=0.0401,
metric_name="p96:p2_abs_error_pa",
default_abs_error=32000.0,
candidate_abs_error=3600.0,
)
diagnostic = TestMqlPnvoEventWindowCandidateComparisonDiagnostic(
orifice_alias="pn_morifice_1",
event_time_s=0.04,
final_time_s=0.05,
default_diagnostic=default_diagnostic,
candidate_diagnostic=candidate_diagnostic,
metric_comparisons=(metric,),
)
summary = format_test_mql_pnvo_event_window_candidate_comparison_summary(
diagnostic
)
self.assertEqual(metric.abs_error_delta, -28400.0)
self.assertIn("PNVO event window candidate comparison", summary)
self.assertIn("negative delta means the candidate reduced error", summary)
self.assertIn("t=0.0401 - p96:p2_abs_error_pa", summary)
self.assertIn("default_abs_error=32000.0", summary)
self.assertIn("candidate_abs_error=3600.0", summary)
self.assertIn("delta=-28400.0", summary)
self.assertIn("Final comparison:", summary)
self.assertIn("press@pn_c1_8", summary)
self.assertIn("delta=-2.0", summary)
self.assertIn("dm2@pn_morifice_1", summary)
self.assertIn("delta=3.0", summary)
self.assertTrue(summary.endswith("\n"))
def test_full_state_script_can_skip_artifact_files(self) -> None:
with tempfile.TemporaryDirectory() as tmpdir:
output_dir = Path(tmpdir)