perf: retain exact flow caches and compiled targets

This commit is contained in:
Codex committed 2026-08-16 11:21:44 +00:00
1 parent f09dfcf542
commit 22b35b2945
7 files changed
+138 -21

No files matched your search

+32
View File
@@ -100,6 +100,38 @@ class AmesimSignalComponentTests(unittest.TestCase):
valve.res.signal = -0.5
self.assertAlmostEqual(valve.opening, 0.0)
def test_pnvo001_exact_repeated_flow_characteristics_are_cached(self) -> None:
valve = AmesimPnvo001SignalOpening("valve_1", self.medium, opening0=0.25)
valve._one_way_flow_characteristics.cache_clear()
first = valve._one_way_flow_characteristics(
upstream_pressure=501000.0,
downstream_pressure=500000.0,
upstream_temperature=300.0,
)
after_first = valve._one_way_flow_characteristics.cache_info()
second = valve._one_way_flow_characteristics(
upstream_pressure=501000.0,
downstream_pressure=500000.0,
upstream_temperature=300.0,
)
after_second = valve._one_way_flow_characteristics.cache_info()
changed_pressure = valve._one_way_flow_characteristics(
upstream_pressure=502000.0,
downstream_pressure=500000.0,
upstream_temperature=300.0,
)
after_pressure_change = valve._one_way_flow_characteristics.cache_info()
self.assertEqual(first, second)
self.assertEqual(after_first.misses, 1)
self.assertEqual(after_second.hits, after_first.hits + 1)
self.assertNotEqual(changed_pressure, second)
self.assertEqual(
after_pressure_change.misses,
after_second.misses + 1,
)
def test_signal_resolver_propagates_step_to_valve_input(self) -> None:
network = SimulationNetwork("signal-smoke")
step = AmesimStep0("step_1", self.medium, initial=0.0, final=0.75, time=0.1)