1
0
Fork 0
mirror of https://github.com/koalyptus/TableFilter.git synced 2024-05-17 13:56:38 +02:00
TableFilter/test/test-col-ops.js

356 lines
11 KiB
JavaScript
Raw Normal View History

2014-11-15 09:39:10 +01:00
2015-05-10 13:12:31 +02:00
var id = function (id){ return document.getElementById(id); };
2015-06-09 10:46:08 +02:00
var table = id('demo');
2015-05-10 13:12:31 +02:00
var totRowIndex = table.getElementsByTagName('tr').length;
2014-11-15 09:39:10 +01:00
2015-05-10 13:12:31 +02:00
var tf = new TableFilter('demo', {
base_path: '../dist/tablefilter/',
2016-10-07 14:08:13 +02:00
rows_always_visible: [
2016-10-08 02:50:34 +02:00
totRowIndex-6,
totRowIndex-5,
totRowIndex-4,
totRowIndex-3,
2016-10-07 14:08:13 +02:00
totRowIndex-2,
totRowIndex-1,
totRowIndex,
],
extensions: [{
name: 'colOps',
2016-10-07 14:08:13 +02:00
id: [
'sum1', 'sum2',
2016-10-08 02:50:34 +02:00
'mean1', 'mean2',
2016-10-07 14:08:13 +02:00
'min1', 'min2',
2016-10-08 02:50:34 +02:00
'max1', 'max2',
'median1', 'median2',
'q1-1', 'q1-2',
'q3-1', 'q3-2'
2016-10-07 14:08:13 +02:00
],
col: [
2016-10-08 02:50:34 +02:00
2, 3,
2, 3,
2, 3,
2, 3,
2016-10-07 14:08:13 +02:00
2, 3,
2, 3,
2, 3
],
operation: [
2016-10-08 02:50:34 +02:00
'sum', 'sum',
'mean', 'mean',
2016-10-07 14:08:13 +02:00
'min', 'min',
2016-10-08 02:50:34 +02:00
'max', 'max',
'median', 'median',
'q1', 'q1',
'q3', 'q3'
2016-10-07 14:08:13 +02:00
],
write_method: [
2016-10-08 02:50:34 +02:00
'innerhtml', 'innerhtml',
'innerhtml', 'innerhtml',
'innerhtml', 'innerhtml',
'innerhtml', 'innerhtml',
2016-10-07 14:08:13 +02:00
'innerhtml', 'innerhtml',
'innerhtml', 'innerhtml',
'innerhtml', 'innerhtml'
],
exclude_row: [
2016-10-08 02:50:34 +02:00
totRowIndex-6,
totRowIndex-5,
totRowIndex-4,
totRowIndex-3,
2016-10-07 14:08:13 +02:00
totRowIndex-2,
totRowIndex-1,
totRowIndex
],
2016-10-08 02:50:34 +02:00
decimal_precision: [
0, 2,
0, 2,
0, 2,
0, 2,
0, 2,
0, 2,
0, 2
],
2016-10-07 14:08:13 +02:00
tot_row_index: [
2016-10-08 02:50:34 +02:00
totRowIndex-6, totRowIndex-6,
totRowIndex-5, totRowIndex-5,
totRowIndex-4, totRowIndex-4,
totRowIndex-3, totRowIndex-3,
2016-10-07 14:08:13 +02:00
totRowIndex-2, totRowIndex-2,
totRowIndex-1, totRowIndex-1,
totRowIndex, totRowIndex
]
}]
2015-05-10 13:12:31 +02:00
});
tf.init();
2014-11-15 09:39:10 +01:00
2015-05-10 13:12:31 +02:00
module('Sanity checks');
test('Column operations', function() {
var colOps = tf.extension('colOps');
deepEqual(typeof colOps, 'object', 'ColOps instanciated');
2015-05-10 13:12:31 +02:00
equal(id('sum1').innerHTML, 9911, 'Sum result');
2016-10-08 02:50:34 +02:00
equal(id('sum2').innerHTML, 11.85, 'Sum result');
equal(id('mean1').innerHTML, 1416, 'Mean result');
equal(id('mean2').innerHTML, 1.69, 'Mean result');
equal(id('min1').innerHTML, 286, 'Min result');
2016-10-07 14:08:13 +02:00
equal(id('min2').innerHTML, 0.60, 'Min result');
2016-10-08 02:50:34 +02:00
equal(id('max1').innerHTML, 2781, 'Max result');
equal(id('max2').innerHTML, 3.10, 'Max result');
equal(id('median1').innerHTML, 1412, 'Median result');
equal(id('median2').innerHTML, 1.50, 'Median result');
equal(id('q1-1').innerHTML, 872, 'Q1 result');
equal(id('q1-2').innerHTML, 1.10, 'Q1 result');
equal(id('q3-1').innerHTML, 2045, 'Q3 result');
equal(id('q3-2').innerHTML, 2.15, 'Q3 result');
2017-01-12 13:42:58 +01:00
tf.clearFilters();
2015-05-10 13:12:31 +02:00
});
module('Behaviour checks');
test('Column operations after filtering', function() {
tf.setFilterValue(0, 'syd');
tf.filter();
equal(id('sum1').innerHTML, 3552, 'Sum result');
2016-10-08 02:50:34 +02:00
equal(id('sum2').innerHTML, 4.60, 'Sum result');
equal(id('mean1').innerHTML, 888, 'Mean result');
equal(id('mean2').innerHTML, 1.15, 'Mean result');
equal(id('min1').innerHTML, 286, 'Min result');
2016-10-07 14:08:13 +02:00
equal(id('min2').innerHTML, 0.60, 'Min result');
2016-10-08 02:50:34 +02:00
equal(id('max1').innerHTML, 1412, 'Max result');
equal(id('max2').innerHTML, 1.50, 'Max result');
equal(id('median1').innerHTML, 927, 'Median result');
equal(id('median2').innerHTML, 1.25, 'Median result');
equal(id('q1-1').innerHTML, 579, 'Q1 result');
equal(id('q1-2').innerHTML, 0.85, 'Q1 result');
equal(id('q3-1').innerHTML, 1197, 'Q3 result');
equal(id('q3-2').innerHTML, 1.45, 'Q3 result');
tf.clearFilters();
});
2016-11-02 13:01:31 +01:00
module('Behaviour checks with paging enabled');
2016-10-08 02:50:34 +02:00
test('Column operations', function() {
tf.destroy();
2016-11-02 13:01:31 +01:00
tf = new TableFilter('demo', {
base_path: '../dist/tablefilter/',
2017-01-18 11:29:00 +01:00
col_types: ['string', 'string', 'number', 'number', 'number'],
2016-11-02 13:01:31 +01:00
paging: true,
paging_length: 4,
rows_always_visible: [
totRowIndex-6,
totRowIndex-5,
totRowIndex-4,
totRowIndex-3,
totRowIndex-2,
totRowIndex-1,
totRowIndex,
],
extensions: [{
name: 'colOps',
id: [
'sum1', 'sum2',
'mean1', 'mean2',
'min1', 'min2',
'max1', 'max2',
'median1', 'median2',
'q1-1', 'q1-2',
'q3-1', 'q3-2'
],
col: [
2, 3,
2, 3,
2, 3,
2, 3,
2, 3,
2, 3,
2, 3
],
operation: [
'sum', 'sum',
'mean', 'mean',
'min', 'min',
'max', 'max',
'median', 'median',
'q1', 'q1',
'q3', 'q3'
],
write_method: [
'innerhtml', 'innerhtml',
'innerhtml', 'innerhtml',
'innerhtml', 'innerhtml',
'innerhtml', 'innerhtml',
'innerhtml', 'innerhtml',
'innerhtml', 'innerhtml',
'innerhtml', 'innerhtml'
],
exclude_row: [
totRowIndex-6,
totRowIndex-5,
totRowIndex-4,
totRowIndex-3,
totRowIndex-2,
totRowIndex-1,
totRowIndex
],
decimal_precision: [
0, 2,
0, 2,
0, 2,
0, 2,
0, 2,
0, 2,
0, 2
],
tot_row_index: [
totRowIndex-6, totRowIndex-6,
totRowIndex-5, totRowIndex-5,
totRowIndex-4, totRowIndex-4,
totRowIndex-3, totRowIndex-3,
totRowIndex-2, totRowIndex-2,
totRowIndex-1, totRowIndex-1,
totRowIndex, totRowIndex
]
}]
});
tf.init();
var paging = tf.feature('paging');
// change page
paging.changePage(1);
equal(id('sum1').innerHTML, 6359, 'Sum result after page change');
equal(id('sum2').innerHTML, 7.25, 'Sum result after page change');
equal(id('mean1').innerHTML, 2120, 'Mean result after page change');
equal(id('mean2').innerHTML, 2.42, 'Mean result after page change');
equal(id('min1').innerHTML, 1533, 'Min result after page change');
equal(id('min2').innerHTML, 2.00, 'Min result after page change');
equal(id('max1').innerHTML, 2781, 'Max result after page change');
equal(id('max2').innerHTML, 3.10, 'Max result after page change');
equal(id('median1').innerHTML, 2045, 'Median result after page change');
equal(id('median2').innerHTML, 2.15, 'Median result after page change');
equal(id('q1-1').innerHTML, 1533, 'Q1 result after page change');
equal(id('q1-2').innerHTML, 2.00, 'Q1 result after page change');
equal(id('q3-1').innerHTML, 2781, 'Q3 result after page change');
equal(id('q3-2').innerHTML, 3.10, 'Q3 result after page change');
tf.destroy();
});
module('Behaviour checks with grid layout');
test('Column operations', function() {
2016-10-08 02:50:34 +02:00
totRowIndex = totRowIndex-2;
tf = new TableFilter('demo', {
base_path: '../dist/tablefilter/',
2017-01-18 11:29:00 +01:00
col_types: ['string', 'string', 'number', 'number', 'number'],
2016-10-08 02:50:34 +02:00
grid_layout: true,
rows_always_visible: [
totRowIndex-6,
totRowIndex-5,
totRowIndex-4,
totRowIndex-3,
totRowIndex-2,
totRowIndex-1,
totRowIndex,
],
extensions: [{
name: 'colOps',
id: [
'sum1', 'sum2',
'mean1', 'mean2',
'min1', 'min2',
'max1', 'max2',
'median1', 'median2',
'q1-1', 'q1-2',
'q3-1', 'q3-2'
],
col: [
2, 3,
2, 3,
2, 3,
2, 3,
2, 3,
2, 3,
2, 3
],
operation: [
'sum', 'sum',
'mean', 'mean',
'min', 'min',
'max', 'max',
'median', 'median',
'q1', 'q1',
'q3', 'q3'
],
write_method: [
'innerhtml', 'innerhtml',
'innerhtml', 'innerhtml',
'innerhtml', 'innerhtml',
'innerhtml', 'innerhtml',
'innerhtml', 'innerhtml',
'innerhtml', 'innerhtml',
'innerhtml', 'innerhtml'
],
exclude_row: [
totRowIndex-6,
totRowIndex-5,
totRowIndex-4,
totRowIndex-3,
totRowIndex-2,
totRowIndex-1,
totRowIndex
],
decimal_precision: [
0, 2,
0, 2,
0, 2,
0, 2,
0, 2,
0, 2,
0, 2
],
tot_row_index: [
totRowIndex-6, totRowIndex-6,
totRowIndex-5, totRowIndex-5,
totRowIndex-4, totRowIndex-4,
totRowIndex-3, totRowIndex-3,
totRowIndex-2, totRowIndex-2,
totRowIndex-1, totRowIndex-1,
totRowIndex, totRowIndex
]
}]
});
tf.init();
2016-11-02 13:01:31 +01:00
tf.clearFilters();
2016-10-08 02:50:34 +02:00
equal(id('sum1').innerHTML, 9911, 'Sum result');
equal(id('sum2').innerHTML, 11.85, 'Sum result');
equal(id('mean1').innerHTML, 1416, 'Mean result');
equal(id('mean2').innerHTML, 1.69, 'Mean result');
equal(id('min1').innerHTML, 286, 'Min result');
equal(id('min2').innerHTML, 0.60, 'Min result');
equal(id('max1').innerHTML, 2781, 'Max result');
equal(id('max2').innerHTML, 3.10, 'Max result');
equal(id('median1').innerHTML, 1412, 'Median result');
equal(id('median2').innerHTML, 1.50, 'Median result');
equal(id('q1-1').innerHTML, 872, 'Q1 result');
equal(id('q1-2').innerHTML, 1.10, 'Q1 result');
equal(id('q3-1').innerHTML, 2045, 'Q3 result');
equal(id('q3-2').innerHTML, 2.15, 'Q3 result');
2016-10-08 02:50:34 +02:00
tf.setFilterValue(2, '>1000');
tf.filter();
equal(id('sum1').innerHTML, 7771, 'Sum result');
equal(id('sum2').innerHTML, 8.65, 'Sum result');
equal(id('mean1').innerHTML, 1943, 'Mean result');
equal(id('mean2').innerHTML, 2.16, 'Mean result');
equal(id('min1').innerHTML, 1412, 'Min result');
equal(id('min2').innerHTML, 1.40, 'Min result');
equal(id('max1').innerHTML, 2781, 'Max result');
equal(id('max2').innerHTML, 3.10, 'Max result');
equal(id('median1').innerHTML, 1789, 'Median result');
equal(id('median2').innerHTML, 2.08, 'Median result');
equal(id('q1-1').innerHTML, 1473, 'Q1 result');
equal(id('q1-2').innerHTML, 1.70, 'Q1 result');
equal(id('q3-1').innerHTML, 2413, 'Q3 result');
equal(id('q3-2').innerHTML, 2.63, 'Q3 result');
2016-10-08 02:50:34 +02:00
tf.destroy();
});