/usr/share/pyshared/igraph/test/conversion.py is in python-igraph 0.6.5-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 | import unittest
from igraph import *
class DirectedUndirectedTests(unittest.TestCase):
def testToUndirected(self):
graph = Graph([(0,1), (0,2), (1,0)], directed=True)
graph2 = graph.copy()
graph2.to_undirected(mode=False)
self.failUnless(graph2.vcount() == graph.vcount())
self.failUnless(graph2.is_directed() == False)
self.failUnless(sorted(graph2.get_edgelist()) == [(0,1), (0,1), (0,2)])
graph2 = graph.copy()
graph2.to_undirected()
self.failUnless(graph2.vcount() == graph.vcount())
self.failUnless(graph2.is_directed() == False)
self.failUnless(sorted(graph2.get_edgelist()) == [(0,1), (0,2)])
graph2 = graph.copy()
graph2.es["weight"] = [1,2,3]
graph2.to_undirected(mode="collapse", combine_edges="sum")
self.failUnless(graph2.vcount() == graph.vcount())
self.failUnless(graph2.is_directed() == False)
self.failUnless(sorted(graph2.get_edgelist()) == [(0,1), (0,2)])
self.failUnless(graph2.es["weight"] == [4,2])
graph = Graph([(0,1),(1,0),(0,1),(1,0),(2,1),(1,2)], directed=True)
graph2 = graph.copy()
graph2.es["weight"] = [1,2,3,4,5,6]
graph2.to_undirected(mode="mutual", combine_edges="sum")
self.failUnless(graph2.vcount() == graph.vcount())
self.failUnless(graph2.is_directed() == False)
self.failUnless(sorted(graph2.get_edgelist()) == [(0,1), (0,1), (1,2)])
self.failUnless(graph2.es["weight"] == [7,3,11] or graph2.es["weight"] == [3,7,11])
def testToDirected(self):
graph = Graph([(0,1), (0,2), (2,3), (2,4)], directed=False)
graph.to_directed()
self.failUnless(graph.is_directed())
self.failUnless(graph.vcount() == 5)
self.failUnless(sorted(graph.get_edgelist()) == \
[(0,1), (0,2), (1,0), (2,0), (2,3), (2,4), (3,2), (4,2)]
)
class GraphRepresentationTests(unittest.TestCase):
def testGetAdjacency(self):
# Undirected case
g = Graph.Tree(6, 3)
g.es["weight"] = range(5)
self.failUnless(g.get_adjacency() == Matrix([
[0, 1, 1, 1, 0, 0],
[1, 0, 0, 0, 1, 1],
[1, 0, 0, 0, 0, 0],
[1, 0, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 0]
]))
self.failUnless(g.get_adjacency(attribute="weight") == Matrix([
[0, 0, 1, 2, 0, 0],
[0, 0, 0, 0, 3, 4],
[1, 0, 0, 0, 0, 0],
[2, 0, 0, 0, 0, 0],
[0, 3, 0, 0, 0, 0],
[0, 4, 0, 0, 0, 0]
]))
self.failUnless(g.get_adjacency(eids=True) == Matrix([
[0, 1, 2, 3, 0, 0],
[1, 0, 0, 0, 4, 5],
[2, 0, 0, 0, 0, 0],
[3, 0, 0, 0, 0, 0],
[0, 4, 0, 0, 0, 0],
[0, 5, 0, 0, 0, 0]
])-1)
# Directed case
g = Graph.Tree(6, 3, "tree_out")
g.add_edges([(0,1), (1,0)])
self.failUnless(g.get_adjacency() == Matrix([
[0, 2, 1, 1, 0, 0],
[1, 0, 0, 0, 1, 1],
[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0]
]))
def suite():
direction_suite = unittest.makeSuite(DirectedUndirectedTests)
representation_suite = unittest.makeSuite(GraphRepresentationTests)
return unittest.TestSuite([direction_suite,
representation_suite])
def test():
runner = unittest.TextTestRunner()
runner.run(suite())
if __name__ == "__main__":
test()
|