<s> from nose . tools import assert_equal <EOL> from nose . tools import assert_is <EOL> from nose . tools import assert_not_equal <EOL> from nose . tools import assert_raises <EOL> import networkx as nx <EOL> from test_graph import BaseAttrGraphTester , TestGraph <EOL> class BaseMultiGraphTester ( BaseAttrGraphTester ) : <EOL> def test_has_edge ( self ) : <EOL> G = self . K3 <EOL> assert_equal ( G . has_edge ( <NUM_LIT:0> , <NUM_LIT:1> ) , True ) <EOL> assert_equal ( G . has_edge ( <NUM_LIT:0> , - <NUM_LIT:1> ) , False ) <EOL> assert_equal ( G . has_edge ( <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:0> ) , True ) <EOL> assert_equal ( G . has_edge ( <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:1> ) , False ) <EOL> def test_get_edge_data ( self ) : <EOL> G = self . K3 <EOL> assert_equal ( G . get_edge_data ( <NUM_LIT:0> , <NUM_LIT:1> ) , { <NUM_LIT:0> : { } } ) <EOL> assert_equal ( G [ <NUM_LIT:0> ] [ <NUM_LIT:1> ] , { <NUM_LIT:0> : { } } ) <EOL> assert_equal ( G [ <NUM_LIT:0> ] [ <NUM_LIT:1> ] [ <NUM_LIT:0> ] , { } ) <EOL> assert_equal ( G . get_edge_data ( <NUM_LIT:10> , <NUM_LIT:20> ) , None ) <EOL> assert_equal ( G . get_edge_data ( <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:0> ) , { } ) <EOL> def test_adjacency ( self ) : <EOL> G = self . K3 <EOL> assert_equal ( dict ( G . adjacency ( ) ) , <EOL> { <NUM_LIT:0> : { <NUM_LIT:1> : { <NUM_LIT:0> : { } } , <NUM_LIT:2> : { <NUM_LIT:0> : { } } } , <EOL> <NUM_LIT:1> : { <NUM_LIT:0> : { <NUM_LIT:0> : { } } , <NUM_LIT:2> : { <NUM_LIT:0> : { } } } , <EOL> <NUM_LIT:2> : { <NUM_LIT:0> : { <NUM_LIT:0> : { } } , <NUM_LIT:1> : { <NUM_LIT:0> : { } } } } ) <EOL> def deepcopy_edge_attr ( self , H , G ) : <EOL> assert_equal ( G [ <NUM_LIT:1> ] [ <NUM_LIT:2> ] [ <NUM_LIT:0> ] [ '<STR_LIT:foo>' ] , H [ <NUM_LIT:1> ] [ <NUM_LIT:2> ] [ <NUM_LIT:0> ] [ '<STR_LIT:foo>' ] ) <EOL> G [ <NUM_LIT:1> ] [ <NUM_LIT:2> ] [ <NUM_LIT:0> ] [ '<STR_LIT:foo>' ] . append ( <NUM_LIT:1> ) <EOL> assert_not_equal ( G [ <NUM_LIT:1> ] [ <NUM_LIT:2> ] [ <NUM_LIT:0> ] [ '<STR_LIT:foo>' ] , H [ <NUM_LIT:1> ] [ <NUM_LIT:2> ] [ <NUM_LIT:0> ] [ '<STR_LIT:foo>' ] ) <EOL> def shallow_copy_edge_attr ( self , H , G ) : <EOL> assert_equal ( G [ <NUM_LIT:1> ] [ <NUM_LIT:2> ] [ <NUM_LIT:0> ] [ '<STR_LIT:foo>' ] , H [ <NUM_LIT:1> ] [ <NUM_LIT:2> ] [ <NUM_LIT:0> ] [ '<STR_LIT:foo>' ] ) <EOL> G [ <NUM_LIT:1> ] [ <NUM_LIT:2> ] [ <NUM_LIT:0> ] [ '<STR_LIT:foo>' ] . append ( <NUM_LIT:1> ) <EOL> assert_equal ( G [ <NUM_LIT:1> ] [ <NUM_LIT:2> ] [ <NUM_LIT:0> ] [ '<STR_LIT:foo>' ] , H [ <NUM_LIT:1> ] [ <NUM_LIT:2> ] [ <NUM_LIT:0> ] [ '<STR_LIT:foo>' ] ) <EOL> def same_attrdict ( self , H , G ) : <EOL> old_foo = H [ <NUM_LIT:1> ] [ <NUM_LIT:2> ] [ <NUM_LIT:0> ] [ '<STR_LIT:foo>' ] <EOL> H . add_edge ( <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:0> , foo = '<STR_LIT>' ) <EOL> assert_equal ( G . edge , H . edge ) <EOL> H . add_edge ( <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:0> , foo = old_foo ) <EOL> assert_equal ( G . edge , H . edge ) <EOL> H . add_edge ( <NUM_LIT:1> , <NUM_LIT:2> , foo = '<STR_LIT>' ) <EOL> assert_not_equal ( G . edge , H . edge ) <EOL> old_foo = H . node [ <NUM_LIT:0> ] [ '<STR_LIT:foo>' ] <EOL> H . node [ <NUM_LIT:0> ] [ '<STR_LIT:foo>' ] = '<STR_LIT>' <EOL> assert_equal ( G . node , H . node ) <EOL> H . node [ <NUM_LIT:0> ] [ '<STR_LIT:foo>' ] = old_foo <EOL> assert_equal ( G . node , H . node ) <EOL> def different_attrdict ( self , H , G ) : <EOL> old_foo = H [ <NUM_LIT:1> ] [ <NUM_LIT:2> ] [ <NUM_LIT:0> ] [ '<STR_LIT:foo>' ] <EOL> H . add_edge ( <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:0> , foo = '<STR_LIT>' ) <EOL> assert_not_equal ( G . edge , H . edge ) <EOL> H . add_edge ( <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:0> , foo = old_foo ) <EOL> assert_equal ( G . edge , H . edge ) <EOL> HH = H . copy ( ) <EOL> H . add_edge ( <NUM_LIT:1> , <NUM_LIT:2> , foo = '<STR_LIT>' ) <EOL> assert_not_equal ( G . edge , H . edge ) <EOL> H = HH <EOL> old_foo = H . node [ <NUM_LIT:0> ] [ '<STR_LIT:foo>' ] <EOL> H . node [ <NUM_LIT:0> ] [ '<STR_LIT:foo>' ] = '<STR_LIT>' <EOL> assert_not_equal ( G . node , H . node ) <EOL> H . node [ <NUM_LIT:0> ] [ '<STR_LIT:foo>' ] = old_foo <EOL> assert_equal ( G . node , H . node ) <EOL> def test_to_undirected ( self ) : <EOL> G = self . K3 <EOL> self . add_attributes ( G ) <EOL> H = nx . MultiGraph ( G ) <EOL> self . is_shallow_copy ( H , G ) <EOL> H = G . to_undirected ( ) <EOL> self . is_deepcopy ( H , G ) <EOL> def test_to_directed ( self ) : <EOL> G = self . K3 <EOL> self . add_attributes ( G ) <EOL> H = nx . MultiDiGraph ( G ) <EOL> self . is_shallow_copy ( H , G ) <EOL> H = G . to_directed ( ) <EOL> self . is_deepcopy ( H , G ) <EOL> def test_selfloops ( self ) : <EOL> G = self . K3 <EOL> G . add_edge ( <NUM_LIT:0> , <NUM_LIT:0> ) <EOL> assert_equal ( list ( G . nodes_with_selfloops ( ) ) , [ <NUM_LIT:0> ] ) <EOL> assert_equal ( list ( G . selfloop_edges ( ) ) , [ ( <NUM_LIT:0> , <NUM_LIT:0> ) ] ) <EOL> assert_equal ( list ( G . selfloop_edges ( data = True ) ) , [ ( <NUM_LIT:0> , <NUM_LIT:0> , { } ) ] ) <EOL> assert_equal ( G . number_of_selfloops ( ) , <NUM_LIT:1> ) <EOL> def test_selfloops2 ( self ) : <EOL> G = self . K3 <EOL> G . add_edge ( <NUM_LIT:0> , <NUM_LIT:0> ) <EOL> G . add_edge ( <NUM_LIT:0> , <NUM_LIT:0> ) <EOL> G . add_edge ( <NUM_LIT:0> , <NUM_LIT:0> , key = '<STR_LIT>' ) <EOL> G . remove_edge ( <NUM_LIT:0> , <NUM_LIT:0> , key = '<STR_LIT>' ) <EOL> assert_equal ( G . number_of_edges ( <NUM_LIT:0> , <NUM_LIT:0> ) , <NUM_LIT:2> ) <EOL> G . remove_edge ( <NUM_LIT:0> , <NUM_LIT:0> ) <EOL> assert_equal ( G . number_of_edges ( <NUM_LIT:0> , <NUM_LIT:0> ) , <NUM_LIT:1> ) <EOL> def test_edge_attr4 ( self ) : <EOL> G = self . Graph ( ) <EOL> G . add_edge ( <NUM_LIT:1> , <NUM_LIT:2> , key = <NUM_LIT:0> , data = <NUM_LIT:7> , spam = '<STR_LIT:bar>' , bar = '<STR_LIT:foo>' ) <EOL> assert_equal ( list ( G . edges ( data = True ) ) , <EOL> [ ( <NUM_LIT:1> , <NUM_LIT:2> , { '<STR_LIT:data>' : <NUM_LIT:7> , '<STR_LIT>' : '<STR_LIT:bar>' , '<STR_LIT:bar>' : '<STR_LIT:foo>' } ) ] ) <EOL> G [ <NUM_LIT:1> ] [ <NUM_LIT:2> ] [ <NUM_LIT:0> ] [ '<STR_LIT:data>' ] = <NUM_LIT:10> <EOL> assert_equal ( list ( G . edges ( data = True ) ) , <EOL> [ ( <NUM_LIT:1> , <NUM_LIT:2> , { '<STR_LIT:data>' : <NUM_LIT:10> , '<STR_LIT>' : '<STR_LIT:bar>' , '<STR_LIT:bar>' : '<STR_LIT:foo>' } ) ] ) <EOL> G . edge [ <NUM_LIT:1> ] [ <NUM_LIT:2> ] [ <NUM_LIT:0> ] [ '<STR_LIT:data>' ] = <NUM_LIT:20> <EOL> assert_equal ( list ( G . edges ( data = True ) ) , <EOL> [ ( <NUM_LIT:1> , <NUM_LIT:2> , { '<STR_LIT:data>' : <NUM_LIT:20> , '<STR_LIT>' : '<STR_LIT:bar>' , '<STR_LIT:bar>' : '<STR_LIT:foo>' } ) ] ) <EOL> G . edge [ <NUM_LIT:1> ] [ <NUM_LIT:2> ] [ <NUM_LIT:0> ] [ '<STR_LIT>' ] = [ <NUM_LIT:20> , <NUM_LIT:200> ] <EOL> G . edge [ <NUM_LIT:1> ] [ <NUM_LIT:2> ] [ <NUM_LIT:0> ] [ '<STR_LIT>' ] = <NUM_LIT:20> <EOL> assert_equal ( list ( G . edges ( data = True ) ) , <EOL> [ ( <NUM_LIT:1> , <NUM_LIT:2> , { '<STR_LIT:data>' : <NUM_LIT:20> , '<STR_LIT>' : '<STR_LIT:bar>' , <EOL> '<STR_LIT:bar>' : '<STR_LIT:foo>' , '<STR_LIT>' : [ <NUM_LIT:20> , <NUM_LIT:200> ] , '<STR_LIT>' : <NUM_LIT:20> } ) ] ) <EOL> class TestMultiGraph ( BaseMultiGraphTester , TestGraph ) : <EOL> def setUp ( self ) : <EOL> self . Graph = nx . MultiGraph <EOL> ed1 , ed2 , ed3 = ( { <NUM_LIT:0> : { } } , { <NUM_LIT:0> : { } } , { <NUM_LIT:0> : { } } ) <EOL> self . k3adj = { <NUM_LIT:0> : { <NUM_LIT:1> : ed1 , <NUM_LIT:2> : ed2 } , <EOL> <NUM_LIT:1> : { <NUM_LIT:0> : ed1 , <NUM_LIT:2> : ed3 } , <EOL> <NUM_LIT:2> : { <NUM_LIT:0> : ed2 , <NUM_LIT:1> : ed3 } } <EOL> self . k3edges = [ ( <NUM_LIT:0> , <NUM_LIT:1> ) , ( <NUM_LIT:0> , <NUM_LIT:2> ) , ( <NUM_LIT:1> , <NUM_LIT:2> ) ] <EOL> self . k3nodes = [ <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> ] <EOL> self . K3 = self . Graph ( ) <EOL> self . K3 . adj = self . K3 . edge = self . k3adj <EOL> self . K3 . node = { } <EOL> self . K3 . node [ <NUM_LIT:0> ] = { } <EOL> self . K3 . node [ <NUM_LIT:1> ] = { } <EOL> self . K3 . node [ <NUM_LIT:2> ] = { } <EOL> def test_data_input ( self ) : <EOL> G = self . Graph ( data = { <NUM_LIT:1> : [ <NUM_LIT:2> ] , <NUM_LIT:2> : [ <NUM_LIT:1> ] } , name = "<STR_LIT:test>" ) <EOL> assert_equal ( G . name , "<STR_LIT:test>" ) <EOL> assert_equal ( sorted ( G . adj . items ( ) ) , [ ( <NUM_LIT:1> , { <NUM_LIT:2> : { <NUM_LIT:0> : { } } } ) , ( <NUM_LIT:2> , { <NUM_LIT:1> : { <NUM_LIT:0> : { } } } ) ] ) <EOL> def test_getitem ( self ) : <EOL> G = self . K3 <EOL> assert_equal ( G [ <NUM_LIT:0> ] , { <NUM_LIT:1> : { <NUM_LIT:0> : { } } , <NUM_LIT:2> : { <NUM_LIT:0> : { } } } ) <EOL> assert_raises ( KeyError , G . __getitem__ , '<STR_LIT>' ) <EOL> assert_raises ( ( TypeError , nx . NetworkXError ) , G . __getitem__ , [ '<STR_LIT:A>' ] ) <EOL> def test_remove_node ( self ) : <EOL> G = self . K3 <EOL> G . remove_node ( <NUM_LIT:0> ) <EOL> assert_equal ( G . adj , { <NUM_LIT:1> : { <NUM_LIT:2> : { <NUM_LIT:0> : { } } } , <NUM_LIT:2> : { <NUM_LIT:1> : { <NUM_LIT:0> : { } } } } ) <EOL> assert_raises ( ( KeyError , nx . NetworkXError ) , G . remove_node , - <NUM_LIT:1> ) <EOL> def test_add_edge ( self ) : <EOL> G = self . Graph ( ) <EOL> G . add_edge ( <NUM_LIT:0> , <NUM_LIT:1> ) <EOL> assert_equal ( G . adj , { <NUM_LIT:0> : { <NUM_LIT:1> : { <NUM_LIT:0> : { } } } , <NUM_LIT:1> : { <NUM_LIT:0> : { <NUM_LIT:0> : { } } } } ) <EOL> G = self . Graph ( ) <EOL> G . add_edge ( * ( <NUM_LIT:0> , <NUM_LIT:1> ) ) <EOL> assert_equal ( G . adj , { <NUM_LIT:0> : { <NUM_LIT:1> : { <NUM_LIT:0> : { } } } , <NUM_LIT:1> : { <NUM_LIT:0> : { <NUM_LIT:0> : { } } } } ) <EOL> def test_add_edge_conflicting_key ( self ) : <EOL> G = self . Graph ( ) <EOL> G . add_edge ( <NUM_LIT:0> , <NUM_LIT:1> , key = <NUM_LIT:1> ) <EOL> G . add_edge ( <NUM_LIT:0> , <NUM_LIT:1> ) <EOL> assert_equal ( G . number_of_edges ( ) , <NUM_LIT:2> ) <EOL> G = self . Graph ( ) <EOL> G . add_edges_from ( [ ( <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:1> , { } ) ] ) <EOL> G . add_edges_from ( [ ( <NUM_LIT:0> , <NUM_LIT:1> ) ] ) <EOL> assert_equal ( G . number_of_edges ( ) , <NUM_LIT:2> ) <EOL> def test_add_edges_from ( self ) : <EOL> G = self . Graph ( ) <EOL> G . add_edges_from ( [ ( <NUM_LIT:0> , <NUM_LIT:1> ) , ( <NUM_LIT:0> , <NUM_LIT:1> , { '<STR_LIT>' : <NUM_LIT:3> } ) ] ) <EOL> assert_equal ( G . adj , { <NUM_LIT:0> : { <NUM_LIT:1> : { <NUM_LIT:0> : { } , <NUM_LIT:1> : { '<STR_LIT>' : <NUM_LIT:3> } } } , <EOL> <NUM_LIT:1> : { <NUM_LIT:0> : { <NUM_LIT:0> : { } , <NUM_LIT:1> : { '<STR_LIT>' : <NUM_LIT:3> } } } } ) <EOL> G . add_edges_from ( [ ( <NUM_LIT:0> , <NUM_LIT:1> ) , ( <NUM_LIT:0> , <NUM_LIT:1> , { '<STR_LIT>' : <NUM_LIT:3> } ) ] , weight = <NUM_LIT:2> ) <EOL> assert_equal ( G . adj , { <NUM_LIT:0> : { <NUM_LIT:1> : { <NUM_LIT:0> : { } , <NUM_LIT:1> : { '<STR_LIT>' : <NUM_LIT:3> } , <EOL> <NUM_LIT:2> : { '<STR_LIT>' : <NUM_LIT:2> } , <NUM_LIT:3> : { '<STR_LIT>' : <NUM_LIT:3> } } } , <EOL> <NUM_LIT:1> : { <NUM_LIT:0> : { <NUM_LIT:0> : { } , <NUM_LIT:1> : { '<STR_LIT>' : <NUM_LIT:3> } , <EOL> <NUM_LIT:2> : { '<STR_LIT>' : <NUM_LIT:2> } , <NUM_LIT:3> : { '<STR_LIT>' : <NUM_LIT:3> } } } } ) <EOL> assert_raises ( nx . NetworkXError , G . add_edges_from , [ ( <NUM_LIT:0> , ) ] ) <EOL> assert_raises ( nx . NetworkXError , G . add_edges_from , [ ( <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:4> ) ] ) <EOL> assert_raises ( TypeError , G . add_edges_from , [ <NUM_LIT:0> ] ) <EOL> def test_remove_edge ( self ) : <EOL> G = self . K3 <EOL> G . remove_edge ( <NUM_LIT:0> , <NUM_LIT:1> ) <EOL> assert_equal ( G . adj , { <NUM_LIT:0> : { <NUM_LIT:2> : { <NUM_LIT:0> : { } } } , <EOL> <NUM_LIT:1> : { <NUM_LIT:2> : { <NUM_LIT:0> : { } } } , <EOL> <NUM_LIT:2> : { <NUM_LIT:0> : { <NUM_LIT:0> : { } } , <EOL> <NUM_LIT:1> : { <NUM_LIT:0> : { } } } } ) <EOL> assert_raises ( ( KeyError , nx . NetworkXError ) , G . remove_edge , - <NUM_LIT:1> , <NUM_LIT:0> ) <EOL> assert_raises ( ( KeyError , nx . NetworkXError ) , G . remove_edge , <NUM_LIT:0> , <NUM_LIT:2> , <EOL> key = <NUM_LIT:1> ) <EOL> def test_remove_edges_from ( self ) : <EOL> G = self . K3 . copy ( ) <EOL> G . remove_edges_from ( [ ( <NUM_LIT:0> , <NUM_LIT:1> ) ] ) <EOL> assert_equal ( G . adj , { <NUM_LIT:0> : { <NUM_LIT:2> : { <NUM_LIT:0> : { } } } , <NUM_LIT:1> : { <NUM_LIT:2> : { <NUM_LIT:0> : { } } } , <NUM_LIT:2> : { <NUM_LIT:0> : { <NUM_LIT:0> : { } } , <NUM_LIT:1> : { <NUM_LIT:0> : { } } } } ) <EOL> G . remove_edges_from ( [ ( <NUM_LIT:0> , <NUM_LIT:0> ) ] ) <EOL> self . K3 . add_edge ( <NUM_LIT:0> , <NUM_LIT:1> ) <EOL> G = self . K3 . copy ( ) <EOL> G . remove_edges_from ( list ( G . edges ( data = True , keys = True ) ) ) <EOL> assert_equal ( G . adj , { <NUM_LIT:0> : { } , <NUM_LIT:1> : { } , <NUM_LIT:2> : { } } ) <EOL> G = self . K3 . copy ( ) <EOL> G . remove_edges_from ( list ( G . edges ( data = False , keys = True ) ) ) <EOL> assert_equal ( G . adj , { <NUM_LIT:0> : { } , <NUM_LIT:1> : { } , <NUM_LIT:2> : { } } ) <EOL> G = self . K3 . copy ( ) <EOL> G . remove_edges_from ( list ( G . edges ( data = False , keys = False ) ) ) <EOL> assert_equal ( G . adj , { <NUM_LIT:0> : { } , <NUM_LIT:1> : { } , <NUM_LIT:2> : { } } ) <EOL> G = self . K3 . copy ( ) <EOL> G . remove_edges_from ( [ ( <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:0> ) , ( <NUM_LIT:0> , <NUM_LIT:2> , <NUM_LIT:0> , { } ) , ( <NUM_LIT:1> , <NUM_LIT:2> ) ] ) <EOL> assert_equal ( G . adj , { <NUM_LIT:0> : { <NUM_LIT:1> : { <NUM_LIT:1> : { } } } , <NUM_LIT:1> : { <NUM_LIT:0> : { <NUM_LIT:1> : { } } } , <NUM_LIT:2> : { } } ) <EOL> def test_remove_multiedge ( self ) : <EOL> G = self . K3 <EOL> G . add_edge ( <NUM_LIT:0> , <NUM_LIT:1> , key = '<STR_LIT>' ) <EOL> G . remove_edge ( <NUM_LIT:0> , <NUM_LIT:1> , key = '<STR_LIT>' ) <EOL> assert_equal ( G . adj , { <NUM_LIT:0> : { <NUM_LIT:1> : { <NUM_LIT:0> : { } } , <NUM_LIT:2> : { <NUM_LIT:0> : { } } } , <EOL> <NUM_LIT:1> : { <NUM_LIT:0> : { <NUM_LIT:0> : { } } , <NUM_LIT:2> : { <NUM_LIT:0> : { } } } , <EOL> <NUM_LIT:2> : { <NUM_LIT:0> : { <NUM_LIT:0> : { } } , <NUM_LIT:1> : { <NUM_LIT:0> : { } } } } ) <EOL> G . remove_edge ( <NUM_LIT:0> , <NUM_LIT:1> ) <EOL> assert_equal ( G . adj , { <NUM_LIT:0> : { <NUM_LIT:2> : { <NUM_LIT:0> : { } } } , <NUM_LIT:1> : { <NUM_LIT:2> : { <NUM_LIT:0> : { } } } , <NUM_LIT:2> : { <NUM_LIT:0> : { <NUM_LIT:0> : { } } , <NUM_LIT:1> : { <NUM_LIT:0> : { } } } } ) <EOL> assert_raises ( ( KeyError , nx . NetworkXError ) , G . remove_edge , - <NUM_LIT:1> , <NUM_LIT:0> ) <EOL> class TestEdgeSubgraph ( object ) : <EOL> """<STR_LIT>""" <EOL> def setup ( self ) : <EOL> G = nx . MultiGraph ( ) <EOL> nx . add_path ( G , range ( <NUM_LIT:5> ) ) <EOL> nx . add_path ( G , range ( <NUM_LIT:5> ) ) <EOL> for i in range ( <NUM_LIT:5> ) : <EOL> G . node [ i ] [ '<STR_LIT:name>' ] = '<STR_LIT>' . format ( i ) <EOL> G . edge [ <NUM_LIT:0> ] [ <NUM_LIT:1> ] [ <NUM_LIT:0> ] [ '<STR_LIT:name>' ] = '<STR_LIT>' <EOL> G . edge [ <NUM_LIT:0> ] [ <NUM_LIT:1> ] [ <NUM_LIT:1> ] [ '<STR_LIT:name>' ] = '<STR_LIT>' <EOL> G . edge [ <NUM_LIT:3> ] [ <NUM_LIT:4> ] [ <NUM_LIT:0> ] [ '<STR_LIT:name>' ] = '<STR_LIT>' <EOL> G . edge [ <NUM_LIT:3> ] [ <NUM_LIT:4> ] [ <NUM_LIT:1> ] [ '<STR_LIT:name>' ] = '<STR_LIT>' <EOL> G . graph [ '<STR_LIT:name>' ] = '<STR_LIT>' <EOL> self . G = G <EOL> self . H = G . edge_subgraph ( [ ( <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:0> ) , ( <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:1> ) ] ) <EOL> def test_correct_nodes ( self ) : <EOL> """<STR_LIT>""" <EOL> assert_equal ( [ <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:3> , <NUM_LIT:4> ] , sorted ( self . H . nodes ( ) ) ) <EOL> def test_correct_edges ( self ) : <EOL> """<STR_LIT>""" <EOL> assert_equal ( [ ( <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:0> , '<STR_LIT>' ) , ( <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:1> , '<STR_LIT>' ) ] , <EOL> sorted ( self . H . edges ( keys = True , data = '<STR_LIT:name>' ) ) ) <EOL> def test_add_node ( self ) : <EOL> """<STR_LIT>""" <EOL> self . G . add_node ( <NUM_LIT:5> ) <EOL> assert_equal ( [ <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:3> , <NUM_LIT:4> ] , sorted ( self . H . nodes ( ) ) ) <EOL> def test_remove_node ( self ) : <EOL> """<STR_LIT>""" <EOL> self . G . remove_node ( <NUM_LIT:0> ) <EOL> assert_equal ( [ <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:3> , <NUM_LIT:4> ] , sorted ( self . H . nodes ( ) ) ) <EOL> def test_node_attr_dict ( self ) : <EOL> """<STR_LIT>""" <EOL> for v in self . H : <EOL> assert_equal ( self . G . node [ v ] , self . H . node [ v ] ) <EOL> self . G . node [ <NUM_LIT:0> ] [ '<STR_LIT:name>' ] = '<STR_LIT:foo>' <EOL> assert_equal ( self . G . node [ <NUM_LIT:0> ] , self . H . node [ <NUM_LIT:0> ] ) <EOL> self . H . node [ <NUM_LIT:1> ] [ '<STR_LIT:name>' ] = '<STR_LIT:bar>' <EOL> assert_equal ( self . G . node [ <NUM_LIT:1> ] , self . H . node [ <NUM_LIT:1> ] ) <EOL> def test_edge_attr_dict ( self ) : <EOL> """<STR_LIT>""" <EOL> for u , v , k in self . H . edges ( keys = True ) : <EOL> assert_equal ( self . G . edge [ u ] [ v ] [ k ] , self . H . edge [ u ] [ v ] [ k ] ) <EOL> self . G . edge [ <NUM_LIT:0> ] [ <NUM_LIT:1> ] [ <NUM_LIT:0> ] [ '<STR_LIT:name>' ] = '<STR_LIT:foo>' <EOL> assert_equal ( self . G . edge [ <NUM_LIT:0> ] [ <NUM_LIT:1> ] [ <NUM_LIT:0> ] [ '<STR_LIT:name>' ] , <EOL> self . H . edge [ <NUM_LIT:0> ] [ <NUM_LIT:1> ] [ <NUM_LIT:0> ] [ '<STR_LIT:name>' ] ) <EOL> self . H . edge [ <NUM_LIT:3> ] [ <NUM_LIT:4> ] [ <NUM_LIT:1> ] [ '<STR_LIT:name>' ] = '<STR_LIT:bar>' <EOL> assert_equal ( self . G . edge [ <NUM_LIT:3> ] [ <NUM_LIT:4> ] [ <NUM_LIT:1> ] [ '<STR_LIT:name>' ] , <EOL> self . H . edge [ <NUM_LIT:3> ] [ <NUM_LIT:4> ] [ <NUM_LIT:1> ] [ '<STR_LIT:name>' ] ) <EOL> def test_graph_attr_dict ( self ) : <EOL> """<STR_LIT>""" <EOL> assert_is ( self . G . graph , self . H . graph ) </s>
