Public evidence
Machine-checked verification for calculation version 1.1.2 · tier engine_tested
CVP status
CVP VERIFIED · CVP protocol 1.0.0-proposed · Engineering assurance
Positive sides; solve a|b|c or verify
Legacy regression suite: 16/16 calculation tests · Production surface contract 6/6
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.2. 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 · 6/6 CVP contract. digest 4847c211167f.
Fingerprint sha256:a40496b0892cba4f91d0d18120c44036050d53fa19d0629815fa70749cda2bc1
Input schema sha256:649f1060999b4745d0b5561292750c09cfe7706499d5aac9a640b1ddd3f27fb5 · Output schema sha256:8090cd31f6b9ccef124db3d56324b2dc84c07f739dc923e4c9aa2049ced56b94 · 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.2 · 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.2 · 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.2 · 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.2 · 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.2 · 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.2 · 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.2 · 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.2 · 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.2 · status=success · mode=solve · solve_for=a · mode_label=Solve leg a · formula=a=√(c²−b²) · heading=Leg a |