# Fixture Strategy ## Purpose GeoIntel needs small, repeatable fixtures so Codex can build and test without relying on huge external downloads. ## Fixture principles - Fixtures must be tiny. - Fixtures must be deterministic. - Fixtures must be documented. - Fixtures must not pretend to be official data. - Real-source providers can be added later without breaking tests. ## Required V1 fixtures ### reference_buildings.geojson Purpose: - reference building polygons for QA/QC tests. Content: - 3 to 10 simple polygons. - one polygon matching a prediction exactly; - one partially overlapping; - one unmatched reference object. ### predicted_buildings.geojson Purpose: - deterministic detection output fixture. Content: - one true positive exact/near match; - one true positive partial match; - one false positive; - one low-confidence detection. ### project_area.geojson Purpose: - test project area. Content: - polygon enclosing all reference/predicted fixtures. ### tiny_raster.tif Purpose: - raster metadata and clipping tests. Content: - very small georeferenced raster if feasible. - if not feasible initially, document missing fixture and provide tests for raster metadata with generated temporary raster. ## Development providers ### DevelopmentDetectionProvider Returns predictions from `predicted_buildings.geojson` for a selected demo run. ### LocalFixtureReferenceProvider Returns `reference_buildings.geojson` as a cached reference layer. ## Acceptance The fixture strategy is complete when QA/QC tests can run fully offline.