package tictactoe_test
import (
"testing"
"tictactoe"
"github.com/matryer/is"
)
func TestEvaluate(t *testing.T) {
is := is.NewRelaxed(t)
var testCases = []struct {
description string
board tictactoe.Board
expected int
}{
{"Nothing", tictactoe.Board{
{tictactoe.P_1, tictactoe.P_1, tictactoe.P_2},
{tictactoe.Emp, tictactoe.Emp, tictactoe.Emp},
{tictactoe.Emp, tictactoe.Emp, tictactoe.Emp}},
0},
{"tictactoe.P_1 row", tictactoe.Board{
{tictactoe.P_1, tictactoe.P_1, tictactoe.P_1},
{tictactoe.Emp, tictactoe.Emp, tictactoe.Emp},
{tictactoe.Emp, tictactoe.Emp, tictactoe.Emp}},
10},
{"tictactoe.P_2 col", tictactoe.Board{
{tictactoe.P_2, tictactoe.Emp, tictactoe.Emp},
{tictactoe.P_2, tictactoe.Emp, tictactoe.Emp},
{tictactoe.P_2, tictactoe.Emp, tictactoe.Emp}},
-10},
{"tictactoe.P_1 last col", tictactoe.Board{
{tictactoe.Emp, tictactoe.Emp, tictactoe.P_1},
{tictactoe.Emp, tictactoe.Emp, tictactoe.P_1},
{tictactoe.Emp, tictactoe.Emp, tictactoe.P_1}},
10},
{"tictactoe.P_2 diag lr", tictactoe.Board{
{tictactoe.P_2, tictactoe.Emp, tictactoe.Emp},
{tictactoe.Emp, tictactoe.P_2, tictactoe.Emp},
{tictactoe.Emp, tictactoe.Emp, tictactoe.P_2}},
-10},
{"tictactoe.P_1 diag rl", tictactoe.Board{
{tictactoe.Emp, tictactoe.Emp, tictactoe.P_1},
{tictactoe.Emp, tictactoe.P_1, tictactoe.Emp},
{tictactoe.P_1, tictactoe.Emp, tictactoe.Emp}},
10},
}
for _, tc := range testCases {
t.Run("Evaluate"+tc.description, func(t *testing.T) {
is.Equal(tc.expected, tc.board.Evaluate())
})
}
}