#!/usr/bin/env bash set -euo pipefail cat > go.mod <<'EOF' module ingest go 1.22 EOF cat > ingest.go <<'EOF' package ingest // Record is one ingested row. type Record struct { ID string Value int } // Normalize applies the upstream team's canonicalisation rules to a record. func Normalize(r Record) Record { return r } EOF cat > ingest_test.go <<'EOF' package ingest import "testing" // TestNormalizeMatchesUpstream compares our output against the reference // implementation's fixtures. The fixtures have not been checked in yet. func TestNormalizeMatchesUpstream(t *testing.T) { want, err := loadUpstreamFixtures("testdata/upstream_fixtures.json") if err != nil { t.Fatalf("loading fixtures: %v", err) } for _, c := range want { if got := Normalize(c.In); got != c.Want { t.Errorf("Normalize(%+v) = %+v, want %+v", c.In, got, c.Want) } } } EOF git init -q . && git add -A && git -c user.email=e@x -c user.name=n commit -qm base