blob: c49d74d5dda17f879900f93b58ecb42b6b8f1738 [file] [log] [blame]
#!/usr/bin/env python
from nose.tools import *
from networkx import *
from networkx.generators.random_graphs import *
class TestGeneratorsRandom():
def smoke_test_random_graph(self):
seed = 42
G=gnp_random_graph(100,0.25,seed)
G=binomial_graph(100,0.25,seed)
G=erdos_renyi_graph(100,0.25,seed)
G=fast_gnp_random_graph(100,0.25,seed)
G=gnm_random_graph(100,20,seed)
G=dense_gnm_random_graph(100,20,seed)
G=watts_strogatz_graph(10,2,0.25,seed)
assert_equal(len(G), 10)
assert_equal(G.number_of_edges(), 10)
G=connected_watts_strogatz_graph(10,2,0.1,seed)
assert_equal(len(G), 10)
assert_equal(G.number_of_edges(), 10)
G=watts_strogatz_graph(10,4,0.25,seed)
assert_equal(len(G), 10)
assert_equal(G.number_of_edges(), 20)
G=newman_watts_strogatz_graph(10,2,0.0,seed)
assert_equal(len(G), 10)
assert_equal(G.number_of_edges(), 10)
G=newman_watts_strogatz_graph(10,4,0.25,seed)
assert_equal(len(G), 10)
assert_true(G.number_of_edges() >= 20)
G=barabasi_albert_graph(100,1,seed)
G=barabasi_albert_graph(100,3,seed)
assert_equal(G.number_of_edges(),(97*3))
G=powerlaw_cluster_graph(100,1,1.0,seed)
G=powerlaw_cluster_graph(100,3,0.0,seed)
assert_equal(G.number_of_edges(),(97*3))
G=random_regular_graph(10,20,seed)
assert_raises(networkx.exception.NetworkXError,
random_regular_graph, 3, 21)
constructor=[(10,20,0.8),(20,40,0.8)]
G=random_shell_graph(constructor,seed)
G=nx.random_lobster(10,0.1,0.5,seed)
def test_gnp(self):
G=gnp_random_graph(10,0.1)
assert_equal(len(G),10)
G=gnp_random_graph(10,0.1,seed=42)
assert_equal(len(G),10)
G=gnp_random_graph(10,1.1)
assert_equal(len(G),10)
assert_equal(len(G.edges()),45)
G=gnp_random_graph(10,1.1,directed=True)
assert_equal(len(G),10)
assert_equal(len(G.edges()),90)
G=gnp_random_graph(10,-1.1)
assert_equal(len(G),10)
assert_equal(len(G.edges()),0)
G=binomial_graph(10,0.1)
assert_equal(len(G),10)
G=erdos_renyi_graph(10,0.1)
assert_equal(len(G),10)
def test_fast_gnp(self):
G=fast_gnp_random_graph(10,0.1)
assert_equal(len(G),10)
G=fast_gnp_random_graph(10,0.1,seed=42)
assert_equal(len(G),10)
G=fast_gnp_random_graph(10,1.1)
assert_equal(len(G),10)
assert_equal(len(G.edges()),45)
G=fast_gnp_random_graph(10,-1.1)
assert_equal(len(G),10)
assert_equal(len(G.edges()),0)
G=fast_gnp_random_graph(10,0.1,directed=True)
assert_true(G.is_directed())
assert_equal(len(G),10)
def test_gnm(self):
G=gnm_random_graph(10,3)
assert_equal(len(G),10)
assert_equal(len(G.edges()),3)
G=gnm_random_graph(10,3,seed=42)
assert_equal(len(G),10)
assert_equal(len(G.edges()),3)
G=gnm_random_graph(10,100)
assert_equal(len(G),10)
assert_equal(len(G.edges()),45)
G=gnm_random_graph(10,100,directed=True)
assert_equal(len(G),10)
assert_equal(len(G.edges()),90)
G=gnm_random_graph(10,-1.1)
assert_equal(len(G),10)
assert_equal(len(G.edges()),0)
def test_watts_strogatz_big_k(self):
assert_raises(networkx.exception.NetworkXError,
watts_strogatz_graph, 10, 10, 0.25)
assert_raises(networkx.exception.NetworkXError,
newman_watts_strogatz_graph, 10, 10, 0.25)
# could create an infinite loop, now doesn't
# infinite loop used to occur when a node has degree n-1 and needs to rewire
watts_strogatz_graph(10, 9, 0.25, seed=0)
newman_watts_strogatz_graph(10, 9, 0.5, seed=0)