# Cross-Solver Validation

Channel: development; package: 2.0.0rc1; source: 2c32b7cf79b796fae825bfa08fc73d9914e61723

Page: https://remilab.ai/rfx/validation/cross-solver/
Source: https://github.com/bk-squared/rfx/blob/2c32b7cf79b796fae825bfa08fc73d9914e61723/docs/public/validation/cross-solver.mdx

This page is about running a comparison yourself. The cases and what they show
are on [Benchmarks](https://remilab.ai/rfx/guide/benchmarks/).

## Run a comparison

The comparisons are pytest tests under `tests/crossval/` in a source checkout;
they are not installed with the wheel. Each one compares rfx with a reference
record frozen in the repository, so you do not need the other solver.

```bash
# Fast checks: build the board, check what it realizes, read the record.
pytest tests/crossval/rt5880_patch

# The full comparison. The long ladders are marked gpu and slow, which the
# default test selection skips; a GPU is recommended.
pytest tests/crossval/rt5880_patch -m gpu
python -m pytest -o addopts="" tests/crossval/msl_notch_filter -q
```

## Read the result

A pass means every judged quantity was inside its bar on the rungs the test
names. The test output also prints the quantities it reports but does not
judge; read them before citing the case. A skip usually means the test needs a
GPU or an optional dependency, which is not a pass.

## Cite the result

A comparison holds for the geometry, mesh, band, source, port, materials,
boundaries and observable of that test. When you cite one, give the test
path, the commit, those settings, the reference and the thresholds it used.
Do not carry the result over to a different port, material model, boundary or
mesh without a comparison for that setup.
