def test_biconnected_karate(): K = nx.karate_club_graph() answer = [set([0, 1, 2, 3, 7, 8, 9, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33]), set([0, 4, 5, 6, 10, 16]), set([0, 11])] bcc = list(biconnected.biconnected_components(K)) bcc.sort(key=len, reverse=True) assert_true(list(biconnected.biconnected_components(K)) == answer) assert_equal(list(biconnected.articulation_points(K)),[0])
def test_biconnected_karate(): K = nx.karate_club_graph() answer = [ set([ 0, 1, 2, 3, 7, 8, 9, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33 ]), set([0, 4, 5, 6, 10, 16]), set([0, 11]) ] bcc = list(biconnected.biconnected_components(K)) bcc.sort(key=len, reverse=True) assert_true(list(biconnected.biconnected_components(K)) == answer) assert_equal(list(biconnected.articulation_points(K)), [0])
def test_biconnected_eppstein(): # tests from http://www.ics.uci.edu/~eppstein/PADS/Biconnectivity.py G1 = nx.Graph({ 0: [1,2,5], 1: [0,5], 2: [0,3,4], 3: [2,4,5,6], 4: [2,3,5,6], 5: [0,1,3,4], 6: [3,4]}) G2 = nx.Graph({ 0: [2,5], 1: [3,8], 2: [0,3,5], 3: [1,2,6,8], 4: [7], 5: [0,2], 6: [3,8], 7: [4], 8: [1,3,6]}) assert_true(biconnected.is_biconnected(G1)) assert_false(biconnected.is_biconnected(G2)) answer_G2 = [set([1, 3, 6, 8]), set([0, 2, 5]), set([2, 3]), set([4, 7])] bcc = list(biconnected.biconnected_components(G2)) bcc.sort(key=len, reverse=True) assert_equal(bcc, answer_G2)
def test_barbell(): G=nx.barbell_graph(8,4) G.add_path([7,20,21,22]) G.add_cycle([22,23,24,25]) pts=set(biconnected.articulation_points(G)) assert_equal(pts,set([7,8,9,10,11,12,20,21,22])) answer = [set([12, 13, 14, 15, 16, 17, 18, 19]), set([0, 1, 2, 3, 4, 5, 6, 7]), set([22, 23, 24, 25]), set([11, 12]), set([10, 11]), set([9, 10]), set([8, 9]), set([7, 8]), set([21, 22]), set([20, 21]), set([7, 20])] bcc=list(biconnected.biconnected_components(G)) bcc.sort(key=len, reverse=True) assert_equal(bcc,answer) G.add_edge(2,17) pts=set(biconnected.articulation_points(G)) assert_equal(pts,set([7,20,21,22]))
def test_biconnected_eppstein(): # tests from http://www.ics.uci.edu/~eppstein/PADS/Biconnectivity.py G1 = nx.Graph({ 0: [1, 2, 5], 1: [0, 5], 2: [0, 3, 4], 3: [2, 4, 5, 6], 4: [2, 3, 5, 6], 5: [0, 1, 3, 4], 6: [3, 4] }) G2 = nx.Graph({ 0: [2, 5], 1: [3, 8], 2: [0, 3, 5], 3: [1, 2, 6, 8], 4: [7], 5: [0, 2], 6: [3, 8], 7: [4], 8: [1, 3, 6] }) assert_true(biconnected.is_biconnected(G1)) assert_false(biconnected.is_biconnected(G2)) answer_G2 = [set([1, 3, 6, 8]), set([0, 2, 5]), set([2, 3]), set([4, 7])] bcc = list(biconnected.biconnected_components(G2)) bcc.sort(key=len, reverse=True) assert_equal(bcc, answer_G2)
def test_barbell(): G = nx.barbell_graph(8, 4) G.add_path([7, 20, 21, 22]) G.add_cycle([22, 23, 24, 25]) pts = set(biconnected.articulation_points(G)) assert_equal(pts, set([7, 8, 9, 10, 11, 12, 20, 21, 22])) answer = [ set([12, 13, 14, 15, 16, 17, 18, 19]), set([0, 1, 2, 3, 4, 5, 6, 7]), set([22, 23, 24, 25]), set([11, 12]), set([10, 11]), set([9, 10]), set([8, 9]), set([7, 8]), set([21, 22]), set([20, 21]), set([7, 20]) ] bcc = list(biconnected.biconnected_components(G)) bcc.sort(key=len, reverse=True) assert_equal(bcc, answer) G.add_edge(2, 17) pts = set(biconnected.articulation_points(G)) assert_equal(pts, set([7, 20, 21, 22]))
def test_biconnected_components_cycle(): G=nx.cycle_graph(3) G.add_cycle([1,3,4]) pts = set(map(frozenset,biconnected.biconnected_components(G))) assert_equal(pts,set([frozenset([0,1,2]),frozenset([1,3,4])]))
def test_biconnected_davis(): D = nx.davis_southern_women_graph() bcc = list(biconnected.biconnected_components(D))[0] assert_true(set(D) == bcc) # All nodes in a giant bicomponent # So no articulation points assert_equal(list(biconnected.articulation_points(D)),[])
def test_biconnected_components_cycle(): G = nx.cycle_graph(3) G.add_cycle([1, 3, 4]) pts = set(map(frozenset, biconnected.biconnected_components(G))) assert_equal(pts, set([frozenset([0, 1, 2]), frozenset([1, 3, 4])]))
def test_biconnected_davis(): D = nx.davis_southern_women_graph() bcc = list(biconnected.biconnected_components(D))[0] assert_true(set(D) == bcc) # All nodes in a giant bicomponent # So no articulation points assert_equal(list(biconnected.articulation_points(D)), [])