Ejemplo n.º 1
0
def test_bildegree():
    deg = Network.SmallDirectedTestNetwork().bildegree()
    deg_ref = np.array([0, 0, 0, 0, 0, 0], dtype=np.int16)
    assert (deg == deg_ref).all()

    net = Network.SmallTestNetwork()
    assert (net.bildegree() == net.degree()).all()
Ejemplo n.º 2
0
def test_set_adjacency(capsys):
    net = Network.SmallTestNetwork()
    net.adjacency = [[0, 1], [1, 0]]
    print(net)
    out, err = capsys.readouterr()
    out_ref = "Network: undirected, 2 nodes, 1 links, link density 1.000.\n"
    assert out == out_ref
Ejemplo n.º 3
0
def test_nsi_arenas_betweenness():
    net = Network.SmallTestNetwork()

    res = net.nsi_arenas_betweenness()
    exp = np.array([
        20.58135241, 29.21033898, 27.00747741, 19.5433536, 25.28490117,
        24.84826305
    ])
    assert np.allclose(res, exp)

    res = net.splitted_copy().nsi_arenas_betweenness()
    exp = np.array([
        20.58135241, 29.21033898, 27.00747741, 19.5433536, 25.28490117,
        24.84826305, 24.84826305
    ])
    assert np.allclose(res, exp)

    res = net.nsi_arenas_betweenness(exclude_neighbors=False)
    exp = np.array([
        44.53512333, 37.40578733, 27.00747741, 21.77360559, 31.32557606,
        24.84826305
    ])
    assert np.allclose(res, exp)

    res = net.nsi_arenas_betweenness(stopping_mode="twinness")
    exp = np.array([
        22.61533156, 41.23139296, 38.64105931, 28.61953314, 38.58242175,
        30.29941829
    ])
    assert np.allclose(res, exp)
Ejemplo n.º 4
0
def test_arenas_betweenness():
    res = Network.SmallTestNetwork().arenas_betweenness()
    exp = np.array([
        50.18181818, 50.18181818, 33.45454545, 33.45454545, 50.18181818,
        16.72727273
    ])
    assert np.allclose(res, exp)
Ejemplo n.º 5
0
def test_matching_index():
    res = Network.SmallTestNetwork().matching_index()
    exp = np.array([[1., 0.5, 0.25, 0., 0., 0.], [0.5, 1., 0.25, 0., 0.2, 0.],
                    [0.25, 0.25, 1., 0.33333333, 0.25, 0.],
                    [0., 0., 0.33333333, 1., 0.66666667, 0.5],
                    [0., 0.2, 0.25, 0.66666667, 1., 0.33333333],
                    [0., 0., 0., 0.5, 0.33333333, 1.]])
    assert np.allclose(res, exp)
Ejemplo n.º 6
0
def test_nsi_laplacian():
    nsi_lap_ref = np.array([[6.9, 0., 0., -2.1, -2.3, -2.5],
                            [0., 6.3, -1.9, -2.1, -2.3, 0.],
                            [0., -1.7, 4., 0., -2.3, 0.],
                            [-1.5, -1.7, 0., 3.2, 0., 0.],
                            [-1.5, -1.7, -1.9, 0., 5.1, 0.],
                            [-1.5, 0., 0., 0., 0., 1.5]])
    assert np.allclose(Network.SmallTestNetwork().nsi_laplacian(), nsi_lap_ref)
Ejemplo n.º 7
0
def test_set_node_weights(capsys):
    net = Network.SmallTestNetwork()
    nw_ref = [1.5, 1.7, 1.9, 2.1, 2.3, 2.5]
    assert np.allclose(net.node_weights, nw_ref)

    net.node_weights = [1, 1, 1, 1, 1, 1]
    nw_ref = [1., 1., 1., 1., 1., 1.]
    assert np.allclose(net.node_weights, nw_ref)
Ejemplo n.º 8
0
def test_nsi_local_clustering():
    net = Network.SmallTestNetwork()

    res = net.nsi_local_clustering()
    exp = np.array([0.55130385, 0.724375, 1., 0.81844073, 0.80277575, 1.])
    assert np.allclose(res, exp)

    res = net.splitted_copy().nsi_local_clustering()
    exp = np.array([0.55130385, 0.724375, 1., 0.81844073, 0.80277575, 1., 1.])
    assert np.allclose(res, exp)
