Public evidence
Machine-checked verification for calculation version 1.1.1 · tier engine_tested
CVP: CVP VERIFIED · CVP protocol 1.0.0-proposed · Engineering assurance· Positive sides; solve a|b|c or verify · Protocol · Schema · Production report
Legacy regression suite: 16/16 calculation tests · Production surface contract 2/2
Three distinct suites: educational examples on the calculator page, this legacy regression count (16/16 golden + boundary), and the CVP verification suite below. They are not the same number. Property, metamorphic, round-trip, O3, and interface statuses/checks are recorded in the CVP Manifest . SKIP (0/0) means that suite has no published vectors.
Protocol checks from the Evidence Manifest. Distinct from the legacy regression suite above. Verification revision 2026-09-16.sources-no-wolfram. Calculation version 1.1.1. CVP 1.0.0-proposed. 6/6 golden · 10/10 CVP boundary · 11/11 invalid · 4/4 property · 2/2 metamorphic · 2/2 round-trip · 1/1 cross-interface · 2/2 CVP contract. digest 73a2ec1773da.
Fingerprint sha256:e3eae75bfd661c192941dba760913857bf01f93f76ffa477fe94cc94875d4247
Input schema sha256:fb56dca61052ab5f400ae2a6feb3759666b37b955e0d167134bf1f553e034c49 · Output schema sha256:bdb82fcc631a25cb663d5bfe6fbcf92b185eaba1536eda2886f29ef47789a6d3 · Build-time SHA-256 digests prove published artifacts agree with each other (release_integrity.scope=workspace). Production attestation GETs canonical URLs twice (public/cached view and origin), including Capability HTML, via npm run attest:production --write
(published at /.well-known/calculatorx-production-attestation.json) and fails if the public Capability page advertises a different calculation_version. This is artifact consistency, not an independent immutable release log.
Engine identity and declared limitations.
Standards and references supporting this tool specification. Methods are listed separately — they are algorithms, not bibliographic sources.
Golden and boundary cases from the legacy Evidence JSON. CVP property, metamorphic, round-trip, O3, and interface statuses/checks are recorded in the Manifest — including SKIP when a suite has no vectors.
| ID | Kind | Status | Detail |
|---|---|---|---|
3-4-5 | golden | pass | Expected c=5 · area=6 · Actual value=5 · calculation_version=1.1.1 · status=success · mode=solve · solve_for=c · mode_label=Solve hypotenuse · formula=c=√(a²+b²) · heading=Hypotenuse c |
5-13 | golden | pass | Expected b=12 · Actual value=12 · calculation_version=1.1.1 · status=success · mode=solve · solve_for=b · mode_label=Solve leg b · formula=b=√(c²−a²) · heading=Leg b |
12-13 | golden | pass | Expected a=5 · Actual value=5 · calculation_version=1.1.1 · status=success · mode=solve · solve_for=a · mode_label=Solve leg a · formula=a=√(c²−b²) · heading=Leg a |
7-9 | golden | pass | Expected c=11.40175425099138 · Actual value=11.40175425099138 · calculation_version=1.1.1 · status=success · mode=solve · solve_for=c · mode_label=Solve hypotenuse · formula=c=√(a²+b²) · heading=Hypotenuse c |
verify-3-4-5 | golden | pass | Expected mode=verify · valid=true · c=5 · area=6 · perimeter=12 · Actual value=5 · calculation_version=1.1.1 · status=success · mode=verify · mode_label=Verify right triangle · formula=a²+b²=c² · heading=Valid right triangle · a=3 |
solve-for-c-ignores-extra | golden | pass | Expected mode=solve · solve_for=c · c=5 · Actual value=5 · calculation_version=1.1.1 · status=success · mode=solve · solve_for=c · mode_label=Solve hypotenuse · formula=c=√(a²+b²) · heading=Hypotenuse c |
side-not-positive | boundary | pass | Expected SIDE_NOT_POSITIVE · Actual SIDE_NOT_POSITIVE |
missing-inputs | boundary | pass | Expected MISSING_REQUIRED_INPUT · Actual MISSING_REQUIRED_INPUT |
boundary-py-neg | boundary | pass | Expected SIDE_NOT_POSITIVE · Actual SIDE_NOT_POSITIVE |
boundary-py-zero | boundary | pass | Expected SIDE_NOT_POSITIVE · Actual SIDE_NOT_POSITIVE |
boundary-py-hyp-eq-leg | boundary | pass | Expected HYPOTENUSE_TOO_SHORT · Actual HYPOTENUSE_TOO_SHORT |
boundary-py-invalid-solve | boundary | pass | Expected INVALID_SOLVE_FOR · Actual INVALID_SOLVE_FOR |
boundary-py-overflow | boundary | pass | Expected RESULT_OVERFLOW · Actual RESULT_OVERFLOW |
boundary-py-huge | boundary | pass | Expected c=1.414213562373095e+200 · Actual value=1.414213562373095e+200 · calculation_version=1.1.1 · status=success · mode=solve · solve_for=c · mode_label=Solve hypotenuse · formula=c=√(a²+b²) · heading=Hypotenuse c |
boundary-py-tiny | boundary | pass | Expected c=1.414213562373095e-200 · Actual value=1.414213562373095e-200 · calculation_version=1.1.1 · status=success · mode=solve · solve_for=c · mode_label=Solve hypotenuse · formula=c=√(a²+b²) · heading=Hypotenuse c |
boundary-py-cancel-leg | boundary | pass | Expected a=0.0001414213561611208 · Actual value=0.0001414213561611208 · calculation_version=1.1.1 · status=success · mode=solve · solve_for=a · mode_label=Solve leg a · formula=a=√(c²−b²) · heading=Leg a |