STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
test_layerx_wire Namespace Reference

Functions

 _drawing (name)
Override _low_mawp (float psi=LOW_MAWP_PSI)
 cfg ()
 he ()
 gn2_pair (cfg)
 tripped (cfg, he)
 tripped_bare (cfg, he)
 test_recording_the_network_moves_no_number (gn2_pair)
 test_the_network_block_is_the_contracts_and_its_rungs_telescope (gn2_pair)
 test_the_feed_diagnostics_build_from_the_recorded_network (gn2_pair, cfg)
 test_a_trip_ends_the_burn_where_it_happened (tripped)
 test_a_trip_is_unconverged_even_with_nothing_to_iterate (tripped_bare, tripped)
 test_the_diagnostics_read_a_tripped_burn (tripped)
 test_a_trip_is_a_fail_event_and_a_bad_limit_not_a_horizon (tripped)
 test_the_listing_marks_a_tripped_run (tripped)
 test_the_set_point_and_hardware_tools_do_not_use_a_tripped_burn (tripped, cfg, he, monkeypatch)
 test_the_sweep_leaves_a_tripped_case_out_of_the_swings_and_lists_it (tripped, cfg, he, monkeypatch)
 test_the_sweep_counts_a_flip_of_the_tank_that_runs_dry_first_only_when_it_strands_propellant (cfg, he, monkeypatch)
 test_the_legacy_optimiser_and_reconcile_refuse_a_tripped_burn (tripped, cfg, he, monkeypatch)
 _trip_now (session, vessel="FUT")
 test_a_trip_in_the_settle_raises_with_its_record (cfg, he, monkeypatch)
 test_a_trip_in_the_lead_in_fires_nothing_and_is_not_replayed (cfg, he, monkeypatch)

Variables

float STUDY_LOCKUP_PSIA = 564.7
 feedtwin = pytest.importorskip("feedtwin", reason="lib/feedtwin is not installed")
 ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
 CFG = os.path.join(ROOT, "configs", "ethalox_6800N.yaml")
float PSI = 6894.757293168361
float ATM_PSI = 101325.0 / PSI
float LOW_MAWP_PSI = 566.3
 pytestmark
 probes = dataclasses.replace(self.probes, network=False)

Detailed Description

Layer X records the whole feed network on every burn, and a vessel trip ends the burn.

Two lib/feedtwin features wired into ``engine/layerx/analysis.py`` (DATA-CONTRACT 2 and 4):

* **The network recorder** (``Probes(network=True)``, ``network_dict``). Recording only: a GN2 burn
  with it and one without give the same series and summary to the last bit, and the block it writes
  telescopes -- each side's rungs add up, step by step, to its first node minus the chamber.
* **The vessel trip** (``BurnEnd.tripped``, ``trip_record``). The AUDIT's case is a tank whose MAWP
  is restated below the pressure the burn reaches (AUDIT section 5, #1: Layer X then integrated the
  frozen frame to the 14 s horizon, 99,478 N s for a ~24,240 N s load). Here TK-FUEL is restated to
  566.3 psi on the helium drawing, which trips 0.575 s after Fire: the result must stop at the trip
  (series, burn time, impulse), say so (``tripped``, a ``fail`` event keyed ``trip``, ``converged``
  false, ``vessel_trip`` graded bad), and every tool that grades burns must count it as failing.
  The same with the AUDIT's own 600 psi, through the replay and the diagnostics, is in
  tests/test_layerx_integration_le4.py (LAYERX_GOLDEN=1).

Trips in the settle and in the lead-in cannot be reached from a drawing that passes preflight (the
T-0 lockup is checked against the MAWP), so those two paths are driven by tripping the session
directly, the way ``Session._check_limits`` does.

Function Documentation

◆ _drawing()

test_layerx_wire._drawing ( name)
protected

Definition at line 59 of file test_layerx_wire.py.

Referenced by gn2_pair(), and he().

◆ _low_mawp()

Override test_layerx_wire._low_mawp ( float psi = LOW_MAWP_PSI)
protected

◆ _trip_now()

test_layerx_wire._trip_now ( session,
vessel = "FUT" )
protected

◆ cfg()

test_layerx_wire.cfg ( )

Definition at line 69 of file test_layerx_wire.py.

◆ gn2_pair()

test_layerx_wire.gn2_pair ( cfg)
One GN2 burn as Layer X runs it (network recorded) and the same burn with the recorder off.

Definition at line 79 of file test_layerx_wire.py.

References _drawing().

◆ he()

test_layerx_wire.he ( )

Definition at line 74 of file test_layerx_wire.py.

References _drawing().

◆ test_a_trip_ends_the_burn_where_it_happened()

test_layerx_wire.test_a_trip_ends_the_burn_where_it_happened ( tripped)

Definition at line 191 of file test_layerx_wire.py.

◆ test_a_trip_in_the_lead_in_fires_nothing_and_is_not_replayed()

test_layerx_wire.test_a_trip_in_the_lead_in_fires_nothing_and_is_not_replayed ( cfg,
he,
monkeypatch )

Definition at line 405 of file test_layerx_wire.py.

References _trip_now().

◆ test_a_trip_in_the_settle_raises_with_its_record()

test_layerx_wire.test_a_trip_in_the_settle_raises_with_its_record ( cfg,
he,
monkeypatch )

Definition at line 381 of file test_layerx_wire.py.

References _trip_now().

◆ test_a_trip_is_a_fail_event_and_a_bad_limit_not_a_horizon()

