@grnsft/if 0.1.2 → 0.1.3-beta
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.
- package/CONTRIBUTING.md +13 -17
- package/README.md +36 -18
- package/build/config/config.d.ts +12 -0
- package/build/config/config.js +54 -0
- package/build/config/strings.d.ts +8 -3
- package/build/config/strings.js +10 -6
- package/build/index.js +15 -8
- package/build/lib/models-universe.d.ts +10 -2
- package/build/lib/models-universe.js +52 -34
- package/build/lib/observatory.d.ts +20 -0
- package/build/lib/observatory.js +31 -0
- package/build/lib/planet-aggregator.d.ts +6 -0
- package/build/lib/planet-aggregator.js +35 -0
- package/build/lib/supercomputer.d.ts +7 -0
- package/build/lib/supercomputer.js +45 -6
- package/build/models/index.d.ts +1 -0
- package/build/models/index.js +6 -0
- package/build/models/time-sync.d.ts +55 -0
- package/build/models/time-sync.js +235 -0
- package/build/types/helpers.d.ts +1 -0
- package/build/types/helpers.js +3 -0
- package/build/types/impl.d.ts +14 -9
- package/build/types/impl.js +3 -1
- package/build/types/model-interface.d.ts +14 -0
- package/build/types/model-interface.js +3 -0
- package/build/types/models-universe.d.ts +5 -6
- package/build/types/models-universe.js +1 -1
- package/build/types/planet-aggregator.d.ts +6 -0
- package/build/types/planet-aggregator.js +3 -0
- package/build/types/process-args.d.ts +7 -0
- package/build/types/process-args.js +3 -0
- package/build/types/supercomputer.d.ts +4 -0
- package/build/types/supercomputer.js +3 -0
- package/build/types/time-sync.d.ts +9 -0
- package/build/types/time-sync.js +3 -0
- package/build/types/units-dealer.d.ts +3 -0
- package/build/types/units-dealer.js +3 -0
- package/build/types/units.d.ts +11 -0
- package/build/types/units.js +37 -0
- package/build/util/args.js +58 -0
- package/build/util/errors.d.ts +6 -0
- package/build/util/errors.js +25 -0
- package/build/util/helpers.js +18 -0
- package/build/util/units-dealer.d.ts +10 -0
- package/build/util/units-dealer.js +32 -0
- package/build/util/validations.d.ts +4 -0
- package/build/util/validations.js +29 -1
- package/build/util/yaml.d.ts +1 -2
- package/build/util/yaml.js +1 -1
- package/coverage/clover.xml +111 -65
- package/coverage/coverage-final.json +7 -6
- package/coverage/lcov-report/config/config.ts.html +12 -3
- package/coverage/lcov-report/config/index.html +1 -1
- package/coverage/lcov-report/config/index.ts.html +3 -3
- package/coverage/lcov-report/config/strings.ts.html +2 -2
- package/coverage/lcov-report/index.html +9 -9
- package/coverage/lcov-report/lib/index.html +24 -9
- package/coverage/lcov-report/lib/models-universe.ts.html +1 -1
- package/coverage/lcov-report/lib/observatory.ts.html +7 -7
- package/coverage/lcov-report/lib/planet-aggregator.ts.html +253 -0
- package/coverage/lcov-report/lib/supercomputer.ts.html +211 -52
- package/coverage/lcov-report/util/args.ts.html +1 -1
- package/coverage/lcov-report/util/errors.ts.html +10 -7
- package/coverage/lcov-report/util/index.html +1 -1
- package/coverage/lcov-report/util/yaml.ts.html +1 -1
- package/coverage/lcov.info +184 -105
- package/examples/impls/case-studies/aggregation.yml +97 -0
- package/examples/impls/case-studies/ntt-data-on-premise.yaml +0 -42
- package/examples/impls/test/aggregation-test.yml +109 -0
- package/examples/impls/test/large-impl.yml +257303 -0
- package/examples/impls/test/time-sync.yml +75 -0
- package/examples/ompls/aggregation-test.yml +340 -0
- package/examples/ompls/test/time-sync.yml +255 -0
- package/examples/ompls/time-sync.yml +212 -0
- package/hack-banner.png +0 -0
- package/package.json +3 -1
- package/src/config/units.yaml +11 -24
- package/src/models/README.md +266 -0
- package/tsconfig.build.tsbuildinfo +1 -0
- package/build/types/azure-importer.d.ts +0 -29
- package/build/types/azure-importer.js +0 -3
- package/build/types/boavizta.d.ts +0 -7
- package/build/types/boavizta.js +0 -3
- package/build/types/common.d.ts +0 -7
- package/build/types/common.js +0 -9
|
@@ -25,28 +25,28 @@
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
26
|
<span class="strong">100% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>202/202</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
33
|
<span class="strong">100% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>47/47</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
40
|
<span class="strong">100% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>37/37</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
47
|
<span class="strong">100% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>192/192</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -99,13 +99,13 @@
|
|
|
99
99
|
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
100
100
|
</td>
|
|
101
101
|
<td data-value="100" class="pct high">100%</td>
|
|
102
|
-
<td data-value="
|
|
102
|
+
<td data-value="141" class="abs high">141/141</td>
|
|
103
103
|
<td data-value="100" class="pct high">100%</td>
|
|
104
|
-
<td data-value="
|
|
104
|
+
<td data-value="42" class="abs high">42/42</td>
|
|
105
105
|
<td data-value="100" class="pct high">100%</td>
|
|
106
|
-
<td data-value="
|
|
106
|
+
<td data-value="23" class="abs high">23/23</td>
|
|
107
107
|
<td data-value="100" class="pct high">100%</td>
|
|
108
|
-
<td data-value="
|
|
108
|
+
<td data-value="138" class="abs high">138/138</td>
|
|
109
109
|
</tr>
|
|
110
110
|
|
|
111
111
|
<tr>
|
|
@@ -131,7 +131,7 @@
|
|
|
131
131
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
132
132
|
Code coverage generated by
|
|
133
133
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
134
|
-
at 2023-
|
|
134
|
+
at 2023-12-04T08:39:10.143Z
|
|
135
135
|
</div>
|
|
136
136
|
<script src="prettify.js"></script>
|
|
137
137
|
<script>
|
|
@@ -25,28 +25,28 @@
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
26
|
<span class="strong">100% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>141/141</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
33
|
<span class="strong">100% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>42/42</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
40
|
<span class="strong">100% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>23/23</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
47
|
<span class="strong">100% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>138/138</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -108,19 +108,34 @@
|
|
|
108
108
|
<td data-value="7" class="abs high">7/7</td>
|
|
109
109
|
</tr>
|
|
110
110
|
|
|
111
|
+
<tr>
|
|
112
|
+
<td class="file high" data-value="planet-aggregator.ts"><a href="planet-aggregator.ts.html">planet-aggregator.ts</a></td>
|
|
113
|
+
<td data-value="100" class="pic high">
|
|
114
|
+
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
115
|
+
</td>
|
|
116
|
+
<td data-value="100" class="pct high">100%</td>
|
|
117
|
+
<td data-value="22" class="abs high">22/22</td>
|
|
118
|
+
<td data-value="100" class="pct high">100%</td>
|
|
119
|
+
<td data-value="8" class="abs high">8/8</td>
|
|
120
|
+
<td data-value="100" class="pct high">100%</td>
|
|
121
|
+
<td data-value="2" class="abs high">2/2</td>
|
|
122
|
+
<td data-value="100" class="pct high">100%</td>
|
|
123
|
+
<td data-value="21" class="abs high">21/21</td>
|
|
124
|
+
</tr>
|
|
125
|
+
|
|
111
126
|
<tr>
|
|
112
127
|
<td class="file high" data-value="supercomputer.ts"><a href="supercomputer.ts.html">supercomputer.ts</a></td>
|
|
113
128
|
<td data-value="100" class="pic high">
|
|
114
129
|
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
115
130
|
</td>
|
|
116
131
|
<td data-value="100" class="pct high">100%</td>
|
|
117
|
-
<td data-value="
|
|
132
|
+
<td data-value="71" class="abs high">71/71</td>
|
|
118
133
|
<td data-value="100" class="pct high">100%</td>
|
|
119
|
-
<td data-value="
|
|
134
|
+
<td data-value="24" class="abs high">24/24</td>
|
|
120
135
|
<td data-value="100" class="pct high">100%</td>
|
|
121
|
-
<td data-value="
|
|
136
|
+
<td data-value="10" class="abs high">10/10</td>
|
|
122
137
|
<td data-value="100" class="pct high">100%</td>
|
|
123
|
-
<td data-value="
|
|
138
|
+
<td data-value="70" class="abs high">70/70</td>
|
|
124
139
|
</tr>
|
|
125
140
|
|
|
126
141
|
</tbody>
|
|
@@ -131,7 +146,7 @@
|
|
|
131
146
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
132
147
|
Code coverage generated by
|
|
133
148
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
134
|
-
at 2023-
|
|
149
|
+
at 2023-12-04T08:39:10.143Z
|
|
135
150
|
</div>
|
|
136
151
|
<script src="../prettify.js"></script>
|
|
137
152
|
<script>
|
|
@@ -460,7 +460,7 @@ export class ModelsUniverse {
|
|
|
460
460
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
461
461
|
Code coverage generated by
|
|
462
462
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
463
|
-
at 2023-
|
|
463
|
+
at 2023-12-04T08:39:10.143Z
|
|
464
464
|
</div>
|
|
465
465
|
<script src="../prettify.js"></script>
|
|
466
466
|
<script>
|
|
@@ -104,31 +104,31 @@
|
|
|
104
104
|
<span class="cline-any cline-neutral"> </span>
|
|
105
105
|
<span class="cline-any cline-yes">2x</span>
|
|
106
106
|
<span class="cline-any cline-neutral"> </span>
|
|
107
|
-
<span class="cline-any cline-yes">
|
|
107
|
+
<span class="cline-any cline-yes">20x</span>
|
|
108
108
|
<span class="cline-any cline-neutral"> </span>
|
|
109
109
|
<span class="cline-any cline-neutral"> </span>
|
|
110
110
|
<span class="cline-any cline-neutral"> </span>
|
|
111
111
|
<span class="cline-any cline-neutral"> </span>
|
|
112
112
|
<span class="cline-any cline-neutral"> </span>
|
|
113
|
-
<span class="cline-any cline-yes">
|
|
113
|
+
<span class="cline-any cline-yes">20x</span>
|
|
114
114
|
<span class="cline-any cline-neutral"> </span>
|
|
115
115
|
<span class="cline-any cline-neutral"> </span>
|
|
116
116
|
<span class="cline-any cline-neutral"> </span>
|
|
117
117
|
<span class="cline-any cline-neutral"> </span>
|
|
118
118
|
<span class="cline-any cline-neutral"> </span>
|
|
119
119
|
<span class="cline-any cline-neutral"> </span>
|
|
120
|
-
<span class="cline-any cline-yes">
|
|
120
|
+
<span class="cline-any cline-yes">37x</span>
|
|
121
121
|
<span class="cline-any cline-neutral"> </span>
|
|
122
|
-
<span class="cline-any cline-yes">
|
|
122
|
+
<span class="cline-any cline-yes">37x</span>
|
|
123
123
|
<span class="cline-any cline-neutral"> </span>
|
|
124
|
-
<span class="cline-any cline-yes">
|
|
124
|
+
<span class="cline-any cline-yes">37x</span>
|
|
125
125
|
<span class="cline-any cline-neutral"> </span>
|
|
126
126
|
<span class="cline-any cline-neutral"> </span>
|
|
127
127
|
<span class="cline-any cline-neutral"> </span>
|
|
128
128
|
<span class="cline-any cline-neutral"> </span>
|
|
129
129
|
<span class="cline-any cline-neutral"> </span>
|
|
130
130
|
<span class="cline-any cline-neutral"> </span>
|
|
131
|
-
<span class="cline-any cline-yes">
|
|
131
|
+
<span class="cline-any cline-yes">17x</span>
|
|
132
132
|
<span class="cline-any cline-neutral"> </span>
|
|
133
133
|
<span class="cline-any cline-neutral"> </span>
|
|
134
134
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import {ModelPluginInterface} from '../types/model-interface';
|
|
@@ -172,7 +172,7 @@ export class Observatory {
|
|
|
172
172
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
173
173
|
Code coverage generated by
|
|
174
174
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
175
|
-
at 2023-
|
|
175
|
+
at 2023-12-04T08:39:10.143Z
|
|
176
176
|
</div>
|
|
177
177
|
<script src="../prettify.js"></script>
|
|
178
178
|
<script>
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for lib/planet-aggregator.ts</title>
|
|
7
|
+
<meta charset="utf-8" />
|
|
8
|
+
<link rel="stylesheet" href="../prettify.css" />
|
|
9
|
+
<link rel="stylesheet" href="../base.css" />
|
|
10
|
+
<link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
|
|
11
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
+
<style type='text/css'>
|
|
13
|
+
.coverage-summary .sorter {
|
|
14
|
+
background-image: url(../sort-arrow-sprite.png);
|
|
15
|
+
}
|
|
16
|
+
</style>
|
|
17
|
+
</head>
|
|
18
|
+
|
|
19
|
+
<body>
|
|
20
|
+
<div class='wrapper'>
|
|
21
|
+
<div class='pad1'>
|
|
22
|
+
<h1><a href="../index.html">All files</a> / <a href="index.html">lib</a> planet-aggregator.ts</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">100% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>22/22</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">100% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>8/8</span>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<div class='fl pad1y space-right2'>
|
|
40
|
+
<span class="strong">100% </span>
|
|
41
|
+
<span class="quiet">Functions</span>
|
|
42
|
+
<span class='fraction'>2/2</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">100% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>21/21</span>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
</div>
|
|
54
|
+
<p class="quiet">
|
|
55
|
+
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
+
</p>
|
|
57
|
+
<template id="filterTemplate">
|
|
58
|
+
<div class="quiet">
|
|
59
|
+
Filter:
|
|
60
|
+
<input oninput="onInput()" type="search" id="fileSearch">
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
63
|
+
</div>
|
|
64
|
+
<div class='status-line high'></div>
|
|
65
|
+
<pre><table class="coverage">
|
|
66
|
+
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
+
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
+
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
+
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
+
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
+
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
+
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
+
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
+
<a name='L9'></a><a href='#L9'>9</a>
|
|
75
|
+
<a name='L10'></a><a href='#L10'>10</a>
|
|
76
|
+
<a name='L11'></a><a href='#L11'>11</a>
|
|
77
|
+
<a name='L12'></a><a href='#L12'>12</a>
|
|
78
|
+
<a name='L13'></a><a href='#L13'>13</a>
|
|
79
|
+
<a name='L14'></a><a href='#L14'>14</a>
|
|
80
|
+
<a name='L15'></a><a href='#L15'>15</a>
|
|
81
|
+
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
|
+
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
|
+
<a name='L18'></a><a href='#L18'>18</a>
|
|
84
|
+
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
|
+
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
|
+
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
+
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
+
<a name='L23'></a><a href='#L23'>23</a>
|
|
89
|
+
<a name='L24'></a><a href='#L24'>24</a>
|
|
90
|
+
<a name='L25'></a><a href='#L25'>25</a>
|
|
91
|
+
<a name='L26'></a><a href='#L26'>26</a>
|
|
92
|
+
<a name='L27'></a><a href='#L27'>27</a>
|
|
93
|
+
<a name='L28'></a><a href='#L28'>28</a>
|
|
94
|
+
<a name='L29'></a><a href='#L29'>29</a>
|
|
95
|
+
<a name='L30'></a><a href='#L30'>30</a>
|
|
96
|
+
<a name='L31'></a><a href='#L31'>31</a>
|
|
97
|
+
<a name='L32'></a><a href='#L32'>32</a>
|
|
98
|
+
<a name='L33'></a><a href='#L33'>33</a>
|
|
99
|
+
<a name='L34'></a><a href='#L34'>34</a>
|
|
100
|
+
<a name='L35'></a><a href='#L35'>35</a>
|
|
101
|
+
<a name='L36'></a><a href='#L36'>36</a>
|
|
102
|
+
<a name='L37'></a><a href='#L37'>37</a>
|
|
103
|
+
<a name='L38'></a><a href='#L38'>38</a>
|
|
104
|
+
<a name='L39'></a><a href='#L39'>39</a>
|
|
105
|
+
<a name='L40'></a><a href='#L40'>40</a>
|
|
106
|
+
<a name='L41'></a><a href='#L41'>41</a>
|
|
107
|
+
<a name='L42'></a><a href='#L42'>42</a>
|
|
108
|
+
<a name='L43'></a><a href='#L43'>43</a>
|
|
109
|
+
<a name='L44'></a><a href='#L44'>44</a>
|
|
110
|
+
<a name='L45'></a><a href='#L45'>45</a>
|
|
111
|
+
<a name='L46'></a><a href='#L46'>46</a>
|
|
112
|
+
<a name='L47'></a><a href='#L47'>47</a>
|
|
113
|
+
<a name='L48'></a><a href='#L48'>48</a>
|
|
114
|
+
<a name='L49'></a><a href='#L49'>49</a>
|
|
115
|
+
<a name='L50'></a><a href='#L50'>50</a>
|
|
116
|
+
<a name='L51'></a><a href='#L51'>51</a>
|
|
117
|
+
<a name='L52'></a><a href='#L52'>52</a>
|
|
118
|
+
<a name='L53'></a><a href='#L53'>53</a>
|
|
119
|
+
<a name='L54'></a><a href='#L54'>54</a>
|
|
120
|
+
<a name='L55'></a><a href='#L55'>55</a>
|
|
121
|
+
<a name='L56'></a><a href='#L56'>56</a>
|
|
122
|
+
<a name='L57'></a><a href='#L57'>57</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
|
|
123
|
+
<span class="cline-any cline-neutral"> </span>
|
|
124
|
+
<span class="cline-any cline-yes">2x</span>
|
|
125
|
+
<span class="cline-any cline-neutral"> </span>
|
|
126
|
+
<span class="cline-any cline-neutral"> </span>
|
|
127
|
+
<span class="cline-any cline-neutral"> </span>
|
|
128
|
+
<span class="cline-any cline-neutral"> </span>
|
|
129
|
+
<span class="cline-any cline-neutral"> </span>
|
|
130
|
+
<span class="cline-any cline-neutral"> </span>
|
|
131
|
+
<span class="cline-any cline-neutral"> </span>
|
|
132
|
+
<span class="cline-any cline-yes">2x</span>
|
|
133
|
+
<span class="cline-any cline-neutral"> </span>
|
|
134
|
+
<span class="cline-any cline-yes">2x</span>
|
|
135
|
+
<span class="cline-any cline-neutral"> </span>
|
|
136
|
+
<span class="cline-any cline-neutral"> </span>
|
|
137
|
+
<span class="cline-any cline-neutral"> </span>
|
|
138
|
+
<span class="cline-any cline-neutral"> </span>
|
|
139
|
+
<span class="cline-any cline-yes">2x</span>
|
|
140
|
+
<span class="cline-any cline-neutral"> </span>
|
|
141
|
+
<span class="cline-any cline-neutral"> </span>
|
|
142
|
+
<span class="cline-any cline-neutral"> </span>
|
|
143
|
+
<span class="cline-any cline-yes">18x</span>
|
|
144
|
+
<span class="cline-any cline-neutral"> </span>
|
|
145
|
+
<span class="cline-any cline-neutral"> </span>
|
|
146
|
+
<span class="cline-any cline-neutral"> </span>
|
|
147
|
+
<span class="cline-any cline-yes">2x</span>
|
|
148
|
+
<span class="cline-any cline-neutral"> </span>
|
|
149
|
+
<span class="cline-any cline-neutral"> </span>
|
|
150
|
+
<span class="cline-any cline-neutral"> </span>
|
|
151
|
+
<span class="cline-any cline-neutral"> </span>
|
|
152
|
+
<span class="cline-any cline-yes">16x</span>
|
|
153
|
+
<span class="cline-any cline-yes">16x</span>
|
|
154
|
+
<span class="cline-any cline-neutral"> </span>
|
|
155
|
+
<span class="cline-any cline-yes">16x</span>
|
|
156
|
+
<span class="cline-any cline-yes">22x</span>
|
|
157
|
+
<span class="cline-any cline-yes">28x</span>
|
|
158
|
+
<span class="cline-any cline-yes">2x</span>
|
|
159
|
+
<span class="cline-any cline-neutral"> </span>
|
|
160
|
+
<span class="cline-any cline-neutral"> </span>
|
|
161
|
+
<span class="cline-any cline-neutral"> </span>
|
|
162
|
+
<span class="cline-any cline-neutral"> </span>
|
|
163
|
+
<span class="cline-any cline-yes">26x</span>
|
|
164
|
+
<span class="cline-any cline-yes">26x</span>
|
|
165
|
+
<span class="cline-any cline-yes">26x</span>
|
|
166
|
+
<span class="cline-any cline-yes">26x</span>
|
|
167
|
+
<span class="cline-any cline-neutral"> </span>
|
|
168
|
+
<span class="cline-any cline-yes">26x</span>
|
|
169
|
+
<span class="cline-any cline-yes">16x</span>
|
|
170
|
+
<span class="cline-any cline-yes">13x</span>
|
|
171
|
+
<span class="cline-any cline-neutral"> </span>
|
|
172
|
+
<span class="cline-any cline-neutral"> </span>
|
|
173
|
+
<span class="cline-any cline-neutral"> </span>
|
|
174
|
+
<span class="cline-any cline-neutral"> </span>
|
|
175
|
+
<span class="cline-any cline-yes">20x</span>
|
|
176
|
+
<span class="cline-any cline-neutral"> </span>
|
|
177
|
+
<span class="cline-any cline-neutral"> </span>
|
|
178
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import {ERRORS} from '../util/errors';
|
|
179
|
+
|
|
180
|
+
import {CONFIG} from '../config';
|
|
181
|
+
|
|
182
|
+
import {ModelParams} from '../types/impl';
|
|
183
|
+
import {
|
|
184
|
+
AggregationResult,
|
|
185
|
+
PlanetAggregatorParams,
|
|
186
|
+
} from '../types/planet-aggregator';
|
|
187
|
+
|
|
188
|
+
const {InvalidAggregationParams} = ERRORS;
|
|
189
|
+
|
|
190
|
+
const {AVERAGE_NAMES} = CONFIG;
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Aggregates child node level metrics. Uses provided aggregation `params`.
|
|
194
|
+
*/
|
|
195
|
+
export const planetAggregator = (
|
|
196
|
+
inputs: ModelParams[],
|
|
197
|
+
params: PlanetAggregatorParams
|
|
198
|
+
) => {
|
|
199
|
+
if (
|
|
200
|
+
!params['aggregation-metrics'] ||
|
|
201
|
+
params['aggregation-metrics'].length === 0
|
|
202
|
+
) {
|
|
203
|
+
throw new InvalidAggregationParams(
|
|
204
|
+
'Provided aggregation metrics are invalid. Please provide an array of strings.'
|
|
205
|
+
);
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
const aggregationMetrics = params['aggregation-metrics'];
|
|
209
|
+
const aggregationMethod = params['aggregation-method'];
|
|
210
|
+
|
|
211
|
+
return inputs.reduce((acc, input: ModelParams, index) => {
|
|
212
|
+
for (const metric of aggregationMetrics) {
|
|
213
|
+
if (!(metric in input)) {
|
|
214
|
+
throw new InvalidAggregationParams(
|
|
215
|
+
`Aggregation metric ${metric} is not found in inputs[${index}].`
|
|
216
|
+
);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
const accessKey = `aggregated-${metric}`;
|
|
220
|
+
const value = parseFloat(input[metric]);
|
|
221
|
+
acc[accessKey] = acc[accessKey] ?? 0;
|
|
222
|
+
acc[accessKey] += value;
|
|
223
|
+
|
|
224
|
+
if (index === inputs.length - 1) {
|
|
225
|
+
if (AVERAGE_NAMES.includes(aggregationMethod)) {
|
|
226
|
+
acc[accessKey] /= inputs.length;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
return acc;
|
|
232
|
+
}, {} as AggregationResult);
|
|
233
|
+
};
|
|
234
|
+
</pre></td></tr></table></pre>
|
|
235
|
+
|
|
236
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
237
|
+
</div><!-- /wrapper -->
|
|
238
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
239
|
+
Code coverage generated by
|
|
240
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
241
|
+
at 2023-12-04T08:39:10.143Z
|
|
242
|
+
</div>
|
|
243
|
+
<script src="../prettify.js"></script>
|
|
244
|
+
<script>
|
|
245
|
+
window.onload = function () {
|
|
246
|
+
prettyPrint();
|
|
247
|
+
};
|
|
248
|
+
</script>
|
|
249
|
+
<script src="../sorter.js"></script>
|
|
250
|
+
<script src="../block-navigation.js"></script>
|
|
251
|
+
</body>
|
|
252
|
+
</html>
|
|
253
|
+
|