Conversation
daniel-j-h
left a comment
There was a problem hiding this comment.
Looks good - wondering if the check can be made earlier when we generate the candidate via nodes. Then we could eliminate the edge case in a single location, no?
|
@daniel-j-h such alternatives are ok for CH, so it is better to keep them also in MLD. This requires edges vector emptiness checks in all filters that use packed paths. |
|
Yes I was only talking about the MLD alternatives implementation. What I meant was removing these candidates early on during stepping already so that we don't have to think about this edge case when adding new filters later on. But now that we have a reproducible test case I'm fine with both approaches. |
|
Unfortunately CH alternatives results are not consistent wrt OS and the test fails on OSX and Windows builds |
a26cf0b to
4710676
Compare
|
@daniel-j-h i looked at the test fail on windows build. The problem in a loop shortcut that is not handled for CH alternative routes in @mld-only tag to skip the test for CH.
|
Issue
The PR fixes #4691, by allowing alternative routes with
packed.path.empty().Also an additional check
node != fst.GetData(node).parentwas added to prevent infinite loops ifhas_plateaux_at_node(node, fst, snd)andnodeis the first (last) node of the route.Tasklist