14from test_session_burn
import TABLES, _model, needs_engine, needs_stand
53 """The check can fail: a bottle that loses a milligram a step it books
54 nowhere is mass the balance cannot explain."""
55 real = BottleSim.advance
57 def leaky(self, dt, **kw):
59 self.state = type(self.state)(
60 mass=self.state.mass - 1e-6,
61 energy=self.state.energy,
62 wall_temperature=self.state.wall_temperature,
65 monkeypatch.setattr(BottleSim,
"advance", leaky)
67 last = session.solver_log[-1]
68 assert abs(last.mass_error_kg - last.guard_kg) > 1e-4
77 session = open_session(
78 _model(engine=
True), load_machine(tables=TABLES), setup=burn_setup()
84 loads={
"OXT": 6.0,
"FUT": 4.0},
90 firing = [r
for r
in session.solver_log
if r.chamber_residual_psi > 0.0]
91 assert firing,
"the chamber closure was recorded"
92 tolerance = session.setup.chamber_tolerance_psi
93 assert max(r.chamber_residual_psi
for r
in firing[1:]) <= tolerance * 1.0001