%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
function getLabels(scale) {
return scale.ticks.map(t => t.label);
}
describe('Test tick generators', function() {
// formatters are used as default config values so users want to be able to reference them
it('Should expose formatters api', function() {
expect(typeof Chart.Ticks).toBeDefined();
expect(typeof Chart.Ticks.formatters).toBeDefined();
expect(typeof Chart.Ticks.formatters.values).toBe('function');
expect(typeof Chart.Ticks.formatters.numeric).toBe('function');
});
it('Should generate linear spaced ticks with correct precision', function() {
var chart = window.acquireChart({
type: 'line',
data: {
datasets: [{
data: []
}],
},
options: {
plugins: {
legend: false
},
scales: {
x: {
type: 'linear',
position: 'bottom',
ticks: {
callback: function(value) {
return value.toString();
}
}
},
y: {
type: 'linear',
ticks: {
callback: function(value) {
return value.toString();
}
}
}
}
}
});
var xLabels = getLabels(chart.scales.x);
var yLabels = getLabels(chart.scales.y);
expect(xLabels).toEqual(['0', '0.1', '0.2', '0.3', '0.4', '0.5', '0.6', '0.7', '0.8', '0.9', '1']);
expect(yLabels).toEqual(['0', '0.1', '0.2', '0.3', '0.4', '0.5', '0.6', '0.7', '0.8', '0.9', '1']);
});
it('Should generate logarithmic spaced ticks with correct precision', function() {
var chart = window.acquireChart({
type: 'line',
data: {
datasets: [{
data: []
}],
},
options: {
plugins: {
legend: false
},
scales: {
x: {
type: 'logarithmic',
position: 'bottom',
min: 0.1,
max: 1,
ticks: {
autoSkip: false,
callback: function(value) {
return value.toString();
}
}
},
y: {
type: 'logarithmic',
min: 0.1,
max: 1,
ticks: {
autoSkip: false,
callback: function(value) {
return value.toString();
}
}
}
}
}
});
var xLabels = getLabels(chart.scales.x);
var yLabels = getLabels(chart.scales.y);
expect(xLabels).toEqual(['0.1', '0.11', '0.12', '0.13', '0.14', '0.15', '0.16', '0.17', '0.18', '0.19', '0.2', '0.25', '0.3', '0.4', '0.5', '0.6', '0.7', '0.8', '0.9', '1']);
expect(yLabels).toEqual(['0.1', '0.11', '0.12', '0.13', '0.14', '0.15', '0.16', '0.17', '0.18', '0.19', '0.2', '0.25', '0.3', '0.4', '0.5', '0.6', '0.7', '0.8', '0.9', '1']);
});
describe('formatters.numeric', function() {
it('should not fail on empty or 1 item array', function() {
const scale = {chart: {options: {locale: 'en'}}, options: {ticks: {format: {}}}};
expect(Chart.Ticks.formatters.numeric.apply(scale, [1, 0, []])).toEqual('1');
expect(Chart.Ticks.formatters.numeric.apply(scale, [1, 0, [{value: 1}]])).toEqual('1');
expect(Chart.Ticks.formatters.numeric.apply(scale, [1, 0, [{value: 1}, {value: 1.01}]])).toEqual('1.00');
});
});
});