This release introduces a comprehensive assumption validation framework across all language implementations, ensuring consistent error handling when estimators receive invalid inputs.

Features

  • Assumption validation framework — All estimators now validate input assumptions and throw structured errors with assumption ID (validity, positivity, sparity) and subject (x, y) when violations occur
    • C#: AssumptionViolationException with AssumptionId enum
    • Go: AssumptionError type with AssumptionID and Subject fields
    • Kotlin: AssumptionViolationException with assumptionId/subject properties
    • Python: AssumptionViolationError with assumption_id/subject properties
    • R: assumption_error condition class with cli_abort integration
    • Rust: Result<T, AssumptionViolation> return type for all estimators
    • TypeScript: AssumptionError class with typed violation property

Documentation

  • Add new assumptions chapter to manual documenting validity, positivity, and sparity assumptions
  • Add assumption requirement tables to each toolkit function page
  • Add cross-reference labels for hyperlinks between manual sections
  • Fix assumptions chapter ordering (moved between algorithms and studies)

Internal

  • Add shared assumption test data (tests/assumptions/) for cross-language conformance testing
  • Add assumptions chapter support to web generation tooling
  • Update .gitignore with common patterns
  • Add project instructions for Claude Code (.claude/rules/project.md)
  • Remove obsolete .cursor command files

Full Changelog: https://github.com/AndreyAkinshin/pragmastat/compare/v5.0.0...v5.1.0