Metadata-Version: 2.3
Name: canvod-audit
Version: 0.3.0
Summary: Internal verification and regression testing suite for canVODpy pipelines
Author: Nicolas François Bader
Author-email: Nicolas François Bader <nicolas.bader@geo.tuwien.ac.at>
License: Apache-2.0
Requires-Dist: canvod-readers
Requires-Dist: canvod-store
Requires-Dist: canvod-vod
Requires-Dist: canvod-utils
Requires-Dist: xarray>=2024.1.0
Requires-Dist: numpy>=1.26.0
Requires-Dist: polars>=1.0.0
Requires-Dist: matplotlib>=3.8.0
Requires-Dist: gnssvod>=2026.2.2
Requires-Dist: gnssvod ; extra == 'external'
Requires-Python: >=3.14
Project-URL: Homepage, https://github.com/nfb2021/canvodpy
Project-URL: Documentation, https://nfb2021.github.io/canvodpy/packages/audit/overview/
Project-URL: Repository, https://github.com/nfb2021/canvodpy
Project-URL: Issues, https://github.com/nfb2021/canvodpy/issues
Provides-Extra: external
Description-Content-Type: text/markdown

# canvod-audit

Three-tier verification and regression suite for canVODpy pipelines.

Part of the [canVODpy](https://github.com/nfb2021/canvodpy) ecosystem.

## Overview

`canvod-audit` provides scientifically defensible verification that the canVODpy
pipeline produces correct results. It runs as CI and catches regressions whenever
any pipeline component changes.

## Audit tiers

| Tier | What it checks |
|---|---|
| **0** | All four API levels (L1–L4) produce identical output |
| **1a** | SBF and RINEX readers produce internally consistent datasets |
| **1b** | Broadcast and agency (SP3/CLK) ephemeris sources agree within tolerance |
| **2** | Regression: current output matches a frozen checkpoint |
| **3** | External validation vs. gnssvod (Humphrey et al.) reference implementation |

## Installation

```bash
# Development only — not intended for end users
uv pip install canvod-audit
```

## Quick Start

```bash
# Run all audit tiers
uv run pytest packages/canvod-audit/tests/

# Run a specific tier
uv run pytest packages/canvod-audit/tests/ -k "tier1"

# Freeze a regression checkpoint
python -m canvod.audit.runners.regression freeze --store /path/to/store
```

## Documentation

[Full documentation](https://nfb2021.github.io/canvodpy/packages/audit/overview/)

## License

Apache License 2.0
