From 50c233b58c68b9efd5242cc2b0d72ae5ab16e798 Mon Sep 17 00:00:00 2001
From: Mike Lang <mikelang3000@gmail.com>
Date: Thu, 20 Mar 2025 04:53:52 +1100
Subject: [PATCH] fix copy paste error in v3/v4 and benchmark duplicate merges

Merging 1000 duplicates of the same batch:
v1: 98ms
v2: 101ms
v3: 116ms
v4: 116ms

So as expected v3 and v4 have a small cost with duplicates for optimizing for non-overlapping,
but even with ridiculous numbers duplicates are fast to process anyway.
---
 merge_v3.py | 4 ++--
 merge_v4.py | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/merge_v3.py b/merge_v3.py
index 5bf6367..3cc3137 100644
--- a/merge_v3.py
+++ b/merge_v3.py
@@ -57,13 +57,13 @@ def merge_messages(*batches):
 				if id is None:
 					merged = merge_message(message, candidate)
 					if merged is not None:
-						candidates.pop(index)
+						batch.pop(index)
 						break
 				elif (candidate.get("tags") or {}).get("id") == id:
 					merged = merge_message(message, candidate)
 					if merged is None:
 						raise ValueError("TODO")
-					candidates.pop(index)
+					batch.pop(index)
 					break
 			if merged is not None:
 				message = merged
diff --git a/merge_v4.py b/merge_v4.py
index 20df1ab..6983f98 100644
--- a/merge_v4.py
+++ b/merge_v4.py
@@ -85,13 +85,13 @@ def merge_messages(*batches):
 				if id is None:
 					merged = merge_message(message, candidate)
 					if merged is not None:
-						candidates.pop(index)
+						batch.pop(index)
 						break
 				elif (candidate.get("tags") or {}).get("id") == id:
 					merged = merge_message(message, candidate)
 					if merged is None:
 						raise ValueError("TODO")
-					candidates.pop(index)
+					batch.pop(index)
 					break
 			if merged is not None:
 				message = merged