File: test_indexing.py

package info (click to toggle)
python-igraph 0.11.8%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 3,480 kB
  • sloc: ansic: 24,545; python: 21,699; sh: 107; makefile: 35; sed: 2
file content (56 lines) | stat: -rw-r--r-- 1,938 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# vim:ts=4 sw=4 sts=4:
import unittest
from igraph import Graph


class GraphAdjacencyMatrixLikeIndexingTests(unittest.TestCase):
    def testSingleEdgeRetrieval(self):
        g = Graph.Famous("krackhardt_kite")
        for v1, v2 in g.get_edgelist():
            self.assertEqual(g[v1, v2], 1)
            self.assertEqual(g[v2, v1], 1)
        for v1 in range(g.vcount()):
            for v2 in set(range(g.vcount())) - set(g.neighbors(v1)):
                self.assertEqual(g[v1, v2], 0)
                self.assertEqual(g[v2, v1], 0)

        g.add_edge(1, 1)
        self.assertEqual(g[1, 1], 1)

    def testSingleEdgeRetrievalWeights(self):
        g = Graph.Famous("krackhardt_kite")
        g.es["weight"] = list(range(g.ecount()))
        for idx, (v1, v2) in enumerate(g.get_edgelist()):
            self.assertEqual(g[v1, v2], idx)
            self.assertEqual(g[v2, v1], idx)
        for v1 in range(g.vcount()):
            for v2 in set(range(g.vcount())) - set(g.neighbors(v1)):
                self.assertEqual(g[v1, v2], 0)
                self.assertEqual(g[v2, v1], 0)

    def testSingleEdgeRetrievalAttrName(self):
        g = Graph.Famous("krackhardt_kite")
        g.es["value"] = list(range(20, g.ecount() + 20))
        for idx, (v1, v2) in enumerate(g.get_edgelist()):
            self.assertEqual(g[v1, v2, "value"], idx + 20)
            self.assertEqual(g[v2, v1, "value"], idx + 20)
        for v1 in range(g.vcount()):
            for v2 in set(range(g.vcount())) - set(g.neighbors(v1)):
                self.assertEqual(g[v1, v2, "value"], 0)
                self.assertEqual(g[v2, v1, "value"], 0)


def suite():
    adjacency_suite = unittest.defaultTestLoader.loadTestsFromTestCase(
        GraphAdjacencyMatrixLikeIndexingTests
    )
    return unittest.TestSuite([adjacency_suite])


def test():
    runner = unittest.TextTestRunner()
    runner.run(suite())


if __name__ == "__main__":
    test()