const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);
properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;
- properties.stop = i > 0 && (parsed[iAxis] - prevParsed[iAxis]) > maxGapLength;
+ properties.stop = i > 0 && (Math.abs(parsed[iAxis] - prevParsed[iAxis])) > maxGapLength;
if (segment) {
properties.parsed = parsed;
properties.raw = _dataset.data[i];
expect(isNaN(x)).toBe(false);
expect(isNaN(y)).toBe(false);
});
+
+ it('should honor spangap interval forwards', function() {
+ var chart = window.acquireChart({
+ type: 'line',
+ data: {
+ datasets: [{
+ spanGaps: 10,
+ data: [{x: 10, y: 123}, {x: 15, y: 124}, {x: 26, y: 125}, {x: 30, y: 126}, {x: 35, y: 127}],
+ label: 'dataset1',
+ }],
+ },
+ options: {
+ scales: {
+ x: {
+ type: 'linear',
+ }
+ }
+ }
+ });
+
+ var meta = chart.getDatasetMeta(0);
+ for (var i = 0; i < meta.data.length; ++i) {
+ var point = meta.data[i];
+ expect(point.stop).toBe(i === 2);
+ }
+ });
+
+ it('should honor spangap interval backwards', function() {
+ var chart = window.acquireChart({
+ type: 'line',
+ data: {
+ datasets: [{
+ spanGaps: 10,
+ data: [{x: 35, y: 123}, {x: 30, y: 124}, {x: 26, y: 125}, {x: 15, y: 126}, {x: 10, y: 127}],
+ label: 'dataset1',
+ }],
+ },
+ options: {
+ scales: {
+ x: {
+ type: 'linear',
+ }
+ }
+ }
+ });
+
+ var meta = chart.getDatasetMeta(0);
+ for (var i = 0; i < meta.data.length; ++i) {
+ var point = meta.data[i];
+ expect(point.stop).toBe(i === 3);
+ }
+ });
});