add tests for GRDoubleStoneInPit
This commit is contained in:
parent
3d9ae0c524
commit
c3f1a92d24
@ -1,6 +1,7 @@
|
||||
import { GRClearBoardAtEnd } from '../src/common/game_rules/GRClearBoardAtEnd';
|
||||
import { GRLastStoneInBank } from '../src/common/game_rules/GRLastStoneInBank';
|
||||
import { GRLastStoneInEmptyPit } from '../src/common/game_rules/GRLastStoneInEmptyPit';
|
||||
import { GRDoubleStoneInPit } from '../src/common/game_rules/GRDoubleStoneInPit';
|
||||
import { Board } from '../src/core/Board';
|
||||
import { MancalaGame } from '../src/core/MancalaGame';
|
||||
|
||||
@ -16,6 +17,7 @@ export function createGame(): MancalaGame {
|
||||
player1Id,
|
||||
[
|
||||
new GRLastStoneInEmptyPit(),
|
||||
new GRDoubleStoneInPit(),
|
||||
new GRLastStoneInBank(),
|
||||
new GRClearBoardAtEnd()
|
||||
],
|
||||
|
||||
43
tests/game_rules/GRDoubleStoneInPit.test.ts
Normal file
43
tests/game_rules/GRDoubleStoneInPit.test.ts
Normal file
@ -0,0 +1,43 @@
|
||||
import { GameStep } from '../../src/core/HistoryItem';
|
||||
import { GAME_STEP_GAME_MOVE } from '../../src/core/MancalaGame';
|
||||
import { createGame } from '../TestUtil';
|
||||
import { GAME_STEP_DOUBLE_STONE_IN_PIT } from '../../src/common/game_rules/GRDoubleStoneInPit';
|
||||
|
||||
describe('GRDoubleStoneInPit Test', () => {
|
||||
test('test GRDoubleStoneInPit 1', () => {
|
||||
const game = createGame();
|
||||
const board = game.board;
|
||||
const initialBoard = [3, 4, 4, 4, 4, 3, 0, 3, 4, 4, 4, 4, 3, 0];
|
||||
game.board.pits[5].stoneCount = 3;
|
||||
game.board.pits[7].stoneCount = 3;
|
||||
game.board.pits[12].stoneCount = 3;
|
||||
game.board.pits[0].stoneCount = 3;
|
||||
expect(board.getStoneArray()).toStrictEqual(initialBoard);
|
||||
game.moveByPlayerPit('0', 5);
|
||||
expect(board.getStoneArray()).toStrictEqual([
|
||||
3, 4, 4, 4, 4, 1, 5, 0, 4, 4, 4, 4, 3, 0
|
||||
]);
|
||||
expect(game.history[0].gameSteps).toStrictEqual([
|
||||
new GameStep(5, GAME_STEP_GAME_MOVE),
|
||||
new GameStep(6, GAME_STEP_GAME_MOVE),
|
||||
new GameStep(7, GAME_STEP_GAME_MOVE),
|
||||
new GameStep(7, GAME_STEP_DOUBLE_STONE_IN_PIT, {
|
||||
pitIndex: 7,
|
||||
bankIndex: 6
|
||||
})
|
||||
]);
|
||||
game.moveByPlayerPit('1', 5);
|
||||
expect(board.getStoneArray()).toStrictEqual([
|
||||
0, 4, 4, 4, 4, 1, 5, 0, 4, 4, 4, 4, 1, 5
|
||||
]);
|
||||
expect(game.history[game.history.length - 1].gameSteps).toStrictEqual([
|
||||
new GameStep(12, GAME_STEP_GAME_MOVE),
|
||||
new GameStep(13, GAME_STEP_GAME_MOVE),
|
||||
new GameStep(14, GAME_STEP_GAME_MOVE),
|
||||
new GameStep(0, GAME_STEP_DOUBLE_STONE_IN_PIT, {
|
||||
pitIndex: 0,
|
||||
bankIndex: 13
|
||||
})
|
||||
]);
|
||||
});
|
||||
});
|
||||
Loading…
Reference in New Issue
Block a user