Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
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 )