* @since 3.0
*/
getMinMax(canStack) {
- // eslint-disable-next-line prefer-const
let {min, max, minDefined, maxDefined} = this.getUserBounds();
let range;
}
}
+ // No visible items where found, return false so we don't have to divide by 0 which reduces in NaN
+ if (count === 0 || xSet.size === 0) {
+ return false;
+ }
+
const xAverage = [...xSet].reduce((a, b) => a + b) / xSet.size;
return {
expect(tooltipModel.caretX).not.toBe(xPositionArrayAverage);
expect(tooltipModel.caretX).toBe(xPositionSetAverage);
});
+
+ it('Should not fail with all hiden data elements on the average positioner', function() {
+ const averagePositioner = tooltipPlugin.positioners.average;
+
+ // Simulate `hasValue` returns false
+ expect(() => averagePositioner([{x: 'invalidNumber', y: 'invalidNumber'}])).not.toThrow();
+ const result = averagePositioner([{x: 'invalidNumber', y: 'invalidNumber'}]);
+ expect(result).toBe(false);
+ });
});
it('Should avoid tooltip truncation in x axis if there is enough space to show tooltip without truncation', async function() {