Public evidence
Machine-checked verification for calculation version 1.2.2 · tier internally_reviewed
CVP: CVP VERIFIED · CVP protocol 1.0.0-proposed · Engineering assurance· Conduction only — switching/Coss/Qrr excluded; temperature none in this CVP wave goldens · Protocol · Schema · Production report
Legacy regression suite: 32/32 calculation tests · Production surface contract 12/12
Three distinct suites: educational examples on the calculator page, this legacy regression count (32/32 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.2.2. CVP 1.0.0-proposed. 3/3 golden · 13/13 CVP boundary · 13/13 invalid · 8/8 property · 2/2 cross-interface · 12/12 CVP contract. digest 77fa2f728b57.
Fingerprint sha256:68d50719e16748809e011bfb008707e18aed847d9d57991041da0ac508ed90d8
Input schema sha256:20a3903576755b30cf90912ba3998e62c6529eeec8bd978f32390c50c5db13e7 · Output schema sha256:2f495e23acd9d7e343c9d6a1012542973b61e700ab54442d17409528dab9d7ac · 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 |
|---|---|---|---|
dc-10a-50mohm | golden | pass | Expected P_W=5 · V_drop=0.5 · D=1 · current_basis=dc · Actual P_W=5 · V_drop=0.5 · I=10 · Rds=0.05 · Rds_Tj=0.05 · D=1 · current_basis=dc · temperature_model=none |
on-interval-pwm-half | golden | pass | Expected P_W=2.5 · V_drop=0.5 · D=0.5 · current_basis=on_interval_rms · Actual P_W=2.5 · V_drop=0.5 · I=10 · Rds=0.05 · Rds_Tj=0.05 · D=0.5 · current_basis=on_interval_rms · temperature_model=none |
full-cycle-rms-equiv | golden | pass | Expected P_W=2.5 · current_basis=full_cycle_rms · D=1 · Actual P_W=2.5000000000000004 · V_drop=0.3535533905932738 · I=7.0710678118654755 · Rds=0.05 · Rds_Tj=0.05 · D=1 · current_basis=full_cycle_rms · temperature_model=none |
full-cycle-no-double-duty | golden | pass | Expected P_W=2.5 · D=1 · Actual P_W=2.5000000000000004 · V_drop=0.3535533905932738 · I=7.0710678118654755 · Rds=0.05 · Rds_Tj=0.05 · D=1 · current_basis=full_cycle_rms · temperature_model=none |
low-rds-20a | golden | pass | Expected P_W=2 · V_drop=0.1 · Actual P_W=2 · V_drop=0.1 · I=20 · Rds=0.005 · Rds_Tj=0.005 · D=1 · current_basis=dc · temperature_model=none |
legacy-omitted-basis | boundary | pass | Expected MISSING_REQUIRED_INPUT · Actual MISSING_REQUIRED_INPUT |
xref-infineon-irms-rds | formula cross-check | pass | Expected P_W=2 · Actual P_W=2 · V_drop=0.2 · I=10 · Rds=0.02 · Rds_Tj=0.02 · D=1 · current_basis=full_cycle_rms · temperature_model=none |
xref-ti-irms-rds | formula cross-check | pass | Expected P_W=1 · Actual P_W=1 · V_drop=0.2 · I=5 · Rds=0.04 · Rds_Tj=0.04 · D=1 · current_basis=full_cycle_rms · temperature_model=none |
xref-erickson-on-interval | formula cross-check | pass | Expected P_W=0.64 · Actual P_W=0.6400000000000001 · V_drop=0.2 · I=8 · Rds=0.025 · Rds_Tj=0.025 · D=0.4 · current_basis=on_interval_rms · temperature_model=none |
tj-ratio-1.44 | golden | pass | Expected P_W=7.2 · P_W_ref=5 · V_drop=0.72 · Rds_Tj=0.072 · temperature_model=ratio · Actual P_W=7.199999999999999 · V_drop=0.72 · I=10 · Rds=0.05 · Rds_Tj=0.072 · D=1 · current_basis=dc · temperature_model=ratio |
tj-linear-alpha | golden | pass | Expected P_W=7.25 · P_W_ref=5 · Rds_Tj=0.0725 · temperature_model=linear · Actual P_W=7.249999999999999 · V_drop=0.725 · I=10 · Rds=0.05 · Rds_Tj=0.0725 · D=1 · current_basis=dc · temperature_model=linear |
xref-infineon-hot-rds | formula cross-check | pass | Expected P_W=7.2 · Rds_Tj=0.072 · Actual P_W=7.199999999999999 · V_drop=0.72 · I=10 · Rds=0.05 · Rds_Tj=0.072 · D=1 · current_basis=dc · temperature_model=ratio |
boundary-missing-I | boundary | pass | Expected MISSING_REQUIRED_INPUT · Actual MISSING_REQUIRED_INPUT |
boundary-missing-Rds | boundary | pass | Expected MISSING_REQUIRED_INPUT · Actual MISSING_REQUIRED_INPUT |
boundary-zero-I | boundary | pass | Expected VALUE_MUST_BE_POSITIVE · Actual VALUE_MUST_BE_POSITIVE |
boundary-zero-Rds | boundary | pass | Expected VALUE_MUST_BE_POSITIVE · Actual VALUE_MUST_BE_POSITIVE |
boundary-zero-duty | boundary | pass | Expected FRACTION_OUT_OF_RANGE · Actual FRACTION_OUT_OF_RANGE |
boundary-bad-duty | boundary | pass | Expected FRACTION_OUT_OF_RANGE · Actual FRACTION_OUT_OF_RANGE |
boundary-nan-Rds | boundary | pass | Expected INVALID_NUMBER · Actual INVALID_NUMBER |
boundary-invalid-basis | boundary | pass | Expected INVALID_MODE · Actual INVALID_MODE |
boundary-invalid-temp-model | boundary | pass | Expected INVALID_MODE · Actual INVALID_MODE |
boundary-zero-rds-ratio | boundary | pass | Expected VALUE_MUST_BE_POSITIVE · Actual VALUE_MUST_BE_POSITIVE |
boundary-linear-needs-tj | boundary | pass | Expected MISSING_REQUIRED_INPUT · Actual MISSING_REQUIRED_INPUT |
boundary-linear-factor-nonpositive | boundary | pass | Expected VALUE_MUST_BE_POSITIVE · Actual VALUE_MUST_BE_POSITIVE |
property-vdrop | property | pass | V_drop=I·Rds at entered current |
property-i2 | property | pass | 2I → 4P |
property-rds | property | pass | 2Rds → 2P |
property-duty-on-interval | property | pass | on-interval D=0.5 → ½P vs DC |
property-full-cycle-ignores-duty | property | pass | full-cycle RMS does not multiply by D |
property-rms-equivalence | property | pass | I_on=10 A, D=0.5 equals I_rms=10√0.5 |
property-ratio-scales-p | property | pass | rds_ratio=1.44 → P_Tj = 1.44 · P_ref |
property-linear-at-tref | property | pass | linear Tj=Tref → identity |