test_layerx_wire.test_a_trip_is_a_fail_event_and_a_bad_limit_not_a_horizon ( tripped)

Definition at line 243 of file test_layerx_wire.py.

◆ test_a_trip_is_unconverged_even_with_nothing_to_iterate()

test_layerx_wire.test_a_trip_is_unconverged_even_with_nothing_to_iterate ( tripped_bare,
tripped )

Definition at line 224 of file test_layerx_wire.py.

◆ test_recording_the_network_moves_no_number()

test_layerx_wire.test_recording_the_network_moves_no_number ( gn2_pair)

Definition at line 127 of file test_layerx_wire.py.

◆ test_the_diagnostics_read_a_tripped_burn()

test_layerx_wire.test_the_diagnostics_read_a_tripped_burn ( tripped)

Definition at line 231 of file test_layerx_wire.py.

◆ test_the_feed_diagnostics_build_from_the_recorded_network()

test_layerx_wire.test_the_feed_diagnostics_build_from_the_recorded_network ( gn2_pair,
cfg )

Definition at line 168 of file test_layerx_wire.py.

◆ test_the_legacy_optimiser_and_reconcile_refuse_a_tripped_burn()

test_layerx_wire.test_the_legacy_optimiser_and_reconcile_refuse_a_tripped_burn ( tripped,
cfg,
he,
monkeypatch )

Definition at line 352 of file test_layerx_wire.py.

◆ test_the_listing_marks_a_tripped_run()

test_layerx_wire.test_the_listing_marks_a_tripped_run ( tripped)

Definition at line 259 of file test_layerx_wire.py.

◆ test_the_network_block_is_the_contracts_and_its_rungs_telescope()

test_layerx_wire.test_the_network_block_is_the_contracts_and_its_rungs_telescope ( gn2_pair)

Definition at line 136 of file test_layerx_wire.py.

◆ test_the_set_point_and_hardware_tools_do_not_use_a_tripped_burn()

test_layerx_wire.test_the_set_point_and_hardware_tools_do_not_use_a_tripped_burn ( tripped,
cfg,
he,
monkeypatch )

Definition at line 270 of file test_layerx_wire.py.

References _low_mawp().

◆ test_the_sweep_counts_a_flip_of_the_tank_that_runs_dry_first_only_when_it_strands_propellant()

test_layerx_wire.test_the_sweep_counts_a_flip_of_the_tank_that_runs_dry_first_only_when_it_strands_propellant ( cfg,
he,
monkeypatch )
Sweep 20261102-122930-2c5489 on LE4 (3): the nominal emptied LOX first, two Cd cases emptied fuel
first with 0.003 kg of LOX left, and the page said '2 inputs break a limit: measure these first'. A
run grades which tank empties first as information and the propellant left over at 0.2 kg (limits.py);
the sweep grades a flip by the same residual.

Definition at line 324 of file test_layerx_wire.py.

◆ test_the_sweep_leaves_a_tripped_case_out_of_the_swings_and_lists_it()

test_layerx_wire.test_the_sweep_leaves_a_tripped_case_out_of_the_swings_and_lists_it ( tripped,
cfg,
he,
monkeypatch )

Definition at line 282 of file test_layerx_wire.py.

◆ tripped()

test_layerx_wire.tripped ( cfg,
he )
The early trip as the router runs a burn: erosion replay, flight asked for, diagnostics on.
The flight is a stub that counts its calls: a tripped burn must not be flown.

Definition at line 101 of file test_layerx_wire.py.

References _low_mawp().

◆ tripped_bare()

test_layerx_wire.tripped_bare ( cfg,
he )
The same trip as the sweep burns it: no replay, no flight, so no passes decide ``converged``.

Definition at line 118 of file test_layerx_wire.py.

References _low_mawp().

Variable Documentation

◆ ATM_PSI

float test_layerx_wire.ATM_PSI = 101325.0 / PSI

Definition at line 47 of file test_layerx_wire.py.

◆ CFG

test_layerx_wire.CFG = os.path.join(ROOT, "configs", "ethalox_6800N.yaml")

Definition at line 45 of file test_layerx_wire.py.

◆ feedtwin

test_layerx_wire.feedtwin = pytest.importorskip("feedtwin", reason="lib/feedtwin is not installed")

Definition at line 37 of file test_layerx_wire.py.

◆ LOW_MAWP_PSI

float test_layerx_wire.LOW_MAWP_PSI = 566.3

Definition at line 51 of file test_layerx_wire.py.

◆ probes

test_layerx_wire.probes = dataclasses.replace(self.probes, network=False)

Definition at line 91 of file test_layerx_wire.py.

◆ PSI

float test_layerx_wire.PSI = 6894.757293168361

Definition at line 46 of file test_layerx_wire.py.

◆ pytestmark

test_layerx_wire.pytestmark
Initial value:
1= pytest.mark.skipif(
2 not (shipped_drawings_dir() / "copv_study_he.json").is_file()
3 or not (shipped_drawings_dir() / "copv_study_gn2.json").is_file(),
4 reason="feed-twin's shipped drawings are not next to this checkout")

Definition at line 53 of file test_layerx_wire.py.

◆ ROOT

test_layerx_wire.ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

Definition at line 44 of file test_layerx_wire.py.

◆ STUDY_LOCKUP_PSIA

float test_layerx_wire.STUDY_LOCKUP_PSIA = 564.7

Definition at line 33 of file test_layerx_wire.py.