|
| 1 | +import { transformData } from '../../../../src/plots/box/utils'; |
| 2 | +import { BOX_RANGE } from '../../../../src/plots/box/constant'; |
| 3 | +import { boxData } from '../../../data/box'; |
| 4 | + |
| 5 | +describe('transformData', () => { |
| 6 | + it('normal data: typeof yField is array', () => { |
| 7 | + const data = transformData(boxData, ['low', 'q1', 'median', 'q3', 'high']); |
| 8 | + expect(data).toEqual([ |
| 9 | + { x: 'Oceania', low: 1, q1: 9, median: 16, q3: 22, high: 24, [BOX_RANGE]: [1, 9, 16, 22, 24] }, |
| 10 | + { x: 'East Europe', low: 1, q1: 5, median: 8, q3: 12, high: 16, [BOX_RANGE]: [1, 5, 8, 12, 16] }, |
| 11 | + { x: 'Australia', low: 1, q1: 8, median: 12, q3: 19, high: 26, [BOX_RANGE]: [1, 8, 12, 19, 26] }, |
| 12 | + { x: 'South America', low: 2, q1: 8, median: 12, q3: 21, high: 28, [BOX_RANGE]: [2, 8, 12, 21, 28] }, |
| 13 | + { x: 'North Africa', low: 1, q1: 8, median: 14, q3: 18, high: 24, [BOX_RANGE]: [1, 8, 14, 18, 24] }, |
| 14 | + { x: 'North America', low: 3, q1: 10, median: 17, q3: 28, high: 30, [BOX_RANGE]: [3, 10, 17, 28, 30] }, |
| 15 | + { x: 'West Europe', low: 1, q1: 7, median: 10, q3: 17, high: 22, [BOX_RANGE]: [1, 7, 10, 17, 22] }, |
| 16 | + { x: 'West Africa', low: 1, q1: 6, median: 8, q3: 13, high: 16, [BOX_RANGE]: [1, 6, 8, 13, 16] }, |
| 17 | + ]); |
| 18 | + }); |
| 19 | + |
| 20 | + it('normal data: typeof yField is not array', () => { |
| 21 | + const data = transformData(boxData, 'low'); |
| 22 | + expect(data).toEqual(boxData); |
| 23 | + }); |
| 24 | + |
| 25 | + it('invalid data: typeof yField is array', () => { |
| 26 | + const data = [ |
| 27 | + { x: 'Oceania', low: 1, q1: 9, median: 16, q3: undefined, high: 24 }, |
| 28 | + { x: 'East Europe', low: 1, q1: undefined, median: 8, q3: 12, high: 16 }, |
| 29 | + { x: 'Australia', low: 1, q1: 8, median: 12, q3: 19, high: 26 }, |
| 30 | + { x: 'South America', low: 2, q1: 8, median: null, q3: 21, high: null }, |
| 31 | + ]; |
| 32 | + |
| 33 | + const newData = transformData(data, ['low', 'q1', 'median', 'q3', 'high']); |
| 34 | + expect(newData).toEqual([ |
| 35 | + { x: 'Oceania', low: 1, q1: 9, median: 16, q3: undefined, high: 24, [BOX_RANGE]: [1, 9, 16, undefined, 24] }, |
| 36 | + { x: 'East Europe', low: 1, q1: undefined, median: 8, q3: 12, high: 16, [BOX_RANGE]: [1, undefined, 8, 12, 16] }, |
| 37 | + { x: 'Australia', low: 1, q1: 8, median: 12, q3: 19, high: 26, [BOX_RANGE]: [1, 8, 12, 19, 26] }, |
| 38 | + { x: 'South America', low: 2, q1: 8, median: null, q3: 21, high: null, [BOX_RANGE]: [2, 8, null, 21, null] }, |
| 39 | + ]); |
| 40 | + }); |
| 41 | + |
| 42 | + it('invalid data: typeof yField is not array', () => { |
| 43 | + const data = [ |
| 44 | + { x: 'Oceania', low: 1, q1: 9, median: 16, q3: undefined, high: 24 }, |
| 45 | + { x: 'East Europe', low: 1, q1: undefined, median: 8, q3: 12, high: 16 }, |
| 46 | + { x: 'Australia', low: 1, q1: 8, median: 12, q3: 19, high: 26 }, |
| 47 | + { x: 'South America', low: 2, q1: 8, median: null, q3: 21, high: null }, |
| 48 | + ]; |
| 49 | + |
| 50 | + const newData = transformData(data, 'low'); |
| 51 | + expect(newData).toEqual(data); |
| 52 | + }); |
| 53 | +}); |
0 commit comments