Vectrum
Sign In
41 lines · 956 Bytes · Shell
#!/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