Mercurial > repos > shellac > guppy_basecaller
diff env/lib/python3.7/site-packages/networkx/testing/utils.py @ 0:26e78fe6e8c4 draft
"planemo upload commit c699937486c35866861690329de38ec1a5d9f783"
author | shellac |
---|---|
date | Sat, 02 May 2020 07:14:21 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/env/lib/python3.7/site-packages/networkx/testing/utils.py Sat May 02 07:14:21 2020 -0400 @@ -0,0 +1,60 @@ +__all__ = ['assert_nodes_equal', 'assert_edges_equal', 'assert_graphs_equal', + 'almost_equal'] + + +def almost_equal(x, y, places=7): + return round(abs(x - y), places) == 0 + + +def assert_nodes_equal(nodes1, nodes2): + # Assumes iterables of nodes, or (node,datadict) tuples + nlist1 = list(nodes1) + nlist2 = list(nodes2) + try: + d1 = dict(nlist1) + d2 = dict(nlist2) + except (ValueError, TypeError): + d1 = dict.fromkeys(nlist1) + d2 = dict.fromkeys(nlist2) + assert d1 == d2 + + +def assert_edges_equal(edges1, edges2): + # Assumes iterables with u,v nodes as + # edge tuples (u,v), or + # edge tuples with data dicts (u,v,d), or + # edge tuples with keys and data dicts (u,v,k, d) + from collections import defaultdict + d1 = defaultdict(dict) + d2 = defaultdict(dict) + c1 = 0 + for c1, e in enumerate(edges1): + u, v = e[0], e[1] + data = [e[2:]] + if v in d1[u]: + data = d1[u][v] + data + d1[u][v] = data + d1[v][u] = data + c2 = 0 + for c2, e in enumerate(edges2): + u, v = e[0], e[1] + data = [e[2:]] + if v in d2[u]: + data = d2[u][v] + data + d2[u][v] = data + d2[v][u] = data + assert c1 == c2 + # can check one direction because lengths are the same. + for n, nbrdict in d1.items(): + for nbr, datalist in nbrdict.items(): + assert n in d2 + assert nbr in d2[n] + d2datalist = d2[n][nbr] + for data in datalist: + assert datalist.count(data) == d2datalist.count(data) + + +def assert_graphs_equal(graph1, graph2): + assert graph1.adj == graph2.adj + assert graph1.nodes == graph2.nodes + assert graph1.graph == graph2.graph