def test_generate_random_graph_erdos_renyi(self): # Given num_nodes = 3 target_graph = nx.Graph() target_graph.add_edges_from([(0, 1), (1, 2), (0, 2)]) # When graph = generate_random_graph_erdos_renyi(num_nodes, 1) # Then assert compare_graphs(graph, target_graph) # Given num_nodes = 3 target_graph = nx.Graph() # When graph = generate_random_graph_erdos_renyi(num_nodes, 1) # Then assert compare_graphs(graph, target_graph) # Given num_nodes = 20 weight_sampler = uniform_sampler() # When graph = generate_random_graph_erdos_renyi(num_nodes, 0.8, weight_sampler)
def test_generate_random_regular_graph(self): # Given num_nodes = 4 degree = 2 # When graph = generate_random_regular_graph(num_nodes, degree) # Then for n in graph.nodes(): node_in_edge = [n in e for e in graph.edges()] assert sum(node_in_edge) == degree # Given num_nodes = 20 degree = 3 weight_sampler = uniform_sampler() # When graph = generate_random_regular_graph(num_nodes, degree, weight_sampler) # Then for edge in graph.edges: assert "weight" in graph.edges[edge].keys() assert len(graph.nodes) == num_nodes
def test_generate_barbell_graph(self): n_vertices = 4 graph = generate_barbell_graph(n_vertices, uniform_sampler()) for edge in graph.edges: assert "weight" in graph.edges[edge].keys() assert len(graph.nodes) == n_vertices * 2
def test_seed(self): # Given num_nodes = 4 degree = 2 seed = 123 weight_sampler = uniform_sampler() target_graph = generate_random_regular_graph( num_nodes, degree, weight_sampler=weight_sampler, seed=seed) # When graph = generate_random_regular_graph(num_nodes, degree, weight_sampler=uniform_sampler(), seed=seed) # Then assert compare_graphs(graph, target_graph)
def test_generate_ladder_graph(self): # Given length_of_ladder = 4 weight_sampler = uniform_sampler() # When graph = generate_ladder_graph(length_of_ladder, weight_sampler) # Then for edge in graph.edges: assert "weight" in graph.edges[edge].keys() assert len(graph.nodes) == length_of_ladder * 2
def test_generate_caveman_graph(self): # Given number_of_cliques = 3 size_of_cliques = 4 weight_sampler = uniform_sampler() # When graph = generate_caveman_graph(number_of_cliques, size_of_cliques, weight_sampler) # Then for edge in graph.edges: assert "weight" in graph.edges[edge].keys() assert len(graph.nodes) == number_of_cliques * 4
"num_nodes": 10, "random_weights": True } # When graph = generate_graph_from_specs(specs) # Then for edge in graph.edges: assert "weight" in graph.edges[edge].keys() @pytest.mark.parametrize( "sampler", [ uniform_sampler(), uniform_sampler(2, 3), constant_sampler(-1), normal_sampler(2, 1), choice_sampler([2, 1, 6]), ], ) class TestSamplers: def test_generates_numbers(self, sampler): assert isinstance(next(sampler), numbers.Number) def test_can_be_reused(self, sampler): next(sampler) next(sampler) def test_generates_same_number_when_seeded(self, sampler):