高温氦气物性补全;三通四通能量计算bug修正

This commit is contained in:
ljz committed 2026-09-15 17:57:20 +08:00
1 parent 6fc9afe41d
commit 2b07d996cf
133 files changed
+5230 -253310

No files matched your search

+11 -1
View File
@@ -7,6 +7,7 @@ import unittest
import numpy as np
from app.simulation.native_codegen.compiler import compile_native_program
from app.simulation.native_codegen.build import build_native
from app.simulation.native_codegen.result_storage import scan_blocks
from tests.test_native_catalog import Circuit
FIXTURE=Path(__file__).parent/'fixtures/amesim-component-semantics-2404.json'
@@ -19,16 +20,25 @@ class NativeFrictionReferenceTests(unittest.TestCase):
for l,r in case['connections']:b.net.connect(*l,*r)
program=compile_native_program(b.net)
build=build_native(program)
self.addCleanup(build.close)
methods=('BDF','RK45') if case['name'] in ('friction_simple','friction_band') else ('BDF',)
for method in methods:
with self.subTest(case=case['name'],method=method),tempfile.TemporaryDirectory() as tmp:
path=Path(tmp)/'result.json'
state_path=Path(tmp)/'states.bin';output_path=Path(tmp)/'outputs.bin'
subprocess.run([str(build.executable),'--method',method,'--stop','3','--sample-step','.001',
'--max-step','.002','--rtol','1e-9','--timeout','30','--output',str(path)],
'--max-step','.002','--rtol','1e-9','--timeout','30','--output',str(path),
'--sample-file',str(state_path),'--output-block-file',str(output_path)],
check=True,capture_output=True,timeout=45)
result=json.loads(path.read_text())
self.assertTrue(result['success'],result)
self.assertEqual(result['simulatedUntil'],3)
for blocks, columns in ((state_path,len(program.state_keys)+1),
(output_path,len(program.variables)+1)):
stored=scan_blocks(blocks,expected_columns=columns)
self.assertGreater(stored['blocks'],1)
self.assertEqual(stored['samples'],len(result['series']['time']))
self.assertFalse(stored['incompleteTail'] or stored['corrupt'])
for key,expected in case['series'].items():
actual=np.interp(case['time'],result['series']['time'],result['series'][key])
field=key.split('.')[-1]