fix(compare): gap deltas beyond reference laps

This commit is contained in:
2026-07-04 01:16:01 -04:00
parent ad379e0f07
commit 2d6fa531f2
2 changed files with 20 additions and 3 deletions

View File

@@ -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
}

View File

@@ -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([])
})