plus de test

master
Adam BONAFOS 2 months ago
parent da647361e7
commit 70424bae30

@ -1,7 +1,7 @@
import XCTest import XCTest
@testable import Model @testable import Model
final class IsGameOverTest: XCTestCase { final class Connect4IsGameOverTest: XCTestCase {
func testHorizontal() { func testHorizontal() {
let rules = Connect4Rules(piecesToAlign: 4) let rules = Connect4Rules(piecesToAlign: 4)
var board = Board() var board = Board()
@ -22,7 +22,7 @@ final class IsGameOverTest: XCTestCase {
XCTAssertEqual(rules.isGameOver(board: board).winner, Token.red) XCTAssertEqual(rules.isGameOver(board: board).winner, Token.red)
} }
func testFullGridWithoutWin() { func testFullGridWithoutWin() {
let rules = TicTacToeRules(piecesToAlign: 3) let rules = Connect4Rules(piecesToAlign: 3)
var board = Board(rowsNb: 3, columnsNb: 3) var board = Board(rowsNb: 3, columnsNb: 3)
board[0, 1] = .yellow board[0, 1] = .yellow
@ -69,7 +69,7 @@ final class IsGameOverTest: XCTestCase {
XCTAssertEqual(isGameOver.winner, Token.red) XCTAssertEqual(isGameOver.winner, Token.red)
} }
func testDiagonalDescending() { func testDiagonalDescending() {
let rules = TicTacToeRules(piecesToAlign: 3) let rules = Connect4Rules(piecesToAlign: 3)
var board = Board(rowsNb: 3, columnsNb: 3) var board = Board(rowsNb: 3, columnsNb: 3)
// Placer les jetons pour une victoire diagonale ascendante // Placer les jetons pour une victoire diagonale ascendante
@ -88,7 +88,7 @@ final class IsGameOverTest: XCTestCase {
} }
func testDiagonalAscending() { func testDiagonalAscending() {
let rules = TicTacToeRules(piecesToAlign: 3) let rules = Connect4Rules(piecesToAlign: 3)
var board = Board(rowsNb: 3, columnsNb: 3) var board = Board(rowsNb: 3, columnsNb: 3)
// Placer les jetons pour une victoire diagonale descendante // Placer les jetons pour une victoire diagonale descendante

@ -0,0 +1,81 @@
import XCTest
@testable import Model
final class TicTacToeIsGameOverTest: XCTestCase {
var rules: TicTacToeRules!
var board: Board!
override func setUp() {
super.setUp()
rules = TicTacToeRules(piecesToAlign: 3) // Tic-Tac-Toe classique
board = Board(rowsNb: 3, columnsNb: 3)
}
func testHorizontalWin() {
board[0, 0] = .red
XCTAssertFalse(rules.isGameOver(board: board).result)
board[0, 1] = .red
XCTAssertFalse(rules.isGameOver(board: board).result)
board[0, 2] = .red // 3 en ligne, victoire
let isGameOver = rules.isGameOver(board: board)
XCTAssertTrue(isGameOver.result)
XCTAssertEqual(isGameOver.winner, .red)
}
func testFullGridWithoutWin() {
board[0, 1] = .yellow
board[0, 0] = .red
board[1, 1] = .yellow
board[0, 2] = .red
board[1, 2] = .yellow
board[1, 0] = .red
board[2, 0] = .yellow
board[2, 1] = .red
board[2, 2] = .yellow
// Personne ne gagne, mais la partie est terminée
let isGameOver = rules.isGameOver(board: board)
XCTAssertTrue(isGameOver.result)
XCTAssertEqual(isGameOver.winner, Token.empty)
}
func testVerticalWin() {
board[0, 0] = .red
board[1, 0] = .red
board[2, 0] = .red // 3 en colonne, victoire
let isGameOver = rules.isGameOver(board: board)
XCTAssertTrue(isGameOver.result)
XCTAssertEqual(isGameOver.winner, .red)
}
func testDiagonalDescendingWin() {
// Diagonale \
board[0, 0] = .red
board[1, 1] = .red
board[2, 2] = .red // 3 en diagonale, victoire
let isGameOver = rules.isGameOver(board: board)
XCTAssertTrue(isGameOver.result)
XCTAssertEqual(isGameOver.winner, .red)
}
func testDiagonalAscendingWin() {
// Diagonale /
board[2, 0] = .yellow
board[1, 1] = .yellow
board[0, 2] = .yellow // 3 en diagonale, victoire
let isGameOver = rules.isGameOver(board: board)
XCTAssertTrue(isGameOver.result)
XCTAssertEqual(isGameOver.winner, .yellow)
}
}
Loading…
Cancel
Save