aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_communicability.py
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_communicability.py')
-rw-r--r--.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_communicability.py80
1 files changed, 80 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_communicability.py b/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_communicability.py
new file mode 100644
index 00000000..0f447094
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_communicability.py
@@ -0,0 +1,80 @@
+from collections import defaultdict
+
+import pytest
+
+pytest.importorskip("numpy")
+pytest.importorskip("scipy")
+
+import networkx as nx
+from networkx.algorithms.communicability_alg import communicability, communicability_exp
+
+
+class TestCommunicability:
+ def test_communicability(self):
+ answer = {
+ 0: {0: 1.5430806348152435, 1: 1.1752011936438012},
+ 1: {0: 1.1752011936438012, 1: 1.5430806348152435},
+ }
+ # answer={(0, 0): 1.5430806348152435,
+ # (0, 1): 1.1752011936438012,
+ # (1, 0): 1.1752011936438012,
+ # (1, 1): 1.5430806348152435}
+
+ result = communicability(nx.path_graph(2))
+ for k1, val in result.items():
+ for k2 in val:
+ assert answer[k1][k2] == pytest.approx(result[k1][k2], abs=1e-7)
+
+ def test_communicability2(self):
+ answer_orig = {
+ ("1", "1"): 1.6445956054135658,
+ ("1", "Albert"): 0.7430186221096251,
+ ("1", "Aric"): 0.7430186221096251,
+ ("1", "Dan"): 1.6208126320442937,
+ ("1", "Franck"): 0.42639707170035257,
+ ("Albert", "1"): 0.7430186221096251,
+ ("Albert", "Albert"): 2.4368257358712189,
+ ("Albert", "Aric"): 1.4368257358712191,
+ ("Albert", "Dan"): 2.0472097037446453,
+ ("Albert", "Franck"): 1.8340111678944691,
+ ("Aric", "1"): 0.7430186221096251,
+ ("Aric", "Albert"): 1.4368257358712191,
+ ("Aric", "Aric"): 2.4368257358712193,
+ ("Aric", "Dan"): 2.0472097037446457,
+ ("Aric", "Franck"): 1.8340111678944691,
+ ("Dan", "1"): 1.6208126320442937,
+ ("Dan", "Albert"): 2.0472097037446453,
+ ("Dan", "Aric"): 2.0472097037446457,
+ ("Dan", "Dan"): 3.1306328496328168,
+ ("Dan", "Franck"): 1.4860372442192515,
+ ("Franck", "1"): 0.42639707170035257,
+ ("Franck", "Albert"): 1.8340111678944691,
+ ("Franck", "Aric"): 1.8340111678944691,
+ ("Franck", "Dan"): 1.4860372442192515,
+ ("Franck", "Franck"): 2.3876142275231915,
+ }
+
+ answer = defaultdict(dict)
+ for (k1, k2), v in answer_orig.items():
+ answer[k1][k2] = v
+
+ G1 = nx.Graph(
+ [
+ ("Franck", "Aric"),
+ ("Aric", "Dan"),
+ ("Dan", "Albert"),
+ ("Albert", "Franck"),
+ ("Dan", "1"),
+ ("Franck", "Albert"),
+ ]
+ )
+
+ result = communicability(G1)
+ for k1, val in result.items():
+ for k2 in val:
+ assert answer[k1][k2] == pytest.approx(result[k1][k2], abs=1e-7)
+
+ result = communicability_exp(G1)
+ for k1, val in result.items():
+ for k2 in val:
+ assert answer[k1][k2] == pytest.approx(result[k1][k2], abs=1e-7)