Ticket #9073: trac_9073.patch

File trac_9073.patch, 2.8 KB (added by rlm, 3 years ago)
  • sage/graphs/generic_graph.py

    # HG changeset patch
    # User Robert L. Miller <rlm@rlmiller.org>
    # Date 1276804458 25200
    # Node ID ba1343258af21bc22fb2a9abb1e0cc5e0537beff
    # Parent  a5153e8afdaa001eb3e2d48ff8c762abd3c44fa8
    #9073 - fix planarity w.r.t. multiple edges
    
    diff -r a5153e8afdaa -r ba1343258af2 sage/graphs/generic_graph.py
    a b  
    22292229            (False, Graph on 6 vertices) 
    22302230            sage: result[1].is_isomorphic(graphs.CompleteBipartiteGraph(3,3)) 
    22312231            True 
    2232         """ 
     2232 
     2233        Multi-edged and looped graphs are partially supported:: 
     2234 
     2235            sage: G = Graph({0:[1,1]}, multiedges=True) 
     2236            sage: G.is_planar() 
     2237            True 
     2238            sage: G.is_planar(on_embedding={}) 
     2239            Traceback (most recent call last): 
     2240            ... 
     2241            NotImplementedError: Cannot compute with embeddings of multiple-edged or looped graphs. 
     2242            sage: G.is_planar(set_pos=True) 
     2243            Traceback (most recent call last): 
     2244            ... 
     2245            NotImplementedError: Cannot compute with embeddings of multiple-edged or looped graphs. 
     2246            sage: G.is_planar(set_embedding=True) 
     2247            Traceback (most recent call last): 
     2248            ... 
     2249            NotImplementedError: Cannot compute with embeddings of multiple-edged or looped graphs. 
     2250            sage: G.is_planar(kuratowski=True) 
     2251            (True, None) 
     2252 
     2253        :: 
     2254 
     2255            sage: G = graphs.CompleteGraph(5) 
     2256            sage: G = Graph(G, multiedges=True) 
     2257            sage: G.add_edge(0,1) 
     2258            sage: G.is_planar() 
     2259            False 
     2260            sage: b,k = G.is_planar(kuratowski=True) 
     2261            sage: b 
     2262            False 
     2263            sage: k.vertices() 
     2264            [0, 1, 2, 3, 4] 
     2265 
     2266        """ 
     2267        if self.has_multiple_edges() or self.has_loops(): 
     2268            if set_embedding or (on_embedding is not None) or set_pos: 
     2269                raise NotImplementedError("Cannot compute with embeddings of multiple-edged or looped graphs.") 
     2270            else: 
     2271                return self.to_simple().is_planar(kuratowski=kuratowski) 
    22332272        if on_embedding: 
    22342273            if self.check_embedding_validity(on_embedding): 
    22352274                return (0 == self.genus(minimal=False,set_embedding=False,on_embedding=on_embedding)) 
  • sage/graphs/planarity.pyx

    diff -r a5153e8afdaa -r ba1343258af2 sage/graphs/planarity.pyx
    a b  
    107107    g.relabel(to) 
    108108     
    109109    if status == NOTOK: 
    110         raise RuntimeError("not ok.") 
     110        raise RuntimeError("Status is not ok.") 
    111111    elif status == NONEMBEDDABLE: 
    112112        # Kuratowski subgraph isolator 
    113113        g_dict = {}