|
STAR
Cal STAR — firmware, DAQ server, and engine design
|
Variables | |
| M = Provenance.MANUFACTURER | |
| WATER = FlowConditions(rho=1000.0, mu=1.0e-3, p_upstream=10.0e5) | |
| CATALOG | |
Regressions from the Stage A audit. Four defects found by probing Phases 00-04 after they were each "done". Three of them had passing tests either side of the seam they broke, which is the pattern worth noting: every one lived in the *join* between two phases, where each side was tested alone and the pair was not. * A static head that reversed sign with the flow (Phase 03 physics, exposed only through Phase 04 assembly). * Substance constants asked of one backend instead of the chain, so putting measured data first -- the point of the feature -- broke every component evaluation (Phase 01 x Phase 03). * A catalog that could not hold a curve, making the ``measured`` model unreachable from the parts database (Phase 02 x Phase 03). * A canonical unit resolved by dictionary order rather than declaration.
|
protected |
Definition at line 37 of file test_audit_regressions.py.
Referenced by test_a_network_with_elevation_and_reverse_flow_is_consistent(), test_static_head_does_not_reverse_with_the_flow(), and test_the_residual_is_zero_at_the_correct_reverse_state().
|
protected |
Definition at line 134 of file test_audit_regressions.py.
Referenced by test_a_measured_fluid_still_drives_components(), and test_substance_constants_are_sought_along_the_whole_chain().
|
protected |
A COPV feeding a manifold: PT-less plenum with a shut relief and a capped fill quick-disconnect hanging off it, and a regulator downstream. The shape of most real feed systems, and the one the Phase 04 validator used to refuse outright.
Definition at line 292 of file test_audit_regressions.py.
Referenced by test_a_leg_behind_a_shut_valve_is_flagged(), test_a_stub_sits_at_its_plenum_pressure(), test_an_indeterminate_stub_is_flagged(), test_dead_ended_ports_no_longer_refuse_to_solve(), test_stubs_are_peeled_transitively(), and test_stubs_are_pruned_rather_than_iterated().
| None test_audit_regressions.test_a_chain_that_truly_cannot_report_constants_says_so | ( | ) |
With guidance, not a bare failure.
Definition at line 163 of file test_audit_regressions.py.
| None test_audit_regressions.test_a_leg_behind_a_shut_valve_is_flagged | ( | ) |
A capped leg behind a shut valve holds what was trapped in it. The check above asks the component for a drop at zero flow, and a shut ball valve has none: its ``pressure_drop(0)`` is identically zero. So the leg was back-filled from the manifold across the seat and reported as a reading -- a transducer there followed the plenum it is shut off from (docs/PHYSICS-BENCHMARK.md 3.2). Open, the same leg is an ordinary stub on the manifold and reads it.
Definition at line 413 of file test_audit_regressions.py.
References _stub_network().
| None test_audit_regressions.test_a_measured_fluid_still_drives_components | ( | ) |
The downstream consequence, checked where it actually mattered.
Definition at line 156 of file test_audit_regressions.py.
References _measured_lox().
| None test_audit_regressions.test_a_mistyped_fluid_suggests_the_right_one | ( | ) |
Definition at line 284 of file test_audit_regressions.py.
| None test_audit_regressions.test_a_mistyped_unit_suggests_the_right_one | ( | ) |
Fifty units listed is what you read when you do not know what exists. A typo is the commoner case and deserves a pointer.
Definition at line 277 of file test_audit_regressions.py.
| None test_audit_regressions.test_a_network_with_elevation_and_reverse_flow_is_consistent | ( | ) |
End to end: a branch running backwards up a climb still balances.
Definition at line 93 of file test_audit_regressions.py.
References _climbing_pipe().
| None test_audit_regressions.test_a_new_dimension_needs_its_canonical_unit_declared | ( | ) |
Definition at line 272 of file test_audit_regressions.py.
| None test_audit_regressions.test_a_part_can_carry_measured_flow_data | ( | Path | tmp_path | ) |
The bug: the catalog held scalars only. So a part with measured flow data could not be catalogued, the ``measured`` model was reachable from code but not from the parts database, and Phase 12 had nowhere to write a fitted curve back to.
Definition at line 204 of file test_audit_regressions.py.
| None test_audit_regressions.test_a_passed_curve_overrides_the_catalogued_one | ( | Path | tmp_path | ) |
A retest of this particular hose beats the part's stored curve.
Definition at line 236 of file test_audit_regressions.py.
| None test_audit_regressions.test_a_stub_sits_at_its_plenum_pressure | ( | ) |
Zero flow means no friction, so a level stub reads the plenum exactly.
Definition at line 335 of file test_audit_regressions.py.
References _stub_network().
| None test_audit_regressions.test_an_indeterminate_stub_is_flagged | ( | ) |
A check valve behind its cracking pressure has no defined stub pressure. Nothing is flowing, so nothing holds that drop; the honest report is the live end's pressure as an upper bound, plus a note that it is one.
Definition at line 385 of file test_audit_regressions.py.
References _stub_network().
| None test_audit_regressions.test_catalogued_curves_survive_a_round_trip | ( | Path | tmp_path | ) |
Definition at line 223 of file test_audit_regressions.py.
| None test_audit_regressions.test_components_without_elevation_report_no_static_head | ( | ) |
The default is zero, so nothing else acquired a spurious head.
Definition at line 111 of file test_audit_regressions.py.
| None test_audit_regressions.test_dead_ended_ports_no_longer_refuse_to_solve | ( | ) |
The bug: a transducer port, a capped QD and a shut relief are dead ends, and the validator treated every one as a malformed network. They are correct hardware. Most ports on a real manifold carry no flow.
Definition at line 324 of file test_audit_regressions.py.
References _stub_network().
| None test_audit_regressions.test_static_head_does_not_reverse_with_the_flow | ( | ) |
The bug: elevation was signed along with friction. ``rho g dz`` is set by where the ends of the pipe are. Friction opposes the flow and reverses with it; elevation does not. Conflating them put a reversing branch out by exactly ``2 rho g dz`` -- while still converging and still conserving mass, which is why nothing noticed.
Definition at line 54 of file test_audit_regressions.py.
References _climbing_pipe().
| None test_audit_regressions.test_stubs_are_peeled_transitively | ( | ) |
A capped run two branches deep is still a stub. Removing the outer branch is what makes the inner one a stub in turn, so the peel has to iterate rather than scan once.
Definition at line 358 of file test_audit_regressions.py.
References _stub_network().
| None test_audit_regressions.test_stubs_are_pruned_rather_than_iterated | ( | ) |
They would otherwise sit on the derivative floor and be reported as anomalies on every run of a perfectly ordinary system.
Definition at line 347 of file test_audit_regressions.py.
References _stub_network().
| None test_audit_regressions.test_substance_constants_are_sought_along_the_whole_chain | ( | ) |
The bug: only the head of the chain was asked. A measured table has no critical point to report, so putting one in front -- which is the entire point of the feature -- made ``critical_pressure`` raise, which made ``conditions_from_fluid`` raise, which broke every component evaluation downstream of it.
Definition at line 142 of file test_audit_regressions.py.
References _measured_lox().
| None test_audit_regressions.test_the_canonical_unit_is_declared_not_inferred | ( | ) |
K and degC differences are the same size, so factor 1.0 cannot decide. Before, the answer came from dictionary insertion order -- stable in practice, invisible in the source, and not something a reader could check.
Definition at line 261 of file test_audit_regressions.py.
| None test_audit_regressions.test_the_residual_is_zero_at_the_correct_reverse_state | ( | ) |
Stated as the solver sees it, which is where the bug actually bit.
Definition at line 76 of file test_audit_regressions.py.
References _climbing_pipe().
| test_audit_regressions.CATALOG |
Definition at line 175 of file test_audit_regressions.py.
| test_audit_regressions.M = Provenance.MANUFACTURER |
Definition at line 33 of file test_audit_regressions.py.
| test_audit_regressions.WATER = FlowConditions(rho=1000.0, mu=1.0e-3, p_upstream=10.0e5) |
Definition at line 34 of file test_audit_regressions.py.