コード例 #1
0
ファイル: test_core.py プロジェクト: Julian/Grim
 def test_set(self, data):
     board = core.Board.empty()
     (square, piece), = data.draw(pieces(board=board, minimum=1, maximum=1))
     self.assertEqual(
         board.set(square, piece),
         core.Board(pieces=pmap([(square, piece)])),
     )
コード例 #2
0
ファイル: test_core.py プロジェクト: Julian/Grim
 def test_iter(self):
     board = core.Board()
     self.assertEqual(
         set(board),
         {pvector(each)
          for each in itertools.product(range(8), repeat=2)},
     )
コード例 #3
0
ファイル: test_core.py プロジェクト: Julian/Grim
 def test_update(self, data):
     board = core.Board.empty()
     contents = data.draw(pieces(board=board))
     self.assertEqual(
         board.update(*contents.iteritems()),
         core.Board(pieces=contents),
     )
コード例 #4
0
ファイル: test_core.py プロジェクト: Julian/Grim
 def test_movable_from(self):
     square = v(0, 3)
     reachable = {v(0, 0), v(0, 7)}
     capturable = {v(0, 0), v(7, 7)}
     piece = Piece(reachable=reachable, capturable=capturable)
     board = core.Board(pieces=pmap({square: core.WHITE.piece(piece)}))
     self.assertEqual(
         sorted(board.movable_from(square=square)),
         [v(0, 0), v(0, 7), v(7, 7)],
     )
コード例 #5
0
ファイル: test_core.py プロジェクト: Julian/Grim
 def test_movable_from_occupied(self):
     start, end = v(0, 0), v(0, 3)
     reachable = {end, v(0, 7)}
     capturable = {end, v(7, 7)}
     piece = Piece(reachable=reachable, capturable=capturable)
     board = core.Board(pieces=pmap(
         {
             start: core.WHITE.piece(piece),
             end: core.WHITE.piece(Piece()),
         }, ), )
     self.assertEqual(
         sorted(board.movable_from(square=start)),
         [v(0, 7), v(7, 7)],
     )
コード例 #6
0
ファイル: test_core.py プロジェクト: Julian/Grim
    def test_it_is_the_next_players_turn_after_moving(self, data):
        board = core.Board()
        self.assertEqual(board.turn_of, core.WHITE)

        moved = data.draw(moved_board(board=board))
        self.assertEqual(moved.turn_of, core.BLACK)
コード例 #7
0
ファイル: test_core.py プロジェクト: Julian/Grim
 def test_dimensions(self):
     self.assertEqual(core.Board(width=3, height=5).dimensions, v(3, 5))
コード例 #8
0
ファイル: test_core.py プロジェクト: Julian/Grim
 def test_getitem_out_of_bounds(self):
     board = core.Board()
     with self.assertRaises(core.NoSuchSquare):
         board[board.width, board.height]
コード例 #9
0
ファイル: test_core.py プロジェクト: Julian/Grim
 def test_not_contains_too_high(self):
     board = core.Board()
     self.assertNotIn(core.sq("H9"), board)
コード例 #10
0
ファイル: test_core.py プロジェクト: Julian/Grim
 def test_not_contains_too_right(self):
     board = core.Board()
     self.assertNotIn(core.sq("I1"), board)
コード例 #11
0
ファイル: test_core.py プロジェクト: Julian/Grim
 def test_contains(self):
     board = core.Board()
     self.assertIn(core.sq("A8"), board)
コード例 #12
0
ファイル: test_core.py プロジェクト: Julian/Grim
 def test_it_is_a_piece(self):
     verify.verifyObject(
         interfaces._OnBoard,
         core.Board(pieces=pmap())[0, 0],
     )
コード例 #13
0
ファイル: test_core.py プロジェクト: Julian/Grim
 def test_movable_from_outside_bounds(self):
     square = v(0, 3)
     piece = Piece(reachable=[v(100, 100)], capturable=[v(101, 101)])
     board = core.Board(pieces=pmap({square: core.WHITE.piece(piece)}))
     self.assertEqual(sorted(board.movable_from(square=square)), [])
コード例 #14
0
def board(empty=core.Board(pieces=pmap()), pieces=pieces):
    return strategies.builds(core.Board, pieces=pieces(board=empty))