#!/usr/bin/env bash # Regenerate the full fixture corpus. # Safe to re-run — always overwrites. # Requires: tmp/*_cache.json present (for real-data seeds for parse_month_references and match_members). set -euo pipefail REPO="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" FIXTURES="$REPO/go/tests/fixtures" CAPTURE_CMD="PYTHONPATH=$REPO/scripts:. python3 $REPO/scripts/capture_fixtures.py" SCRUB_CMD="python3 $REPO/scripts/scrub_fixtures.py" run_func() { local func="$1" local dir="$FIXTURES/pure/$func" mkdir -p "$dir" echo " Capturing $func..." eval "$CAPTURE_CMD --func $func --all" | while IFS= read -r line; do case_id="$(python3 -c "import sys,json; print(json.loads('''$line''')['case'])" 2>/dev/null || \ echo "$line" | python3 -c "import sys,json; d=json.load(sys.stdin); print(d['case'])")" echo "$line" | python3 "$REPO/scripts/scrub_fixtures.py" > "$dir/${case_id}.json" done } echo "==> Capturing pure-function fixtures..." run_func normalize run_func parse_month_references run_func calculate_fee run_func calculate_junior_fee run_func parse_czk_amount run_func generate_sync_id run_func build_name_variants run_func match_members run_func infer_transaction_details run_func format_date echo "==> Capturing reconcile fixtures..." mkdir -p "$FIXTURES/reconcile" eval "$CAPTURE_CMD --func reconcile --all" | while IFS= read -r line; do case_id="$(echo "$line" | python3 -c "import sys,json; d=json.load(sys.stdin); print(d['case'])")" echo "$line" | python3 "$REPO/scripts/scrub_fixtures.py" > "$FIXTURES/reconcile/${case_id}.json" done echo "==> Done. Review with: git diff go/tests/fixtures/" echo "==> Audit PII: git ls-files go/tests/fixtures | xargs grep -l '' should return zero."