Files
OpsLog/internal/lookup/rdaref_test.go
T
2026-08-21 18:21:33 +02:00

36 lines
1.3 KiB
Go

package lookup
import "testing"
// The district only ever reaches the log if it has the RIGHT SHAPE. HamQTH's
// oblast field is filled by hand, so it arrives in whatever form the operator's
// editor encouraged — and anything that is not a district reference must yield
// nothing at all rather than a reference no list contains.
func TestRDARef(t *testing.T) {
for _, c := range []struct{ in, want string }{
{"KE-29", "KE-29"},
{"ke-29", "KE-29"},
{" KE-29 ", "KE-29"},
{"KE-29 Kemerovskaya obl.", "KE-29"},
{"Kemerovskaya obl. (KE-29)", "KE-29"},
{"", ""},
{"Kemerovskaya oblast", ""}, // a name, not a reference
{"KE", ""}, // the oblast alone carries no district
{"KE-1", ""}, // one digit is not an RDA
{"KE-291", ""}, // three digits is not one either
{"650000", ""}, // a postal code
{"EU-064", ""}, // an IOTA reference in the wrong field
} {
if got := rdaRef(c.in); got != c.want {
t.Errorf("rdaRef(%q) = %q, want %q", c.in, got, c.want)
}
}
// oblast wins over district; an empty first field falls through to the next.
if got := rdaRef("", "MO-19"); got != "MO-19" {
t.Errorf("fallback to district = %q, want MO-19", got)
}
if got := rdaRef("KE-29", "MO-19"); got != "KE-29" {
t.Errorf("oblast must win, got %q", got)
}
}