接入test_mql高密度事件窗口诊断

This commit is contained in:
huojiarong committed 2026-07-27 16:18:20 +00:00
1 parent 01b606df30
commit f8af99ace1
4 files changed
+246 -33

No files matched your search

+36 -1
View File
@@ -2,8 +2,12 @@ from __future__ import annotations
import unittest
from pathlib import Path
from unittest.mock import Mock
from PythonModels.reporting.amesim_results import load_test_mql_amesim_results
from PythonModels.reporting.amesim_results import (
_resolve_result_members,
load_test_mql_amesim_results,
)
REPO_ROOT = Path(__file__).resolve().parents[1]
@@ -41,6 +45,37 @@ class AmesimResultsTests(unittest.TestCase):
self.assertAlmostEqual(temp3[-1], self.results.final_value("temp3@pn_c1_8"))
self.assertAlmostEqual(press3[-1], self.results.final_value("press3@pn_c1_8"))
def test_window_loader_keeps_one_sample_after_stop(self) -> None:
results = load_test_mql_amesim_results(TEST_MQL_AME, time_stop_s=0.04)
self.assertEqual(results.point_count, 6)
self.assertAlmostEqual(results.times[-2], 0.04)
self.assertAlmostEqual(results.times[-1], 0.05)
self.assertEqual(
len(results.series("temp@pn_c1_8")),
results.point_count,
)
self.assertEqual(results.final_values_by_data_path, {})
def test_auto_detects_renamed_result_members(self) -> None:
archive = Mock()
archive.getnames.return_value = (
"renamed_model_.var",
"renamed_model_.results",
"renamed_model_.sim",
)
pair = _resolve_result_members(
archive,
var_member=None,
results_member=None,
)
self.assertEqual(
pair,
("renamed_model_.var", "renamed_model_.results"),
)
if __name__ == "__main__":
unittest.main()
@@ -26,6 +26,7 @@ from PythonModels.scripts.run_test_mql_full_state_comparison import (
format_test_mql_pnvo_event_boundary_summary,
format_test_mql_pnvo_event_window_summary,
run_test_mql_full_state_comparison,
_ideal_pn2vol_reference_dtemp,
_series_sample_bracket,
)
@@ -35,6 +36,28 @@ TEST_MQL_AME = REPO_ROOT / "AmesimModels" / "test_mql.ame"
class RunTestMqlFullStateComparisonScriptTests(unittest.TestCase):
def test_ideal_pn2vol_reference_dtemp_uses_internal_energy_mass_offset(
self,
) -> None:
from PythonModels.components.amesim_pneumatic import HELIUM_PNEUMATIC_GAS
gas = HELIUM_PNEUMATIC_GAS
result = _ideal_pn2vol_reference_dtemp(
gas=gas,
mass_kg=0.002,
temperature_k=320.0,
mass_derivative_kg_s=0.1,
enthalpy_flow_w=-100.0,
heat_flow_w=5.0,
)
expected = (
-100.0
+ (gas.cp * 298.15 - gas.cv * 320.0) * 0.1
+ 5.0
) / (0.002 * gas.cv)
self.assertAlmostEqual(result, expected)
def test_series_sample_bracket_distinguishes_exact_and_interpolated_times(self) -> None:
times = (0.04000000000000009, 0.050000000000000114)