76 lines
2.3 KiB
Python
76 lines
2.3 KiB
Python
import unittest
|
|
|
|
import easygraph as eg
|
|
|
|
|
|
class TestNOBESpanners(unittest.TestCase):
|
|
def setUp(self):
|
|
self.G = eg.datasets.get_graph_karateclub()
|
|
|
|
def test_nobe_sh_basic(self):
|
|
result = eg.NOBE_SH(self.G, K=2, topk=3)
|
|
self.assertEqual(len(result), 3)
|
|
self.assertTrue(all(node in self.G.nodes for node in result))
|
|
|
|
def test_nobe_ga_sh_basic(self):
|
|
result = eg.NOBE_GA_SH(self.G, K=2, topk=3)
|
|
self.assertEqual(len(result), 3)
|
|
|
|
def test_nobe_sh_topk_equals_n(self):
|
|
result = eg.NOBE_SH(self.G, K=2, topk=self.G.number_of_nodes())
|
|
self.assertEqual(len(result), self.G.number_of_nodes())
|
|
|
|
def test_nobe_ga_sh_topk_greater_than_n(self):
|
|
result = eg.NOBE_GA_SH(self.G, K=2, topk=self.G.number_of_nodes() + 5)
|
|
self.assertEqual(len(result), self.G.number_of_nodes())
|
|
|
|
def test_nobe_sh_k_equals_1(self):
|
|
result = eg.NOBE_SH(self.G, K=1, topk=2)
|
|
self.assertEqual(len(result), 2)
|
|
|
|
def test_nobe_ga_sh_k_equals_1(self):
|
|
result = eg.NOBE_GA_SH(self.G, K=1, topk=2)
|
|
self.assertEqual(len(result), 2)
|
|
|
|
def test_nobe_sh_disconnected_graph(self):
|
|
G = eg.Graph()
|
|
G.add_edges_from([(1, 2), (3, 4)])
|
|
result = eg.NOBE_SH(G, K=2, topk=2)
|
|
self.assertEqual(len(result), 2)
|
|
|
|
def test_nobe_ga_sh_disconnected_graph(self):
|
|
G = eg.Graph()
|
|
G.add_edges_from([(1, 2), (3, 4)])
|
|
result = eg.NOBE_GA_SH(G, K=2, topk=2)
|
|
self.assertEqual(len(result), 2)
|
|
|
|
def test_nobe_sh_empty_graph(self):
|
|
G = eg.Graph()
|
|
with self.assertRaises(ValueError):
|
|
eg.NOBE_SH(G, K=2, topk=1)
|
|
|
|
def test_nobe_ga_sh_empty_graph(self):
|
|
G = eg.Graph()
|
|
with self.assertRaises(ValueError):
|
|
eg.NOBE_GA_SH(G, K=2, topk=1)
|
|
|
|
def test_nobe_sh_invalid_k(self):
|
|
with self.assertRaises(ValueError):
|
|
eg.NOBE_SH(self.G, K=0, topk=3)
|
|
|
|
def test_nobe_ga_sh_invalid_k(self):
|
|
with self.assertRaises(ValueError):
|
|
eg.NOBE_GA_SH(self.G, K=0, topk=3)
|
|
|
|
def test_nobe_sh_invalid_topk(self):
|
|
with self.assertRaises(ValueError):
|
|
eg.NOBE_SH(self.G, K=2, topk=0)
|
|
|
|
def test_nobe_ga_sh_invalid_topk(self):
|
|
with self.assertRaises(ValueError):
|
|
eg.NOBE_GA_SH(self.G, K=2, topk=0)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|