UNPKG

4.31 kBJavaScriptView Raw
1
2var id = function (id){ return document.getElementById(id); };
3var table = id('demo');
4var totRowIndex = table.getElementsByTagName('tr').length -2;
5
6var tf = new TableFilter('demo', {
7 base_path: '../dist/tablefilter/',
8 col_types: ['string', 'string', 'number', 'number', 'number'],
9 grid_layout: true,
10 rows_always_visible: [
11 totRowIndex-6,
12 totRowIndex-5,
13 totRowIndex-4,
14 totRowIndex-3,
15 totRowIndex-2,
16 totRowIndex-1,
17 totRowIndex,
18 ],
19 extensions: [{
20 name: 'colOps',
21 id: [
22 'sum1', 'sum2',
23 'mean1', 'mean2',
24 'min1', 'min2',
25 'max1', 'max2',
26 'median1', 'median2',
27 'q1-1', 'q1-2',
28 'q3-1', 'q3-2'
29 ],
30 col: [
31 2, 3,
32 2, 3,
33 2, 3,
34 2, 3,
35 2, 3,
36 2, 3,
37 2, 3
38 ],
39 operation: [
40 'sum', 'sum',
41 'mean', 'mean',
42 'min', 'min',
43 'max', 'max',
44 'median', 'median',
45 'q1', 'q1',
46 'q3', 'q3'
47 ],
48 write_method: [
49 'innerhtml', 'innerhtml',
50 'innerhtml', 'innerhtml',
51 'innerhtml', 'innerhtml',
52 'innerhtml', 'innerhtml',
53 'innerhtml', 'innerhtml',
54 'innerhtml', 'innerhtml',
55 'innerhtml', 'innerhtml'
56 ],
57 exclude_row: [
58 totRowIndex-6,
59 totRowIndex-5,
60 totRowIndex-4,
61 totRowIndex-3,
62 totRowIndex-2,
63 totRowIndex-1,
64 totRowIndex
65 ],
66 decimal_precision: [
67 0, 2,
68 0, 2,
69 0, 2,
70 0, 2,
71 0, 2,
72 0, 2,
73 0, 2
74 ],
75 tot_row_index: [
76 totRowIndex-6, totRowIndex-6,
77 totRowIndex-5, totRowIndex-5,
78 totRowIndex-4, totRowIndex-4,
79 totRowIndex-3, totRowIndex-3,
80 totRowIndex-2, totRowIndex-2,
81 totRowIndex-1, totRowIndex-1,
82 totRowIndex, totRowIndex
83 ]
84 }]
85});
86tf.init();
87
88module('Sanity checks');
89test('Column operations', function() {
90 var colOps = tf.extension('colOps');
91 deepEqual(typeof colOps, 'object', 'ColOps instanciated');
92 equal(id('sum1').innerHTML, 9911, 'Sum result');
93 equal(id('sum2').innerHTML, 11.85, 'Sum result');
94 equal(id('mean1').innerHTML, 1416, 'Mean result');
95 equal(id('mean2').innerHTML, 1.69, 'Mean result');
96 equal(id('min1').innerHTML, 286, 'Min result');
97 equal(id('min2').innerHTML, 0.60, 'Min result');
98 equal(id('max1').innerHTML, 2781, 'Max result');
99 equal(id('max2').innerHTML, 3.10, 'Max result');
100 equal(id('median1').innerHTML, 1412, 'Median result');
101 equal(id('median2').innerHTML, 1.50, 'Median result');
102 equal(id('q1-1').innerHTML, 872, 'Q1 result');
103 equal(id('q1-2').innerHTML, 1.10, 'Q1 result');
104 equal(id('q3-1').innerHTML, 2045, 'Q3 result');
105 equal(id('q3-2').innerHTML, 2.15, 'Q3 result');
106 tf.clearFilters();
107});
108
109module('Behaviour checks');
110test('Column operations after filtering', function() {
111 tf.setFilterValue(0, 'syd');
112 tf.filter();
113 equal(id('sum1').innerHTML, 3552, 'Sum result');
114 equal(id('sum2').innerHTML, 4.60, 'Sum result');
115 equal(id('mean1').innerHTML, 888, 'Mean result');
116 equal(id('mean2').innerHTML, 1.15, 'Mean result');
117 equal(id('min1').innerHTML, 286, 'Min result');
118 equal(id('min2').innerHTML, 0.60, 'Min result');
119 equal(id('max1').innerHTML, 1412, 'Max result');
120 equal(id('max2').innerHTML, 1.50, 'Max result');
121 equal(id('median1').innerHTML, 927, 'Median result');
122 equal(id('median2').innerHTML, 1.25, 'Median result');
123 equal(id('q1-1').innerHTML, 579, 'Q1 result');
124 equal(id('q1-2').innerHTML, 0.85, 'Q1 result');
125 equal(id('q3-1').innerHTML, 1197, 'Q3 result');
126 equal(id('q3-2').innerHTML, 1.45, 'Q3 result');
127 tf.clearFilters();
128});
129
130module('Tear-down');
131test('can destroy', function() {
132 tf.destroy();
133 deepEqual(tf.isInitialized(), false, 'Filters removed');
134});