aboutsummaryrefslogtreecommitdiff
path: root/go/game/range_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'go/game/range_test.go')
-rw-r--r--go/game/range_test.go35
1 files changed, 35 insertions, 0 deletions
diff --git a/go/game/range_test.go b/go/game/range_test.go
new file mode 100644
index 00000000..afa164de
--- /dev/null
+++ b/go/game/range_test.go
@@ -0,0 +1,35 @@
+package game
+
+import (
+ "golang.org/x/exp/slices"
+ "testing"
+)
+
+func TestPositionsInRange(t *testing.T) {
+ origin := Position{0, 0}
+ positionsInRange1 := []Position{Position{0, 1}, Position{1, 0}, Position{1, 1}}
+ calculatedPositions := PositionsInRange(origin, 1, false)
+ if len(positionsInRange1) != len(calculatedPositions) {
+ t.Fatalf("Unexpected number of calculated positions")
+ }
+
+ for _, p := range positionsInRange1 {
+ if !slices.Contains(calculatedPositions, p) {
+ t.Fatalf("Position %v not in calculated positions", p)
+ }
+ }
+
+ origin = Position{2, 2}
+ positionsInRange2 := []Position{Position{0, 1}, Position{0, 2}, Position{0, 3},
+ Position{1, 0}, Position{1, 1}, Position{1, 2}, Position{1, 3}, Position{1, 4},
+ Position{2, 0}, Position{2, 1}, Position{2, 3}, Position{2, 4},
+ Position{3, 0}, Position{3, 1}, Position{3, 2}, Position{3, 3}, Position{3, 4},
+ Position{4, 1}, Position{4, 2}, Position{4, 3}}
+ calculatedPositions = PositionsInRange(origin, 2, false)
+
+ for _, p := range positionsInRange2 {
+ if !slices.Contains(calculatedPositions, p) {
+ t.Fatalf("Position %v not in calculated positions", p)
+ }
+ }
+}