aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/networkx/utils/tests/test_rcm.py
diff options
context:
space:
mode:
authorS. Solomon Darnell2025-03-28 21:52:21 -0500
committerS. Solomon Darnell2025-03-28 21:52:21 -0500
commit4a52a71956a8d46fcb7294ac71734504bb09bcc2 (patch)
treeee3dc5af3b6313e921cd920906356f5d4febc4ed /.venv/lib/python3.12/site-packages/networkx/utils/tests/test_rcm.py
parentcc961e04ba734dd72309fb548a2f97d67d578813 (diff)
downloadgn-ai-master.tar.gz
two version of R2R are hereHEADmaster
Diffstat (limited to '.venv/lib/python3.12/site-packages/networkx/utils/tests/test_rcm.py')
-rw-r--r--.venv/lib/python3.12/site-packages/networkx/utils/tests/test_rcm.py63
1 files changed, 63 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/networkx/utils/tests/test_rcm.py b/.venv/lib/python3.12/site-packages/networkx/utils/tests/test_rcm.py
new file mode 100644
index 00000000..88702b36
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/networkx/utils/tests/test_rcm.py
@@ -0,0 +1,63 @@
+import networkx as nx
+from networkx.utils import reverse_cuthill_mckee_ordering
+
+
+def test_reverse_cuthill_mckee():
+ # example graph from
+ # http://www.boost.org/doc/libs/1_37_0/libs/graph/example/cuthill_mckee_ordering.cpp
+ G = nx.Graph(
+ [
+ (0, 3),
+ (0, 5),
+ (1, 2),
+ (1, 4),
+ (1, 6),
+ (1, 9),
+ (2, 3),
+ (2, 4),
+ (3, 5),
+ (3, 8),
+ (4, 6),
+ (5, 6),
+ (5, 7),
+ (6, 7),
+ ]
+ )
+ rcm = list(reverse_cuthill_mckee_ordering(G))
+ assert rcm in [[0, 8, 5, 7, 3, 6, 2, 4, 1, 9], [0, 8, 5, 7, 3, 6, 4, 2, 1, 9]]
+
+
+def test_rcm_alternate_heuristic():
+ # example from
+ G = nx.Graph(
+ [
+ (0, 0),
+ (0, 4),
+ (1, 1),
+ (1, 2),
+ (1, 5),
+ (1, 7),
+ (2, 2),
+ (2, 4),
+ (3, 3),
+ (3, 6),
+ (4, 4),
+ (5, 5),
+ (5, 7),
+ (6, 6),
+ (7, 7),
+ ]
+ )
+
+ answers = [
+ [6, 3, 5, 7, 1, 2, 4, 0],
+ [6, 3, 7, 5, 1, 2, 4, 0],
+ [7, 5, 1, 2, 4, 0, 6, 3],
+ ]
+
+ def smallest_degree(G):
+ deg, node = min((d, n) for n, d in G.degree())
+ return node
+
+ rcm = list(reverse_cuthill_mckee_ordering(G, heuristic=smallest_degree))
+ assert rcm in answers