def test_move_2(self): game = Game('pc2,Ke1,ke8', BLACK) self.assertEqual(str(game.board.getFigure(BLACK, PAWN)), 'pc2') with self.assertRaises(errors.NotFoundError): game.board.getFigure(BLACK, QUEEN) game.move(BLACK, (3, 2), (3, 1)) self.assertEqual(str(game.board), 'Ke1,ke8,qc1') self.assertEqual(str(game.board.getFigure(BLACK, QUEEN)), 'qc1') with self.assertRaises(errors.NotFoundError): game.board.getFigure(BLACK, PAWN)
def test_move_1(self): game = Game('Pc7,Ke1,ke8') self.assertEqual(str(game.board.getFigure(WHITE, PAWN)), 'Pc7') with self.assertRaises(errors.NotFoundError): game.board.getFigure(WHITE, QUEEN) game.move(WHITE, (3, 7), (3, 8)) self.assertEqual(str(game.board), 'Ke1,ke8,Qc8') self.assertEqual(str(game.board.getFigure(WHITE, QUEEN)), 'Qc8') with self.assertRaises(errors.NotFoundError): game.board.getFigure(WHITE, PAWN)
def test_full_game(self): moves = [ 'e2-e4', 'e7-e5', 'g1-f3', 'b8-c6', 'f1-c4', 'c6-d4', 'f3-e5', 'd8-g5', 'e5-f7', 'g5-g2', 'h1-f1', 'g2-e4', 'c4-e2', 'd4-f3', 'e2-f3', 'e4-e1' ] game = Game() with self.assertRaises(errors.BlackWon): for move in moves: positions = map(coors2pos, move.split('-')) game.move(game.current_player, *positions) expect = [ 'Pa2', 'Pb2', 'Pc2', 'Pd2', 'Pf2', 'Ph2', 'Ra1', 'Rf1', 'Nb1', 'Nf7', 'Bc1', 'Bf3', 'Qd1', 'pa7', 'pb7', 'pc7', 'pd7', 'pg7', 'ph7', 'ra8', 'rh8', 'ng8', 'bc8', 'bf8', 'qe1', 'ke8' ] self.assertEqual(str(game.board), ','.join(expect)) expect = [(PAWN, BLACK), (PAWN, BLACK), (PAWN, WHITE), (PAWN, WHITE), (KNIGHT, BLACK), (KING, WHITE)] self.assertEqual(game.board.cuts, expect)
def test_move(self): game = Game('Kf3,Pe2,ke8,qf7') self.assertEqual(game.current_player, WHITE) with self.assertRaises(errors.WrongTurnError): game.move(BLACK, (5, 4), (5, 5)) with self.assertRaises(errors.NotFoundError): game.move(WHITE, (5, 4), (5, 5)) with self.assertRaises(errors.WrongFigureError): game.move(WHITE, (5, 8), (5, 7)) with self.assertRaises(errors.WrongMoveError): game.move(WHITE, (5, 2), (5, 5)) fig, move = game.move(WHITE, (5, 2), (5, 4)) self.assertIsInstance(fig, Pawn) self.assertEqual(move, 'e2-e4') self.assertEqual(game.current_player, BLACK) with self.assertRaises(errors.BlackWon) as cm: game.move(BLACK, (6, 7), (6, 3)) self.assertIsInstance(cm.exception.figure, Queen) self.assertEqual(cm.exception.move, 'f7-f3') self.assertEqual(str(game.board.lastCut), 'Kf3') game = Game('Ke1,Rh1,ke8') fig, move = game.move(WHITE, (5, 1), (7, 1)) self.assertIsInstance(fig, King) self.assertEqual(move, '0-0') self.assertEqual(game.current_player, BLACK)