Skip to content

Test review record

The hand-written part of the test inventory: the review verdict and note of each test identity (section 9 of doc/refactoring_notes/completed/uniform_test_environment_refactoring.md) and the retired-tests table, one row per test the refactoring removed. The record closed with the review (2026-09-25) and is not edited any more: a test deleted from now on is explained in its commit message (policy, section 4.5). The build still reads it: doc/code_overview/test_inventory.md, generated on every build and not committed (scripts/test_review_dossier.py, target generate_test_inventory), takes its verdict and note columns and its retired-tests table from here.

Verdicts

test verdict note
atoms_stats modify Hans, 2026-09-23 (single): Ruben's; transferred as it was, handover in single_area_tests_handover.md; the pipeline (simulate, detect_atoms, atoms_stats) is nanoparticle atoms of lib_single; asserts nothing yet; nthr from params (was 40)
coarrays keep Hans, 2026-09-23 (parallel): two tests under one name: the standalone sync check is the coarrays platform CTest entry (cafrun -np 2), the exec case is the coarray CI job's end-to-end run through qsys=coarray; its closing message claimed "Euler shift checks", it now says check_nptcls Utils review (2026-09-24): the standalone sync check is retired; the coarrays platform entry runs simple_test_exec test=coarrays (the production coarray path end to end).
detect_calpha_molecules modify Hans, 2026-09-23 (single): Ruben's; transferred as it was, handover in single_area_tests_handover.md; C-alpha molecules of lib_single; needs recall/precision floors
flex_gpu keep Hans, 2026-09-23: platform; test=flex_gpu through simple_test_exec with the five CPU-vs-CUDA routines as sub-suites, registered with USE_FLEX_CUDA only; standalone deleted
forked_process keep Hans, 2026-09-23: platform, as decided in plan section 4.6 and registered in production/CMakeLists.txt (label platform, RUN_SERIAL)
mini_stream demote Hans, 2026-09-23: manual; runs new_project/import_movies/preprocess/selection/mini_stream over a user filetab of data-set command lines (movies, gain reference, cluster). Standalone route deleted (same body); the commander route lost its command_argument_count/parse_oldschool block (the cline arrives parsed) and a delete('nran') on an empty cline. To promote: a committed micrograph set and an assertion on the stream's output
mrc2jpeg demote Hans, 2026-09-23: manual; converts a user filetab of MRC micrographs or stacks to JPEG through image%write_jpg and asserts nothing; a hermetic write_jpg check (file present, non-empty, JPEG magic bytes) is a lib_io candidate; standalone deleted
mrc_validate demote Hans, 2026-09-23: manual; reads a user volume and writes it back as vol_simple.mrc (a conversion utility, THROW_HARD only on missing arguments); standalone deleted
nano_mask demote Hans, 2026-09-22: manual; runs automask2D on a user stack (selected.spi by default) and asserts nothing; a hermetic version with generated blobs and pinned diameters/shifts is possible later; standalone deleted
openmp_offload keep Hans, 2026-09-23 (singles II): Cyril's; moved as it is: CTest platform entry with USE_OPENMP_OFFLOAD (nthr=8 device=0, OMP_TARGET_OFFLOAD=MANDATORY); it stops with status 0 on a failed check, so the entry fails on "Fatal error|FAIL: " in its output Utils review (2026-09-24, 11a): moved into the library as simple_openmp_offload_tester, run as simple_test_exec test=openmp_offload nthr=8 device=0; its stops are THROW_HARD with the same text.
pcg_frac_update demote Hans, 2026-09-23: manual; the fractional/trailing-update equivalence gate of doc/policies/3D/reconstruct3D_pcg_policy.md (validate_rec3D_pcg_fractional_updates, RAW_TOL/REPLAY_TOL); needs a refine3D project with sigma2 groups. Not a delete candidate: the assertions are in the production routine
pcg_recon keep Hans, 2026-09-23: workflow (registered, 3600 s, 8 threads; also in CI). Box 24, fixed seed, 14 gated stages on the PCG operator. If it runs in seconds on one thread it could become a fast-gate sub-suite (would need the THROW_HARD/all_ok checks rewritten on simple_test_utils); time to be measured first
preproc keep Hans, 2026-09-24 (stream): Ruben's; handover in stream_area_tests_handover.md; stays the workflow entry stream_preproc (it submits jobs to the local queue); failure path is THROW_HARD (the dossier took its assert_output_file helper for an assertion); fixture generated (dir_movies); deletes the simulation truth it could be compared with
rec3D_backends demote Hans, 2026-09-23: manual; dual-backend (gridding vs PCG) reconstruction comparison of the PCG policy, run inside a refine3D directory. Not a delete candidate: gate_fail in run_rec3D_backends_single is a hard failure
score_volume_shape demote Hans, 2026-09-22: manual diagnostic; image_bin%vol_shape_descr and image%calc_3D_shape_descriptors have no caller but this test and are kept for it
simulate_particles modify Hans, 2026-09-23: absorbed reproject: one embedded 6VXX volume (pdb2mrc, centred), reproject with nspace=100 and simulate_particles with nptcls=200 and CTF, each checked for stack presence, image count, square box, smpd and one orientation record per image; nthr from the command line instead of the hard-coded 16. Registered under workflow (simulate_particles, nthr=8) as the only nightly run of either commander; SIMPLE_CTEST_BUDGET 19 -> 20
simulated_workflow keep Hans, 2026-09-23: workflow (registered twice, 6vxx and 1jxy); the "user-supplied" flag is only the system= keyword
single_workflow keep Hans, 2026-09-23 (single): Ruben's; transferred as it was, handover in single_area_tests_handover.md; workflow entry; it passed only element=Pt, so the missing required smpd made it print usage and stop with status 0 (never ran); now smpd=0.358; nthr from params (was 40)
unit_core keep Hans, 2026-09-23: fast gate; the fixture flags are the script's heuristics over the sub-suite bodies, every sub-suite is hermetic
unit_image keep Hans, 2026-09-23: fast gate
unit_ipc keep Hans, 2026-09-23: fast gate; localhost only (the "download" flag is the script matching the word http in the HTTP POST sub-suite name), no sleeps since the optimize batch
unit_numerics keep Hans, 2026-09-23: fast gate
unit_ori keep Hans, 2026-09-23: fast gate
unit_project keep Hans, 2026-09-23: fast gate
unit_ui keep Hans, 2026-09-23: fast gate; gained the UI hash sub-suite from ui_hash_test
units keep Hans, 2026-09-23: developer umbrella, deliberately not a CTest entry (plan section 5.1)

