The exact-core test only used sRGB, whose curves are parametric. Run it over
a profile with distinct per-channel curv table TRCs as well, and check
convert_u16 against the untabulated evaluation for both.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
run_u8 on a core without a lookup table (for example sRGB to Lab) evaluated the
first stage's curves with powf on every channel of every pixel. An 8-bit channel
has 256 values, so the curves are tabulated once per transform with the same
Curve::eval and the remaining stages run from there. Output is bit-identical.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
run_u8 and run_u16 pushed every pixel through Vec/Option indirection
(apply_matrix, Post::eval, eval_fast). For a three-channel matrix/TRC transform
the matrix and the output-table index maths now run over blocks of 64 pixels on
fixed-size arrays. Same float operations in the same order per pixel, so the
output is bit-identical.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- gpu: the test modules share one GPU_LOCK, and timing and vector_mask
take it too, so one process drives one wgpu device at a time.
- ui-egui: the wgpu tests in pattern_preview_canvas, adjust_preview_gpu,
marquee_autoscroll and layout_perf take gpu_lock().
- affinity compound_limits: the child process selects its test by the
module path (compound_limits::<name>); with --exact, the bare name
matches no test and the child passes without running the check.
- xtask scorecard reads crates/io/tests/it/corpus.rs.
- Docs and comments name the new test paths and the --test it filters.
Every tests/*.rs file is its own executable that links the whole crate
graph. Move each crate's test files into tests/it/ as modules of one
tests/it/main.rs; helper modules under tests/common move with them.
These keep their own binary (own process):
- engine panic_hunt: a process-wide panic hook counts every panic.
- engine text_gamma: changes the process-wide text gamma.
- engine smart_filter_stages, mask_cache_purge: assert on global caches.
- codecs pnm_peak_memory: reads the process's peak RSS.
- photocraft mac_menu_appkit: harness = false.