UNPKG

1.05 kBPlain TextView Raw
1import { unstack } from '../src';
2import { RowData } from '../src/util/helper';
3
4const rows: RowData[] = [
5 { d1: 'one', d2: 'a', m1: 1, m2: 3 },
6 { d1: 'one', d2: 'b', m1: 2, m2: 4 },
7 { d1: 'two', d2: 'a', m1: 5, m2: 6 },
8 { d1: 'two', d2: 'b', m1: 7, m2: 8 },
9];
10
11test('basic', () => {
12 expect(unstack(rows, 'd2', ['m1', 'm2'])).toEqual([
13 { d1: 'one', m1_a: 1, m1_b: 2, m2_a: 3, m2_b: 4 },
14 { d1: 'two', m1_a: 5, m1_b: 7, m2_a: 6, m2_b: 8 },
15 ]);
16});
17
18test('measure used as dim', () => {
19 expect(unstack(rows, 'd2', ['m1'])).toEqual([
20 { d1: 'one', m1_a: 1, m2: 3 },
21 { d1: 'one', m1_b: 2, m2: 4 },
22 { d1: 'two', m1_a: 5, m2: 6 },
23 { d1: 'two', m1_b: 7, m2: 8 },
24 ]);
25});
26
27const rows2: RowData[] = [
28 { d1: 'one', d2: 'a', m1: 1 },
29 { d1: 'one', d2: 'b', m1: 2 },
30 { d1: 'two', d2: 'a', m1: 5 },
31 { d1: 'three', d2: 'b', m1: 7 },
32];
33
34test('can null', () => {
35 expect(unstack(rows2, 'd2', ['m1'])).toEqual([
36 { d1: 'one', m1_a: 1, m1_b: 2 },
37 { d1: 'two', m1_a: 5 },
38 { d1: 'three', m1_b: 7 },
39 ]);
40});