Pragmastat v12.0.0 introduces Compare1 and Compare2 — high-level confirmatory analysis APIs that deliver explicit ternary verdicts (Less, Greater, Inconclusive) for practical thresholds, implementing the Inversion Principle across all 7 languages.
Breaking Changes
- Go module path: module path updated from
go/v11togo/v12per Go semver convention; all Go consumers must update import paths
Features
Compare1one-sample confirmatory analysis: comparesCenter(x)orSpread(x)against a list of practical thresholds, each with its own misrate; returns aProjectionper threshold containing point estimate, confidence bounds, and a verdictCompare2two-sample confirmatory analysis: comparesShift(x,y),Ratio(x,y), orDisparity(x,y)against practical thresholds with per-threshold misrate control- New public types:
Metric(Center, Spread, Shift, Ratio, Disparity),ComparisonVerdict(Less, Greater, Inconclusive),Threshold,Projection— available in all 7 languages - Python/R numeric shorthand: threshold values can be specified as plain numbers in addition to explicit
Measurementobjects - 44 cross-language reference test files: 18 for
compare1/and 26 forcompare2/, covering all verdicts, multi-threshold scenarios, ordering preservation, misrate sensitivity, natural number sequences, identity properties, and error cases
Bug Fixes
- R build: added
.dylib/.a/symbols.rdscleanup to build, check, and clean tasks; updated.Rbuildignorewith matching patterns; fixedr:checktask to build tarball before checking
Documentation
- New manual chapters for
Compare1andCompare2(definition, algorithm, notes, test descriptions each) - Added Compare1/Compare2 to synopsis function table, one-sample/two-sample chapter includes, and assumptions chapter
- Standardized misrate notation to
10^(...)scientific form across all existing chapters - Eliminated intermediate
alphavariable in favor of directmisrate/2in AvgSpreadBounds, CenterBounds, and DisparityBounds - Replaced hardcoded misrate values in test descriptions with relative descriptions across 8 existing chapters
- Added "See also" cross-references linking bounds estimators to their corresponding Compare functions
- Updated methodology to link Compare1/Compare2 as embodiments of the Inversion Principle
Internal
- Web tooling: added
compare1(order 5) andcompare2(order 12) page entries; renumbered all subsequent pages - Added xref mappings for
sec-compare1,sec-compare2,sec-alg-compare1,sec-alg-compare2,sec-inversion-principle,sec-convergence-conventions - Kotlin: widened
checkNonWeightedandcheckCompatibleUnitsfromprivatetointernalfor use byCompareEngine - Rust: added
From<UnitMismatchError> for EstimatorErrorconversion - C#
TestGeneratorextended withSaveErrorTestCasefor error test generation - Updated
tests/manifest.jsonwithcompare1andcompare2test suites
Full Changelog: https://github.com/AndreyAkinshin/pragmastat/compare/v11.1.1...v12.0.0
Release notes generated by herald v1.0.4