fp-conformance
Differential conformance harness for frankenpandas against a live pandas oracle — packet fixtures + fuzz seed tests + live-oracle parity gates.
Part of the frankenpandas workspace.
What this crate provides
- Packet fixture runner — 1,249 JSON fixtures across 430 packet
IDs under
fixtures/packets/. Each fixture carries an input, an operation, and the expected output computed once by a live pandas oracle and captured into the fixture. - Live-oracle harness — 89
live_oracle_*_matches_pandastests that dispatch payloads throughoracle/pandas_oracle.pyat test time and compare the Rust output against the live pandas result. CI enforces live-oracle presence per br-frankenpandas-d6xa. - Fuzz entry points —
fuzz_*_bytespub fns (fuzz_csv_parse, fuzz_parquet_io, fuzz_semantic_eq, fuzz_format_cross_round_trip, fuzz_pivot_table, fuzz_groupby_agg_dispatch, fuzz_rolling_window, etc.) consumed by thefuzz/crate's libFuzzer targets. - Gate topology — G1..G8 CI gates emit structured JSON forensics
under
artifacts/ci/gate_forensics.json.
How to use
Run the conformance suite locally:
For live-oracle tests, Python + pandas must be installed. CI
runs pip install -r oracle/requirements.txt (pandas version
pinned per br-frankenpandas-boyr).
When to depend on fp-conformance directly
Rarely. Downstream crates don't depend on the conformance harness — it's a test apparatus for frankenpandas itself. If you're building a pandas-parity competitor and want to reuse the fixture corpus, depending on this crate + the oracle script may be useful.
Status
Active development. 413/0 tests under cargo test -p fp-conformance --lib at session close (2026-04-23). HarnessError is
#[non_exhaustive] per br-frankenpandas-tne4.
Links
- DISCREPANCIES.md — documented intentional divergences from pandas.
- COVERAGE.md — conformance coverage matrix.
- fixtures/README.md — fixture format + provenance.
- Workspace README