From 38c2845c3c5b201967a3bd4433fb87c33851b764 Mon Sep 17 00:00:00 2001 From: "Thomas (Tom) C. Gorordo" <57684088+tgorordo@users.noreply.github.com> Date: Fri, 12 Jun 2026 15:05:27 -0700 Subject: [PATCH] Update rcv.py to handle ties correctly --- src/smithy/rcv.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/smithy/rcv.py b/src/smithy/rcv.py index 4f51fe2..120d095 100644 --- a/src/smithy/rcv.py +++ b/src/smithy/rcv.py @@ -59,6 +59,9 @@ def pmg_from_rcv_bigslow(ballots: pl.DataFrame) -> rwx.PyDiGraph: pmg.add_edge(nodes[a], nodes[b], a_wins - b_wins) elif b_wins > a_wins: pmg.add_edge(nodes[b], nodes[a], b_wins - a_wins) + else: # tie + pmg.add_edge(nodes[a], nodes[b], 0) + pmg.add_edge(nodes[b], nodes[a], 0) return pmg @@ -105,6 +108,9 @@ def pmg_from_rcv_smallfast(ballots: pl.DataFrame) -> rwx.PyDiGraph: pmg.add_edge(nodes[a], nodes[b], int(a_wins - b_wins)) elif b_wins > a_wins: pmg.add_edge(nodes[b], nodes[a], int(b_wins - a_wins)) + else: # tie + pmg.add_edge(nodes[a], nodes[b], 0) + pmg.add_edge(nodes[b], nodes[a], 0) return pmg