<s> from nose . tools import * <EOL> import networkx <EOL> from test_multigraph import BaseMultiGraphTester , TestMultiGraph <EOL> class BaseMultiDiGraphTester ( BaseMultiGraphTester ) : <EOL> def test_edges ( self ) : <EOL> G = self . K3 <EOL> assert_equal ( sorted ( G . edges ( ) ) , [ ( <NUM_LIT:0> , <NUM_LIT:1> ) , ( <NUM_LIT:0> , <NUM_LIT:2> ) , ( <NUM_LIT:1> , <NUM_LIT:0> ) , ( <NUM_LIT:1> , <NUM_LIT:2> ) , ( <NUM_LIT:2> , <NUM_LIT:0> ) , ( <NUM_LIT:2> , <NUM_LIT:1> ) ] ) <EOL> assert_equal ( sorted ( G . edges ( <NUM_LIT:0> ) ) , [ ( <NUM_LIT:0> , <NUM_LIT:1> ) , ( <NUM_LIT:0> , <NUM_LIT:2> ) ] ) <EOL> assert_raises ( ( KeyError , networkx . NetworkXError ) , G . edges , - <NUM_LIT:1> ) <EOL> def test_edges_data ( self ) : <EOL> G = self . K3 <EOL> assert_equal ( sorted ( G . edges ( data = True ) ) , <EOL> [ ( <NUM_LIT:0> , <NUM_LIT:1> , { } ) , ( <NUM_LIT:0> , <NUM_LIT:2> , { } ) , ( <NUM_LIT:1> , <NUM_LIT:0> , { } ) , ( <NUM_LIT:1> , <NUM_LIT:2> , { } ) , ( <NUM_LIT:2> , <NUM_LIT:0> , { } ) , ( <NUM_LIT:2> , <NUM_LIT:1> , { } ) ] ) <EOL> assert_equal ( sorted ( G . edges ( <NUM_LIT:0> , data = True ) ) , [ ( <NUM_LIT:0> , <NUM_LIT:1> , { } ) , ( <NUM_LIT:0> , <NUM_LIT:2> , { } ) ] ) <EOL> assert_raises ( ( KeyError , networkx . NetworkXError ) , G . neighbors , - <NUM_LIT:1> ) <EOL> def test_edges_iter ( self ) : <EOL> G = self . K3 <EOL> assert_equal ( sorted ( G . edges_iter ( ) ) , <EOL> [ ( <NUM_LIT:0> , <NUM_LIT:1> ) , ( <NUM_LIT:0> , <NUM_LIT:2> ) , ( <NUM_LIT:1> , <NUM_LIT:0> ) , ( <NUM_LIT:1> , <NUM_LIT:2> ) , ( <NUM_LIT:2> , <NUM_LIT:0> ) , ( <NUM_LIT:2> , <NUM_LIT:1> ) ] ) <EOL> assert_equal ( sorted ( G . edges_iter ( <NUM_LIT:0> ) ) , [ ( <NUM_LIT:0> , <NUM_LIT:1> ) , ( <NUM_LIT:0> , <NUM_LIT:2> ) ] ) <EOL> G . add_edge ( <NUM_LIT:0> , <NUM_LIT:1> ) <EOL> assert_equal ( sorted ( G . edges_iter ( ) ) , <EOL> [ ( <NUM_LIT:0> , <NUM_LIT:1> ) , ( <NUM_LIT:0> , <NUM_LIT:1> ) , ( <NUM_LIT:0> , <NUM_LIT:2> ) , ( <NUM_LIT:1> , <NUM_LIT:0> ) , ( <NUM_LIT:1> , <NUM_LIT:2> ) , ( <NUM_LIT:2> , <NUM_LIT:0> ) , ( <NUM_LIT:2> , <NUM_LIT:1> ) ] ) <EOL> def test_out_edges ( self ) : <EOL> G = self . K3 <EOL> assert_equal ( sorted ( G . out_edges ( ) ) , <EOL> [ ( <NUM_LIT:0> , <NUM_LIT:1> ) , ( <NUM_LIT:0> , <NUM_LIT:2> ) , ( <NUM_LIT:1> , <NUM_LIT:0> ) , ( <NUM_LIT:1> , <NUM_LIT:2> ) , ( <NUM_LIT:2> , <NUM_LIT:0> ) , ( <NUM_LIT:2> , <NUM_LIT:1> ) ] ) <EOL> assert_equal ( sorted ( G . out_edges ( <NUM_LIT:0> ) ) , [ ( <NUM_LIT:0> , <NUM_LIT:1> ) , ( <NUM_LIT:0> , <NUM_LIT:2> ) ] ) <EOL> assert_raises ( ( KeyError , networkx . NetworkXError ) , G . out_edges , - <NUM_LIT:1> ) <EOL> assert_equal ( sorted ( G . out_edges ( <NUM_LIT:0> , keys = True ) ) , [ ( <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:0> ) , ( <NUM_LIT:0> , <NUM_LIT:2> , <NUM_LIT:0> ) ] ) <EOL> def test_out_edges_iter ( self ) : <EOL> G = self . K3 <EOL> assert_equal ( sorted ( G . out_edges_iter ( ) ) , <EOL> [ ( <NUM_LIT:0> , <NUM_LIT:1> ) , ( <NUM_LIT:0> , <NUM_LIT:2> ) , ( <NUM_LIT:1> , <NUM_LIT:0> ) , ( <NUM_LIT:1> , <NUM_LIT:2> ) , ( <NUM_LIT:2> , <NUM_LIT:0> ) , ( <NUM_LIT:2> , <NUM_LIT:1> ) ] ) <EOL> assert_equal ( sorted ( G . out_edges_iter ( <NUM_LIT:0> ) ) , [ ( <NUM_LIT:0> , <NUM_LIT:1> ) , ( <NUM_LIT:0> , <NUM_LIT:2> ) ] ) <EOL> G . add_edge ( <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> ) <EOL> assert_equal ( sorted ( G . out_edges_iter ( ) ) , <EOL> [ ( <NUM_LIT:0> , <NUM_LIT:1> ) , ( <NUM_LIT:0> , <NUM_LIT:1> ) , ( <NUM_LIT:0> , <NUM_LIT:2> ) , ( <NUM_LIT:1> , <NUM_LIT:0> ) , ( <NUM_LIT:1> , <NUM_LIT:2> ) , ( <NUM_LIT:2> , <NUM_LIT:0> ) , ( <NUM_LIT:2> , <NUM_LIT:1> ) ] ) <EOL> def test_in_edges ( self ) : <EOL> G = self . K3 <EOL> assert_equal ( sorted ( G . in_edges ( ) ) , <EOL> [ ( <NUM_LIT:0> , <NUM_LIT:1> ) , ( <NUM_LIT:0> , <NUM_LIT:2> ) , ( <NUM_LIT:1> , <NUM_LIT:0> ) , ( <NUM_LIT:1> , <NUM_LIT:2> ) , ( <NUM_LIT:2> , <NUM_LIT:0> ) , ( <NUM_LIT:2> , <NUM_LIT:1> ) ] ) <EOL> assert_equal ( sorted ( G . in_edges ( <NUM_LIT:0> ) ) , [ ( <NUM_LIT:1> , <NUM_LIT:0> ) , ( <NUM_LIT:2> , <NUM_LIT:0> ) ] ) <EOL> assert_raises ( ( KeyError , networkx . NetworkXError ) , G . in_edges , - <NUM_LIT:1> ) <EOL> G . add_edge ( <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> ) <EOL> assert_equal ( sorted ( G . in_edges ( ) ) , <EOL> [ ( <NUM_LIT:0> , <NUM_LIT:1> ) , ( <NUM_LIT:0> , <NUM_LIT:1> ) , ( <NUM_LIT:0> , <NUM_LIT:2> ) , ( <NUM_LIT:1> , <NUM_LIT:0> ) , ( <NUM_LIT:1> , <NUM_LIT:2> ) , ( <NUM_LIT:2> , <NUM_LIT:0> ) , ( <NUM_LIT:2> , <NUM_LIT:1> ) ] ) <EOL> assert_equal ( sorted ( G . in_edges ( <NUM_LIT:0> , keys = True ) ) , [ ( <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:0> ) , ( <NUM_LIT:2> , <NUM_LIT:0> , <NUM_LIT:0> ) ] ) <EOL> def test_in_edges_iter ( self ) : <EOL> G = self . K3 <EOL> assert_equal ( sorted ( G . in_edges_iter ( ) ) , <EOL> [ ( <NUM_LIT:0> , <NUM_LIT:1> ) , ( <NUM_LIT:0> , <NUM_LIT:2> ) , ( <NUM_LIT:1> , <NUM_LIT:0> ) , ( <NUM_LIT:1> , <NUM_LIT:2> ) , ( <NUM_LIT:2> , <NUM_LIT:0> ) , ( <NUM_LIT:2> , <NUM_LIT:1> ) ] ) <EOL> assert_equal ( sorted ( G . in_edges_iter ( <NUM_LIT:0> ) ) , [ ( <NUM_LIT:1> , <NUM_LIT:0> ) , ( <NUM_LIT:2> , <NUM_LIT:0> ) ] ) <EOL> G . add_edge ( <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> ) <EOL> assert_equal ( sorted ( G . in_edges_iter ( ) ) , <EOL> [ ( <NUM_LIT:0> , <NUM_LIT:1> ) , ( <NUM_LIT:0> , <NUM_LIT:1> ) , ( <NUM_LIT:0> , <NUM_LIT:2> ) , ( <NUM_LIT:1> , <NUM_LIT:0> ) , ( <NUM_LIT:1> , <NUM_LIT:2> ) , ( <NUM_LIT:2> , <NUM_LIT:0> ) , ( <NUM_LIT:2> , <NUM_LIT:1> ) ] ) <EOL> assert_equal ( sorted ( G . in_edges_iter ( data = True , keys = False ) ) , <EOL> [ ( <NUM_LIT:0> , <NUM_LIT:1> , { } ) , ( <NUM_LIT:0> , <NUM_LIT:1> , { } ) , ( <NUM_LIT:0> , <NUM_LIT:2> , { } ) , ( <NUM_LIT:1> , <NUM_LIT:0> , { } ) , ( <NUM_LIT:1> , <NUM_LIT:2> , { } ) , <EOL> ( <NUM_LIT:2> , <NUM_LIT:0> , { } ) , ( <NUM_LIT:2> , <NUM_LIT:1> , { } ) ] ) <EOL> def is_shallow ( self , H , G ) : <EOL> assert_equal ( G . graph [ '<STR_LIT:foo>' ] , H . graph [ '<STR_LIT:foo>' ] ) <EOL> G . graph [ '<STR_LIT:foo>' ] . append ( <NUM_LIT:1> ) <EOL> assert_equal ( G . graph [ '<STR_LIT:foo>' ] , H . graph [ '<STR_LIT:foo>' ] ) <EOL> assert_equal ( G . node [ <NUM_LIT:0> ] [ '<STR_LIT:foo>' ] , H . node [ <NUM_LIT:0> ] [ '<STR_LIT:foo>' ] ) <EOL> G . node [ <NUM_LIT:0> ] [ '<STR_LIT:foo>' ] . append ( <NUM_LIT:1> ) <EOL> assert_equal ( G . node [ <NUM_LIT:0> ] [ '<STR_LIT:foo>' ] , H . node [ <NUM_LIT:0> ] [ '<STR_LIT:foo>' ] ) <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 is_deep ( self , H , G ) : <EOL> assert_equal ( G . graph [ '<STR_LIT:foo>' ] , H . graph [ '<STR_LIT:foo>' ] ) <EOL> G . graph [ '<STR_LIT:foo>' ] . append ( <NUM_LIT:1> ) <EOL> assert_not_equal ( G . graph [ '<STR_LIT:foo>' ] , H . graph [ '<STR_LIT:foo>' ] ) <EOL> assert_equal ( G . node [ <NUM_LIT:0> ] [ '<STR_LIT:foo>' ] , H . node [ <NUM_LIT:0> ] [ '<STR_LIT:foo>' ] ) <EOL> G . node [ <NUM_LIT:0> ] [ '<STR_LIT:foo>' ] . append ( <NUM_LIT:1> ) <EOL> assert_not_equal ( G . node [ <NUM_LIT:0> ] [ '<STR_LIT:foo>' ] , H . node [ <NUM_LIT:0> ] [ '<STR_LIT:foo>' ] ) <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 test_to_undirected ( self ) : <EOL> G = self . K3 <EOL> self . add_attributes ( G ) <EOL> H = networkx . MultiGraph ( G ) <EOL> self . is_shallow ( H , G ) <EOL> H = G . to_undirected ( ) <EOL> self . is_deep ( H , G ) <EOL> def test_has_successor ( self ) : <EOL> G = self . K3 <EOL> assert_equal ( G . has_successor ( <NUM_LIT:0> , <NUM_LIT:1> ) , True ) <EOL> assert_equal ( G . has_successor ( <NUM_LIT:0> , - <NUM_LIT:1> ) , False ) <EOL> def test_successors ( self ) : <EOL> G = self . K3 <EOL> assert_equal ( sorted ( G . successors ( <NUM_LIT:0> ) ) , [ <NUM_LIT:1> , <NUM_LIT:2> ] ) <EOL> assert_raises ( ( KeyError , networkx . NetworkXError ) , G . successors , - <NUM_LIT:1> ) <EOL> def test_successors_iter ( self ) : <EOL> G = self . K3 <EOL> assert_equal ( sorted ( G . successors_iter ( <NUM_LIT:0> ) ) , [ <NUM_LIT:1> , <NUM_LIT:2> ] ) <EOL> assert_raises ( ( KeyError , networkx . NetworkXError ) , G . successors_iter , - <NUM_LIT:1> ) <EOL> def test_has_predecessor ( self ) : <EOL> G = self . K3 <EOL> assert_equal ( G . has_predecessor ( <NUM_LIT:0> , <NUM_LIT:1> ) , True ) <EOL> assert_equal ( G . has_predecessor ( <NUM_LIT:0> , - <NUM_LIT:1> ) , False ) <EOL> def test_predecessors ( self ) : <EOL> G = self . K3 <EOL> assert_equal ( sorted ( G . predecessors ( <NUM_LIT:0> ) ) , [ <NUM_LIT:1> , <NUM_LIT:2> ] ) <EOL> assert_raises ( ( KeyError , networkx . NetworkXError ) , G . predecessors , - <NUM_LIT:1> ) <EOL> def test_predecessors_iter ( self ) : <EOL> G = self . K3 <EOL> assert_equal ( sorted ( G . predecessors_iter ( <NUM_LIT:0> ) ) , [ <NUM_LIT:1> , <NUM_LIT:2> ] ) <EOL> assert_raises ( ( KeyError , networkx . NetworkXError ) , G . predecessors_iter , - <NUM_LIT:1> ) <EOL> def test_degree ( self ) : <EOL> G = self . K3 <EOL> assert_equal ( list ( G . degree ( ) . values ( ) ) , [ <NUM_LIT:4> , <NUM_LIT:4> , <NUM_LIT:4> ] ) <EOL> assert_equal ( G . degree ( ) , { <NUM_LIT:0> : <NUM_LIT:4> , <NUM_LIT:1> : <NUM_LIT:4> , <NUM_LIT:2> : <NUM_LIT:4> } ) <EOL> assert_equal ( G . degree ( <NUM_LIT:0> ) , <NUM_LIT:4> ) <EOL> assert_equal ( G . degree ( [ <NUM_LIT:0> ] ) , { <NUM_LIT:0> : <NUM_LIT:4> } ) <EOL> assert_raises ( ( KeyError , networkx . NetworkXError ) , G . degree , - <NUM_LIT:1> ) <EOL> def test_degree_iter ( self ) : <EOL> G = self . K3 <EOL> assert_equal ( list ( G . degree_iter ( ) ) , [ ( <NUM_LIT:0> , <NUM_LIT:4> ) , ( <NUM_LIT:1> , <NUM_LIT:4> ) , ( <NUM_LIT:2> , <NUM_LIT:4> ) ] ) <EOL> assert_equal ( dict ( G . degree_iter ( ) ) , { <NUM_LIT:0> : <NUM_LIT:4> , <NUM_LIT:1> : <NUM_LIT:4> , <NUM_LIT:2> : <NUM_LIT:4> } ) <EOL> assert_equal ( list ( G . degree_iter ( <NUM_LIT:0> ) ) , [ ( <NUM_LIT:0> , <NUM_LIT:4> ) ] ) <EOL> G . add_edge ( <NUM_LIT:0> , <NUM_LIT:1> , weight = <NUM_LIT> , other = <NUM_LIT> ) <EOL> assert_equal ( list ( G . degree_iter ( weight = '<STR_LIT>' ) ) , [ ( <NUM_LIT:0> , <NUM_LIT> ) , ( <NUM_LIT:1> , <NUM_LIT> ) , ( <NUM_LIT:2> , <NUM_LIT:4> ) ] ) <EOL> assert_equal ( list ( G . degree_iter ( weight = '<STR_LIT>' ) ) , [ ( <NUM_LIT:0> , <NUM_LIT> ) , ( <NUM_LIT:1> , <NUM_LIT> ) , ( <NUM_LIT:2> , <NUM_LIT:4> ) ] ) <EOL> def test_in_degree ( self ) : <EOL> G = self . K3 <EOL> assert_equal ( list ( G . in_degree ( ) . values ( ) ) , [ <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> ] ) <EOL> assert_equal ( G . in_degree ( ) , { <NUM_LIT:0> : <NUM_LIT:2> , <NUM_LIT:1> : <NUM_LIT:2> , <NUM_LIT:2> : <NUM_LIT:2> } ) <EOL> assert_equal ( G . in_degree ( <NUM_LIT:0> ) , <NUM_LIT:2> ) <EOL> assert_equal ( G . in_degree ( [ <NUM_LIT:0> ] ) , { <NUM_LIT:0> : <NUM_LIT:2> } ) <EOL> assert_raises ( ( KeyError , networkx . NetworkXError ) , G . in_degree , - <NUM_LIT:1> ) <EOL> def test_in_degree_iter ( self ) : <EOL> G = self . K3 <EOL> assert_equal ( list ( G . in_degree_iter ( ) ) , [ ( <NUM_LIT:0> , <NUM_LIT:2> ) , ( <NUM_LIT:1> , <NUM_LIT:2> ) , ( <NUM_LIT:2> , <NUM_LIT:2> ) ] ) <EOL> assert_equal ( dict ( G . in_degree_iter ( ) ) , { <NUM_LIT:0> : <NUM_LIT:2> , <NUM_LIT:1> : <NUM_LIT:2> , <NUM_LIT:2> : <NUM_LIT:2> } ) <EOL> assert_equal ( list ( G . in_degree_iter ( <NUM_LIT:0> ) ) , [ ( <NUM_LIT:0> , <NUM_LIT:2> ) ] ) <EOL> assert_equal ( list ( G . in_degree_iter ( <NUM_LIT:0> , weight = '<STR_LIT>' ) ) , [ ( <NUM_LIT:0> , <NUM_LIT:2> ) ] ) <EOL> def test_out_degree ( self ) : <EOL> G = self . K3 <EOL> assert_equal ( list ( G . out_degree ( ) . values ( ) ) , [ <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> ] ) <EOL> assert_equal ( G . out_degree ( ) , { <NUM_LIT:0> : <NUM_LIT:2> , <NUM_LIT:1> : <NUM_LIT:2> , <NUM_LIT:2> : <NUM_LIT:2> } ) <EOL> assert_equal ( G . out_degree ( <NUM_LIT:0> ) , <NUM_LIT:2> ) <EOL> assert_equal ( G . out_degree ( [ <NUM_LIT:0> ] ) , { <NUM_LIT:0> : <NUM_LIT:2> } ) <EOL> assert_raises ( ( KeyError , networkx . NetworkXError ) , G . out_degree , - <NUM_LIT:1> ) <EOL> def test_out_degree_iter ( self ) : <EOL> G = self . K3 <EOL> assert_equal ( list ( G . out_degree_iter ( ) ) , [ ( <NUM_LIT:0> , <NUM_LIT:2> ) , ( <NUM_LIT:1> , <NUM_LIT:2> ) , ( <NUM_LIT:2> , <NUM_LIT:2> ) ] ) <EOL> assert_equal ( dict ( G . out_degree_iter ( ) ) , { <NUM_LIT:0> : <NUM_LIT:2> , <NUM_LIT:1> : <NUM_LIT:2> , <NUM_LIT:2> : <NUM_LIT:2> } ) <EOL> assert_equal ( list ( G . out_degree_iter ( <NUM_LIT:0> ) ) , [ ( <NUM_LIT:0> , <NUM_LIT:2> ) ] ) <EOL> assert_equal ( list ( G . out_degree_iter ( <NUM_LIT:0> , weight = '<STR_LIT>' ) ) , [ ( <NUM_LIT:0> , <NUM_LIT:2> ) ] ) <EOL> def test_size ( self ) : <EOL> G = self . K3 <EOL> assert_equal ( G . size ( ) , <NUM_LIT:6> ) <EOL> assert_equal ( G . number_of_edges ( ) , <NUM_LIT:6> ) <EOL> G . add_edge ( <NUM_LIT:0> , <NUM_LIT:1> , weight = <NUM_LIT> , other = <NUM_LIT> ) <EOL> assert_equal ( G . size ( weight = '<STR_LIT>' ) , <NUM_LIT> ) <EOL> assert_equal ( G . size ( weight = '<STR_LIT>' ) , <NUM_LIT> ) <EOL> def test_to_undirected_reciprocal ( self ) : <EOL> G = self . Graph ( ) <EOL> G . add_edge ( <NUM_LIT:1> , <NUM_LIT:2> ) <EOL> assert_true ( G . to_undirected ( ) . has_edge ( <NUM_LIT:1> , <NUM_LIT:2> ) ) <EOL> assert_false ( G . to_undirected ( reciprocal = True ) . has_edge ( <NUM_LIT:1> , <NUM_LIT:2> ) ) <EOL> G . add_edge ( <NUM_LIT:2> , <NUM_LIT:1> ) <EOL> assert_true ( G . to_undirected ( reciprocal = True ) . has_edge ( <NUM_LIT:1> , <NUM_LIT:2> ) ) <EOL> def test_reverse_copy ( self ) : <EOL> G = networkx . MultiDiGraph ( [ ( <NUM_LIT:0> , <NUM_LIT:1> ) , ( <NUM_LIT:0> , <NUM_LIT:1> ) ] ) <EOL> R = G . reverse ( ) <EOL> assert_equal ( sorted ( R . edges ( ) ) , [ ( <NUM_LIT:1> , <NUM_LIT:0> ) , ( <NUM_LIT:1> , <NUM_LIT:0> ) ] ) <EOL> R . remove_edge ( <NUM_LIT:1> , <NUM_LIT:0> ) <EOL> assert_equal ( sorted ( R . edges ( ) ) , [ ( <NUM_LIT:1> , <NUM_LIT:0> ) ] ) <EOL> assert_equal ( sorted ( G . edges ( ) ) , [ ( <NUM_LIT:0> , <NUM_LIT:1> ) , ( <NUM_LIT:0> , <NUM_LIT:1> ) ] ) <EOL> def test_reverse_nocopy ( self ) : <EOL> G = networkx . MultiDiGraph ( [ ( <NUM_LIT:0> , <NUM_LIT:1> ) , ( <NUM_LIT:0> , <NUM_LIT:1> ) ] ) <EOL> R = G . reverse ( copy = False ) <EOL> assert_equal ( sorted ( R . edges ( ) ) , [ ( <NUM_LIT:1> , <NUM_LIT:0> ) , ( <NUM_LIT:1> , <NUM_LIT:0> ) ] ) <EOL> R . remove_edge ( <NUM_LIT:1> , <NUM_LIT:0> ) <EOL> assert_equal ( sorted ( R . edges ( ) ) , [ ( <NUM_LIT:1> , <NUM_LIT:0> ) ] ) <EOL> assert_equal ( sorted ( G . edges ( ) ) , [ ( <NUM_LIT:1> , <NUM_LIT:0> ) ] ) <EOL> class TestMultiDiGraph ( BaseMultiDiGraphTester , TestMultiGraph ) : <EOL> def setUp ( self ) : <EOL> self . Graph = networkx . MultiDiGraph <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 = { <NUM_LIT:0> : { } , <NUM_LIT:1> : { } , <NUM_LIT:2> : { } } <EOL> self . K3 . succ = self . K3 . adj <EOL> self . K3 . pred = { <NUM_LIT:0> : { } , <NUM_LIT:1> : { } , <NUM_LIT:2> : { } } <EOL> for u in self . k3nodes : <EOL> for v in self . k3nodes : <EOL> if u == v : continue <EOL> d = { <NUM_LIT:0> : { } } <EOL> self . K3 . succ [ u ] [ v ] = d <EOL> self . K3 . pred [ v ] [ u ] = d <EOL> self . K3 . adj = self . K3 . succ <EOL> self . K3 . edge = self . K3 . adj <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_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> : { } } ) <EOL> assert_equal ( G . succ , { <NUM_LIT:0> : { <NUM_LIT:1> : { <NUM_LIT:0> : { } } } , <NUM_LIT:1> : { } } ) <EOL> assert_equal ( G . pred , { <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> : { } } ) <EOL> assert_equal ( G . succ , { <NUM_LIT:0> : { <NUM_LIT:1> : { <NUM_LIT:0> : { } } } , <NUM_LIT:1> : { } } ) <EOL> assert_equal ( G . pred , { <NUM_LIT:0> : { } , <NUM_LIT:1> : { <NUM_LIT:0> : { <NUM_LIT:0> : { } } } } ) <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> } } } , <NUM_LIT:1> : { } } ) <EOL> assert_equal ( G . succ , { <NUM_LIT:0> : { <NUM_LIT:1> : { <NUM_LIT:0> : { } , <NUM_LIT:1> : { '<STR_LIT>' : <NUM_LIT:3> } } } , <NUM_LIT:1> : { } } ) <EOL> assert_equal ( G . pred , { <NUM_LIT:0> : { } , <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 . succ , { <NUM_LIT:0> : { <NUM_LIT:1> : { <NUM_LIT:0> : { } , <EOL> <NUM_LIT:1> : { '<STR_LIT>' : <NUM_LIT:3> } , <EOL> <NUM_LIT:2> : { '<STR_LIT>' : <NUM_LIT:2> } , <EOL> <NUM_LIT:3> : { '<STR_LIT>' : <NUM_LIT:3> } } } , <EOL> <NUM_LIT:1> : { } } ) <EOL> assert_equal ( G . pred , { <NUM_LIT:0> : { } , <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> } , <EOL> <NUM_LIT:3> : { '<STR_LIT>' : <NUM_LIT:3> } } } } ) <EOL> assert_raises ( networkx . NetworkXError , G . add_edges_from , [ ( <NUM_LIT:0> , ) ] ) <EOL> assert_raises ( networkx . 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 . succ , { <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> assert_equal ( G . pred , { <NUM_LIT:0> : { <NUM_LIT:1> : { <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> : { } } , <NUM_LIT:1> : { <NUM_LIT:0> : { } } } } ) <EOL> assert_raises ( ( KeyError , networkx . NetworkXError ) , G . remove_edge , - <NUM_LIT:1> , <NUM_LIT:0> ) <EOL> assert_raises ( ( KeyError , networkx . NetworkXError ) , G . remove_edge , <NUM_LIT:0> , <NUM_LIT:2> , <EOL> key = <NUM_LIT:1> ) <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> assert_equal ( G . succ , { <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> assert_equal ( G . pred , { <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 . succ , { <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> assert_equal ( G . pred , { <NUM_LIT:0> : { <NUM_LIT:1> : { <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> : { } } , <NUM_LIT:1> : { <NUM_LIT:0> : { } } } } ) <EOL> assert_raises ( ( KeyError , networkx . NetworkXError ) , G . remove_edge , - <NUM_LIT:1> , <NUM_LIT:0> ) <EOL> def test_remove_edges_from ( self ) : <EOL> G = self . K3 <EOL> G . remove_edges_from ( [ ( <NUM_LIT:0> , <NUM_LIT:1> ) ] ) <EOL> assert_equal ( G . succ , { <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> assert_equal ( G . pred , { <NUM_LIT:0> : { <NUM_LIT:1> : { <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> : { } } , <NUM_LIT:1> : { <NUM_LIT:0> : { } } } } ) <EOL> G . remove_edges_from ( [ ( <NUM_LIT:0> , <NUM_LIT:0> ) ] ) </s>
