Ticket #13813: trac_13813.patch

File trac_13813.patch, 3.0 KB (added by dcoudert, 8 years ago)
  • sage/graphs/generators/chessboard.py

    # HG changeset patch
    # User dcoudert <david.coudert@inria.fr>
    # Date 1355054384 -3600
    # Node ID 653a76423407a118217595cc3e5acea9370bd531
    # Parent  23061edf00176562a9d754123cfebbb8e3f631d3
    trac #13813 -- Fix bug in chessboard graphs generator
    
    diff --git a/sage/graphs/generators/chessboard.py b/sage/graphs/generators/chessboard.py
    a b  
    203203                        G.add_edge( uu, tuple(v) )
    204204
    205205                    # Anti-diagonal
    206                     for k in xrange(min(i, m-j-1, bishop_radius+1)):
     206                    for k in xrange(min(i, m-j-1, bishop_radius)):
    207207                        v[dx] = i-k-1
    208208                        v[dy] = j+k+1
    209209                        G.add_edge( uu, tuple(v) )
     
    216216                            v[dx] = i+knight_y
    217217                            v[dy] = j+knight_x
    218218                            G.add_edge( uu, tuple(v) )
    219                         if j > 0:
     219                        if j-knight_x >= 0:
    220220                            v[dx] = i+knight_y
    221221                            v[dy] = j-knight_x
    222222                            G.add_edge( uu, tuple(v) )
     
    225225                            v[dx] = i+knight_x
    226226                            v[dy] = j+knight_y
    227227                            G.add_edge( uu, tuple(v) )
    228                         if i > 0:
     228                        if i-knight_x >= 0:
    229229                            v[dx] = i-knight_x
    230230                            v[dy] = j+knight_y
    231231                            G.add_edge( uu, tuple(v) )
     
    284284        sage: H = graphs.KingGraph( [5, 3, 4] )
    285285        sage: G.is_isomorphic( H )
    286286        True
     287
     288    The Queen Graph can be obtained from the Rook Graph and the Bishop Graph::
     289
     290        sage: for d in xrange(3,12):   # long time
     291        ...       for r in xrange(1,d+1):
     292        ...           G = graphs.QueenGraph([d,d],radius=r)
     293        ...           H = graphs.RookGraph([d,d],radius=r)
     294        ...           B = graphs.BishopGraph([d,d],radius=r)
     295        ...           H.add_edges(B.edges())
     296        ...           if not G.is_isomorphic(H):
     297        ...              print "that's not good!"
     298
    287299    """
    288300    G, dimstr = self.ChessboardGraphGenerator(dim_list,
    289301                                              rook=True, rook_radius=radius,
     
    507519        sage: G = graphs.BishopGraph( [3, 4] )
    508520        sage: G.is_connected()
    509521        False
     522
     523    The Bishop Graph can be obtained from Knight Graphs::
     524
     525        sage: for d in xrange(3,12):   # long time
     526        ...       H = Graph()
     527        ...       for r in xrange(1,d+1):
     528        ...           B = graphs.BishopGraph([d,d],radius=r)
     529        ...           H.add_edges( graphs.KnightGraph([d,d],one=r,two=r).edges() )
     530        ...           if not B.is_isomorphic(H):
     531        ...              print "that's not good!"
     532
    510533    """
    511534    G, dimstr = self.ChessboardGraphGenerator(dim_list,
    512535                                              rook=False, knight=False,