def test_regionalisation():
    g=create_TemporalGraph()
    g.add_region(func_regional_bin, "dist4")
    assert g._graph_property=={'dist4' : [0, 2, 9, 11, 15]}
    assert g._vertex_property["regions"] == {0 : ['dist4'], 
                                             2 : ['dist4'], 
                                             9 : ['dist4'], 
                                             11: ['dist4'], 
                                             15: ['dist4']}
    
    g.add_vertex_to_region(1, "dist4")
    assert 1 in g._graph_property["dist4"]
    assert "dist4" in g._vertex_property["regions"][1]

    g.remove_vertex_from_region(2, "dist4")
    assert not 2 in g._graph_property["dist4"]
    assert g._vertex_property["regions"].get(2) == None
    
    g.remove_vertex_from_region([0, 1], "dist4")
    assert not 0 in g._graph_property["dist4"]
    assert g._vertex_property["regions"].get(0) == None
    assert not 1 in g._graph_property["dist4"]
    assert g._vertex_property["regions"].get(1) == None

    assert not g.is_connected_region("dist4")
    
    g.add_vertex_to_region(3, "dist4")
    g.add_vertex_to_region([4, 5], "dist4")
    
    assert g.is_connected_region("dist4")
    assert not g.is_connected_region("dist4", "s")

    g.remove_region("dist4")
    assert g._graph_property.get("dist4") == None
    assert g._vertex_property["regions"] == {}
Exemplo n.º 2
0
def test_regionalisation():
    g = create_TemporalGraph()
    g.add_region(func_regional_bin, "dist4")
    assert g._graph_property == {'dist4': [0, 2, 9, 11, 15]}
    assert g._vertex_property["regions"] == {
        0: ['dist4'],
        2: ['dist4'],
        9: ['dist4'],
        11: ['dist4'],
        15: ['dist4']
    }

    g.add_vertex_to_region(1, "dist4")
    assert 1 in g._graph_property["dist4"]
    assert "dist4" in g._vertex_property["regions"][1]

    g.remove_vertex_from_region(2, "dist4")
    assert not 2 in g._graph_property["dist4"]
    assert g._vertex_property["regions"].get(2) == None

    g.remove_vertex_from_region([0, 1], "dist4")
    assert not 0 in g._graph_property["dist4"]
    assert g._vertex_property["regions"].get(0) == None
    assert not 1 in g._graph_property["dist4"]
    assert g._vertex_property["regions"].get(1) == None

    assert not g.is_connected_region("dist4")

    g.add_vertex_to_region(3, "dist4")
    g.add_vertex_to_region([4, 5], "dist4")

    assert g.is_connected_region("dist4")
    assert not g.is_connected_region("dist4", "s")

    g.remove_region("dist4")
    assert g._graph_property.get("dist4") == None
    assert g._vertex_property["regions"] == {}
Exemplo n.º 3
0
def test_temporalPropertyGraph():
    """create a graph"""
    g = create_TemporalGraph()

    # ~ begin tests

    # ~ Neighbors
    assert g.in_neighbors(13) == set([4, 9, 10, 11, 12])
    assert g.in_neighbors(13, 't') == set([4])
    assert g.in_neighbors(13, 's') == set([9, 10, 11, 12])
    assert g.out_neighbors(4) == set([5, 10, 11, 12, 13])
    assert g.out_neighbors(4, 't') == set([10, 11, 12, 13])
    assert g.out_neighbors(4, 's') == set([5])

    # ~ Edges
    assert g.out_edges(5) == set([4, 36, 37])
    assert g.out_edges(5, 't') == set([36, 37])
    assert g.out_edges(5, 's') == set([4])
    assert g.in_edges(5) == set([3, 5, 9])
    assert g.in_edges(5, 't') == set([9])
    assert g.in_edges(5, 's') == set([3, 5])

    # ~ Sibling
    assert g.sibling(1) == None
    assert g.sibling(16) == set([17, 18, 19])

    # ~ Neighborhood
    assert g.neighborhood(2, 2) == set([0, 1, 2, 3, 4, 5, 7, 8, 9, 10])
    assert g.neighborhood(2, 2, 't') == set([0, 2, 3, 4, 7, 8])
    assert g.neighborhood(2, 2, 's') == set([2, 3, 4, 5])

    # ~ Topologic Distance
    assert g.topological_distance(3) == {
        0: 1,
        1: 2,
        2: 1,
        3: 0,
        4: 1,
        5: 1,
        6: 2,
        7: 2,
        8: 2,
        9: 1,
        10: 2,
        11: 2,
        12: 2,
        13: 2,
        14: 2,
        15: 2,
        16: 3,
        17: 3,
        18: 3,
        19: 3
    }

    assert g.topological_distance(3, edge_type='t') == {
        0: 1,
        1: float('Inf'),
        2: 2,
        3: 0,
        4: 2,
        5: float('Inf'),
        6: float('Inf'),
        7: 3,
        8: 3,
        9: 1,
        10: 3,
        11: 3,
        12: 3,
        13: 3,
        14: float('Inf'),
        15: float('Inf'),
        16: float('Inf'),
        17: float('Inf'),
        18: float('Inf'),
        19: float('Inf')
    }

    assert g.topological_distance(3, edge_type='s') == {
        0: float('Inf'),
        1: float('Inf'),
        2: 1,
        3: 0,
        4: 1,
        5: 1,
        6: 2,
        7: float('Inf'),
        8: float('Inf'),
        9: float('Inf'),
        10: float('Inf'),
        11: float('Inf'),
        12: float('Inf'),
        13: float('Inf'),
        14: float('Inf'),
        15: float('Inf'),
        16: float('Inf'),
        17: float('Inf'),
        18: float('Inf'),
        19: float('Inf')
    }

    assert g.topological_distance(3, edge_dist=lambda x, y: 2) == {
        0: 2,
        1: 4,
        2: 2,
        3: 0,
        4: 2,
        5: 2,
        6: 4,
        7: 4,
        8: 4,
        9: 2,
        10: 4,
        11: 4,
        12: 4,
        13: 4,
        14: 4,
        15: 4,
        16: 6,
        17: 6,
        18: 6,
        19: 6
    }
