comparison env/lib/python3.9/site-packages/networkx/algorithms/shortest_paths/tests/test_dense_numpy.py @ 0:4f3585e2f14b draft default tip

"planemo upload commit 60cee0fc7c0cda8592644e1aad72851dec82c959"
author shellac
date Mon, 22 Mar 2021 18:12:50 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:4f3585e2f14b
1 import pytest
2
3 numpy = pytest.importorskip("numpy")
4 npt = pytest.importorskip("numpy.testing")
5
6
7 import networkx as nx
8
9
10 class TestFloydNumpy:
11 def test_cycle_numpy(self):
12 dist = nx.floyd_warshall_numpy(nx.cycle_graph(7))
13 assert dist[0, 3] == 3
14 assert dist[0, 4] == 3
15
16 def test_weighted_numpy_three_edges(self):
17 XG3 = nx.Graph()
18 XG3.add_weighted_edges_from(
19 [[0, 1, 2], [1, 2, 12], [2, 3, 1], [3, 4, 5], [4, 5, 1], [5, 0, 10]]
20 )
21 dist = nx.floyd_warshall_numpy(XG3)
22 assert dist[0, 3] == 15
23
24 def test_weighted_numpy_two_edges(self):
25 XG4 = nx.Graph()
26 XG4.add_weighted_edges_from(
27 [
28 [0, 1, 2],
29 [1, 2, 2],
30 [2, 3, 1],
31 [3, 4, 1],
32 [4, 5, 1],
33 [5, 6, 1],
34 [6, 7, 1],
35 [7, 0, 1],
36 ]
37 )
38 dist = nx.floyd_warshall_numpy(XG4)
39 assert dist[0, 2] == 4
40
41 def test_weight_parameter_numpy(self):
42 XG4 = nx.Graph()
43 XG4.add_edges_from(
44 [
45 (0, 1, {"heavy": 2}),
46 (1, 2, {"heavy": 2}),
47 (2, 3, {"heavy": 1}),
48 (3, 4, {"heavy": 1}),
49 (4, 5, {"heavy": 1}),
50 (5, 6, {"heavy": 1}),
51 (6, 7, {"heavy": 1}),
52 (7, 0, {"heavy": 1}),
53 ]
54 )
55 dist = nx.floyd_warshall_numpy(XG4, weight="heavy")
56 assert dist[0, 2] == 4
57
58 def test_directed_cycle_numpy(self):
59 G = nx.DiGraph()
60 nx.add_cycle(G, [0, 1, 2, 3])
61 pred, dist = nx.floyd_warshall_predecessor_and_distance(G)
62 D = nx.utils.dict_to_numpy_array(dist)
63 npt.assert_equal(nx.floyd_warshall_numpy(G), D)
64
65 def test_zero_weight(self):
66 G = nx.DiGraph()
67 edges = [(1, 2, -2), (2, 3, -4), (1, 5, 1), (5, 4, 0), (4, 3, -5), (2, 5, -7)]
68 G.add_weighted_edges_from(edges)
69 dist = nx.floyd_warshall_numpy(G)
70 assert int(numpy.min(dist)) == -14
71
72 G = nx.MultiDiGraph()
73 edges.append((2, 5, -7))
74 G.add_weighted_edges_from(edges)
75 dist = nx.floyd_warshall_numpy(G)
76 assert int(numpy.min(dist)) == -14