award
This commit is contained in:
@@ -36,7 +36,7 @@ func TestComputeDXCCAndConfirm(t *testing.T) {
|
||||
{Callsign: "F4BPO", Band: "20m", DXCC: ip(227), Notes: "nice qso D74", EQSLRcvd: "Y"}, // France dept 74 in note
|
||||
{Callsign: "F5ABC", Band: "40m", DXCC: ip(227), Notes: "D2A Corsica", QSLRcvd: "Y"}, // France dept 2A, confirmed
|
||||
}
|
||||
res := Compute(Defaults(), qsos, nil)
|
||||
res := Compute(Defaults(), qsos, nil, nil)
|
||||
by := map[string]Result{}
|
||||
for _, r := range res {
|
||||
by[r.Code] = r
|
||||
@@ -73,3 +73,37 @@ func refCodes(r Result) []string {
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
||||
// A predefined award only counts references present in its list, lists the
|
||||
// unworked ones too, and uses the list size as the denominator.
|
||||
func TestComputePredefinedList(t *testing.T) {
|
||||
def := Def{Code: "RAC", Name: "RAC", Type: TypeQSOFields, Field: "state", ExactMatch: true,
|
||||
DXCCFilter: []int{1}, Confirm: []string{"lotw", "qsl"}, Validate: []string{"lotw"}, Valid: true}
|
||||
qsos := []qso.QSO{
|
||||
{Callsign: "VE3AAA", Band: "20m", DXCC: ip(1), State: "ON", LOTWRcvd: "Y"}, // worked+confirmed+validated
|
||||
{Callsign: "VE7BBB", Band: "40m", DXCC: ip(1), State: "BC", QSLRcvd: "Y"}, // worked+confirmed (not validated)
|
||||
{Callsign: "VE9CCC", Band: "20m", DXCC: ip(1), State: "ZZ"}, // not a real province → ignored
|
||||
{Callsign: "K1ABC", Band: "20m", DXCC: ip(291), State: "MA"}, // wrong DXCC → ignored
|
||||
}
|
||||
refMetas := map[string][]RefMeta{"RAC": {
|
||||
{Code: "ON", Name: "Ontario", Valid: true},
|
||||
{Code: "BC", Name: "British Columbia", Valid: true},
|
||||
{Code: "AB", Name: "Alberta", Valid: true},
|
||||
}}
|
||||
r := Compute([]Def{def}, qsos, refMetas, nil)[0]
|
||||
if r.Worked != 2 {
|
||||
t.Errorf("RAC worked = %d, want 2 (%v)", r.Worked, refCodes(r))
|
||||
}
|
||||
if r.Confirmed != 2 {
|
||||
t.Errorf("RAC confirmed = %d, want 2", r.Confirmed)
|
||||
}
|
||||
if r.Validated != 1 { // only ON via LoTW
|
||||
t.Errorf("RAC validated = %d, want 1", r.Validated)
|
||||
}
|
||||
if r.Total != 3 { // denominator = list size
|
||||
t.Errorf("RAC total = %d, want 3", r.Total)
|
||||
}
|
||||
if len(r.Refs) != 3 { // ON, BC worked + AB unworked
|
||||
t.Errorf("RAC refs = %d, want 3 (%v)", len(r.Refs), refCodes(r))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user