Tier-1 test evidence: import costs, trajectory precision and the gate's pipefail trap (WP45 item 24)
Tier-1 test evidence: import costs, trajectory precision and the gate's pipefail trap (WP45 item 24)¶
- [verified]1 Import costs under
python -X importtime, measured for VER-72:scipy.sparse~260 ms,meshio~170 ms,h5py~140–180 ms (ngsolve~370 ms andnumpy~67 ms are recorded above). These are why the deferred-import rule names them [tested: tests/tier1/test_source_conventions.py::test_ver72_deferrable_and_type_checking_imports_are_admitted]. Source:tests/tier1/test_source_conventions.py. - [tested: tests/tier1/test_sweep_cli.py::test_ver38_the_thread_pinning_is_set_before_numpy_is_imported] NumPy and the BLAS behind it read the thread variables when they are imported and size their pool then, so setting them afterwards has no effect. A forked worker inherits a parent that has already imported NumPy; the sweep pool therefore uses
spawn, which is also the only start method Windows has. Source:tests/tier1/test_sweep_cli.py(test_ver38_the_thread_pinning_is_set_before_numpy_is_imported). - [tested: tests/tier1/test_structure_stage.py::test_ver48_the_last_ns_window_does_not_depend_on_the_float32_timestep] A DCD stores its timestep as a float32: 1 ps reads back as 1.0000000328 ps and 10 ps as 9.99999996 ps, so times accumulated as
frame · dtdrift in opposite directions. Thelast_nswindow is therefore taken per frame, and the frame exactlylast_nsbefore the last one is always inside. Source:tests/tier1/test_structure_stage.py(test_ver48_the_last_ns_window_does_not_depend_on_the_float32_timestep). - [tested: tests/tier1/test_structure_stage.py::test_ver48_each_trajectory_format_reads] TRR stores float32 nanometres, so the ångström-to-nanometre conversion costs up to two float32 ulps at 13 nm (
2 × 2⁻²³ × 13 nm = 3.1 × 10⁻⁶ nm); XTC quantises to 0.001 nm and rounds by half of that, plus float32 round-off. Source:tests/tier1/test_structure_stage.py. - [verified]
grep -qexits at the first match; underpipefailthe writer's SIGPIPE once made a tracked Gmsh change read as a miss in the hook's Gmsh requirement check. Source:tests/tier1/test_workflow_hooks.py(test_gate_hook_requires_gmsh_for_a_tracked_change_beside_an_untracked_file).
-
git show 3782c43:tests/tier1/test_source_conventions.py, module docstring andDEFERRABLEcomment (before WP45). ↩