@sis-cc/dotstatsuite-components 14.0.0 → 14.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/lib/rules/src/preparators/enhanceObservations.js +0 -7
  2. package/lib/rules/src/table/factories/getCells.js +1 -1
  3. package/lib/rules/src/table/factories/getCuratedCells.js +2 -3
  4. package/lib/rules/src/table/factories/getTableData.js +6 -11
  5. package/lib/rules/src/table/preparators/prepareData.js +30 -5
  6. package/lib/rules/src/v8-transformer.js +4 -22
  7. package/lib/rules2/src/duplicateObservations.js +51 -0
  8. package/lib/rules2/src/getDimensionValuesIndexes.js +19 -0
  9. package/lib/rules2/src/getDimensionsSimpleHierarchies.js +42 -0
  10. package/lib/rules2/src/getHCodelistsRefsInData.js +46 -0
  11. package/lib/rules2/src/hierarchiseDimension.js +47 -0
  12. package/lib/rules2/src/index.js +24 -0
  13. package/lib/rules2/src/invertTime.js +33 -0
  14. package/lib/rules2/src/parseHierarchicalCodelist.js +22 -0
  15. package/package.json +1 -1
  16. package/src/rules/src/preparators/enhanceObservations.js +0 -6
  17. package/src/rules/src/table/factories/getCells.js +2 -1
  18. package/src/rules/src/table/factories/getCuratedCells.js +3 -4
  19. package/src/rules/src/table/factories/getTableData.js +3 -22
  20. package/src/rules/src/table/preparators/prepareData.js +20 -3
  21. package/src/rules/src/v8-transformer.js +4 -26
  22. package/src/rules2/src/duplicateObservations.js +45 -0
  23. package/src/rules2/src/getDimensionValuesIndexes.js +13 -0
  24. package/src/rules2/src/getDimensionsSimpleHierarchies.js +34 -0
  25. package/src/rules2/src/getHCodelistsRefsInData.js +23 -0
  26. package/src/rules2/src/hierarchiseDimension.js +38 -0
  27. package/src/rules2/src/index.js +2 -0
  28. package/src/rules2/src/invertTime.js +22 -0
  29. package/src/rules2/src/parseHierarchicalCodelist.js +14 -0
  30. package/test/duplicateObservations.test.js +108 -0
  31. package/test/enhanceObservations.test.js +13 -48
  32. package/test/getCells.test.js +4 -11
  33. package/test/getDimensionValuesIndexes.test.js +33 -0
  34. package/test/getHCodelistsRefs.test.js +20 -0
  35. package/test/hierarchiseDimension.test.js +87 -0
  36. package/test/invertTime.test.js +75 -0
  37. package/test/mocks/h-codelist.json +2095 -0
  38. package/test/mocks/table-invert-time--data.json +80211 -0
  39. package/test/mocks/table-invert-time--inverted.json +80076 -0
  40. package/test/mocks/table-prep-multi-duplicate--duplicated.json +26938 -0
  41. package/test/mocks/table-prep-multi-duplicate--indexes.json +1417 -0
  42. package/test/mocks/table-prep-multi-duplicate--observations.json +20330 -0
  43. package/test/mocks/table-prep-simple-duplicate--duplicated.json +77502 -0
  44. package/test/mocks/table-prep-simple-duplicate--indexes.json +274 -0
  45. package/test/mocks/table-prep-simple-duplicate--observations.json +60002 -0
  46. package/test/parseHierarchicalCodelist.test.js +76 -0
  47. package/test/table-invert-time-perf.test.js +11 -0
  48. package/test/table-prep-duplicate-perf.test.js +21 -0
  49. package/test/table-prep-perf.test.js +5 -2
