diff options
Diffstat (limited to 'go/game/map_test.go')
| -rw-r--r-- | go/game/map_test.go | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/go/game/map_test.go b/go/game/map_test.go index 15fa05cb..bc17dd55 100644 --- a/go/game/map_test.go +++ b/go/game/map_test.go @@ -4,6 +4,8 @@ import ( "reflect" "strings" "testing" + + "golang.org/x/exp/slices" ) func parseMapString(t *testing.T, mapDef string) *Map { @@ -113,3 +115,45 @@ symbols: t.Fatal("Tile at (0,0) is not a house") } } + +func TestMovementRangeTiles(t *testing.T) { + mapDef := `map: |1- + T H HT + FSSSSS2H + SHSH HS + S SST S + H HFH H + S TSS S + SH HSHS + H1SSSSSF + TH H T + +symbols: + T: tower + H: house + F: farm + S: street + 1: spawn player 1 + 2: spawn player 2 +` + + s := NewLocalState() + m := parseMapString(t, mapDef) + s.SetMap(m) + p := s.AddNewPlayer("p", NewDeck()) + o := Position{2, 2} + a := s.addNewUnit(NewCard("base/archer"), o, p) + + tiles := a.MoveRangeTiles() + exp := TilesInRange(m, a, a.Movement.Range) + + if len(tiles) != len(exp) { + t.Fatal("expected", len(exp), "tiles not", len(tiles)) + } + + for _, tile := range exp { + if !slices.Contains(tiles, tile) { + t.Fatal("missing", tile, "in tiles") + } + } +} |
