def test_game_board(): game = game_from_sgf(""" (;GM[1]FF[4]CA[UTF-8]AP[CGoban:3]ST[2] RU[Japanese]SZ[9]HA[2]KM[6.50] PW[White]PB[Black]AB[gc][cg] (;W[gg] ;B[ff] ;W[dd]) (;W[ee] ;B[gg])) """) assert len(game.board.tree) == 6 assert game.board.current_node_id == 0 assert len(game.board.current_node.children) == 2 assert game.board.current_node.action == 'E' child = game.board.tree[game.board.current_node.children[0]] grand_child = game.board.tree[child.children[0]] assert child.action == 'W' assert child.move == coord_from_sgf('gg', game.board.size) assert grand_child.action == 'B' assert grand_child.move == coord_from_sgf('ff', game.board.size) child = game.board.tree[game.board.current_node.children[1]] grand_child = game.board.tree[child.children[0]] assert child.action == 'W' assert child.move == coord_from_sgf('ee', game.board.size) assert grand_child.action == 'B' assert grand_child.move == coord_from_sgf('gg', game.board.size)
def test_game_board_setup_stones(): game = game_from_sgf('(;AB[dd][de]AW[qq][qr])') assert len(game.board.tree) == 1 node = game.board.tree[0] assert len(node.children) == 0 assert len(node.edits.items()) == 4 assert node.edits.get(str(coord_from_sgf('dd', 19))) == BLACK assert node.edits.get(str(coord_from_sgf('de', 19))) == BLACK assert node.edits.get(str(coord_from_sgf('qq', 19))) == WHITE assert node.edits.get(str(coord_from_sgf('qr', 19))) == WHITE
def test_game_info(): game = game_from_sgf(""" (;GM[1]FF[4]CA[UTF-8]AP[CGoban:3]ST[2] RU[Japanese]SZ[9]HA[2]KM[6.50]RE[B+R]EV[event] PW[White]PB[Black]AB[gc][cg] (;W[gg] ;B[ff]) (;W[ee] ;B[gg])) """) assert game.result == 'B+R' assert game.komi == 6.5 assert game.black_display == 'Black' assert game.white_display == 'White' assert game.title == 'event'
def upload_sgf(self, sgf): game = game_from_sgf(sgf) room = Room(type='game') self.db.add(room) game.is_demo = True game.is_ranked = False game.stage = 'finished' game.demo_owner = self.user game.demo_owner_rating = self.user.rating game.demo_owner_display = self.user.display game.demo_control = self.user game.demo_control_display = self.user.display game.room = room self.db.add(game) self.db.commit() return game.id