diff --git a/src/time-range/time-range.spec.ts b/src/time-range/time-range.spec.ts index ce6357a..57d851e 100644 --- a/src/time-range/time-range.spec.ts +++ b/src/time-range/time-range.spec.ts @@ -143,6 +143,22 @@ describe('TimeRange Util', () => { expect(timeRange.value().length).toEqual(1); expect(timeRange.value()[0].interval).toEqual(19.3); expect(timeRange.value()[0].end).toEqual(30.2); + + const timeRange2 = new TimeRange([], 5); + timeRange2.add({ + start: 1.11111, + end: 11.11111, + interval: 9.111111, + }); + timeRange2.add({ + start: 1.22222, + end: 30.22222, + interval: 10.22222, + }); + timeRange2.merge(true); + expect(timeRange2.value().length).toEqual(1); + expect(timeRange2.value()[0].interval).toEqual(19.33333); + expect(timeRange2.value()[0].end).toEqual(30.22222); }); it('cale decimal points in the totalPlayTime', async () => { diff --git a/src/time-range/time-range.ts b/src/time-range/time-range.ts index 0857958..5989e35 100644 --- a/src/time-range/time-range.ts +++ b/src/time-range/time-range.ts @@ -30,7 +30,9 @@ export class TimeRange { if (prevSection.end >= v.start) { prevSection.end = v.end > prevSection.end ? v.end : prevSection.end; prevSection.interval = NumberUtil.decimalRoundDown( - NumberUtil.decimalRoundUp(prevSection.interval) + NumberUtil.decimalRoundUp(v.interval) + NumberUtil.decimalRoundUp(prevSection.interval, this.decimalPlaces) + + NumberUtil.decimalRoundUp(v.interval, this.decimalPlaces), + this.decimalPlaces ); } else { p.push(v);