def test_setplayercolour_black(self):
     self.board.setplayercolour('black')
     self.assertEqual(self.board.playercolour, 'black',
                      errormessage(self.board.playercolour, 'black'))
     self.assertEqual(self.board.computercolour, 'white',
                      errormessage(self.board.computercolour, 'white'))
     return None
    def test__setitem__coordinate(self):
        piece = pieces.BishopPiece('white')
        self.board[(2, 1)] = piece

        self.assertEqual(self.board._board[17], piece,
                         errormessage(self.board._board[17], piece))
        return None
    def test__setitem__index(self):
        piece = pieces.KingPiece('white')
        self.board[36] = piece

        self.assertEqual(self.board._board[36], piece,
                         errormessage(self.board._board[36], piece))
        return None
Beispiel #4
0
 def test_notationsymbol_black(self):
     piece = pieces.BasePiece('black', 'a', [core.Vector(0, 1)], crawler=True)
     self.assertEqual(
         piece.notationsymbol, 'a',
         errormessage(piece.notationsymbol, 'a')
     )
     return None
    def test__setitem__vector(self):
        piece = pieces.QueenPiece('white')
        self.board[core.Vector(6, 6)] = piece

        self.assertEqual(self.board._board[54], piece,
                         errormessage(self.board._board[54], piece))
        return None
    def test_duplicateboard(self):
        piece = pieces.QueenPiece('black')
        self.board[11] = piece

        newboard = self.board.duplicateboard()
        self.board[12] = piece

        self.assertNotEqual(
            newboard[12], self.board[12],
            errormessage('%s == %s' % (newboard[12], self.board[12]),
                         '%s =/= %s' % (newboard[12], self.board[12])))
        self.assertEqual(
            newboard[11], self.board[11],
            errormessage('%s =/= %s' % (newboard[11], self.board[11]),
                         '%s == %s' % (newboard[11], self.board[11])))
        return None
 def test_addmovetohistory_capture(self):
     movestring = 'Qe5xd5'
     self.ui.addmovetohistory('Q', 36, 35, capture=True)
     self.assertEqual(
         self.ui.history[-1], movestring,
         errormessage(self.ui.history[-1], movestring)
     )
     return None
 def test_addmovetohistory_promotionto(self):
     movestring = 'Pa7>a8=Q'
     self.ui.addmovetohistory('P', 48, 56, promotionto='Q')
     self.assertEqual(
         self.ui.history[-1], movestring,
         errormessage(self.ui.history[-1], movestring)
     )
     return None
 def test_addmovetohistory_castleshort(self):
     movestring = '0-0'
     self.ui.addmovetohistory(castleshort=True)
     self.assertEqual(
         self.ui.history[-1], movestring,
         errormessage(self.ui.history[-1], movestring)
     )
     return None
 def test_addmovetohistory_checkmate(self):
     movestring = 'Bh7>f5#'
     self.ui.addmovetohistory('B', 55, 37, checkmate=True)
     self.assertEqual(
         self.ui.history[-1], movestring,
         errormessage(self.ui.history[-1], movestring)
     )
     return None
 def test_addmovetohistory_check(self):
     movestring = 'Qe5>d5+'
     self.ui.addmovetohistory('Q', 36, 35, check=True)
     self.assertEqual(
         self.ui.history[-1], movestring,
         errormessage(self.ui.history[-1], movestring)
     )
     return None
 def test_addmovetohistory_basicmove(self):
     movestring = 'Pe2>e4'
     self.ui.addmovetohistory('P', 12, 28)
     self.assertEqual(
         self.ui.history[-1], movestring,
         errormessage(self.ui.history[-1], movestring)
     )
     return None
    def test_findpiece_black(self):
        self.board[22] = pieces.KingPiece('black')

        blackkingpos = self.board.findpiece(pieces.KingPiece, 'black')[0]
        self.assertEqual(
            blackkingpos, 22,
            errormessage("The king is at %i" % blackkingpos,
                         "The king is at %i" % 22))
        return None
    def test_findpiece_white(self):
        self.board[25] = pieces.KingPiece('white')

        whitekingpos = self.board.findpiece(pieces.KingPiece, 'white')[0]
        self.assertEqual(
            whitekingpos, 25,
            errormessage("The king is at %i" % whitekingpos,
                         "The king is at %i" % 25))
        return None
Beispiel #15
0
 def test_piecesbetween_inclusive(self):
     self.assertEqual(
         len(self.generator._piecesbetween(18, 19, inclusive=True)), 2,
         errormessage(
         '%s piece(s)' % len(self.generator._piecesbetween(18, 19, inclusive=True)),
         '2 pieces'
         )
     )
     return None
Beispiel #16
0
 def test_piecesbetween_twopieces(self):
     self.assertEqual(
         len(self.generator._piecesbetween(16, 23)), 2,
         errormessage(
         '%s piece(s)' % len(self.generator._piecesbetween(16, 23)),
         '2 pieces'
         )
     )
     return None
