Subject: python-networkx test failing

From: Denis 'GNUtoo' Carikli <[email-masked]>
Date: Fri, 6 Aug 2021 18:09:42 +0200

Hi, 

when trying to install fdroidserver, I have the following build failure
in the tests with python-networkx:
> building
> /gnu/store/64a09gnkl01k6vcwrn1cvv1v8nm88xhb-python-networkx-2.5.1.drv...
> 100% 'check'
> [###########################################################]builder
> for
> `/gnu/store/64a09gnkl01k6vcwrn1cvv1v8nm88xhb-python-networkx-2.5.1.drv'
> failed with exit code 1 build of
> /gnu/store/64a09gnkl01k6vcwrn1cvv1v8nm88xhb-python-networkx-2.5.1.drv
> failed View build log at
> '/var/log/guix/drvs/64/a09gnkl01k6vcwrn1cvv1v8nm88xhb-python-networkx-2.5.1.drv.bz2'.
[...]
> networkx/utils/tests/test_random_sequence.py::test_random_weighted_choice PASSED [ 99%]
> networkx/utils/tests/test_rcm.py::test_reverse_cuthill_mckee PASSED      [ 99%]
> networkx/utils/tests/test_rcm.py::test_rcm_alternate_heuristic PASSED    [ 99%]
> networkx/utils/tests/test_unionfind.py::test_unionfind PASSED            [ 99%]
> networkx/utils/tests/test_unionfind.py::test_subtree_union PASSED        [ 99%]
> networkx/utils/tests/test_unionfind.py::test_unionfind_weights PASSED    [ 99%]
> networkx/utils/tests/test_unionfind.py::test_empty_union PASSED          [100%]
> 
> =================================== FAILURES ===================================
> ____________________ TestWeightedPath.test_weight_functions ____________________
> 
> self = <networkx.algorithms.shortest_paths.tests.test_weighted.TestWeightedPath object at 0xb4a304c0>
> 
>     def test_weight_functions(self):
>         def heuristic(*z):
>             return hash(z)
>     
>         def getpath(pred, v, s):
>             return [v] if v == s else getpath(pred, pred[v], s) + [v]
>     
>         def goldberg_radzik(g, s, t, weight="weight"):
>             pred, dist = nx.goldberg_radzik(g, s, weight=weight)
>             dist = dist[t]
>             return dist, getpath(pred, t, s)
>     
>         def astar(g, s, t, weight="weight"):
>             path = nx.astar_path(g, s, t, heuristic, weight=weight)
>             dist = nx.astar_path_length(g, s, t, heuristic, weight=weight)
>             return dist, path
>     
>         def vlp(G, s, t, l, F, w):
>             res = F(G, s, t, weight=w)
>             validate_length_path(G, s, t, l, *res, weight=w)
>     
>         G = self.cycle
>         s = 6
>         t = 4
>         path = [6] + list(range(t + 1))
>     
>         def weight(u, v, _):
>             return 1 + v ** 2
>     
>         length = sum(weight(u, v, None) for u, v in pairwise(path))
>         vlp(G, s, t, length, nx.bidirectional_dijkstra, weight)
>         vlp(G, s, t, length, nx.single_source_dijkstra, weight)
>         vlp(G, s, t, length, nx.single_source_bellman_ford, weight)
>         vlp(G, s, t, length, goldberg_radzik, weight)
> >       vlp(G, s, t, length, astar, weight)
> 
> networkx/algorithms/shortest_paths/tests/test_weighted.py:233: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> networkx/algorithms/shortest_paths/tests/test_weighted.py:218: in vlp
>     validate_length_path(G, s, t, l, *res, weight=w)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> G = <networkx.classes.graph.Graph object at 0xb4a307a8>, s = 6, t = 4
> soln_len = 35, length = 43, path = [6, 5, 4]
> weight = <function TestWeightedPath.test_weight_functions.<locals>.weight at 0xb4a2f538>
> 
>     def validate_length_path(G, s, t, soln_len, length, path, weight="weight"):
> >       assert soln_len == length
> E       assert 35 == 43
> E         -35
> E         +43
> 
> networkx/algorithms/shortest_paths/tests/test_weighted.py:29: AssertionError
> =========== 1 failed, 3517 passed, 182 skipped in 246.61s (0:04:06) ============
> command "pytest" "-vv" "--pyargs" "networkx" failed with status 1

I've the following setup:

Host distribution: Parabola i686 with an x86_64 kernel (linux-libre-64)
Guix: Guix i686

Do I need to give more information?

Denis.