<s> from nose . tools import * <EOL> import networkx as nx <EOL> from networkx import is_eulerian , eulerian_circuit <EOL> class TestEuler : <EOL> def test_is_eulerian ( self ) : <EOL> assert_true ( is_eulerian ( nx . complete_graph ( <NUM_LIT:5> ) ) ) <EOL> assert_true ( is_eulerian ( nx . complete_graph ( <NUM_LIT:7> ) ) ) <EOL> assert_true ( is_eulerian ( nx . hypercube_graph ( <NUM_LIT:4> ) ) ) <EOL> assert_true ( is_eulerian ( nx . hypercube_graph ( <NUM_LIT:6> ) ) ) <EOL> assert_false ( is_eulerian ( nx . complete_graph ( <NUM_LIT:4> ) ) ) <EOL> assert_false ( is_eulerian ( nx . complete_graph ( <NUM_LIT:6> ) ) ) <EOL> assert_false ( is_eulerian ( nx . hypercube_graph ( <NUM_LIT:3> ) ) ) <EOL> assert_false ( is_eulerian ( nx . hypercube_graph ( <NUM_LIT:5> ) ) ) <EOL> assert_false ( is_eulerian ( nx . petersen_graph ( ) ) ) <EOL> assert_false ( is_eulerian ( nx . path_graph ( <NUM_LIT:4> ) ) ) <EOL> def test_is_eulerian2 ( self ) : <EOL> G = nx . Graph ( ) <EOL> G . add_nodes_from ( [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> ] ) <EOL> assert_false ( is_eulerian ( G ) ) <EOL> G = nx . DiGraph ( ) <EOL> G . add_nodes_from ( [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> ] ) <EOL> assert_false ( is_eulerian ( G ) ) <EOL> G = nx . MultiDiGraph ( ) <EOL> G . add_edge ( <NUM_LIT:1> , <NUM_LIT:2> ) <EOL> G . add_edge ( <NUM_LIT:2> , <NUM_LIT:3> ) <EOL> G . add_edge ( <NUM_LIT:2> , <NUM_LIT:3> ) <EOL> G . add_edge ( <NUM_LIT:3> , <NUM_LIT:1> ) <EOL> assert_false ( is_eulerian ( G ) ) <EOL> def test_eulerian_circuit_cycle ( self ) : <EOL> G = nx . cycle_graph ( <NUM_LIT:4> ) <EOL> edges = list ( eulerian_circuit ( G , source = <NUM_LIT:0> ) ) <EOL> nodes = [ u for u , v in edges ] <EOL> assert_equal ( nodes , [ <NUM_LIT:0> , <NUM_LIT:3> , <NUM_LIT:2> , <NUM_LIT:1> ] ) <EOL> assert_equal ( edges , [ ( <NUM_LIT:0> , <NUM_LIT:3> ) , ( <NUM_LIT:3> , <NUM_LIT:2> ) , ( <NUM_LIT:2> , <NUM_LIT:1> ) , ( <NUM_LIT:1> , <NUM_LIT:0> ) ] ) <EOL> edges = list ( eulerian_circuit ( G , source = <NUM_LIT:1> ) ) <EOL> nodes = [ u for u , v in edges ] <EOL> assert_equal ( nodes , [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:0> ] ) <EOL> assert_equal ( edges , [ ( <NUM_LIT:1> , <NUM_LIT:2> ) , ( <NUM_LIT:2> , <NUM_LIT:3> ) , ( <NUM_LIT:3> , <NUM_LIT:0> ) , ( <NUM_LIT:0> , <NUM_LIT:1> ) ] ) <EOL> G = nx . complete_graph ( <NUM_LIT:3> ) <EOL> edges = list ( eulerian_circuit ( G , source = <NUM_LIT:0> ) ) <EOL> nodes = [ u for u , v in edges ] <EOL> assert_equal ( nodes , [ <NUM_LIT:0> , <NUM_LIT:2> , <NUM_LIT:1> ] ) <EOL> assert_equal ( edges , [ ( <NUM_LIT:0> , <NUM_LIT:2> ) , ( <NUM_LIT:2> , <NUM_LIT:1> ) , ( <NUM_LIT:1> , <NUM_LIT:0> ) ] ) <EOL> edges = list ( eulerian_circuit ( G , source = <NUM_LIT:1> ) ) <EOL> nodes = [ u for u , v in edges ] <EOL> assert_equal ( nodes , [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:0> ] ) <EOL> assert_equal ( edges , [ ( <NUM_LIT:1> , <NUM_LIT:2> ) , ( <NUM_LIT:2> , <NUM_LIT:0> ) , ( <NUM_LIT:0> , <NUM_LIT:1> ) ] ) <EOL> def test_eulerian_circuit_digraph ( self ) : <EOL> G = nx . DiGraph ( ) <EOL> nx . add_cycle ( G , [ <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> ] ) <EOL> edges = list ( eulerian_circuit ( G , source = <NUM_LIT:0> ) ) <EOL> nodes = [ u for u , v in edges ] <EOL> assert_equal ( nodes , [ <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> ] ) <EOL> assert_equal ( edges , [ ( <NUM_LIT:0> , <NUM_LIT:1> ) , ( <NUM_LIT:1> , <NUM_LIT:2> ) , ( <NUM_LIT:2> , <NUM_LIT:3> ) , ( <NUM_LIT:3> , <NUM_LIT:0> ) ] ) <EOL> edges = list ( eulerian_circuit ( G , source = <NUM_LIT:1> ) ) <EOL> nodes = [ u for u , v in edges ] <EOL> assert_equal ( nodes , [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:0> ] ) <EOL> assert_equal ( edges , [ ( <NUM_LIT:1> , <NUM_LIT:2> ) , ( <NUM_LIT:2> , <NUM_LIT:3> ) , ( <NUM_LIT:3> , <NUM_LIT:0> ) , ( <NUM_LIT:0> , <NUM_LIT:1> ) ] ) <EOL> def test_eulerian_circuit_multigraph ( self ) : <EOL> G = nx . MultiGraph ( ) <EOL> nx . add_cycle ( G , [ <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> ] ) <EOL> G . add_edge ( <NUM_LIT:1> , <NUM_LIT:2> ) <EOL> G . add_edge ( <NUM_LIT:1> , <NUM_LIT:2> ) <EOL> edges = list ( eulerian_circuit ( G , source = <NUM_LIT:0> ) ) <EOL> nodes = [ u for u , v in edges ] <EOL> assert_equal ( nodes , [ <NUM_LIT:0> , <NUM_LIT:3> , <NUM_LIT:2> , <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:1> ] ) <EOL> assert_equal ( edges , [ ( <NUM_LIT:0> , <NUM_LIT:3> ) , ( <NUM_LIT:3> , <NUM_LIT:2> ) , ( <NUM_LIT:2> , <NUM_LIT:1> ) , ( <NUM_LIT:1> , <NUM_LIT:2> ) , ( <NUM_LIT:2> , <NUM_LIT:1> ) , ( <NUM_LIT:1> , <NUM_LIT:0> ) ] ) <EOL> @ raises ( nx . NetworkXError ) <EOL> def test_not_eulerian ( self ) : <EOL> f = list ( eulerian_circuit ( nx . complete_graph ( <NUM_LIT:4> ) ) ) </s>
