Linear + Diagonal moves
This commit is contained in:
@@ -7,16 +7,56 @@ final class EngineTests: XCTestCase {
|
||||
super.setUp()
|
||||
}
|
||||
func testPositionIndex() throws {
|
||||
var rank = 9
|
||||
for i in 0..<64 {
|
||||
var rank: Int8 = 9
|
||||
for i: Int8 in 0..<64 {
|
||||
let file = (i % 8) + 1
|
||||
if file - 1 == 0 {
|
||||
rank -= 1
|
||||
}
|
||||
let pos: Square.Position = .init(file: UInt8(file), rank: UInt8(rank))
|
||||
XCTAssertTrue(pos.index == i, "Expected \(i) got \(pos.index)")
|
||||
let pos: Square.Position = .init(rank: rank, file: file)
|
||||
XCTAssertTrue(pos.index == Int(i), "Expected \(i) got \(pos.index!)")
|
||||
}
|
||||
}
|
||||
func testDiagonalMoves() throws {
|
||||
let b: Bishop = .init(color: .White, on: .init(rank: 4, file: 4))
|
||||
let result = [
|
||||
Square.Position(rank: 5, file: 3),
|
||||
Square.Position(rank: 6, file: 2),
|
||||
Square.Position(rank: 7, file: 1),
|
||||
Square.Position(rank: 5, file: 5),
|
||||
Square.Position(rank: 6, file: 6),
|
||||
Square.Position(rank: 7, file: 7),
|
||||
Square.Position(rank: 8, file: 8),
|
||||
Square.Position(rank: 3, file: 5),
|
||||
Square.Position(rank: 2, file: 6),
|
||||
Square.Position(rank: 1, file: 7),
|
||||
Square.Position(rank: 3, file: 3),
|
||||
Square.Position(rank: 2, file: 2),
|
||||
Square.Position(rank: 1, file: 1),
|
||||
]
|
||||
XCTAssertEqual(result, b.pseudoLegalPositions)
|
||||
}
|
||||
|
||||
func testLinearMoves() throws {
|
||||
let r: Rook = .init(color: .White, on: .init(rank: 4, file: 4))
|
||||
let result = [
|
||||
Square.Position(rank: 5, file: 4),
|
||||
Square.Position(rank: 6, file: 4),
|
||||
Square.Position(rank: 7, file: 4),
|
||||
Square.Position(rank: 8, file: 4),
|
||||
Square.Position(rank: 4, file: 5),
|
||||
Square.Position(rank: 4, file: 6),
|
||||
Square.Position(rank: 4, file: 7),
|
||||
Square.Position(rank: 4, file: 8),
|
||||
Square.Position(rank: 3, file: 4),
|
||||
Square.Position(rank: 2, file: 4),
|
||||
Square.Position(rank: 1, file: 4),
|
||||
Square.Position(rank: 4, file: 3),
|
||||
Square.Position(rank: 4, file: 2),
|
||||
Square.Position(rank: 4, file: 1),
|
||||
]
|
||||
XCTAssertEqual(result, r.pseudoLegalPositions)
|
||||
}
|
||||
// func testBoard() throws {
|
||||
// let board = Board()
|
||||
// }
|
||||
|
||||
Reference in New Issue
Block a user