49 lines
1.4 KiB
Nim
49 lines
1.4 KiB
Nim
# This is just an example to get you started. You may wish to put all of your
|
|
# tests into a single file, or separate them into multiple `test1`, `test2`
|
|
# etc. files (better names are recommended, just make sure the name starts with
|
|
# the letter 't').
|
|
#
|
|
# To run these tests, simply execute `nimble test`.
|
|
|
|
import unittest
|
|
|
|
import libmttt
|
|
|
|
suite "Test the board result checker":
|
|
setup:
|
|
var
|
|
player1 = Player(name: "Max")
|
|
player2 = Player(name: "Adam")
|
|
state: GameState = newGame(player1, player2)
|
|
|
|
test "row checking":
|
|
state.board[0][0] = [
|
|
[mFree, mFree, mFree],
|
|
[mPlayer1, mPlayer1, mPlayer1],
|
|
[mFree, mFree, mFree]
|
|
]
|
|
check checkBoard(state.board[0][0]) == rPlayer1
|
|
|
|
test "column checking":
|
|
state.board[0][0] = [
|
|
[mPlayer2, mFree, mPlayer1],
|
|
[mPlayer2, mPlayer1, mFree],
|
|
[mPlayer2, mPlayer1, mFree]
|
|
]
|
|
check checkBoard(state.board[0][0]) == rPlayer2
|
|
|
|
test "check for draw":
|
|
state.board[0][0] = [
|
|
[mPlayer1, mPlayer2, mPlayer1],
|
|
[mPlayer2, mPlayer1, mPlayer1],
|
|
[mPlayer2, mPlayer1, mPlayer2]
|
|
]
|
|
check checkBoard(state.board[0][0]) == rDraw
|
|
|
|
test "check for open board":
|
|
state.board[0][0] = [
|
|
[mPlayer1, mPlayer2, mFree],
|
|
[mPlayer1, mFree, mPlayer1],
|
|
[mFree, mPlayer1, mPlayer2]
|
|
]
|
|
check checkBoard(state.board[0][0]) == rOpen |