def test_temporalPropertyGraph():
    """create a graph"""
    g = create_TemporalGraph()

    # ~ begin tests
    
    # ~ Neighbors
    assert g.in_neighbors(13)==set([4, 9, 10, 11, 12])
    assert g.in_neighbors(13, 't')==set([4])
    assert g.in_neighbors(13, 's')==set([9, 10, 11, 12])
    assert g.out_neighbors(4)==set([5, 10, 11, 12, 13])
    assert g.out_neighbors(4, 't')==set([10, 11, 12, 13])
    assert g.out_neighbors(4, 's')==set([5])
    
    # ~ Edges
    assert g.out_edges(5)==set([4, 36, 37])
    assert g.out_edges(5, 't')==set([36, 37])
    assert g.out_edges(5, 's')==set([4])
    assert g.in_edges(5)==set([3, 5, 9])
    assert g.in_edges(5, 't')==set([9])
    assert g.in_edges(5, 's')==set([3, 5])
    
    # ~ Sibling
    assert g.sibling(1)==None
    assert g.sibling(16)==set([17, 18, 19])
    
    # ~ Neighborhood
    assert g.neighborhood(2, 2)==set([0, 1, 2, 3, 4, 5, 7, 8, 9, 10])
    assert g.neighborhood(2, 2, 't')==set([0, 2, 3, 4, 7, 8])
    assert g.neighborhood(2, 2, 's')==set([2, 3, 4, 5])

    # ~ Topologic Distance
    assert g.topological_distance(3)=={0: 1,
                                       1: 2,
                                       2: 1,
                                       3: 0,
                                       4: 1,
                                       5: 1,
                                       6: 2,
                                       7: 2,
                                       8: 2,
                                       9: 1,
                                       10: 2,
                                       11: 2,
                                       12: 2,
                                       13: 2,
                                       14: 2,
                                       15: 2,
                                       16: 3,
                                       17: 3,
                                       18: 3,
                                       19: 3}
                          
    assert g.topological_distance(3, edge_type='t')=={0: 1,
                                                      1: float('Inf'),
                                                      2: 2,
                                                      3: 0,
                                                      4: 2,
                                                      5: float('Inf'),
                                                      6: float('Inf'),
                                                      7: 3,
                                                      8: 3,
                                                      9: 1,
                                                      10: 3,
                                                      11: 3,
                                                      12: 3,
                                                      13: 3,
                                                      14: float('Inf'),
                                                      15: float('Inf'),
                                                      16: float('Inf'),
                                                      17: float('Inf'),
                                                      18: float('Inf'),
                                                      19: float('Inf')}
    
    assert g.topological_distance(3, edge_type='s')=={0: float('Inf'),
                                                      1: float('Inf'),
                                                      2: 1,
                                                      3: 0,
                                                      4: 1,
                                                      5: 1,
                                                      6: 2,
                                                      7: float('Inf'),
                                                      8: float('Inf'),
                                                      9: float('Inf'),
                                                      10: float('Inf'),
                                                      11: float('Inf'),
                                                      12: float('Inf'),
                                                      13: float('Inf'),
                                                      14: float('Inf'),
                                                      15: float('Inf'),
                                                      16: float('Inf'),
                                                      17: float('Inf'),
                                                      18: float('Inf'),
                                                      19: float('Inf')}
    
    assert g.topological_distance(3, edge_dist=lambda x,y: 2)=={0: 2,
                                                                1: 4,
                                                                2: 2,
                                                                3: 0,
                                                                4: 2,
                                                                5: 2,
                                                                6: 4,
                                                                7: 4,
                                                                8: 4,
                                                                9: 2,
                                                                10: 4,
                                                                11: 4,
                                                                12: 4,
                                                                13: 4,
                                                                14: 4,
                                                                15: 4,
                                                                16: 6,
                                                                17: 6,
                                                                18: 6,
                                                                19: 6}