解析AMESim二进制结果文件
This commit is contained in:
1 parent
a598fcd5c3
commit
796433c275
3 files changed
+211
-7
No files matched your search
@@ -0,0 +1,46 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
|
||||
from PythonModels.reporting.amesim_results import load_test_mql_amesim_results
|
||||
|
||||
|
||||
REPO_ROOT = Path(__file__).resolve().parents[1]
|
||||
TEST_MQL_AME = REPO_ROOT / "AmesimModels" / "test_mql.ame"
|
||||
|
||||
|
||||
class AmesimResultsTests(unittest.TestCase):
|
||||
@classmethod
|
||||
def setUpClass(cls) -> None:
|
||||
cls.results = load_test_mql_amesim_results(TEST_MQL_AME)
|
||||
|
||||
def test_reads_binary_results_shape(self) -> None:
|
||||
self.assertEqual(self.results.point_count, 1002)
|
||||
self.assertEqual(self.results.saved_variable_count, 1116)
|
||||
self.assertEqual(len(self.results.variables), 1278)
|
||||
self.assertEqual(len(self.results.final_values_by_data_path), 1100)
|
||||
|
||||
def test_time_axis_matches_amesim_simulation(self) -> None:
|
||||
self.assertAlmostEqual(self.results.times[0], 0.0)
|
||||
self.assertAlmostEqual(self.results.times[1], 0.01)
|
||||
self.assertAlmostEqual(self.results.times[-1], 10.0)
|
||||
|
||||
def test_variable_mapping_preserves_data_paths(self) -> None:
|
||||
self.assertEqual(self.results.saved_variable_indices[:2], (0, 1))
|
||||
self.assertEqual(self.results.variables[0].data_path, "temp3@pn_c1_8")
|
||||
self.assertEqual(self.results.variables[1].data_path, "press3@pn_c1_8")
|
||||
self.assertIn("vvol1@pn_brp2_8", self.results.series_by_data_path)
|
||||
self.assertIn("vol1@pn_brp2_8", self.results.series_by_data_path)
|
||||
|
||||
def test_series_values_match_known_amesim_samples(self) -> None:
|
||||
temp3 = self.results.series("temp3@pn_c1_8")
|
||||
press3 = self.results.series("press3@pn_c1_8")
|
||||
self.assertAlmostEqual(temp3[0], 293.15)
|
||||
self.assertAlmostEqual(press3[0], -1300.0)
|
||||
self.assertAlmostEqual(temp3[-1], self.results.final_value("temp3@pn_c1_8"))
|
||||
self.assertAlmostEqual(press3[-1], self.results.final_value("press3@pn_c1_8"))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in new issue
Block a user