Skip to content

Test organization: extract inline cfg(test) modules; resolve strided-perm's test-gated implementation modules #218

Description

@shinaoka

Scope correction (2026-08-10)

strided-einsum2 and strided-opteinsum are not being retired. Per #226, all nine workspace crates remain maintained. Any retirement/Phase 2 removal premise below is obsolete; re-audit and implement the acceptance criteria across the maintained workspace.


Part of #199 (Phase 3, organization). All file:line references are pinned to origin/main at 9da9b9f.

53 inline #[cfg(test)] mod blocks live in src/ across the workspace (largest in the retained crates: strided-kernel/src/fused.rs:1498 at 576 lines, block.rs:251 at 469, kernel.rs:660 at 418, strided-view/src/view.rs:1015 at 337, map_view.rs:2289 at 289, simd.rs:910 at 283). Zero crates use the src/<module>/tests/*.rs pattern.

Separately, strided-perm/src/lib.rs:14 gates three whole implementation modules behind #[cfg(test)] (block, kernel with an unexplained #[allow(dead_code)], order): about 1000 lines of dead-in-release code shipped in src/.

  • Extract inline test modules to src/<module>/tests/*.rs with #[cfg(test)] mod tests; stubs, per the test-organization rule (across all nine maintained crates).
  • Decide the strided-perm trio: fold into test-support files, delete, or document why they ship in src/.
  • This also shrinks several files counted against the 1000-line trigger; re-measure afterwards and split what remains oversized along real boundaries (erased.rs at 4067 lines splits naturally by plan family).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions