UNPKG

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