Skip to content

test: add the SSB modular fractional scenario as a regression test - #20

Closed
trygu wants to merge 3 commits into
masterfrom
test/modular-fractional-repro
Closed

trygu wants to merge 3 commits into
masterfrom
test/modular-fractional-repro

Conversation

@trygu

@trygu trygu commented Nov 6, 2026

Copy link
Copy Markdown
Owner

Purpose

Regression test for the fractional-table abort reported by SSB
against 0.6: their hierarchical 110x14 table (values to ~9e9 with
machine-precision fractional parts, 429 a priori secrets, two hrc
hierarchies) with tab_rtauargus(..., suppress = "MOD(1,5,0,0,0)").
On Windows 0.6 the fractional run aborts the R session; the integer
variant and the macOS runs complete.

What this branch does

  • Adds the fixture (the reported table, anonymized as var1/var2,
    plus the two hierarchy files) and a testthat test running both the
    fractional and the integer variant through tab_rtauargus.
  • Pins the contract: batch completes, the 429 a priori secrets stay
    secret, remaining cells split visible/secondary, published values
    finite.
  • The hrc files are copied to a scratch dir because
    tab_rtauargus writes a uniformized *_unif.hrc next to its
    input.

Note: the engine pin is deliberately old

This branch keeps the pre-fix engine pin (c147eca). The Windows CI
job is the differential-diagnosis run: if it aborts there, the
reported crash is reproduced on the exact CRAN toolchain (R 4.5.3,
Rtools45, windows-2022). The follow-up pin bump to 9a3c0e8 (the
csp audit and crp maxsize fixes) is the second diagnostic.

Fixture: the hierarchical 110x14 table reported by SSB against
0.6, where the fractional variant aborted the R session on
Windows (MOD(1,5,0,0,0)) while the integer variant ran. The test
runs both variants through tab_rtauargus and pins the contract
(completes, 429 a priori secrets stay secret, finite published
values).

This branch still pins the pre-fix engine (c147eca): the Windows
CI job is the differential-diagnosis run for the reported abort.
trygu added 2 commits November 6, 2026 17:28
cspSCIP.sol, sdc.lp and sdcnet.lp are written to the working
directory by the CSP solver (Cspmain.c) when the engine test suite
runs, like the other already-ignored cspSCIP.* scratch files.
Serialize the original parquet data frames as portable RDS fixtures.
R's read.csv changes 160 decimal doubles at the last bit and changes
MOD's result. Keep the same-data truncated control and print the
Windows status summary in test logs.
@trygu

trygu commented Nov 6, 2026

Copy link
Copy Markdown
Owner Author

Superseded by #22: its modular fixtures, Arrow-exact RDS regression, controlled comparison and scratch-file ignore are all present there. The old-pin Windows source check passed; no need to keep a separate diagnostic PR open.

@trygu trygu closed this Nov 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant