def testIntOverflow(): """ Avoid integer overflow in scipy.sparse representation. """ for n in [10, 200, 2000, 33000]: adj = sp.lil_matrix((n, n), dtype=np.int8) adj[0, 1:] = 1 deg = Network(adjacency=adj).degree() assert (deg.min(), deg.max()) == (0, n - 1)
def test_path_lengths(): res = Network.SmallTestNetwork().path_lengths() exp = np.array([[0., 2., 2., 1., 1., 1.], [2., 0., 1., 1., 1., 3.], [2., 1., 0., 2., 1., 3.], [1., 1., 2., 0., 2., 2.], [1., 1., 1., 2., 0., 2.], [1., 3., 3., 2., 2., 0.]]) assert np.allclose(res, exp)
def test_assortativity(): res = Network.SmallTestNetwork().assortativity() exp = -0.47368421 assert np.allclose(res, exp)
def test_local_outmotif_clustering(): res = Network.SmallDirectedTestNetwork().local_outmotif_clustering() exp = np.array([0.5, 0.5, 0., 0., 0., 0.]) assert np.allclose(res, exp)
def test_local_clustering(): res = Network.SmallTestNetwork().local_clustering() exp = np.array([0., 0.33333333, 1., 0., 0.33333333, 0.]) assert np.allclose(res, exp)
def test_max_neighbors_degree(): res = Network.SmallTestNetwork().max_neighbors_degree() exp = np.array([3, 3, 3, 3, 3, 3]) assert (res == exp).all()
def test_nsi_degree_cumulative_histogram(): res = Network.SmallTestNetwork().nsi_degree_cumulative_histogram() exp = (np.array([1., 0.66666667, 0.5]), np.array([4., 5.46666667, 6.93333333])) assert np.allclose(res, exp)
def test_outdegree_cdf(): cdf_ref = np.array([1., 0.83333333, 0.83333333, 0.5]) assert np.allclose(Network.SmallTestNetwork().outdegree_cdf(), cdf_ref)
def test_BarabasiAlbert_igraph(): net = Network.Model("BarabasiAlbert_igraph", n_nodes=100, n_links_each=1) assert np.allclose(net.link_density, 0.02)
def test_adjacency(): adj_ref = np.array([[0, 0, 0, 1, 1, 1], [0, 0, 1, 1, 1, 0], [0, 1, 0, 0, 1, 0], [1, 1, 0, 0, 0, 0], [1, 1, 1, 0, 0, 0], [1, 0, 0, 0, 0, 0]]) assert np.array_equal(Network.SmallTestNetwork().adjacency, adj_ref)
def test_len(): assert np.allclose(len(Network.SmallTestNetwork()), 6)
def test_str(capsys): print(Network.SmallTestNetwork()) out, err = capsys.readouterr() out_ref = "Network: undirected, 6 nodes, 7 links, link density 0.467.\n" assert out == out_ref
def test_init(): Network( adjacency=[[0, 1, 0, 0, 0, 0], [1, 0, 1, 0, 0, 1], [0, 1, 0, 1, 1, 0], [0, 0, 1, 0, 1, 0], [0, 0, 1, 1, 0, 1], [0, 1, 0, 0, 1, 0]]) assert True
import numpy from pyunicorn import Network, mpi offset = 10 n_max = 1000 s = 0 n = mpi.rank + offset while n <= n_max + offset: s += Network.BarabasiAlbert(n_nodes=n).global_clustering() n += mpi.size numpy.save("s" + str(mpi.rank), s)
def test_msf_synchronizability(): res = Network.SmallTestNetwork().msf_synchronizability() exp = 6.77842586 assert np.allclose(res, exp)
def test_outdegree_distribution(): dist = Network.SmallTestNetwork().outdegree_distribution() dist_ref = np.array([0.16666667, 0., 0.33333333, 0.5]) assert np.allclose(dist, dist_ref)
def test_ConfigurationModel(): net = Network.Model("Configuration", degrees=[3 for _ in range(0, 1000)]) assert int(round(net.degree().mean())) == 3
def test_nsi_degree_histogram(): hist = Network.SmallTestNetwork().nsi_degree_histogram() hist_ref = (np.array([0.33333333, 0.16666667, 0.5]), np.array([0.11785113, 0.16666667, 0.09622504]), np.array([4., 5.46666667, 6.93333333])) assert np.allclose(hist, hist_ref)
def test_WattsStrogatz(): net = Network.Model("WattsStrogatz", N=100, k=2, p=0.1) assert int(round(net.degree().mean())) == 4
def test_average_neighbors_degree(): res = Network.SmallTestNetwork().average_neighbors_degree() exp = np.array([2., 2.33333333, 3., 3., 2.66666667, 3.]) assert np.allclose(res, exp)
def test_edge_list(): edges = Network.SmallTestNetwork().edge_list()[:8] edges_ref = [[0, 3], [0, 4], [0, 5], [1, 2], [1, 3], [1, 4], [2, 1], [2, 4]] assert np.array_equal(edges, edges_ref)
def test_nsi_max_neighbors_degree(): res = Network.SmallTestNetwork().nsi_max_neighbors_degree() exp = np.array([8.4, 8., 8., 8.4, 8.4, 8.4]) assert np.allclose(res, exp)
def test_undirected_adjacency(): net = Network(adjacency=[[0, 1], [0, 0]], directed=True) adj_ref = [[0, 1], [1, 0]] assert np.array_equal(net.undirected_adjacency().A, adj_ref)
def test_global_clustering(): res = Network.SmallTestNetwork().global_clustering() exp = 0.27777777 assert np.allclose(res, exp)
def test_laplacian(): lap_ref = np.array([[3, 0, 0, -1, -1, -1], [0, 3, -1, -1, -1, 0], [0, -1, 2, 0, -1, 0], [-1, -1, 0, 2, 0, 0], [-1, -1, -1, 0, 3, 0], [-1, 0, 0, 0, 0, 1]]) assert np.allclose(Network.SmallTestNetwork().laplacian(), lap_ref)
def test_transitivity(): res = Network.SmallTestNetwork().transitivity() exp = 0.27272727 assert np.allclose(res, exp)
def test_degree(): deg = Network.SmallTestNetwork().degree() deg_ref = np.array([3, 3, 2, 2, 3, 1]) assert (deg == deg_ref).all()
def test_nsi_global_clustering(): res = Network.SmallTestNetwork().nsi_global_clustering() exp = 0.83529192 assert np.allclose(res, exp)
def test_indegree(): deg = Network.SmallDirectedTestNetwork().indegree() deg_ref = np.array([2, 2, 2, 1, 1, 0]) assert (deg == deg_ref).all()
def test_outdegree(): deg = Network.SmallDirectedTestNetwork().outdegree() deg_ref = np.array([2, 2, 0, 1, 2, 1]) assert (deg == deg_ref).all()
def test_coreness(): res = Network.SmallTestNetwork().coreness() exp = np.array([2, 2, 2, 2, 2, 1]) assert (res == exp).all()