The old main.cpp (TEST target) called APIs that no longer exist
(DeepStack::load()/loadWeights()/loadTrainingBatch() with no args,
Layer::upDownPass()) -- it hadn't compiled against the current AStack/
Layer API in a long time and was a manual smoke-test script, not an
actual test suite.
Replace it with a small dependency-free runner matching this repo's
existing no-framework style: for each named project, load it, load
weights and training batch, run a full up-pass/down-pass reconstruction
via DeepStack::upDownPass, and check the reconstruction error is finite
and beats the trivial per-feature-mean baseline (a project-agnostic sanity
bound, rather than a hardcoded threshold). Prints PASS/FAIL per project.
Starting coverage: 1-hot, prims, norb_small_16h_v2, mnist_2. 3/4 pass;
norb_small_16h_v2 fails because it has no saved weight files at all
(only .prj/.training.dat/.test.dat) -- a pre-existing gap in that
fixture's data, not a bug introduced here.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016K8Gu7Qejd11JbdiHZqYAs