Files
2026-07-13 12:36:30 +08:00

73 lines
2.4 KiB
Python

import unittest
import easygraph as eg
class TestCycleRatioCentrality(unittest.TestCase):
def setUp(self):
self.G_triangle = eg.Graph()
self.G_triangle.add_edges([(1, 2), (2, 3), (3, 1)])
self.G_star = eg.Graph()
self.G_star.add_edges([(1, 2), (1, 3), (1, 4)])
self.G_complete = eg.complete_graph(4)
self.G_disconnected = eg.Graph()
self.G_disconnected.add_edges([(1, 2), (3, 4)])
def test_triangle_graph(self):
result = eg.cycle_ratio_centrality(self.G_triangle.copy())
self.assertTrue(all(isinstance(v, float) for v in result.values()))
self.assertEqual(len(result), 3)
def test_star_graph(self):
result = eg.cycle_ratio_centrality(self.G_star.copy())
self.assertEqual(result, {})
def test_complete_graph(self):
result = eg.cycle_ratio_centrality(self.G_complete.copy())
self.assertEqual(len(result), 4)
self.assertTrue(all(v > 0 for v in result.values()))
def test_disconnected_graph(self):
result = eg.cycle_ratio_centrality(self.G_disconnected.copy())
self.assertEqual(result, {})
def test_my_all_shortest_paths_valid(self):
G = eg.Graph()
G.add_edges([(1, 2), (2, 3), (3, 4)])
paths = list(eg.my_all_shortest_paths(G, 1, 4))
self.assertIn([1, 2, 3, 4], paths)
def test_my_all_shortest_paths_invalid(self):
G = eg.Graph()
G.add_edges([(1, 2), (3, 4)])
with self.assertRaises(eg.EasyGraphNoPath):
list(eg.my_all_shortest_paths(G, 1, 4))
def test_getandJudgeSimpleCircle_true(self):
G = eg.Graph()
G.add_edges([(1, 2), (2, 3), (3, 1)])
self.assertTrue(eg.getandJudgeSimpleCircle([1, 2, 3], G))
def test_getandJudgeSimpleCircle_false(self):
G = eg.Graph()
G.add_edges([(1, 2), (2, 3)])
self.assertFalse(eg.getandJudgeSimpleCircle([1, 2, 3], G))
def test_statistics_and_calculate_indicators(self):
SmallestCyclesOfNodes = {1: set(), 2: set(), 3: set()}
CycLenDict = {3: 0}
SmallestCycles = {(1, 2, 3)}
result = eg.StatisticsAndCalculateIndicators(
SmallestCyclesOfNodes, CycLenDict, SmallestCycles
)
self.assertTrue(isinstance(result, dict))
self.assertIn(1, result)
self.assertGreater(result[1], 0)
if __name__ == "__main__":
unittest.main()