2021-06-29 03:26:23 +03:00
|
|
|
import { Board, createGame, Game, Hole, Store } from "../src/mancala"
|
|
|
|
|
|
|
|
|
|
describe('mancala', function () {
|
|
|
|
|
const player1 = "0"
|
|
|
|
|
const player2 = "0"
|
|
|
|
|
it('turn test', function () {
|
|
|
|
|
const game = createGame(player1, player2)
|
|
|
|
|
game.turn = "player1"
|
|
|
|
|
game.moveByIndex(3, "player1")
|
|
|
|
|
expect(game.turn).toBe("player1")
|
|
|
|
|
})
|
|
|
|
|
it('zero hole test 1', function () {
|
|
|
|
|
const board = new Board(
|
|
|
|
|
[new Hole(0), new Hole(1), new Hole(2), new Hole(3), new Hole(4), new Hole(5)],
|
|
|
|
|
[new Hole(1), new Hole(0), new Hole(4), new Hole(4), new Hole(4), new Hole(4)],
|
|
|
|
|
new Store(0), new Store(0))
|
2021-06-30 19:27:38 +03:00
|
|
|
const game = new Game(player1, player2, board, "player2", "playing")
|
2021-06-29 03:26:23 +03:00
|
|
|
game.moveByIndex(0, "player2")
|
|
|
|
|
expect(game.turn).toBe("player1")
|
|
|
|
|
expect(game.board.player2Store.ballCount).toBe(5)
|
|
|
|
|
expect(game.board.player1Holes[game.board.player1Holes.length - 1 - 1].ballCount).toBe(0)
|
|
|
|
|
})
|
2021-06-30 19:27:38 +03:00
|
|
|
|
|
|
|
|
it('game end test 1', function () {
|
|
|
|
|
const board = new Board(
|
|
|
|
|
[new Hole(0), new Hole(0), new Hole(0), new Hole(0), new Hole(4), new Hole(4)],
|
|
|
|
|
[new Hole(0), new Hole(0), new Hole(0), new Hole(0), new Hole(0), new Hole(1)],
|
|
|
|
|
new Store(0), new Store(0))
|
|
|
|
|
const game = new Game(player1, player2, board, "player2", "playing")
|
|
|
|
|
game.moveByIndex(5, "player2")
|
|
|
|
|
expect(game.turn).toBe("player2")
|
|
|
|
|
expect(game.board.player2Store.ballCount).toBe(9)
|
|
|
|
|
expect(game.board.player1Holes[game.board.player1Holes.length / 2].ballCount).toBe(0)
|
|
|
|
|
expect(game.state).toBe("ended")
|
|
|
|
|
})
|
2021-07-03 18:23:48 +03:00
|
|
|
|
|
|
|
|
it('game end won user 1', function () {
|
|
|
|
|
const board = new Board(
|
|
|
|
|
[new Hole(0), new Hole(0), new Hole(0), new Hole(0), new Hole(4), new Hole(4)],
|
|
|
|
|
[new Hole(0), new Hole(0), new Hole(0), new Hole(0), new Hole(0), new Hole(1)],
|
|
|
|
|
new Store(0), new Store(0))
|
|
|
|
|
const game = new Game(player1, player2, board, "player2", "playing")
|
|
|
|
|
game.moveByIndex(5, "player2")
|
|
|
|
|
expect(game.turn).toBe("player2")
|
|
|
|
|
expect(game.board.player2Store.ballCount).toBe(9)
|
|
|
|
|
expect(game.board.player1Holes[game.board.player1Holes.length / 2].ballCount).toBe(0)
|
|
|
|
|
expect(game.state).toBe("ended")
|
|
|
|
|
expect(game.getWonPlayer()).toBe("player2")
|
|
|
|
|
})
|
2021-06-29 03:26:23 +03:00
|
|
|
})
|