Regression Fixtures and Runnable Examples

The directories under t/ serve two purposes: they are the inputs and expected outputs used by the automated tests, and they are small examples that can be run from a source checkout. The test suite compares generated data structurally, so formatting differences alone do not require reference-file changes.

Fixtures are regression contracts, not curated semantic showcase datasets. Baseline outputs intentionally exercise safe source-derived fallbacks when the input supplies no authoritative identifier and no optional terminology mapping is requested. CDISC fixtures provide separate terminology-enriched references so both behaviors remain visible and tested.

Start with Three Core Routes

Run these commands from the repository root. --test removes changing runtime metadata and -O permits replacing an earlier local result.

PXF to BFF:

bin/convert-pheno \
  -ipxf t/pxf2bff/in/pxf.json \
  -obff individuals.json \
  --test -O

Reference output: t/pxf2bff/out/individuals.json

BFF to PXF:

bin/convert-pheno \
  -ibff t/bff2pxf/in/individuals.json \
  -opxf pxf.json \
  --test -O

Reference output: t/bff2pxf/out/pxf.json

OMOP CSV tables to BFF:

bin/convert-pheno \
  -iomop \
  t/omop2bff/in/PERSON.csv \
  t/omop2bff/in/CONCEPT.csv \
  t/omop2bff/in/DRUG_EXPOSURE.csv \
  -obff individuals-omop.json \
  --test -O

Reference output: t/omop2bff/out/individuals_csv.json

Fixture Index

| Input format | Input directory | Reference output directories | | --- | --- | --- | | BFF | bff2pxf/in | bff2pxf/out, bff2omop/out, bff2csv/out, bff2jsonf/out | | cBioPortal clinical study | cbioportal2bff/in | Semantic assertions in 37-cbioportal.t | | PXF | pxf2bff/in | pxf2bff/out, pxf2csv/out, pxf2jsonf/out | | OMOP-CDM | omop2bff/in | omop2bff/out, omop2pxf/out | | CSV | csv2bff/in | csv2bff/out, csv2pxf/out, csv2omop/out | | REDCap | redcap2bff/in | redcap2bff/out, redcap2pxf/out | | CDISC-ODM | cdiscodm2bff/in | cdiscodm2bff/out, cdiscodm2pxf/out | | CDISC Dataset-JSON | datasetjson2bff/in | datasetjson2bff/out, datasetjson2pxf/out, datasetjson2omop/out | | CDISC Dataset-XML | datasetxml2bff/in | datasetxml2bff/out; PXF and OMOP behavior in 38-datasetxml.t | | FHIR R4 Bundle | fhir2bff/in | fhir2bff/out, fhir2pxf/out, fhir2omop/out | | openEHR canonical JSON | openehr2bff/in | openehr2bff/out, openehr2pxf/out |

Some output routes intentionally reuse the canonical input from another fixture directory. The exact commands maintained by the test suite are in t/19-cli-regression.t.

Run the Suite

prove -lr t

The active suite generates a small indexed OHDSI database from fixtures/ohdsi-concepts.tsv. This keeps exact ontology lookup and OMOP-output tests deterministic without requiring the optional 2.2 GB database. Tests that exercise the complete Athena database remain under xt/.

For a faster local run on machines with several CPU cores:

prove -j4 -lr t

Generated files are written to temporary directories by the tests. Do not replace files under t/*/out/ unless a deliberate conversion change has been reviewed and the expected structure has changed.