@@ -0,0 +1,87 @@
1
+ import { expect } from 'chai';
2
+ import { hierarchiseDimension } from '../src/rules2/src/hierarchiseDimension';
3
+
4
+ describe('hierarchiseDimension tests', () => {
5
+ it('basic test', () => {
6
+ const dimension = {
7
+ id: 'test',
8
+ values: [
9
+ { id: 'FRA' },
10
+ { id: 'GER' },
11
+ { id: 'OECD' },
12
+ { id: 'USA' },
13
+ { id: 'A' },
14
+ { id: 'EA' },
15
+ { id: 'CHI' },
16
+ { id: 'MEX' },
17
+ ]
18
+ };
19
+
20
+ const hierarchy = {
21
+ OECD: ['GER', 'FRA', 'USA'],
22
+ A: ['USA', 'MEX'],
23
+ EA: ['FRA', 'GER']
24
+ };
25
+
26
+ const hierarchised = {
27
+ id: 'test',
28
+ values: [
29
+ { id: 'OECD', parent: undefined, parents: [] },
30
+ { id: 'GER', parent: 'OECD', parents: ['OECD'] },
31
+ { id: 'FRA', parent: 'OECD', parents: ['OECD'] },
32
+ { id: 'USA', parent: 'OECD', parents: ['OECD'] },
33
+ { id: 'A', parent: undefined, parents: [] },
34
+ { id: 'USA', parent: 'A', parents: ['A'] },
35
+ { id: 'MEX', parent: 'A', parents: ['A'] },
36
+ { id: 'EA', parent: undefined, parents: [] },
37
+ { id: 'FRA', parent: 'EA', parents: ['EA'] },
38
+ { id: 'GER', parent: 'EA', parents: ['EA'] },
39
+ { id: 'CHI', parent: undefined, parents: [] },
40
+ ]
41
+ }
42
+
43
+ expect(hierarchiseDimension(dimension, hierarchy)).to.deep.equal(hierarchised);
44
+ });
45
+ it('missing ids defined in the hierarchy', () => {
46
+ const hierarchy = {
47
+ W: ['EA', 'A'],
48
+ A: ['NA', 'SA'],
49
+ NA: ['USA', 'CAN'],
50
+ SA: ['BRA'],
51
+ EA: ['FRA', 'GER'],
52
+ FRA: ['IDF', 'BRE', 'ALS']
53
+ };
54
+
55
+ const dimension = {
56
+ id: 'test',
57
+ values: [
58
+ { id: 'IDF' },
59
+ { id: 'CAN' },
60
+ { id: 'USA' },
61
+ { id: 'AFK' },
62
+ { id: 'GER' },
63
+ { id: 'FRA' },
64
+ { id: 'EA' },
65
+ { id: 'A' },
66
+ { id: 'W' },
67
+ ]
68
+ };
69
+
70
+ const hierarchised = {
71
+ id: 'test',
72
+ values: [
73
+ { id: 'CAN', parent: undefined, parents: [] },
74
+ { id: 'USA', parent: undefined, parents: [] },
75
+ { id: 'AFK', parent: undefined, parents: [] },
76
+ { id: 'W', parent: undefined, parents: [] },
77
+ { id: 'EA', parent: 'W', parents: ['W'] },
78
+ { id: 'FRA', parent: 'EA', parents: ['W', 'EA'] },
79
+ { id: 'IDF', parent: 'FRA', parents: ['W', 'EA', 'FRA'] },
80
+ { id: 'GER', parent: 'EA', parents: ['W', 'EA'] },
81
+ { id: 'A', parent: 'W', parents: ['W'] },
82
+ ]
83
+ };
84
+
85
+ expect(hierarchiseDimension(dimension, hierarchy)).to.deep.equal(hierarchised);
86
+ });
87
+ });
@@ -0,0 +1,75 @@
1
+ import { expect } from 'chai';
2
+ import { invertTime } from '../src/rules2/src/invertTime';
3
+
4
+ describe('invertTime tests', () => {
5
+ it('complete test', () => {
6
+ const dimensions = {
7
+ many: {
8
+ TIME_PERIOD: {
9
+ id: 'TIME_PERIOD',
10
+ __index: 1,
11
+ values: [
12
+ { id: 2000 },
13
+ { id: 2001 },
14
+ { id: 2002 },
15
+ { id: 2003 },
16
+ { id: 2004 },
17
+ { id: 2005 },
18
+ { id: 2006 },
19
+ { id: 2007 },
20
+ { id: 2008 },
21
+ { id: 2009 },
22
+ ]
23
+ }
24
+ }
25
+ };
26
+
27
+ const observations = {
28
+ '0:0': { orderedDimIndexes: [0, 0] },
29
+ '0:1': { orderedDimIndexes: [0, 1] },
30
+ '0:2': { orderedDimIndexes: [0, 2] },
31
+ '0:3': { orderedDimIndexes: [0, 3] },
32
+ '0:4': { orderedDimIndexes: [0, 4] },
33
+ '0:5': { orderedDimIndexes: [0, 5] },
34
+ '0:6': { orderedDimIndexes: [0, 6] },
35
+ '0:7': { orderedDimIndexes: [0, 7] },
36
+ '0:8': { orderedDimIndexes: [0, 8] },
37
+ '0:9': { orderedDimIndexes: [0, 9] },
38
+ };
39
+
40
+ const expected = {
41
+ dimensions: {
42
+ TIME_PERIOD: {
43
+ id: 'TIME_PERIOD',
44
+ __index: 1,
45
+ values: [
46
+ { id: 2009 },
47
+ { id: 2008 },
48
+ { id: 2007 },
49
+ { id: 2006 },
50
+ { id: 2005 },
51
+ { id: 2004 },
52
+ { id: 2003 },
53
+ { id: 2002 },
54
+ { id: 2001 },
55
+ { id: 2000 },
56
+ ]
57
+ }
58
+ },
59
+ observations: {
60
+ '0:0': { orderedDimIndexes: [0, 9] },
61
+ '0:1': { orderedDimIndexes: [0, 8] },
62
+ '0:2': { orderedDimIndexes: [0, 7] },
63
+ '0:3': { orderedDimIndexes: [0, 6] },
64
+ '0:4': { orderedDimIndexes: [0, 5] },
65
+ '0:5': { orderedDimIndexes: [0, 4] },
66
+ '0:6': { orderedDimIndexes: [0, 3] },
67
+ '0:7': { orderedDimIndexes: [0, 2] },
68
+ '0:8': { orderedDimIndexes: [0, 1] },
69
+ '0:9': { orderedDimIndexes: [0, 0] },
70
+ }
71
+ };
72
+
73
+ expect(invertTime({ dimensions, observations }, true)).to.deep.equal(expected);
74
+ });
75
+ });