36 lines
1.3 KiB
Go
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)
|
|
}
|
|
}
|