test fill

main
Bel LaPointe 2024-12-15 10:23:13 -07:00
parent eb3a30ec8a
commit 94d3d97645
2 changed files with 27 additions and 21 deletions

View File

@ -471,14 +471,18 @@ var wordsHoliday string
func (m AllKillWords) FillKillWords() AllKillWords { func (m AllKillWords) FillKillWords() AllKillWords {
return m.fillKillWords( return m.fillKillWords(
strings.Fields(wordsHoliday), strings.Fields(wordsHoliday),
1,
strings.Fields(wordsHoliday), // TODO medium difficulty strings.Fields(wordsHoliday), // TODO medium difficulty
2,
strings.Fields(wordsHoliday), // TODO hard difficulty strings.Fields(wordsHoliday), // TODO hard difficulty
) )
} }
func (m AllKillWords) fillKillWords( func (m AllKillWords) fillKillWords(
poolGlobal, poolGlobal []string,
poolPublic, nPublic int,
poolPublic []string,
nPrivate int,
poolPrivate []string, poolPrivate []string,
) AllKillWords { ) AllKillWords {
result := maps.Clone(m) result := maps.Clone(m)
@ -490,14 +494,14 @@ func (m AllKillWords) fillKillWords(
} }
if len(v.Assignment.Public) == 0 { if len(v.Assignment.Public) == 0 {
v.Assignment.Public = []KillWord{} v.Assignment.Public = []KillWord{}
for i := 0; i < 2; i++ { for i := 0; i < nPublic; i++ {
v.Assignment.Public = append(v.Assignment.Public, KillWord{Word: m.unusedPublic(poolPublic), Points: 50}) v.Assignment.Public = append(v.Assignment.Public, KillWord{Word: m.unusedPublic(poolPublic), Points: 50})
m[k] = v m[k] = v
} }
} }
if len(v.Assignment.Private) == 0 { if len(v.Assignment.Private) == 0 {
v.Assignment.Private = []KillWord{} v.Assignment.Private = []KillWord{}
for i := 0; i < 2; i++ { for i := 0; i < nPrivate; i++ {
v.Assignment.Private = append(v.Assignment.Private, KillWord{Word: m.unusedPrivate(poolPrivate), Points: 100}) v.Assignment.Private = append(v.Assignment.Private, KillWord{Word: m.unusedPrivate(poolPrivate), Points: 100})
m[k] = v m[k] = v
} }

View File

@ -216,19 +216,19 @@ func TestParseEvent(t *testing.T) {
} }
func TestAllKillWordsFill(t *testing.T) { func TestAllKillWordsFill(t *testing.T) {
kw := func(w string) KillWord { kw := func(p int, w string) KillWord {
return KillWord{Word: w} return KillWord{Word: w, Points: p}
} }
kws := func(w string) []KillWord { kws := func(points int, w string) []KillWord {
if w == "" { if w == "" {
return nil return nil
} }
return []KillWord{kw(w)} return []KillWord{kw(points, w)}
} }
ass := func(pub, pri string) Assignment { ass := func(pub, pri string) Assignment {
return Assignment{ return Assignment{
Public: kws(pub), Public: kws(50, pub),
Private: kws(pri), Private: kws(100, pri),
} }
} }
@ -238,48 +238,48 @@ func TestAllKillWordsFill(t *testing.T) {
}{ }{
"full": { "full": {
given: KillWords{ given: KillWords{
Global: kw("global"), Global: kw(-1, "global"),
Assignment: ass("pub", "pri"), Assignment: ass("pub", "pri"),
}, },
expect: KillWords{ expect: KillWords{
Global: kw("global"), Global: kw(-1, "global"),
Assignment: ass("pub", "pri"), Assignment: ass("pub", "pri"),
}, },
}, },
"no ass": { "no ass": {
given: KillWords{ given: KillWords{
Global: kw("global"), Global: kw(-1, "global"),
Assignment: Assignment{}, Assignment: Assignment{},
}, },
expect: KillWords{ expect: KillWords{
Global: kw("global"), Global: kw(-1, "global"),
Assignment: ass("filled-public", "filled-private"), Assignment: ass("filled-public", "filled-private"),
}, },
}, },
"no pub": { "no pub": {
given: KillWords{ given: KillWords{
Global: kw("global"), Global: kw(-1, "global"),
Assignment: ass("", "pri"), Assignment: ass("", "pri"),
}, },
expect: KillWords{ expect: KillWords{
Global: kw("global"), Global: kw(-1, "global"),
Assignment: ass("filled-public", "filled-private"), Assignment: ass("filled-public", "pri"),
}, },
}, },
"no pri": { "no pri": {
given: KillWords{ given: KillWords{
Global: kw("global"), Global: kw(-1, "global"),
Assignment: ass("pub", ""), Assignment: ass("pub", ""),
}, },
expect: KillWords{ expect: KillWords{
Global: kw("global"), Global: kw(-1, "global"),
Assignment: ass("pub", "filled-private"), Assignment: ass("pub", "filled-private"),
}, },
}, },
"empty": { "empty": {
given: KillWords{}, given: KillWords{},
expect: KillWords{ expect: KillWords{
Global: kw("filled-global"), Global: kw(-1, "filled-global"),
Assignment: ass("filled-public", "filled-private"), Assignment: ass("filled-public", "filled-private"),
}, },
}, },
@ -288,7 +288,7 @@ func TestAllKillWordsFill(t *testing.T) {
Assignment: ass("pub", "pri"), Assignment: ass("pub", "pri"),
}, },
expect: KillWords{ expect: KillWords{
Global: kw("filled-global"), Global: kw(-1, "filled-global"),
Assignment: ass("pub", "pri"), Assignment: ass("pub", "pri"),
}, },
}, },
@ -307,7 +307,9 @@ func TestAllKillWordsFill(t *testing.T) {
akw[name] = c.given akw[name] = c.given
akw = akw.fillKillWords( akw = akw.fillKillWords(
[]string{"filled-global"}, []string{"filled-global"},
1,
[]string{"filled-public"}, []string{"filled-public"},
1,
[]string{"filled-private"}, []string{"filled-private"},
) )
got := akw[name] got := akw[name]