Public evidence
Machine-checked verification for calculation version 1.0.0 · tier engine_tested
CVP status
CVP VERIFIED · CVP protocol 1.0.0-proposed · Engineering assurance
Free one-dimensional expansion; no material lookup, constraints, or α(T) integration.
Legacy regression suite: 7/7 calculation tests · Production surface contract 6/6
Three distinct suites: educational examples on the calculator page, this legacy regression count (7/7 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. Calculation version 1.0.0. CVP 1.0.0-proposed. 5/5 golden · 2/2 CVP boundary · 7/7 invalid · 2/2 cross-interface · 6/6 CVP contract. digest 3511c5999fb0.
Fingerprint sha256:071fcb6d82566601eb79e27d896205c51543e914cbd6dabf884fcfa92d87e5b8
Input schema sha256:6fa39817fe602bc48d760da25732c45976e52cb17da0e237972714fcfd90f723 · Output schema sha256:9bc4a37e665c7c4be6e2aca837381a25b64ec5fefef2f57582cddf8aa2e16027 · 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 |
|---|---|---|---|
expand-two-metres | golden | pass | Expected delta_length_m=0.0012 · final_length_m=2.0012 · Actual mode=delta_length · model=constant_coefficient_free_linear_expansion · length_m=2 · alpha_per_K=0.000012 · delta_temperature_K=50 · thermal_strain=0.0006000000000000001 · delta_length_m=0.0012000000000000001 · final_length_m=2.0012 |
cooling-signed-change | golden | pass | Expected delta_length_m=-0.0012 · final_length_m=1.9988 · Actual mode=delta_length · model=constant_coefficient_free_linear_expansion · length_m=2 · alpha_per_K=0.000012 · delta_temperature_K=-50 · thermal_strain=-0.0006000000000000001 · delta_length_m=-0.0012000000000000001 · final_length_m=1.9988 |
solve-coefficient | golden | pass | Expected alpha_per_K=0.000012 · Actual mode=coefficient · model=constant_coefficient_free_linear_expansion · length_m=2 · alpha_per_K=0.000011999999999999999 · delta_temperature_K=50 · thermal_strain=0.0006 · delta_length_m=0.0012 · final_length_m=2.0012 |
solve-temperature-change | golden | pass | Expected delta_temperature_K=-50 · Actual mode=temperature_change · model=constant_coefficient_free_linear_expansion · length_m=2 · alpha_per_K=0.000012 · delta_temperature_K=-49.99999999999999 · thermal_strain=-0.0006 · delta_length_m=-0.0012 · final_length_m=1.9988 |
boundary-zero-length | boundary | pass | Expected VALUE_MUST_BE_POSITIVE · Actual VALUE_MUST_BE_POSITIVE |
boundary-zero-temperature-span-for-coefficient | boundary | pass | Expected DIVISION_BY_ZERO · Actual DIVISION_BY_ZERO |
boundary-unknown-mode | boundary | pass | Expected INVALID_MODE · Actual INVALID_MODE |