41 lines
1.4 KiB
Python
41 lines
1.4 KiB
Python
import unittest
|
|
|
|
import easygraph as eg
|
|
import numpy as np
|
|
|
|
|
|
class TestHypergraphSCentrality(unittest.TestCase):
|
|
def setUp(self):
|
|
# Simple test hypergraph
|
|
self.hg = eg.Hypergraph(num_v=5, e_list=[(0, 1), (1, 2, 3), (3, 4)])
|
|
self.empty_hg = eg.Hypergraph(num_v=1, e_list=[])
|
|
self.singleton_hg = eg.Hypergraph(num_v=3, e_list=[(0,), (1,), (2,)])
|
|
|
|
def test_s_betweenness_normal(self):
|
|
result = eg.s_betweenness(self.hg)
|
|
self.assertIsInstance(result, (list, dict))
|
|
self.assertTrue(all(isinstance(x, (int, float)) for x in result))
|
|
|
|
def test_s_closeness_normal(self):
|
|
result = eg.s_closeness(self.hg)
|
|
self.assertIsInstance(result, (list, dict))
|
|
self.assertTrue(all(isinstance(x, (int, float)) for x in result))
|
|
|
|
def test_s_eccentricity_all(self):
|
|
result = eg.s_eccentricity(self.hg)
|
|
self.assertIsInstance(result, dict)
|
|
for v in result.values():
|
|
self.assertIsInstance(v, (int, float, np.integer, np.floating))
|
|
|
|
def test_s_eccentricity_edges_false(self):
|
|
result = eg.s_eccentricity(self.hg, edges=False)
|
|
self.assertIsInstance(result, dict)
|
|
|
|
def test_s_eccentricity_invalid_source(self):
|
|
with self.assertRaises(KeyError):
|
|
eg.s_eccentricity(self.hg, source=(999, 888))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|