Retired tests

test date reason replacement
subproject_distr 2026-09-22 retire: only caller of the subproject scheduling framework in simple_qsys_ctrl/simple_qsys_env, removed as dead production code (plan section 9.5) -
ptcls_ppca_subproject_distr 2026-09-22 retire: as subproject_distr -
ori 2026-09-22 merge into unit_ori: print-only smoke of the ori API (three THROW_HARDs); wrote a project to disk assertions added to simple_ori_tester for ori_from_rotmat, reject, append_ori, delete_entry, get_keys, ori_strlen_trim, ori2chash/chash2ori, ori2json, get/set_ctfvars; get_axis_angle removed from simple_ori (no production caller)
ori_test 2026-09-22 merge into unit_ori: same body as ori on the exec route as ori
oris 2026-09-22 merge into unit_ori: reallocate check plus print-only write/read (read into an empty object checked nothing) assertions added to simple_oris_tester for reallocate, write/read round-trip, rnd_oris bounds and Euler limits
oris_test 2026-09-22 merge into unit_ori: same body as oris on the exec route as oris
sym 2026-09-22 merge into unit_ori: sym_tester printed subgroup tables, limits and PASSED/FAILED lines without failing new simple_sym_tester (sub-suite symmetry of unit_ori): order and classification, eullims per group, subgroup tables and Lagrange, symops form a group (identity, proper rotations, distinct, closed), apply consistency, rnd_euler limits, rot_to_asym, symrandomize, build_refspiral (size, redundancy, north pole, mirror pairs); sym_tester removed from simple_sym
sym_test 2026-09-22 merge into unit_ori: same body as sym on the exec route as sym
uniform_euler 2026-09-22 delete: printed 2000 random normals for eyeballing; no assertion possible beyond what symmetry/orientation already check (rnd_euler limits, get_normal) -
uniform_rot 2026-09-22 delete: quaternion-sampling demo using intrinsic rand; exercised no production code -
angres (standalone) 2026-09-22 modify: the route moved to simple_test_exec test=angres; the standalone program is gone simple_test_exec test=angres
corrs2weights_test 2026-09-22 merge into unit_numerics: printed corrs2weights(CORRW_CRIT) for twelve values; the only exercise of a production path (motion-correction frame weights) simple_stat_tester (sub-suite statistics): weights sum to one, zero for non-positive correlations, monotone, sigmoid threshold, norm_sigm=.false. ratio rule, all-zero case, UNIFORM/RANK/ZSCORE criteria
corrs2weights 2026-09-22 merge into unit_numerics: the standalone twin of corrs2weights_test (same body plus UNIFORM_CRIT) as corrs2weights_test
rank_weights 2026-09-22 merge into unit_numerics: gnuplotted the four rank-weight kernels; their only production caller is conv2rank_weights (wcrit=sum|cen|exp|inv) simple_stat_tester: each kernel positive, non-increasing, sums to one, closed-form spot values; conv2rank_weights single/zero/general cases
ft_expanded 2026-09-22 merge into unit_numerics: ran test_ftexp_shsrch (already in the gate) and test_ftexp_shsrch2 (not run anywhere) both are now sub-suites of unit_numerics (shift search, correlator and shift search, optimiser): a motion-correction optimiser, not an image test (Hans); since 2026-09-25 one sub-suite shift search, simple_ftexp_shsrch_tester
order_corr 2026-09-22 delete: printed oris%order() and declared PASSED on the array size simple_oris_tester now asserts the corr-descending order
phasecorr 2026-09-22 delete: convention demo of a hand-rolled phase correlation on 1000x1000 half-discs with gnuplot windows; touched no production phase-correlation code -
rotate_ref 2026-09-22 delete: benchmark of two local copies of a rotation routine on random data; the fast copy is the production polarft_calc%rotate_ref_8, which remains untested at unit level -
eval_polarftcc 2026-09-22 delete: user-supplied volume, timing printout, no assertion; footprint shared with continuous_inplane_cc_grad (which also needs vol1) -
bounds_from_mask3D_test 2026-09-22 merge into unit_image: built a 256^3 cube, wrote cube.mrc, printed the bounds simple_image_msk_tester (sub-suite masks): tight bounds of a centred cube against a brute-force scan, crossed bounds for an empty mask, containment of an off-centre voxel
bounds_from_mask3D 2026-09-22 merge into unit_image: standalone twin of bounds_from_mask3D_test as bounds_from_mask3D_test
graphene_mask 2026-09-22 merge into unit_image: printed calc_graphene_mask shell by shell masks: exactly the three shells nearest each graphene band are excluded (box 160, 0.358 A)
image_bin 2026-09-22 merge into unit_image: printed max_dist, find_ccs, get_nccs, get_imat on 4x4 and 3x3x2 examples simple_image_msk_tester (sub-suite binary image): the same examples with their answers (three 8-connected components, labels, sqrt(8) and sqrt(3) distances, full and empty cases)
cc_connectivity 2026-09-22 merge into unit_image: the THROW_HARD connectivity contract of find_ccs (standalone only) binary image: 26 offsets connect, Chebyshev-2 stays apart, the 1x1xN column regression along z with x/y controls, 8-connectivity in 2D, empty and full volumes
mask 2026-09-22 merge into unit_image: disc -> transfer2bimg -> cos_edge -> wrote spherical_mask.mrc masks: disc voxel count within 2% of the sphere volume and 1/0 at the radius, transfer2bimg preserves the count, cos_edge is 1 at the surface, 0.5 half way, 0 at the fall-off, monotone
otsu_test 2026-09-22 merge into unit_image (first into unit_numerics, moved the same day): thresholded a unimodal Gaussian sample and printed class means (nothing to assert) simple_segmentation_tester (sub-suite segmentation of unit_image; moved from statistics the same day): a two-Gaussian mixture is thresholded between the modes, the upper class has the right size within 1%, the mask and binarising overloads agree with the threshold overload
otsu 2026-09-22 merge into unit_image: standalone twin of otsu_test as otsu_test
ptcl_center 2026-09-22 delete: downloaded 1JYX from RCSB, projected it and explored a windowed radial-profile centering heuristic, printing candidate centres; an experiment script none; gap recorded: it was the only test naming masscen, roavg, window_center, shift2Dserial, power_spectrum, fproject, get_nyq (image-area basics, for the image review); closed 2026-09-25: simple_image_tester (sub-suite image of unit_image) tests all of them but window_center, which had no caller and is removed
peak_thres_fdr 2026-09-22 merge into unit_image: an assertion-bearing exec case for detect_peak_thres_fdr, filed under utils/project by its router only simple_segmentation_tester (sub-suite segmentation): the same six checks
imgfile 2026-09-23 delete: SPIDER/MRC squares and cubes written, converted both ways and compared by correlation; a strict subset of test_image part 20 (sub-suite image of unit_image) test_image part 20; since 2026-09-25 test_file_roundtrip in simple_image_tester, bit-exact
inside_write 2026-09-23 merge into unit_project: wrote a project and write_segment_inside('stk') into it, asserting nothing; the six production callers of the in-place segment rewrite had no test simple_binoris_tester (sub-suite binoris): the stk segment is rewritten longer in place, the mic/ptcl2D/ptcl3D/projinfo segments read back byte-identical, a missing project file falls back to a full write
io 2026-09-23 delete: a 40 GB stack-and-volume read/write throughput benchmark writing SIMPLE_IO_BENCH.txt, no assertion the stack_io round trips in stack I/O (unit_core)
io_parallel 2026-09-23 delete: as io, with four volumes under an OpenMP team on the standalone route as io; rslices/wmrcslices are reached through stack_io%read/write and image%read/write
stack_io 2026-09-23 modify: the exec case copied a committed class-average stack and asserted nothing; the standalone was a real test (synthetic stacks, reader/writer round trips, float16 header and chunked round trip) followed by write/read benchmarks simple_stack_io_tester (sub-suite stack I/O of unit_core): open/close state, image-written and stack_io-copied stacks pixel by pixel, buffer sizes of 2/3/whole/oversized with a partial last window, forward skipping reads and get_image, float32 and float16 MRC headers (mode, 2014 version stamp, dims, file size), a float16-exact pattern round trip, and a 1025-box float16 stack that crosses the converter's 1 M-element write buffer twice; benchmarks dropped
star_export 2026-09-23 delete: timed write_mics_star/write_ptcl2D_star on a test.simple from the working directory both are asserted in STAR file (unit_project)
starfile_test 2026-09-23 modify: a print-only exercise of the starfile_table wrappers followed by run_all_starproject_tests, which was run from nowhere else the wrapper round trip is now assertions in simple_starfile_tester (table names, comment, string, doubles to the %12.6f/%12.6e formatting, absent labels, first/next iteration); run_all_starproject_tests is the sub-suite STAR project of unit_project (its process-wide error stop and thread forcing removed; the OpenMP part restores the thread count it found)
starfile 2026-09-23 delete: standalone twin of starfile_test as starfile_test
binoris 2026-09-23 merge into unit_project: created a project through new_project, then called open/write_header/write_segment/add_segment/update_byte_ranges/is_opened with prints and one assertion (is_opened) simple_binoris_tester (sub-suite binoris): header-only files, string and particle segment round trips with header bookkeeping (n_segments, n_records, fromto, record width, first data byte, total bytes = file size, segments_info), partial and sub-range particle reads at absolute indices, legacy 40-value particle records reading with zeros in the new slots, write_segment_inside growing and shrinking a middle segment with its neighbours intact (oris and string-array forms)
binoris_io 2026-09-23 merge into unit_project: called binread_oritab/binread_ctfparams_state_eo/binread_nlines/binwrite_oritab on an empty project and printed binoris: the .txt and .simple dispatch of all four, the ctf/state/eo merge keeping the keys not in the file, binread_nlines as the segment record count
binoris_test 2026-09-23 delete: an empty exec stub (printed a banner) as binoris
binoris_io_test 2026-09-23 delete: an empty exec stub (printed a banner) as binoris_io
eigh_test 2026-09-23 merge into unit_numerics: printed svdcmp and eigh of a 5x5 matrix, then eigh of a random 15000x15000 matrix with the result discarded simple_linalg_tester (sub-suite linear algebra): eigh largest/smallest against numpy eigenvalues with orthonormal eigenvectors and A v = lambda v, sparse_eigh against eigh, svdcmp reconstruction and singular values, matinv against the reference inverse and a singular flag, jacobi + eigsrt, svdfit/svd_multifit on exact and noisy polynomials, fit_straight_line, fit_lsq_plane/plane_from_points, the vector helpers, gemm_tn; test_eigh removed from simple_linalg
eigh 2026-09-23 merge into unit_numerics: standalone twin of eigh_test with a sparse_eigh-vs-eigh check as eigh_test
kbinterpol_fast 2026-09-23 modify: two assertions on apod_fast, then printed Pearson/mean-diff of the 2D/3D stencils against the outer product over 131k kernels on a 256-box and 10M-evaluation timings simple_kbinterpol_tester (sub-suite Kaiser-Bessel kernel): window geometry and beta, apod against the double-precision closed form (I0 series), apod_fast tolerance and its coefficients, apod_fast_value_deriv against central differences, the device forms bit for bit, apod_mat_2d/3d equal to the normalised outer product, the fast stencils within 1e-5, apod_mat_3d_fast_grad against finite differences with the switch margin, instr; no timing
maxnloc_test 2026-09-23 merge into unit_numerics: printed the ten largest and smallest of a shuffled 1..1000 next to hpsort's answer simple_srch_sort_loc_tester (sub-suite search, sort, locate): every hpsort form, locate/find at boundaries and exact hits, maxnloc/minnloc (the old check, asserted), min3, peakfinder, reverse/reverse_f, selec for every k, unique, scores2order/dists2order, mask2inds, reorder
maxnloc 2026-09-23 merge into unit_numerics: standalone twin of maxnloc_test as maxnloc_test
neigh 2026-09-23 merge into unit_ori: printed statistics of find_closest_proj, sym_dists, find_angres and nearest_proj_neighbors on a 20000-direction c2 spiral simple_sym_tester (symmetry): on a 200-direction spiral for c1/c2/d2, find_closest_proj is the brute-force argmin over symmetry-expanded distances, nearest_proj_neighbors (threshold) is the brute-force set and accumulates, (count) flags exactly nnn of the nearest, sym_dists returns the minimum with a representative realising it, find_angres is of the order of the spacing and smaller for a denser spiral; the c1 forms agree with the oris forms
trail_rec_blend 2026-09-23 modify: an assertion-bearing, hermetic exec case (8^3 accumulators) that ran nowhere moved as it is into simple_accum_blend_tester (sub-suite trailing-reconstruction blend of unit_image), minus its own report_summary/simple_end
class_sample_test 2026-09-23 merge into unit_core: printed three class_sample entries, wrote and read them back and printed class_samples_same simple_class_sample_io_tester (sub-suite class sample I/O): a ragged three-class array round-trips field by field, an empty class (no pinds) comes back with pop 0 and zero-sized arrays, a previously allocated array is replaced; print_class_sample, class_samples_same (compared only the integer part) and the private unserialize_class_sample removed from simple_class_sample_io (no production caller)
class_sample 2026-09-23 merge into unit_core: standalone twin of class_sample_test as class_sample_test
clustering 2026-09-23 retire: called test_aff_prop, which is already the affinity propagation sub-suite of unit_numerics - (since 2026-09-25 simple_aff_prop_tester)
ctf_test 2026-09-23 merge into unit_image: wrote a 256-box CTF image with ctf2img and ft2img and stopped simple_ctf_tester (sub-suite CTF): see ctf
ctf 2026-09-23 merge into unit_image: the assertion-bearing phase-shift policy test (12 checks) of doc/policies/phase_shift_ctf_policy.md, unassigned simple_ctf_tester (sub-suite CTF): the policy checks moved as they are (through eval_canonical + canonical_phshift), plus the 300/200 kV wavelength, the ctfvars conversions, apply_convention, the closed-form CTF at three frequencies and along/across the astigmatism axis, nextrema at three frequencies and at the first three zeros, ctf2img against the closed form, ft2img placement in real/power/sqrt modes and the gen_fplane4rec Hy / |H|y contracts; spafreqsqatnthzero pinned on the first three zeros (the CTF estimator's fitting ranges); ctf%eval (both forms, the six-argument one documented its angle in radians and converted it as degrees) and eval_sign removed (no production caller; eval_canonical is the evaluator)
eo_diff 2026-09-23 retire: needed refine3D half-volumes (300^3) in cwd, wrote two volumes, asserted nothing; ran_phases_below_noise_power, its only production call, had no production caller and is removed from simple_image - (accepted loss: get_res, subtr)
extr_frac 2026-09-23 merge into unit_numerics: printed cos_decay over 100 iterations (the rest commented out); was in CI simple_decay_funs_tester (sub-suite decay schedules): cos_decay/inv_cos_decay endpoints, quarter points, monotonicity and mirror symmetry, calc_nsampl_fromto on both branches, inv_nsampl_decay endpoints/midpoint/hold past maxits, calc_update_frac and calc_update_frac_dyn, extremal_decay and extremal_decay2D endpoints, clamps and monotonicity; nsampl_decay removed (no caller), calc_update_frac reduced to what it computed (its half-the-particles and minimum clamps could not change the result)
multinomal_test 2026-09-23 retire: printed sampled frequencies of a 7-way multinomial; test_multinomal is already the multinomial random draw sub-suite of unit_numerics; was in CI -
pca_all 2026-09-23 merge into unit_numerics: printed PPCA, SVD PCA and (standalone) exact/Nystroem/RBF kPCA feature vectors and pre-images of a 3x4 matrix simple_pca_tester (sub-suite PCA): pca_svd on the D >= N and D < N branches against numpy (exact reconstruction at full rank, the rank-1 and rank-2 approximations, feature energies = squared singular values, the first feature vector up to sign); ppca on a rank-2-plus-noise 5x16 fixture against the Tipping-Bishop maximum-likelihood solution (retained eigenvalues, sigma^2 = mean of the discarded ones, signal eigenvalues, the reconstruction sum_k (1 - sigma^2/lambda_k) u_k u_k^T x, latent means, reconstruct_external, calc_bic (now the PPCA marginal-likelihood BIC; the residual form let the rank scan climb with the iteration cap), suggest_rank picks 2 with ordered BICs and sigma^2); kpca_svd on a two-cluster 4x12 fixture against a double-precision emulation of the same pipeline: exact/cosine and exact/RBF kernel eigenvalues, features and converged pre-images (the cosine rule now with non-negative weights), Nystroem with every point a landmark (eigenvalues, features and RBF pre-images equal to the exact ones after the scaling fix, the power-weighted cosine pre-image), a 6-landmark Nystroem run (ordered spectrum, pre-images inside the data's bounding box and on their own cluster's side) and suggest_kpca_nystrom_neigs
pca_imgvar 2026-09-23 merge into unit_numerics: printed PPCA feature vectors of a 25x25 pairwise-difference matrix built from two 5x5 images as pca_all
sp_project 2026-09-23 merge into unit_project: the assertion-bearing standalone (phase-shift record policy, write/read of 87 mics and 5646 particles, non-mutating read from another cwd, simple_path not persisted, three partial binwrite_oritab documents merged, write_segment2txt and print_segment_json called without checks); the exec case was its older subset simple_sp_project_tester (sub-suite project records): the phase-shift checks moved as they are (add_single_movie/add_stk/add_stktab, get_micparams/get_ctfparams, text and binary serialisation), the round trip at 7 mics / 300 particles, the read probe, the merge, and print_segment_json parsed back from a diverted logfhandle (data window and indices_pre/post, ascending and descending sorts, histogram and plot blocks, a particle segment); write_segment2txt removed (no production caller); print_segment_json sized indices_post from the caller's window instead of the remapped one for a descending sort, printed every ptcl2D record as it went and dereferenced the absent sort_key for the histogram/plot blocks, all fixed
lbfgsb 2026-09-23 merge into unit_numerics: printed the L-BFGS-B minimum of a 1D quadratic simple_opt_tester (sub-suite optimisers): opt_spec bookkeeping (defaults, limits, hooks, re-specify), L-BFGS-B on the quadratic (free and bound-constrained, convergence flag, evaluation counters), on the direction-finding problem and on Rosenbrock, differential evolution and the restarted simplex on a 2D quadratic (preset and random starts); bfgs2, bforce, stde optimisers, simple_opt_helpers, the line searches of simple_opt_subs and the opt parameter removed (no production caller; production uses lbfgsb, de and simplex)
lbfgsb_cosine 2026-09-23 merge into unit_numerics: printed the L-BFGS-B minimum of the angle to a fixed direction from ten restarts as lbfgsb (the smooth 1 - cos form; acos has an infinite derivative at the optimum)
lplims 2026-09-23 merge into unit_numerics: printed mskdiam2lplimits over mask diameters 300..90; was in CI simple_lpstages_tester (sub-suite low-pass stages): the three clamp regimes
lpstages_test 2026-09-23 merge into unit_numerics: called lpstages with a flat FRC and printed simple_lpstages_tester: lpstages with one stage, from a falling FRC (limits, thresholds, crop boxes, sampling, shift limits), particle vs class-average thresholds, the linear fallback of a flat FRC, lpstages_fast (floor, force_lpstart), lpstages_setlims (incl. the no-crop case), the Butterworth kernel in all four forms against its closed form; verbose added to lpstages_fast/setlims (default unchanged)
lpstages 2026-09-23 merge into unit_numerics: unassigned standalone with five THROW_HARD checks on lpstages/lpstages_fast/lpstages_setlims as lpstages_test (all five checks are among the assertions)
opt_lp 2026-09-23 retire: a manual experiment (downloads 1JYX from RCSB, converts, reprojects, prints Butterworth-band residuals), no assertion; create_hist_vector stays (otsu uses it) - (accepted loss by name: apply_filter and avg_sdev, both exercised elsewhere)
ui_hash_test 2026-09-23 merge into unit_ui: called test_ui_hash, a print-only PASS/FAIL routine embedded in the production module simple_ui_hash; the routine is deleted with it, as are the unused set_ui_param/get_ui_param accessors and the unused string-key set / char-key get overloads simple_ui_hash_tester (sub-suite UI hash): set by char key and get by string key with pointer identity, reference semantics, absent key and wrong dynamic type as typed misses, overwrite retargeting, key trimming, found optional
reproject 2026-09-23 merge into simulate_particles: same 6VXX volume and the same three checks (stack, box/smpd, orientation count) on the reproject commander simulate_particles (workflow): reproject stage with nspace=100
mini_stream (standalone route) 2026-09-23 delete: byte-identical body to the commander route simple_test_exec test=mini_stream (manual)
continuous_3D_pcg_reconstruction 2026-09-23 modify: child-process driver with a fixture self-test, the gauran/add_gauran contracts and a half-set PCG-vs-gridding study writing twelve MRC volumes per run simple_gauran_tester (unit_reconstruction, observation noise) and simple_pcg_halfset_tester (lib_reconstruction, PCG half-set)
rec3D_backend 2026-09-23 merge into unit_reconstruction: defaults, backend resolution and two factory branches, error stop on failure; was in CI simple_rec3D_strategy_tester (rec3D backend): defaults, resolution incl. case and blanks, wiring, six factory branches
continuous_inplane_cc_grad 2026-09-23 merge into unit_pftc_align2D3D: needed vol1; cc evaluator grid identity, FD gradient, penalty simple_pftc_inplane_tester (continuous in-plane)
continuous_inplane_hybrid_grad 2026-09-23 merge into unit_pftc_align2D3D: needed vol1; hybrid evaluator as continuous_inplane_cc_grad
continuous_inplane_rotation2D_stage1_validation 2026-09-23 merge into unit_pftc_align2D3D: needed vol1; three fixtures x three cases of parity, gradient, stress and recovery, aliasing printed only as continuous_inplane_cc_grad (fixtures reduced to truth 37 deg with shift, 359.375 deg hard-edge full band, 0 deg)
continuous_inplane_rotation2D_route_identity 2026-09-23 merge into unit_pftc_align2D3D: needed vol1; route identities, seed parity, strategy2D route flags, hybrid rejection via child process as continuous_inplane_cc_grad; the rejection is not asserted
continuous_inplane_refine3D 2026-09-23 merge into unit_pftc_align2D3D: child-process driver over seven cases; two needed a finished project simple_strategy3D_inplane_tester (refine3D in-plane state) and continuous in-plane (synthetic recovery)
continuous_inplane_rotation2D 2026-09-23 delete: shell driver over the family with GNU find, a vanished upstream test and two abinitio2D runs -
continuous_inplane_rotation2D_metadata 2026-09-23 delete: post-run e3/inpl scan of a user project resolve_inplane_e3 test in refine3D in-plane state; workflow-level check is Phase 5
pose_cont_refinement 2026-09-23 merge into unit_cart_align3D: numerics and solver of the Cartesian pose refiner, error stop assertions simple_cartesian_pose_refiner_tester (pose refiner)
pose_cont_refine3D_adapter 2026-09-23 modify: adapter contracts and the opt-in 1JYX experiment in one program simple_pose_cont_refine3D_adapter_tester (pose adapter, fast) and simple_pose_cont_1jyx_tester (pose 1JYX recovery, lib_cart_align3D)
cartesian_fourier 2026-09-23 merge into unit_cart_align3D: self-re-executing driver over the KB derivative and neutral-extraction cases simple_cartesian_fourier_tester (Cartesian Fourier)
flex_pca (standalone) 2026-09-23 merge into unit_heterogeneity: driver over six THROW_HARD self-tests embedded in production modules simple_flex_pca_tester (flex PCA)
flex_pcg (standalone) 2026-09-23 modify: driver over the white-box operator self-test, three ignored debug runs simple_flex_pcg_tester (flex PCG operator, fast and nightly)
flex_gpu (standalone) 2026-09-23 keep, rerouted: the same five routines behind simple_test_exec test=flex_gpu platform entry flex_gpu (USE_FLEX_CUDA)
gui_assembler (standalone) 2026-09-23 delete: duplicate driver of a gate sub-suite GUI assembler (unit_ui)
gui_metadata (standalone) 2026-09-23 delete: duplicate driver of a gate sub-suite GUI metadata (unit_ui)
project_merge (standalone) 2026-09-23 delete: duplicate driver of a gate sub-suite project merge (unit_project)
rnd_shuffle 2026-09-23 merge into unit_numerics: seven assertions, /dev/urandom seed simple_rnd_tester (random draws)
phshift_star 2026-09-23 merge into unit_project: four assertions on the RELION phase-shift contract test_relion_phase_shift in STAR project
ui_visibility 2026-09-23 merge into unit_ui: about 170 assertions in a program body simple_ui_visibility_tester (UI visibility)
phshift_policy 2026-09-23 merge into unit_ui: error-stop checks of five UI contracts test_phshift_contract in UI visibility
discrete_stack_io 2026-09-23 merge into unit_core: THROW_HARD checks stack I/O (simple_stack_io_tester)
sigma2_state 2026-09-23 merge into unit_pftc_align2D3D: error-stop checks simple_sigma2_state_tester (sigma2 state)
eul_prob_tab2D_io 2026-09-23 merge into unit_pftc_align2D3D: THROW_HARD checks simple_eul_prob_tab2D_tester (2D probability table I/O)
projdir_accumulator 2026-09-23 merge into unit_reconstruction: five assertions simple_classaverager_tester (class-average accumulator)
cavg_quality_relations 2026-09-23 merge into unit_numerics: driver over a self-test embedded in production simple_cavg_quality_relations_tester (cavg quality relations)
nu_envmask 2026-09-23 delete: synthetic NU evidence-envelope checks; nu_filt3D exercises the filter simple_exec prg=nu_filt3D
nu_filter 2026-09-23 delete: user-data driver, no assertions simple_exec prg=nu_filt3D
phase_rand_fsc 2026-09-23 delete: correction-rule check of phase_rand_fsc simple_exec prg=fsc
diff_map_graphs 2026-09-23 merge into unit_numerics: stop checks that exited 0 simple_diff_map_graphs_tester (diffusion-map graphs)
create_gain 2026-09-23 delete: movie-driven runner, no assertions test_normalized_inverse_average_intensity in motion gain
search_gain_flips 2026-09-23 delete: movie-driven runner, no assertions motion gain (analyser batch updates)
atomfit 2026-09-23 delete: needed a PDB fixture, no assertions; atoms%fit_bfactors (no caller) deleted with it -
stream_initial_analysis 2026-09-23 delete: commander smoke on a missing folder -
openacc 2026-09-23 delete: exec body commented out; standalone saxpy timing, no assertions; OpenACC unused in src -
openmp 2026-09-23 delete: OpenMP-runtime race demonstration, no assertions (was in CI) -
simd 2026-09-23 delete: simd timing, no assertions (was in CI) -
qsys_ctrl 2026-09-23 merge into unit_parallel: flag checks simple_qsys_ctrl_tester (qsys control)
qsys_env 2026-09-23 merge into unit_parallel: THROW_HARD checks simple_qsys_env_tester (qsys environment)
socket_client 2026-09-23 delete: socket role program, no assertions; the socket modules it drove had no production caller IPC TCP socket (unit_ipc) tests the live transport
socket_comm_distr 2026-09-23 delete: socket role program, no assertions; the socket modules it drove had no production caller IPC TCP socket (unit_ipc) tests the live transport
socket_io 2026-09-23 delete: socket role program, no assertions; the socket modules it drove had no production caller IPC TCP socket (unit_ipc) tests the live transport
socket_server 2026-09-23 delete: socket role program, no assertions; the socket modules it drove had no production caller IPC TCP socket (unit_ipc) tests the live transport
detect_atoms 2026-09-23 merge into lib_single: a prefix of atoms_stats nanoparticle atoms (lib_single)
simulate_nanoparticle 2026-09-23 merge into lib_single: a prefix of atoms_stats nanoparticle atoms (lib_single)
detect_calpha 2026-09-23 merge into unit_single: exec case moved to a tester simple_calpha_finder_tester (C-alpha finder)
abinitio2D_stream 2026-09-24 delete: one abinitio2D iteration with a command line that is not the stream chunk's, no separation check; abinitio2D runs nightly in simulated_workflow simulated_workflow_6vxx, simulated_workflow_1jxy
assign_optics 2026-09-24 merge into lib_stream: exec case moved to a tester optics assignment (lib_stream, simple_stream_tester)
gen_pickrefs 2026-09-24 merge into lib_stream: exec case moved to a tester picking references (lib_stream)
pick_extract 2026-09-24 merge into lib_stream: exec case moved to a tester pick and extract (lib_stream)
sieve_cavgs 2026-09-24 merge into unit_project: exec case moved to the ptcl_sieve tester particle sieve (unit_project), test_collect_and_reject_hard_gates
master 2026-09-24 merge into forked_process: it tested the GUI heartbeat, not the master stream heartbeat (forked_process platform entry, simple_gui_assembler_tester)
ansi_colors (both routes) 2026-09-24 merge into unit_core: printed coloured words string (unit_core), test_ansi_format_str
stringmatch (both routes) 2026-09-24 merge into unit_core: printed a parsed list string (unit_core), test_list_of_ints2arr
cmdline (both routes) 2026-09-24 merge into unit_core: mostly duplicated command line command line (unit_core), test_read_line_typed_values
serialize (both routes) 2026-09-24 merge into unit_image: displayed images, checked nothing image serialisation (unit_image)
cavg_registration (both routes) 2026-09-24 merge into unit_pftc_align2D3D: self-test moved out of the production module class-average registration (unit_pftc_align2D3D)
pdb2mrc (both routes) 2026-09-24 merge into lib_single pdb2mrc (lib_single)
cif2mrc 2026-09-24 delete: a run of the production program on a download, no check -
cif2pdb 2026-09-24 delete: as cif2mrc -
install (both routes) 2026-09-24 delete: ran the vanished simple_test_units simple_test_exec test=units, the fast gate
nice (both routes) 2026-09-24 delete: posted to a nonexistent server, no check -
coarrays (standalone route) 2026-09-24 delete: a two-image sync check; the exec case runs the coarray path end to end coarrays platform entry, simple_test_exec test=coarrays
openmp_offload (standalone program) 2026-09-24 moved: library module behind simple_test_exec simple_test_exec test=openmp_offload (platform)
gencorrs_fft 2026-09-24 merge into unit_pftc_align2D3D: the lib_fft suite was never built polar correlation (unit_pftc_align2D3D, simple_polarft_corr_tester)
angres (exec route) 2026-09-24 retire: a program measures what the test printed simple_exec prg=measure_projspace_angres; the ladder is a comment above find_angres
msk_routines 2026-09-24 merge into unit_image: lib_masks was never built; an explicit team of three replaces the environment's masks (unit_image), test_masks_parallel_equals_serial