wbprojection 0.1.0

Whitebox Projections is a map projection library for Rust, inspired by PROJ
Documentation
# WKT Corpus Calibration

This folder contains a Phase 3 corpus used to calibrate adaptive WKT->EPSG identification.

## Files

- `manifest.csv`: expected lenient/strict outcomes for each sample.
- `non_na_manifest.csv`: expected outcomes for non-North-American legacy profile.
- `southern_manifest.csv`: expected outcomes for southern hemisphere + national-grid profile.
- `results_initial.csv`: first diagnostic run before Phase 3 tuning.
- `results_tuned.csv`: diagnostic run after tuning.
- `non_na_results_initial.csv`: first run for non-NA profile.
- `non_na_results_tuned.csv`: tuned run for non-NA profile.
- `southern_results_initial.csv`: first run for southern profile.
- `southern_results_tuned.csv`: tuned run for southern profile.
- `*.prj` / `*.wkt`: corpus samples.

## Run Diagnostics

From the `wbprojection` crate root:

- Single sample report:
  - `cargo run --example epsg_identify_report -- src/tests/data/wkt_corpus/legacy_csrs_utm17_a.prj`
- Batch report from manifest:
  - `cargo run --example epsg_identify_report_batch -- src/tests/data/wkt_corpus/manifest.csv src/tests/data/wkt_corpus/results_tuned.csv`
- Batch report from non-NA manifest:
  - `cargo run --example epsg_identify_report_batch -- src/tests/data/wkt_corpus/non_na_manifest.csv src/tests/data/wkt_corpus/non_na_results_tuned.csv`
- Batch report from southern manifest:
  - `cargo run --example epsg_identify_report_batch -- src/tests/data/wkt_corpus/southern_manifest.csv src/tests/data/wkt_corpus/southern_results_tuned.csv`

## CI-style Verification

Run one command to verify all discovered `*manifest.csv` files and fail on any mismatch:

- `cargo run --example epsg_identify_verify_manifests`

Optionally verify specific manifest(s):

- `cargo run --example epsg_identify_verify_manifests -- src/tests/data/wkt_corpus/non_na_manifest.csv`

## Add New Profile

Generate a new manifest template:

- `cargo run --example epsg_identify_manifest_template -- my_new_profile`

Generate using known sample files:

- `cargo run --example epsg_identify_manifest_template -- my_new_profile sample_a.prj sample_b.wkt`

Preview without writing:

- `cargo run --example epsg_identify_manifest_template -- my_new_profile sample_a.prj --dry-run`

## Regression Coverage

Manifest expectations are validated in test:

- `identify_wkt_all_manifests_in_corpus_match_expected`

Run with:

- `cargo test -q epsg_tests::identify_wkt_all_manifests_in_corpus_match_expected`