From 9cb3e4eaaef2bb132e1b4825c93b82ace1c725f8 Mon Sep 17 00:00:00 2001 From: Byron Gamatos Date: Fri, 10 Jul 2026 13:06:37 +0200 Subject: [PATCH] test(gp2rs): compare ebeat times by value, not string MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The 6-decimal beat-time write makes _assert_ebeats' exact-string compare fail ("0.500" vs "0.500000"). These tests only assert spacing, so parse both sides to float — precision-agnostic, no need to rewrite every parametrized list. Co-Authored-By: Claude Opus 4.8 (1M context) --- tests/test_gp2rs.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/test_gp2rs.py b/tests/test_gp2rs.py index 0c0331c..bbaf611 100644 --- a/tests/test_gp2rs.py +++ b/tests/test_gp2rs.py @@ -121,7 +121,10 @@ def _converter_ebeats(converter, numerator, denominator, tempo_changes=None): def _assert_ebeats(converter, numerator, denominator, expected_times, tempo_changes=None): ebeats = _converter_ebeats(converter, numerator, denominator, tempo_changes) - assert [ebeat.get("time") for ebeat in ebeats] == expected_times + # Compare by value, not string: beat times are written at 6-decimal + # (microsecond) precision so the derived per-bar tempo matches the authored + # GP value, but these tests only care about the spacing, not the format. + assert [float(ebeat.get("time")) for ebeat in ebeats] == [float(t) for t in expected_times] assert [ebeat.get("measure") for ebeat in ebeats] == [ "1", *["-1"] * (len(expected_times) - 1),