Ejemplo n.º 9
0
def test_nsi_average_neighbors_degree():
    net = Network.SmallTestNetwork()

    res = net.nsi_average_neighbors_degree()
    exp = np.array([6.0417, 6.62, 7.0898, 7.0434, 7.3554, 5.65])
    assert np.allclose(res, exp)

    res = net.splitted_copy().nsi_average_neighbors_degree()
    exp = np.array([6.0417, 6.62, 7.0898, 7.0434, 7.3554, 5.65, 5.65])
    assert np.allclose(res, exp)
Ejemplo n.º 10
0
def test_nsi_average_path_length():
    net = Network.SmallTestNetwork()

    res = net.nsi_average_path_length()
    exp = 1.60027778
    assert np.allclose(res, exp)

    res = net.splitted_copy().nsi_average_path_length()
    exp = 1.60027778
    assert np.allclose(res, exp)
Ejemplo n.º 11
0
def test_interregional_betweenness():
    net = Network.SmallTestNetwork()
    res = net.interregional_betweenness(sources=[2], targets=[3, 5])
    exp = np.array([1., 1., 0., 0., 1., 0.])
    assert np.allclose(res, exp)

    res = net.interregional_betweenness(sources=range(0, 6),
                                        targets=range(0, 6))
    exp = np.array([9., 3., 0., 2., 6., 0.])
    assert np.allclose(res, exp)
Ejemplo n.º 12
0
def test_randomly_rewire(capsys):
    net = Network.SmallTestNetwork()
    net.randomly_rewire(iterations=10)
    out, err = capsys.readouterr()
    out_ref = "Randomly rewiring the network,preserving " + \
              "the degree sequence...\n"
    assert out == out_ref
    print(net)
    out, err = capsys.readouterr()
    out_ref = "Network: undirected, 6 nodes, 7 links, link density 0.467.\n"
    assert out == out_ref
Ejemplo n.º 13
0
def test_nsi_betweenness():
    net = Network.SmallTestNetwork()

    res = net.nsi_betweenness()
    exp = np.array([29.68541738, 7.7128677, 0., 3.09090906, 9.69960462, 0.])
    assert np.allclose(res, exp)

    res = net.splitted_copy().nsi_betweenness()
    exp = np.array(
        [29.68541738, 7.7128677, 0., 3.09090906, 9.69960462, 0., 0.])
    assert np.allclose(res, exp)
Ejemplo n.º 14
0
def test_nsi_local_soffer_clustering():
    net = Network.SmallTestNetwork()

    res = net.nsi_local_soffer_clustering()
    exp = np.array([0.76650246, 0.87537764, 1., 0.81844073, 0.84685032, 1.])
    assert np.allclose(res, exp)

    res = net.splitted_copy().nsi_local_soffer_clustering()
    exp = np.array(
        [0.76650246, 0.87537764, 1., 0.81844073, 0.84685032, 1., 1.])
    assert np.allclose(res, exp)
Ejemplo n.º 15
0
def test_splitted_copy(capsys):
    net = Network.SmallTestNetwork()
    net2 = net.splitted_copy(node=5, proportion=0.2)
    print(net2)
    out, err = capsys.readouterr()
    out_ref = "Network: undirected, 7 nodes, 9 links, link density 0.429.\n"
    assert out == out_ref

    nw1_ref = [1.5, 1.7, 1.9, 2.1, 2.3, 2.5]
    nw2_ref = [1.5, 1.7, 1.9, 2.1, 2.3, 2., 0.5]

    assert np.allclose(net.node_weights, nw1_ref)
    assert np.allclose(net2.node_weights, nw2_ref)
Ejemplo n.º 16
0
def test_nsi_exponential_closeness():
    net = Network.SmallTestNetwork()

    res = net.nsi_exponential_closeness()
    exp = np.array(
        [0.425, 0.390625, 0.346875, 0.36041667, 0.40416667, 0.29583333])
    assert np.allclose(res, exp)

    res = net.splitted_copy().nsi_exponential_closeness()
    exp = np.array([
        0.425, 0.390625, 0.346875, 0.36041667, 0.40416667, 0.29583333,
        0.29583333
    ])
    assert np.allclose(res, exp)
