You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
5.7 KiB
90 lines
5.7 KiB
//
|
|
// File.swift
|
|
//
|
|
//
|
|
// Created by yorick geoffre on 07/02/2023.
|
|
//
|
|
|
|
import Foundation
|
|
import XCTest
|
|
import forcesPack
|
|
|
|
final class BoardRulesTests: XCTestCase {
|
|
private var boardEmpty: [[Int?]] = [[nil,nil,nil,nil],[nil,nil,nil,nil],[nil,nil,nil,nil],[nil,nil,nil,nil]]
|
|
private var boardRow: [[Int?]] = [[nil,nil,nil,nil],[nil,nil,nil,nil],[0,0,0,0],[nil,nil,nil,nil]]
|
|
private var boardCol: [[Int?]] = [[nil,0,nil,nil],[nil,0,nil,nil],[nil,0,nil,nil],[nil,0,nil,nil],]
|
|
private var boardDiag: [[Int?]] = [[0,nil,nil,nil],[nil,0,nil,nil],[nil,nil,0,nil],[nil,nil,nil,0]]
|
|
private var boardDiagInv: [[Int?]] = [[nil,nil,nil,0],[nil,nil,0,nil],[nil,0,nil,nil],[0,nil,nil,nil]]
|
|
|
|
private var boardRowBig: [[Int?]] = [[nil,nil,nil,nil],[nil,nil,nil,nil],[nil,nil,nil,nil],[nil,nil,nil,nil],[0,0,0,0],[nil,nil,nil,nil]]
|
|
private var boardColBig: [[Int?]] = [[nil,nil,nil,nil],[nil,nil,nil,nil],[nil,0,nil,nil],[nil,0,nil,nil],[nil,0,nil,nil],[nil,0,nil,nil],]
|
|
private var boardDiagBig: [[Int?]] = [[nil,nil,nil,nil],[nil,nil,nil,nil],[0,nil,nil,nil],[nil,0,nil,nil],[nil,nil,0,nil],[nil,nil,nil,0]]
|
|
private var boardDiagInvBig: [[Int?]] = [[nil,nil,nil,nil],[nil,nil,nil,nil],[nil,nil,nil,0],[nil,nil,0,nil],[nil,0,nil,nil],[0,nil,nil,nil]]
|
|
|
|
func testRules(){
|
|
var ruleCol : Rule = AreCols4x()
|
|
var ruleRow: Rule = AreRows4x()
|
|
var ruleDiag: Rule = AreDiags4x()
|
|
var ruleRowL: Rule = AreRows4xL()
|
|
var ruleColL: Rule = AreCols4xL()
|
|
var ruleDiagL: Rule = AreDiags4xL()
|
|
|
|
XCTAssertFalse(ruleCol.isRuleMet(grid: boardEmpty, targetedRow: 0, targetedCol: 0, lastPlayedId: 0))
|
|
XCTAssertFalse(ruleRow.isRuleMet(grid: boardEmpty, targetedRow: 0, targetedCol: 0, lastPlayedId: 0))
|
|
XCTAssertFalse(ruleDiag.isRuleMet(grid: boardEmpty, targetedRow: 0, targetedCol: 0, lastPlayedId: 0))
|
|
|
|
XCTAssertTrue(ruleCol.isRuleMet(grid: boardRow, targetedRow: 0, targetedCol: 0, lastPlayedId: 0))
|
|
XCTAssertFalse(ruleRow.isRuleMet(grid: boardRow, targetedRow: 0, targetedCol: 0, lastPlayedId: 0))
|
|
XCTAssertFalse(ruleDiag.isRuleMet(grid: boardRow, targetedRow: 0, targetedCol: 0, lastPlayedId: 0))
|
|
|
|
print(ruleCol.results)
|
|
|
|
XCTAssertFalse(ruleCol.isRuleMet(grid: boardCol, targetedRow: 0, targetedCol: 0, lastPlayedId: 0))
|
|
XCTAssertTrue(ruleRow.isRuleMet(grid: boardCol, targetedRow: 0, targetedCol: 0, lastPlayedId: 0))
|
|
XCTAssertFalse(ruleDiag.isRuleMet(grid: boardCol, targetedRow: 0, targetedCol: 0, lastPlayedId: 0))
|
|
|
|
print(ruleRow.results)
|
|
|
|
XCTAssertFalse(ruleCol.isRuleMet(grid: boardDiag, targetedRow: 0, targetedCol: 0, lastPlayedId: 0))
|
|
XCTAssertFalse(ruleRow.isRuleMet(grid: boardDiag, targetedRow: 0, targetedCol: 0, lastPlayedId: 0))
|
|
XCTAssertTrue(ruleDiag.isRuleMet(grid: boardDiag, targetedRow: 0, targetedCol: 0, lastPlayedId: 0))
|
|
|
|
|
|
XCTAssertTrue(ruleColL.isRuleMet(grid: boardRow, targetedRow: 2, targetedCol: 2, lastPlayedId: 0))
|
|
XCTAssertFalse(ruleRowL.isRuleMet(grid: boardRow, targetedRow: 1, targetedCol: 1, lastPlayedId: 0))
|
|
XCTAssertFalse(ruleDiagL.isRuleMet(grid: boardRow, targetedRow: 0, targetedCol: 0, lastPlayedId: 0))
|
|
|
|
XCTAssertFalse(ruleColL.isRuleMet(grid: boardCol, targetedRow: 2, targetedCol: 2, lastPlayedId: 0))
|
|
XCTAssertTrue(ruleRowL.isRuleMet(grid: boardCol, targetedRow: 1, targetedCol: 1, lastPlayedId: 0))
|
|
XCTAssertFalse(ruleDiagL.isRuleMet(grid: boardCol, targetedRow: 0, targetedCol: 0, lastPlayedId: 0))
|
|
|
|
XCTAssertFalse(ruleColL.isRuleMet(grid: boardDiag, targetedRow: 2, targetedCol: 2, lastPlayedId: 0))
|
|
XCTAssertFalse(ruleRowL.isRuleMet(grid: boardDiag, targetedRow: 1, targetedCol: 1, lastPlayedId: 0))
|
|
XCTAssertTrue(ruleDiagL.isRuleMet(grid: boardDiag, targetedRow: 0, targetedCol: 0, lastPlayedId: 0))
|
|
|
|
XCTAssertFalse(ruleColL.isRuleMet(grid: boardDiagInv, targetedRow: 2, targetedCol: 2, lastPlayedId: 0))
|
|
XCTAssertFalse(ruleRowL.isRuleMet(grid: boardDiagInv, targetedRow: 1, targetedCol: 1, lastPlayedId: 0))
|
|
XCTAssertTrue(ruleDiagL.isRuleMet(grid: boardDiagInv, targetedRow: 0, targetedCol: 3, lastPlayedId: 0))
|
|
|
|
print(ruleRowL.results)
|
|
print(ruleColL.results)
|
|
print(ruleDiagL.results)
|
|
|
|
XCTAssertTrue(ruleColL.isRuleMet(grid: boardRowBig, targetedRow: 4, targetedCol: 4, lastPlayedId: 0))
|
|
XCTAssertFalse(ruleRowL.isRuleMet(grid: boardRowBig, targetedRow: 1, targetedCol: 1, lastPlayedId: 0))
|
|
XCTAssertFalse(ruleDiagL.isRuleMet(grid: boardRowBig, targetedRow: 2, targetedCol: 4, lastPlayedId: 0))
|
|
|
|
XCTAssertFalse(ruleColL.isRuleMet(grid: boardColBig, targetedRow: 4, targetedCol: 4, lastPlayedId: 0))
|
|
XCTAssertTrue(ruleRowL.isRuleMet(grid: boardColBig, targetedRow: 1, targetedCol: 1, lastPlayedId: 0))
|
|
XCTAssertFalse(ruleDiagL.isRuleMet(grid: boardColBig, targetedRow: 2, targetedCol: 4, lastPlayedId: 0))
|
|
|
|
XCTAssertFalse(ruleColL.isRuleMet(grid: boardDiagBig, targetedRow: 4, targetedCol: 4, lastPlayedId: 0))
|
|
XCTAssertFalse(ruleRowL.isRuleMet(grid: boardDiagBig, targetedRow: 1, targetedCol: 1, lastPlayedId: 0))
|
|
XCTAssertTrue(ruleDiagL.isRuleMet(grid: boardDiagBig, targetedRow: 2, targetedCol: 0, lastPlayedId: 0))
|
|
|
|
XCTAssertFalse(ruleColL.isRuleMet(grid: boardDiagInvBig, targetedRow: 4, targetedCol: 4, lastPlayedId: 0))
|
|
XCTAssertFalse(ruleRowL.isRuleMet(grid: boardDiagInvBig, targetedRow: 1, targetedCol: 1, lastPlayedId: 0))
|
|
XCTAssertTrue(ruleDiagL.isRuleMet(grid: boardDiagInvBig, targetedRow: 2, targetedCol: 3, lastPlayedId: 0))
|
|
}
|
|
}
|