1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- import pytest
- import networkx
- import networkx as nx
- import networkx.algorithms.regular as reg
- import networkx.generators as gen
- class TestKFactor:
- def test_k_factor_trivial(self):
- g = gen.cycle_graph(4)
- f = reg.k_factor(g, 2)
- assert g.edges == f.edges
- def test_k_factor1(self):
- g = gen.grid_2d_graph(4, 4)
- g_kf = reg.k_factor(g, 2)
- for edge in g_kf.edges():
- assert g.has_edge(edge[0], edge[1])
- for _, degree in g_kf.degree():
- assert degree == 2
- def test_k_factor2(self):
- g = gen.complete_graph(6)
- g_kf = reg.k_factor(g, 3)
- for edge in g_kf.edges():
- assert g.has_edge(edge[0], edge[1])
- for _, degree in g_kf.degree():
- assert degree == 3
- def test_k_factor3(self):
- g = gen.grid_2d_graph(4, 4)
- with pytest.raises(nx.NetworkXUnfeasible):
- reg.k_factor(g, 3)
- def test_k_factor4(self):
- g = gen.lattice.hexagonal_lattice_graph(4, 4)
- # Perfect matching doesn't exist for 4,4 hexagonal lattice graph
- with pytest.raises(nx.NetworkXUnfeasible):
- reg.k_factor(g, 2)
- def test_k_factor5(self):
- g = gen.complete_graph(6)
- # small k to exercise SmallKGadget
- g_kf = reg.k_factor(g, 2)
- for edge in g_kf.edges():
- assert g.has_edge(edge[0], edge[1])
- for _, degree in g_kf.degree():
- assert degree == 2
- class TestIsRegular:
- def test_is_regular1(self):
- g = gen.cycle_graph(4)
- assert reg.is_regular(g)
- def test_is_regular2(self):
- g = gen.complete_graph(5)
- assert reg.is_regular(g)
- def test_is_regular3(self):
- g = gen.lollipop_graph(5, 5)
- assert not reg.is_regular(g)
- def test_is_regular4(self):
- g = nx.DiGraph()
- g.add_edges_from([(0, 1), (1, 2), (2, 0)])
- assert reg.is_regular(g)
- class TestIsKRegular:
- def test_is_k_regular1(self):
- g = gen.cycle_graph(4)
- assert reg.is_k_regular(g, 2)
- assert not reg.is_k_regular(g, 3)
- def test_is_k_regular2(self):
- g = gen.complete_graph(5)
- assert reg.is_k_regular(g, 4)
- assert not reg.is_k_regular(g, 3)
- assert not reg.is_k_regular(g, 6)
- def test_is_k_regular3(self):
- g = gen.lollipop_graph(5, 5)
- assert not reg.is_k_regular(g, 5)
- assert not reg.is_k_regular(g, 6)
|