From 56e37be158cef97dc4c727af682402b49eefc119 Mon Sep 17 00:00:00 2001 From: rzen Date: Fri, 7 Aug 2026 15:57:23 -0400 Subject: [PATCH] =?UTF-8?q?The=20regression=20suite=20selects=20the=20way?= =?UTF-8?q?=20the=20band=20does=20=E2=80=94=20defaultsSoleMember:=20false,?= =?UTF-8?q?=20and=20the=20budget's=20arithmetic=20told=20straight?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- KanbanTests/MarqueeRenderCostTests.swift | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/KanbanTests/MarqueeRenderCostTests.swift b/KanbanTests/MarqueeRenderCostTests.swift index 7c280c7..2cd1dfc 100644 --- a/KanbanTests/MarqueeRenderCostTests.swift +++ b/KanbanTests/MarqueeRenderCostTests.swift @@ -172,14 +172,14 @@ struct MarqueeRenderCostTests { let swept = Set((0..<10).map { ItemID(rawValue: cardName(1, $0)) }) // First select: the legitimate change. Not measured here. - store.select(swept, in: .board, anchor: nil, head: nil) + store.select(swept, in: .board, anchor: nil, head: nil, defaultsSoleMember: false) board.settle() let samples = 30 BoardRenderMetrics.reset() let t0 = CACurrentMediaTime() for _ in 0.. = [ItemID(rawValue: cardName(1, 0))] - store.select(swept, in: .board, anchor: nil, head: nil) + store.select(swept, in: .board, anchor: nil, head: nil, defaultsSoleMember: false) board.settle() BoardRenderMetrics.reset() let t0 = CACurrentMediaTime() for i in 1...samples { swept.insert(ItemID(rawValue: cardName(1, i % cardsPerLane))) - store.select(swept, in: .board, anchor: nil, head: nil) + store.select(swept, in: .board, anchor: nil, head: nil, defaultsSoleMember: false) board.settleOnce() } let elapsed = (CACurrentMediaTime() - t0) * 1000 @@ -242,8 +242,8 @@ struct MarqueeRenderCostTests { // // That is the shape the fix bought: the cost follows what the user has selected, not what the // board holds. Before it, every sample re-ran all \(laneCount * cardsPerLane) faces on the - // board whatever the band had swept — 3,600 bodies over this stream, an order of magnitude - // over the budget below and independent of the selection entirely. + // board whatever the band had swept — 3,600 bodies over this stream, five times the budget + // below and independent of the selection entirely. // // The ×3 is `BoardRenderPerformanceTests`' slack rationale: SwiftUI evaluates a body more // than once per update, so a changed face is worth more than one count. Measured at exactly