Ejemplo n.º 17
0
def test_nsi_harmonic_closeness():
    net = Network.SmallTestNetwork()

    res = net.nsi_harmonic_closeness()
    exp = np.array(
        [0.85, 0.79861111, 0.71111111, 0.72083333, 0.80833333, 0.61666667])
    assert np.allclose(res, exp)

    res = net.splitted_copy().nsi_harmonic_closeness()
    exp = np.array([
        0.85, 0.79861111, 0.71111111, 0.72083333, 0.80833333, 0.61666667,
        0.61666667
    ])
    assert np.allclose(res, exp)
Ejemplo n.º 18
0
def test_nsi_eigenvector_centrality():
    net = Network.SmallTestNetwork()

    res = net.nsi_eigenvector_centrality()
    exp = np.array(
        [0.80454492, 1., 0.80931481, 0.61787145, 0.98666885, 0.28035747])
    assert np.allclose(res, exp)

    res = net.splitted_copy().nsi_eigenvector_centrality()
    exp = np.array([
        0.80454492, 1., 0.80931481, 0.61787145, 0.98666885, 0.28035747,
        0.28035747
    ])
    assert np.allclose(res, exp)
Ejemplo n.º 19
0
def test_nsi_closeness():
    net = Network.SmallTestNetwork()

    res = net.nsi_closeness()
    exp = np.array([
        0.76923077, 0.64864865, 0.58252427, 0.64171123, 0.72289157, 0.50847458
    ])
    assert np.allclose(res, exp)

    res = net.splitted_copy().nsi_closeness()
    exp = np.array([
        0.76923077, 0.64864865, 0.58252427, 0.64171123, 0.72289157, 0.50847458,
        0.50847458
    ])
    assert np.allclose(res, exp)
Ejemplo n.º 20
0
def test_nsi_degree():
    net = Network.SmallTestNetwork()

    deg_ref = np.array([8.4, 8., 5.9, 5.3, 7.4, 4.])
    assert np.allclose(net.nsi_degree(), deg_ref)

    deg_ref = np.array([8.4, 8., 5.9, 5.3, 7.4, 4., 4.])
    assert np.allclose(net.splitted_copy().nsi_degree(), deg_ref)

    deg_ref = np.array([3.2, 3., 1.95, 1.65, 2.7, 1.])
    assert np.allclose(net.nsi_degree(typical_weight=2.0), deg_ref)

    deg_ref = np.array([3.2, 3., 1.95, 1.65, 2.7, 1., 1.])

    assert np.allclose(net.splitted_copy().nsi_degree(typical_weight=2.0),
                       deg_ref)
Ejemplo n.º 21
0
def testNSI():
    """
    Consistency of nsi measures with splitted network copies
    """
    dnw = Network.SmallDirectedTestNetwork()
    nw = Network.SmallTestNetwork()

    nsi_measures = [
        "nsi_degree", "nsi_indegree", "nsi_outdegree", "nsi_closeness",
        "nsi_harmonic_closeness", "nsi_exponential_closeness",
        "nsi_arenas_betweenness", "nsi_spreading",
        "nsi_local_cyclemotif_clustering", "nsi_local_midmotif_clustering",
        "nsi_local_inmotif_clustering", "nsi_local_outmotif_clustering",
        ("nsi_degree", {
            "key": "link_weights"
        }), ("nsi_indegree", {
            "key": "link_weights"
        }), ("nsi_outdegree", {
            "key": "link_weights"
        }), ("nsi_local_cyclemotif_clustering", {
            "key": "link_weights"
        }), ("nsi_local_midmotif_clustering", {
            "key": "link_weights"
        }), ("nsi_local_inmotif_clustering", {
            "key": "link_weights"
        }), ("nsi_local_outmotif_clustering", {
            "key": "link_weights"
        })
    ]

    nsi_undirected_measures = [
        "nsi_local_clustering", "nsi_average_neighbors_degree",
        "nsi_max_neighbors_degree", "nsi_eigenvector_centrality",
        "nsi_local_clustering", "nsi_local_soffer_clustering",
        "nsi_newman_betweenness"
    ]

    compareNSI(dnw, nsi_measures)
    compareNSI(nw, nsi_measures + nsi_undirected_measures)
