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

74 lines
2.4 KiB
Python

import unittest
import easygraph as eg
from easygraph.utils.exception import EasyGraphNotImplemented
class Test_egobetweenness(unittest.TestCase):
def setUp(self):
self.edges = [
(1, 4),
(2, 4),
("String", "Bool"),
(4, 1),
(0, 4),
(4, 256),
((None, None), (None, None)),
]
self.test_graphs = [eg.Graph(), eg.DiGraph()]
self.test_graphs.append(eg.classes.DiGraph(self.edges))
print(self.test_graphs[-1].edges)
self.graph = eg.Graph()
self.graph.add_edges_from([(0, 1), (1, 2), (2, 3)])
self.directed_graph = eg.DiGraph()
self.directed_graph.add_edges_from([(0, 1), (1, 2), (2, 0)])
self.mixed_nodes_graph = eg.Graph()
self.mixed_nodes_graph.add_edges_from([(1, "A"), ("A", (2, 3)), ((2, 3), "B")])
self.single_node_graph = eg.Graph()
self.single_node_graph.add_node(42)
self.disconnected_graph = eg.Graph()
self.disconnected_graph.add_edges_from([(0, 1), (2, 3)]) # two components
self.multigraph = eg.MultiGraph()
self.multigraph.add_edges_from([(0, 1), (0, 1)]) # parallel edges
def test_egobetweenness(self):
print(eg.functions.ego_betweenness(self.test_graphs[-1], 4))
def test_small_undirected_graph(self):
result = eg.functions.ego_betweenness(self.graph, 1)
self.assertIsInstance(result, float)
self.assertGreaterEqual(result, 0)
def test_directed_graph(self):
result = eg.functions.ego_betweenness(self.directed_graph, 0)
self.assertIsInstance(result, int)
def test_mixed_node_types(self):
result = eg.functions.ego_betweenness(self.mixed_nodes_graph, "A")
self.assertIsInstance(result, float)
def test_single_node_graph(self):
result = eg.functions.ego_betweenness(self.single_node_graph, 42)
self.assertEqual(result, 0.0)
def test_disconnected_graph_component(self):
result_0 = eg.functions.ego_betweenness(self.disconnected_graph, 0)
result_2 = eg.functions.ego_betweenness(self.disconnected_graph, 2)
self.assertIsInstance(result_0, float)
self.assertIsInstance(result_2, float)
def test_raises_on_multigraph(self):
with self.assertRaises(EasyGraphNotImplemented):
eg.functions.ego_betweenness(self.multigraph, 0)
if __name__ == "__main__":
unittest.main()