From 2d6fa531f2edcea0daa9045c44218d79867119a0 Mon Sep 17 00:00:00 2001 From: AmanTahiliani Date: Sat, 4 Jul 2026 01:16:01 -0400 Subject: [PATCH] fix(compare): gap deltas beyond reference laps --- frontend/src/lib/delta.ts | 6 +++--- frontend/src/test/delta-time-graph.test.tsx | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/frontend/src/lib/delta.ts b/frontend/src/lib/delta.ts index a828393..c4738d4 100644 --- a/frontend/src/lib/delta.ts +++ b/frontend/src/lib/delta.ts @@ -35,12 +35,12 @@ function buildAlignedCumulative( const length = Math.max(lapTimes.length, referenceLapTimes.length) for (let i = 0; i < length; i++) { - if (referenceLapTimes[i] === null) { + if (referenceLapTimes[i] == null) { cumulative.push(running) continue } const lap = lapTimes[i] - if (lap !== null) { + if (lap != null) { running += lap } cumulative.push(running) @@ -84,7 +84,7 @@ export function computeCumulativeDeltas( const deltas: (number | null)[] = [] for (let i = 0; i < lapCount; i++) { - if (refLapTimes[i] === null || driver.lapTimes[i] === null) { + if (refLapTimes[i] == null || driver.lapTimes[i] == null) { deltas.push(null) continue } diff --git a/frontend/src/test/delta-time-graph.test.tsx b/frontend/src/test/delta-time-graph.test.tsx index 65aa0e9..7895dc4 100644 --- a/frontend/src/test/delta-time-graph.test.tsx +++ b/frontend/src/test/delta-time-graph.test.tsx @@ -78,6 +78,23 @@ describe('computeCumulativeDeltas', () => { expect(result[0].deltas[2]).toBeCloseTo(-3) }) + it('gaps challenger laps beyond a shorter reference series', () => { + const shortReference: DeltaSeries = { + label: 'VER', + color: '#3671C6', + lapTimes: [90, 91], + } + const longerChallenger: DeltaSeries = { + label: 'HAM', + color: '#E8002D', + lapTimes: [89, 92, 90], + } + const result = computeCumulativeDeltas([shortReference, longerChallenger]) + expect(result[0].deltas[0]).toBeCloseTo(-1) + expect(result[0].deltas[1]).toBeCloseTo(0) + expect(result[0].deltas[2]).toBeNull() + }) + it('returns an empty array when only one series is provided', () => { expect(computeCumulativeDeltas([reference])).toEqual([]) })