Ejemplo n.º 22
0
def testPermutations():
    """
    Permutation invariance of topological information.
    """
    comparePermutations(Network.SmallTestNetwork(), 3, [
        "degree", "indegree", "outdegree", "nsi_degree",
        "nsi_average_neighbors_degree", "nsi_max_neighbors_degree",
        "undirected_adjacency", "laplacian", "nsi_laplacian",
        "local_clustering", "global_clustering", "transitivity",
        ("higher_order_transitivity", [4]), ("local_cliquishness", [4]),
        ("local_cliquishness", [5]), "nsi_twinness", "assortativity",
        "nsi_local_clustering", "nsi_global_clustering", "nsi_transitivity",
        "nsi_local_soffer_clustering", "path_lengths", "average_path_length",
        "nsi_average_path_length", "diameter", "matching_index",
        "link_betweenness", "betweenness", "eigenvector_centrality",
        "nsi_eigenvector_centrality", "pagerank", "closeness", "nsi_closeness",
        "nsi_harmonic_closeness", "nsi_exponential_closeness",
        "arenas_betweenness", "nsi_arenas_betweenness", "newman_betweenness",
        "nsi_newman_betweenness", "global_efficiency", "nsi_global_efficiency",
        "distance_based_measures", "local_vulnerability", "coreness",
        "msf_synchronizability", "spreading", "nsi_spreading"
    ])
Ejemplo n.º 23
0
def test_nsi_newman_betweenness():
    net = Network.SmallTestNetwork()

    res = net.nsi_newman_betweenness()
    exp = np.array([0.40476082, 0., 0.85212808, 3.33573728, 1.36618345, 0.])
    assert np.allclose(res, exp)

    res = net.splitted_copy().nsi_newman_betweenness()
    exp = np.array(
        [0.40476082, 0., 0.85212808, 3.33573728, 1.36618345, 0., 0.])
    assert np.allclose(res, exp)

    res = net.nsi_newman_betweenness(add_local_ends=True)
    exp = np.array(
        [131.44476082, 128., 107.64212808, 102.44573728, 124.20618345, 80.])
    assert np.allclose(res, exp)

    res = net.splitted_copy().nsi_newman_betweenness(add_local_ends=True)
    exp = np.array([
        131.44476082, 128., 107.64212808, 102.44573728, 124.20618345, 80., 80.
    ])
    assert np.allclose(res, exp)
Ejemplo n.º 24
0
def test_closeness():
    res = Network.SmallTestNetwork().closeness()
    exp = np.array(
        [0.71428571, 0.625, 0.55555556, 0.625, 0.71428571, 0.45454545])
    assert np.allclose(res, exp)
Ejemplo n.º 25
0
def test_msf_synchronizability():
    res = Network.SmallTestNetwork().msf_synchronizability()
    exp = 6.77842586
    assert np.allclose(res, exp)
Ejemplo n.º 26
0
def test_coreness():
    res = Network.SmallTestNetwork().coreness()
    exp = np.array([2, 2, 2, 2, 2, 1])
    assert (res == exp).all()
Ejemplo n.º 27
0
def test_local_vulnerability():
    res = Network.SmallTestNetwork().local_vulnerability()
    exp = np.array(
        [0.296875, 0.0625, -0.03125, -0.0078125, 0.09765625, -0.125])
    assert np.allclose(res, exp)
Ejemplo n.º 28
0
def test_nsi_global_efficiency():
    res = Network.SmallTestNetwork().nsi_global_efficiency()
    exp = 0.74152777
    assert np.allclose(res, exp)
Ejemplo n.º 29
0
def test_global_efficiency():
    res = Network.SmallTestNetwork().global_efficiency()
    exp = 0.71111111
    assert np.allclose(res, exp)
Ejemplo n.º 30
0
def test_newman_betweenness():
    res = Network.SmallTestNetwork().newman_betweenness()
    exp = np.array(
        [4.1818182, 3.41818185, 2.5090909, 3.0181818, 3.60000002, 2.])
    assert np.allclose(res, exp)