Method: NetworkX::Graph#edge_subgraph
- Defined in:
- lib/networkx/graph.rb
#edge_subgraph(edges) ⇒ Object
Returns subgraph conisting of given edges
402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 |
# File 'lib/networkx/graph.rb', line 402 def edge_subgraph(edges) case edges when Array, Set sub_graph = NetworkX::Graph.new(**@graph) edges.each do |u, v| raise KeyError, "Edge between #{u} and #{v} does not exist in the graph!" unless @nodes.has_key?(u) \ && @adj[u].has_key?(v) sub_graph.add_node(u, **@nodes[u]) sub_graph.add_node(v, **@nodes[v]) sub_graph.add_edge(u, v, **@adj[u][v]) end sub_graph else raise ArgumentError, 'Expected Argument to be Array or Set of edges, ' \ "received #{edges.class.name} instead." end end |