Files
calctext/_bmad-output/implementation-artifacts/13-5-test-suite.md
2026-03-16 19:54:53 -04:00

2.0 KiB

epic, story, title, status
epic story title status
13 13.5 Test Suite draft

Epic 13 — Performance & Reliability

Goal: Instant evaluation, never lose work.

Story 13.5: Test Suite

As a CalcPad developer, I want a comprehensive test suite with > 95% code coverage on calcpad-engine, So that regressions are caught early and every function, conversion, and multi-line interaction is verified.

Acceptance Criteria:

Given the calcpad-engine crate When the full test suite is executed via cargo test Then code coverage as measured by cargo-tarpaulin or equivalent exceeds 95% of lines in the engine crate And all tests pass with zero failures

Given every public function and unit conversion in calcpad-engine When unit tests are written Then each function has at least one test for the happy path And each function has at least one test for error/edge cases (division by zero, overflow, unknown unit, etc.) And every supported unit conversion pair has a dedicated round-trip accuracy test

Given multi-line sheets with variables, dependencies, and mixed expressions When integration tests are executed Then end-to-end evaluation of representative sheets produces correct results And integration tests cover: variable assignment and reference, chained dependencies, circular reference detection, unit conversion across lines, and currency conversion

Given the engine's parsing and evaluation logic When property-based tests are run via proptest Then random valid expressions always produce a result without panicking And random malformed expressions produce a graceful error without panicking And evaluation of a + b always equals evaluation of b + a for numeric values

Given the benchmark suite defined with criterion When benchmarks are executed Then benchmarks exist for: single-line evaluation, 100-line sheet evaluation, 500-line sheet evaluation, DAG rebuild, and unit conversion lookup And benchmark results are recorded so regressions can be detected in CI