1
0
Fork 0

Improve test coverage

This commit is contained in:
Joris van Rantwijk 2024-07-06 20:21:33 +02:00
parent 6a75ffaf63
commit 50ef772271
2 changed files with 19 additions and 3 deletions

View File

@ -671,12 +671,11 @@ class _MatchingContext:
return return
# Update the priority of "y" in its UnionFindQueue. # Update the priority of "y" in its UnionFindQueue.
prev_min = by.vertex_set.min_prio()
self.vertex_set_node[y].set_prio(prio) self.vertex_set_node[y].set_prio(prio)
# If the blossom is unlabeled and the new edge becomes its least-slack # If the blossom is unlabeled and the new edge becomes its least-slack
# S-edge, insert or update the blossom in the global delta2 queue. # S-edge, insert or update the blossom in the global delta2 queue.
if (by.label == _LABEL_NONE) and (prio < prev_min): if by.label == _LABEL_NONE:
prio += by.vertex_dual_offset prio += by.vertex_dual_offset
if by.delta2_node is None: if by.delta2_node is None:
by.delta2_node = self.delta2_queue.insert(prio, by) by.delta2_node = self.delta2_queue.insert(prio, by)
@ -1067,7 +1066,7 @@ class _MatchingContext:
if blossom.label == _LABEL_S: if blossom.label == _LABEL_S:
self.remove_blossom_label_s(blossom) self.remove_blossom_label_s(blossom)
elif blossom.label == _LABEL_T: else:
self.remove_blossom_label_t(blossom) self.remove_blossom_label_t(blossom)
def _check_alternating_tree_consistency(self) -> None: def _check_alternating_tree_consistency(self) -> None:

View File

@ -243,6 +243,23 @@ class TestMaximumWeightMatching(unittest.TestCase):
mwm([(1,2,19), (1,4,17), (1,5,19), (2,3,15), (2,5,21), (4,6,18), (4,7,11), (5,6,19)]), mwm([(1,2,19), (1,4,17), (1,5,19), (2,3,15), (2,5,21), (4,6,18), (4,7,11), (5,6,19)]),
[(1,5), (2,3), (4,6)]) [(1,5), (2,3), (4,6)])
def test52_augment_blossom_nested2(self):
"""augment nested blossoms"""
#
# [4]--15 19--[2]
# | \ / |
# 16 [1] 21
# | / \ |
# [5]--17 19--[3]
# |
# 10
# |
# [6]
#
self.assertEqual(
mwm([(1,2,19), (1,3,19), (1,4,15), (1,5,17), (2,3,21), (4,5,16), (5,6,10)]),
[(1,4), (2,3), (5,6)])
def test61_triangles_n9(self): def test61_triangles_n9(self):
"""t.f 9 nodes""" """t.f 9 nodes"""
# #