1from toolz import curried as tlz
2
3from .lib import (
4 not_None,
5 graph_vertex_index_to_name
6)
7
8
9def edges_as_set(graph):
10 return frozenset(
11 (
12 graph_vertex_index_to_name(graph, e.source),
13 graph_vertex_index_to_name(graph, e.target)
14 ) for e in graph.es
15 )
16
17
18class CustomAssertions:
19 def assertGraphEqual(self, g1, g2):
20 self.assertSetEqual(
21 frozenset(g1.vs["name"]),
22 frozenset(g2.vs["name"])
23 )
24
25 self.assertSetEqual(
26 edges_as_set(g1),
27 edges_as_set(g2)
28 )
29
30 for name in g1.vs["name"]:
31 def get_vertex_attrs(g):
32 return tlz.valfilter(not_None, g.vs.find(name).attributes())
33
34 self.assertDictEqual(
35 get_vertex_attrs(g1),
36 get_vertex_attrs(g2),
37 )