/* eslint-disable */
describe("unit tests for the precision of axis", function() {
var plot;
var placeholder;
var sampledata = [[0, 1], [1, 1.1], [2, 1.2]];
beforeEach(function () {
var fixture = setFixtures('
').find('#demo-container').get(0);
placeholder = $('
');
placeholder.appendTo(fixture);
});
afterEach(function () {
if (plot) {
plot.shutdown();
}
$('#placeholder').empty();
});
it('should use the precision given by tickDecimals when specified', function() {
plot = $.plot("#placeholder", [sampledata], {});
var testVector = [
[1, 10, 10, 3, 1],
[1, 1.01, 10, 2, 2],
[0.99963, 0.99964, null, 3, 3],
[1, 1.1, 5, 1, 1],
[1, 1.00000000000001, 10, 5, 5]
];
testVector.forEach(function (t) {
var min = t[0],
max = t[1],
ticks = t[2],
tickDecimals = t[3],
expectedValue = t[4];
var precision = plot.computeValuePrecision(min, max, "x", ticks, tickDecimals);
expect(precision).toEqual(expectedValue);
});
});
it('should use the maximum precision when tickDecimals not specified', function() {
plot = $.plot("#placeholder", [sampledata], {});
var testVector = [
[1, 10, 10, 1],
[1, 1.01, 10, 3],
[1, 1.1, 5, 2],
[0.99963, 0.99964, null, 6],
[1, 1.00000000000001, 10, 16],
[-200000, 200000, undefined, -4]
];
testVector.forEach(function (t) {
var min = t[0],
max = t[1],
ticks = t[2],
expectedValue = t[3];
var precision = plot.computeValuePrecision(min, max, "x", ticks);
expect(precision).toEqual(expectedValue);
});
});
it('should increase precision for endpoints', function() {
var testVector = [
[1, 10, 10, 'linear', '1.00', '10.00'],
[1, 100, 11, 'linear', '1.0', '100.0'],
[-1, 1, 20, 'linear', '-1.000', '1.000'],
[1, 1.01, 10, 'linear', '1.00000', '1.01000'],
[99, 99.02, 10, 'linear', '99.00000', '99.02000'],
[0.99963, 0.99964, null, 'linear', '0.99963000', '0.99964000'],
[1, 1.00000000001, 100, 'linear', '1.00000000000000', '1.00000000001000'],
[-2000000, 2000000, null, 'linear', '-2000000', '2000000'],
[-2.18167311226e+21, 2.196693453e+21, null, 'linear', '-2.182e21', '2.197e21'],
[1, 10, 10, 'log', '1.000', '10.00'],
[1, 10000000, 10, 'log', '1.00', '10000000'],
[0.1, 100, 11, 'log', '0.1000', '100.0'],
[0.99963, 0.99964, null, 'log', '0.99963000', '0.99964000'],
[1, 2000000, null, 'log', '1.00', '2000000'],
[1.14567e-43, 1, null, 'log', '1.1e-43', '1.0'],
[0, 1, null, 'log', '0.1000', '1.000']
];
testVector.forEach(function (t) {
plot = $.plot("#placeholder", [sampledata], {
xaxes: [{
min: t[0],
max: t[1],
ticks: t[2],
showTickLabels : 'endpoints',
autoScale: "none",
mode: t[3]
}]
});
var minExpectedValue = t[4],
maxExpectedValue = t[5],
xaxis = plot.getAxes().xaxis;
expect(xaxis.ticks[0].label).toEqual(minExpectedValue);
expect(xaxis.ticks[xaxis.ticks.length-1].label).toEqual(maxExpectedValue);
});
});
describe('tickFormatter', function(){
it('should ignore the computed precision of axis if negative', function(){
var testVector = [[-12356285.9999, -10, '-12356286'],
[12356285.9999, -10, '12356286'],
[3.215, -1, '3'],
[3.215, -2, '3'],
[3.215, -3, '3'],
[3.215, -50, '3']];
testVector.forEach(function (t) {
plot = $.plot("#placeholder", [], {
xaxes: [{
showTickLabels : 'all',
}]
});
var axis = plot.getXAxes()[0];
expect($.plot.defaultTickFormatter(t[0], axis, t[1])).toEqual(t[2]);
});
});
it('should show small number of decimals for numbers with e representation', function(){
var testVector = [[0.12e-8, 1.2e-7, '1.2e-9', '1.200e-7'],
[1.2e+21, 12e+21, '1.20e21', '1.200e22'],
[1e-18, 2e-18, '1.000e-18', '2.000e-18'],
[1.000000001e-18, 1.99999999e-18, '1.000e-18', '2.000e-18'],
[0.000000000000001, 0.0000000000002, '1.0e-15', '2.000e-13']];
testVector.forEach(function (t) {
plot = $.plot("#placeholder", [sampledata], {
xaxes: [{
showTickLabels : 'endpoints',
min : t[0],
max : t[1],
autoScale : 'none'
}]
});
var axis = plot.getXAxes()[0];
expect(axis.ticks[0].label).toEqual(t[2]);
expect(axis.ticks[axis.ticks.length - 1].label).toEqual(t[3]);
});
});
});
});