mirror of
https://github.com/AmanTahiliani/box-box.git
synced 2026-08-07 19:56:18 -04:00
fix(compare): gap deltas beyond reference laps
This commit is contained in:
@@ -35,12 +35,12 @@ function buildAlignedCumulative(
|
|||||||
const length = Math.max(lapTimes.length, referenceLapTimes.length)
|
const length = Math.max(lapTimes.length, referenceLapTimes.length)
|
||||||
|
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
if (referenceLapTimes[i] === null) {
|
if (referenceLapTimes[i] == null) {
|
||||||
cumulative.push(running)
|
cumulative.push(running)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
const lap = lapTimes[i]
|
const lap = lapTimes[i]
|
||||||
if (lap !== null) {
|
if (lap != null) {
|
||||||
running += lap
|
running += lap
|
||||||
}
|
}
|
||||||
cumulative.push(running)
|
cumulative.push(running)
|
||||||
@@ -84,7 +84,7 @@ export function computeCumulativeDeltas(
|
|||||||
const deltas: (number | null)[] = []
|
const deltas: (number | null)[] = []
|
||||||
|
|
||||||
for (let i = 0; i < lapCount; i++) {
|
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)
|
deltas.push(null)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -78,6 +78,23 @@ describe('computeCumulativeDeltas', () => {
|
|||||||
expect(result[0].deltas[2]).toBeCloseTo(-3)
|
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', () => {
|
it('returns an empty array when only one series is provided', () => {
|
||||||
expect(computeCumulativeDeltas([reference])).toEqual([])
|
expect(computeCumulativeDeltas([reference])).toEqual([])
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user