排序test_mql总闭包对比偏差

This commit is contained in:
huojiarong committed 2026-07-20 09:59:09 +00:00
1 parent eaafe5eafc
commit 3951bc372c
2 files changed
+30 -1

No files matched your search

@@ -53,6 +53,20 @@ class TestMqlFullStateComparisonRun:
def signal_count(self) -> int:
return len(self.output.data_paths)
def metrics_by_max_abs_error(self):
return tuple(
sorted(
self.comparison.metrics,
key=lambda metric: metric.max_abs_error,
reverse=True,
)
)
@property
def largest_abs_error_metric(self):
metrics = self.metrics_by_max_abs_error()
return metrics[0] if metrics else None
@dataclass(frozen=True)
class TestMqlFullStateComparisonPathConfig:
@@ -175,7 +189,14 @@ def format_test_mql_full_state_comparison_summary(
f"Max absolute error: {run.comparison.max_abs_error}",
f"Max relative error: {run.comparison.max_rel_error}",
]
for metric in run.comparison.metrics:
largest_metric = run.largest_abs_error_metric
if largest_metric is not None:
lines.append(
"Largest absolute error: "
f"{largest_metric.data_path}={largest_metric.max_abs_error}"
)
lines.append("Metrics by max absolute error:")
for metric in run.metrics_by_max_abs_error():
lines.append(
f" - {metric.data_path}: max_abs_error={metric.max_abs_error}, "
f"final_abs_error={metric.final_abs_error}"
@@ -46,9 +46,15 @@ class RunTestMqlFullStateComparisonScriptTests(unittest.TestCase):
self.assertEqual(run.sample_count, 1)
self.assertEqual(run.signal_count, 2)
self.assertAlmostEqual(run.comparison.max_abs_error, 0.0, delta=1.0e-8)
self.assertEqual(
run.metrics_by_max_abs_error()[0].data_path,
"press@pn_c1_8",
)
self.assertTrue(csv_summary_exists)
self.assertIn("Mode: Python 132 full-state closure comparison", summary)
self.assertIn("Compared signals: 2", summary)
self.assertIn("Largest absolute error: press@pn_c1_8=", summary)
self.assertIn("Metrics by max absolute error:", summary)
self.assertIn("python.press@pn_c1_8", csv_header)
self.assertIn("amesim.vol1@pn_brp2_8", csv_header)
@@ -95,6 +101,8 @@ class RunTestMqlFullStateComparisonScriptTests(unittest.TestCase):
self.assertIn("Model: test_mql", summary)
self.assertIn("Output schema signals: 858", summary)
self.assertIn("Compared signals: 1", summary)
self.assertIn("Largest absolute error: press@pn_c1_8=", summary)
self.assertIn("Metrics by max absolute error:", summary)
self.assertTrue(summary.endswith("\n"))