# Benchmark methodology

The benchmark fixtures are deliberately small and reproducible. They provide
regression evidence for the calculation layer; they are not a substitute for a
licensed property database or a plant-design validation package.

## Pure-component pressure

`pure_pressure_benchmarks()` stores rounded reference pressures for water,
benzene, toluene, ethanol, and methanol. The records include temperature,
pressure, tolerance, component name, and a source note. The built-in Antoine
records use bar output after converting the published mmHg form.

The CLI evaluates the five points and prints the pass count, maximum absolute
error in bar, and the deterministic fixture result. The reusable API is
`evaluate_pure_pressure_catalog()` or `summarize_pressure_benchmarks()`.

## Binary VLE

`benzene_toluene_benchmarks()` contains a rounded isobaric table at 1.01325 bar
with liquid and vapor compositions. It is used as a regression fixture for
composition normalization and pressure error reporting. Values are kept
source-labelled and rounded so the expected tolerance is visible in code.

## Reproducing results

```bash
moon run cmd/main --target wasm-gc
moon test --target all
```

For new data, record the source, units, temperature/composition range, fitting
method, and redistribution rights. Add a test with a physically meaningful
tolerance; do not replace a failing result with a snapshot update unless the
underlying reference or documented algorithm changed.

## Interpretation

Absolute pressure error is reported in bar. `BenchmarkSummary` also exposes
mean error, maximum error, pass rate, and failed count. A passing regression
fixture means the implementation matches the rounded fixture within its stated
tolerance; it does not establish accuracy outside the fixture's range.
