Mercurial > repos > shellac > sam_consensus_v3
comparison env/lib/python3.9/site-packages/networkx/generators/tests/test_sudoku.py @ 0:4f3585e2f14b draft default tip
"planemo upload commit 60cee0fc7c0cda8592644e1aad72851dec82c959"
author | shellac |
---|---|
date | Mon, 22 Mar 2021 18:12:50 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4f3585e2f14b |
---|---|
1 """Unit tests for the :mod:`networkx.generators.sudoku_graph` module.""" | |
2 | |
3 import pytest | |
4 import networkx as nx | |
5 | |
6 | |
7 def test_sudoku_negative(): | |
8 """Raise an error when generating a Sudoku graph of order -1.""" | |
9 pytest.raises(nx.NetworkXError, nx.sudoku_graph, n=-1) | |
10 | |
11 | |
12 @pytest.mark.parametrize("n", [0, 1, 2, 3, 4]) | |
13 def test_sudoku_generator(n): | |
14 """Generate Sudoku graphs of various sizes and verify their properties.""" | |
15 G = nx.sudoku_graph(n) | |
16 expected_nodes = n ** 4 | |
17 expected_degree = (n - 1) * (3 * n + 1) | |
18 expected_edges = expected_nodes * expected_degree // 2 | |
19 assert not G.is_directed() | |
20 assert not G.is_multigraph() | |
21 assert G.number_of_nodes() == expected_nodes | |
22 assert G.number_of_edges() == expected_edges | |
23 assert all(d == expected_degree for _, d in G.degree) | |
24 | |
25 if n == 2: | |
26 assert sorted(G.neighbors(6)) == [2, 3, 4, 5, 7, 10, 14] | |
27 elif n == 3: | |
28 assert sorted(G.neighbors(42)) == [ | |
29 6, | |
30 15, | |
31 24, | |
32 33, | |
33 34, | |
34 35, | |
35 36, | |
36 37, | |
37 38, | |
38 39, | |
39 40, | |
40 41, | |
41 43, | |
42 44, | |
43 51, | |
44 52, | |
45 53, | |
46 60, | |
47 69, | |
48 78, | |
49 ] | |
50 elif n == 4: | |
51 assert sorted(G.neighbors(0)) == [ | |
52 1, | |
53 2, | |
54 3, | |
55 4, | |
56 5, | |
57 6, | |
58 7, | |
59 8, | |
60 9, | |
61 10, | |
62 11, | |
63 12, | |
64 13, | |
65 14, | |
66 15, | |
67 16, | |
68 17, | |
69 18, | |
70 19, | |
71 32, | |
72 33, | |
73 34, | |
74 35, | |
75 48, | |
76 49, | |
77 50, | |
78 51, | |
79 64, | |
80 80, | |
81 96, | |
82 112, | |
83 128, | |
84 144, | |
85 160, | |
86 176, | |
87 192, | |
88 208, | |
89 224, | |
90 240, | |
91 ] |