def test_single_moves_1
game = Game.new(6,6,6,6,6)
pieceA1 = game.pieces['a1']
pieceA2 = game.pieces['a2']
pieceB2 = game.pieces['b2']
posA = game.board.positions['a']
posB = game.board.positions['b']
posA3 = game.board.positions['a3']
posA4 = game.board.positions['a4']
posA5 = game.board.positions['a5']
moveA2A = Move.new(pieceA2, posA , true)
moveA1A5 = Move.new(pieceA1, posA5)
moveA2A4 = Move.new(pieceA2, posA4)
moveA2A3 = Move.new(pieceA2, posA3)
moveB2A5 = Move.new(pieceB2, posA5)
moveB2A3 = Move.new(pieceB2, posA3)
moveB2A4 = Move.new(pieceB2, posA4)
assert_equal [], game.history
assert_equal game.pieces['a1'].position, game.board.positions['a']
assert_equal game.pieces['a1'].captured, false
assert_equal game.pieces['a1'].contains, []
assert_equal game.pieces['a2'].position, game.board.positions['a']
assert_equal game.pieces['a2'].captured, false
assert_equal game.pieces['a2'].contains, []
assert_equal game.pieces['b2'].position, game.board.positions['b']
assert_equal game.pieces['b2'].captured, false
assert_equal game.pieces['b2'].contains, []
assert_raise(InvalidMoveError) {game.apply_move(moveA1A5, 'b')}
assert_equal [], game.history
assert_equal game.pieces['a1'].position, game.board.positions['a']
assert_equal game.pieces['a1'].captured, false
assert_equal game.pieces['a1'].contains, []
assert_equal game.pieces['a2'].position, game.board.positions['a']
assert_equal game.pieces['a2'].captured, false
assert_equal game.pieces['a2'].contains, []
assert_equal game.pieces['b2'].position, game.board.positions['b']
assert_equal game.pieces['b2'].captured, false
assert_equal game.pieces['b2'].contains, []
game.apply_move(moveA1A5, 'a')
assert_equal game.history.length, 1
assert_equal game.pieces['a1'].position, game.board.positions['a5']
assert_equal game.pieces['a1'].captured, false
assert_equal game.pieces['a1'].contains, []
assert_equal game.pieces['a2'].position, game.board.positions['a']
assert_equal game.pieces['a2'].captured, false
assert_equal game.pieces['a2'].contains, []
assert_equal game.pieces['b2'].position, game.board.positions['b']
assert_equal game.pieces['b2'].captured, false
assert_equal game.pieces['b2'].contains, []
end