Beispiel #17
0
 def test_type(self):
     self.assertTrue(
         self.piece.type is pieces.PawnPiece,
         errormessage(
             "%s is not %s" % (self.piece.type, "PawnPiece"),
             "%s is %s" % (self.piece.type, "PawnPiece")
         )
     )
     return None
Beispiel #18
0
    def test_basicmoves_white(self):
        movelist = self.generator.basicmoves('white')

        # Make sure queen can't jump over white pawn.
        self.assertNotIn(
            (18, 19), movelist,
            errormessage('Can capture white pawn', "Can't capture white pawn"))
        self.assertNotIn(
            (18, 20), movelist,
            errormessage('Can move over pawn', 'Blocked by white pawn'))

        # Make sure queen can't move past knight at 42.
        self.assertIn(
            (18, 42), movelist,
            errormessage("Can't capture knight", 'Can capture black knight'))
        self.assertNotIn(
            (18, 50), movelist,
            errormessage('Can move past black knight', 'Blocked by knight'))
Beispiel #19
0
 def test_piecesbetween_onepiece(self):
     self.assertEqual(
         len(self.generator._piecesbetween(18, 23)), 1,
         errormessage(
         '%s pieces' % len(self.generator._piecesbetween(18, 23)),
         '1 piece'
         )
     )
     return None
Beispiel #20
0
 def test_type(self):
     self.assertTrue(
         self.piece.type is pieces.BasePiece,
         errormessage(
             "%s is not BasePiece" % str(self.piece),
             "%s is BasePiece" % str(self.piece)
         )
     )
     return None
Beispiel #21
0
    def test_basicmoves_black(self):
        # XXX - This is the *exact* same method as for white. I forgot to change it.
        movelist = self.generator.basicmoves('white')

        # Make sure queen can't jump over white pawn.
        self.assertNotIn(
            (18, 19), movelist,
            errormessage('Can capture white pawn', "Can't capture white pawn"))
        self.assertNotIn(
            (18, 20), movelist,
            errormessage('Can move over pawn', 'Blocked by white pawn'))

        # Make sure queen can't move past knight at 42.
        self.assertIn(
            (18, 42), movelist,
            errormessage("Can't capture knight", 'Can capture black knight'))
        self.assertNotIn(
            (18, 50), movelist,
            errormessage('Can move past black knight', 'Blocked by knight'))
Beispiel #22
0
    def test_inequality(self):
        piece2 = pieces.BishopPiece('white')

        self.assertNotEqual(
            self.piece, piece2,
            errormessage(
                "%s == %s" % (self.piece, "BishopPiece"),
                "%s =/= %s" % (self.piece, "BishopPiece")
            )
        )
        return None
Beispiel #23
0
    def test_equality(self):
        piece2 = pieces.PawnPiece('black')

        self.assertEqual(
            self.piece, piece2,
            errormessage(
                "%s =/= %s" % (self.piece, "PawnPiece"),
                "%s == %s" % (self.piece, "PawnPiece")
            )
        )
        return None
Beispiel #24
0
    def test_equality(self):
        piece2 = pieces.BasePiece(
            'black', '?', [core.Vector(0, 1)], crawler=True)

        self.assertEqual(
            self.piece, piece2,
            errormessage(
                "%s =/= %s" % (self.piece, "BasePiece"),
                "%s == %s" % (self.piece, "BasePiece")
            )
        )
        return None
Beispiel #25
0
 def test_piecesareonsameside_bothcolours(self):
     self.assertFalse(
         self.generator._piecesareonsameside(self.board[18], self.board[23]),
         errormessage(True, False)
     )
     return None
Beispiel #26
0
 def test_piecesareonsameside_black(self):
     self.assertTrue(
         self.generator._piecesareonsameside(self.board[23], self.board[42]),
         errormessage(False, True)
     )
     return None
Beispiel #27
0
 def test_piecesareonsameside_white(self):
     self.assertTrue(
         self.generator._piecesareonsameside(self.board[18], self.board[19]),
         errormessage(False, True)
     )
     return None
 def test__getitem__coordinate(self):
     self.board._board[23] = 'Y'  # Inject a piece at (2, 7)
     self.assertEqual(self.board[(2, 7)], 'Y',
                      errormessage(self.board[(2, 7)], 'Y'))
     return None
Beispiel #29
0
 def test_notationsymbol_white(self):
     self.assertEqual(
         self.piece.notationsymbol, 'A',
         errormessage(self.piece.notationsymbol, 'A')
     )
     return None
    def test__getitem__vector(self):
        self.board._board[0] = 'Z'  # Inject a piece at (0, 0)

        self.assertEqual(self.board[core.Vector(0, 0)], 'Z',
                         errormessage(self.board[core.Vector(0, 0)], 'Z'))
        return None