summaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/networkx/linalg/tests/test_bethehessian.py
diff options
context:
space:
mode:
authorblackhao <13851610112@163.com>2025-08-22 02:51:50 -0500
committerblackhao <13851610112@163.com>2025-08-22 02:51:50 -0500
commit4aab4087dc97906d0b9890035401175cdaab32d4 (patch)
tree4e2e9d88a711ec5b1cfa02e8ac72a55183b99123 /.venv/lib/python3.12/site-packages/networkx/linalg/tests/test_bethehessian.py
parentafa8f50d1d21c721dabcb31ad244610946ab65a3 (diff)
2.0
Diffstat (limited to '.venv/lib/python3.12/site-packages/networkx/linalg/tests/test_bethehessian.py')
-rw-r--r--.venv/lib/python3.12/site-packages/networkx/linalg/tests/test_bethehessian.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/networkx/linalg/tests/test_bethehessian.py b/.venv/lib/python3.12/site-packages/networkx/linalg/tests/test_bethehessian.py
new file mode 100644
index 0000000..92b745b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/networkx/linalg/tests/test_bethehessian.py
@@ -0,0 +1,40 @@
+import pytest
+
+import networkx as nx
+
+np = pytest.importorskip("numpy")
+pytest.importorskip("scipy")
+
+
+class TestBetheHessian:
+ @classmethod
+ def setup_class(cls):
+ deg = [3, 2, 2, 1, 0]
+ cls.G = nx.havel_hakimi_graph(deg)
+ cls.P = nx.path_graph(3)
+
+ def test_bethe_hessian(self):
+ "Bethe Hessian matrix"
+ # fmt: off
+ H = np.array([[4, -2, 0],
+ [-2, 5, -2],
+ [0, -2, 4]])
+ # fmt: on
+ permutation = [2, 0, 1]
+ # Bethe Hessian gives expected form
+ np.testing.assert_equal(nx.bethe_hessian_matrix(self.P, r=2).todense(), H)
+ # nodelist is correctly implemented
+ np.testing.assert_equal(
+ nx.bethe_hessian_matrix(self.P, r=2, nodelist=permutation).todense(),
+ H[np.ix_(permutation, permutation)],
+ )
+ # Equal to Laplacian matrix when r=1
+ np.testing.assert_equal(
+ nx.bethe_hessian_matrix(self.G, r=1).todense(),
+ nx.laplacian_matrix(self.G).todense(),
+ )
+ # Correct default for the regularizer r
+ np.testing.assert_equal(
+ nx.bethe_hessian_matrix(self.G).todense(),
+ nx.bethe_hessian_matrix(self.G, r=1.25).todense(),
+ )