@grnsft/if 0.1.0 → 0.1.1
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/coverage/clover.xml +132 -1118
- package/coverage/coverage-final.json +9 -26
- package/coverage/lcov-report/config/config.ts.html +3 -66
- package/coverage/lcov-report/config/index.html +15 -15
- package/coverage/lcov-report/config/index.ts.html +3 -3
- package/coverage/lcov-report/config/strings.ts.html +82 -19
- package/coverage/lcov-report/index.html +36 -231
- package/coverage/lcov-report/lib/index.html +43 -13
- package/coverage/lcov-report/lib/models-universe.ts.html +433 -0
- package/coverage/lcov-report/lib/observatory.ts.html +187 -0
- package/coverage/lcov-report/lib/supercomputer.ts.html +553 -0
- package/coverage/lcov-report/util/args.ts.html +23 -8
- package/coverage/lcov-report/util/errors.ts.html +157 -0
- package/coverage/lcov-report/util/index.html +20 -50
- package/coverage/lcov-report/util/yaml.ts.html +17 -11
- package/coverage/lcov.info +225 -2004
- package/examples/impls/test/sci.yml +37 -13
- package/package.json +4 -3
- package/tsconfig.build.tsbuildinfo +1 -1
- package/build/config/config.d.ts +0 -9
- package/build/config/config.js +0 -51
- package/build/lib/observatory.d.ts +0 -20
- package/build/lib/observatory.js +0 -31
- package/build/types/model-interface.d.ts +0 -16
- package/build/types/model-interface.js +0 -3
- package/build/types/process-args.d.ts +0 -7
- package/build/types/process-args.js +0 -3
- package/build/types/supercomputer.d.ts +0 -4
- package/build/types/supercomputer.js +0 -3
- package/build/util/args.js +0 -48
- package/build/util/errors.d.ts +0 -6
- package/build/util/errors.js +0 -22
- package/build/util/helpers.js +0 -18
- package/src/__mocks__/boavizta/countries.json +0 -138
- package/src/__mocks__/boavizta/instance_types.json +0 -625
- package/src/__mocks__/boavizta/providers.json +0 -1
- package/src/__mocks__/watt-time/data.json +0 -119
- package/yarn-error.log +0 -5854
|
@@ -0,0 +1,553 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for lib/supercomputer.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> supercomputer.ts</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">95.91% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>47/49</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">86.66% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>13/15</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'>7/7</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">95.83% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>46/48</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>
|
|
123
|
+
<a name='L58'></a><a href='#L58'>58</a>
|
|
124
|
+
<a name='L59'></a><a href='#L59'>59</a>
|
|
125
|
+
<a name='L60'></a><a href='#L60'>60</a>
|
|
126
|
+
<a name='L61'></a><a href='#L61'>61</a>
|
|
127
|
+
<a name='L62'></a><a href='#L62'>62</a>
|
|
128
|
+
<a name='L63'></a><a href='#L63'>63</a>
|
|
129
|
+
<a name='L64'></a><a href='#L64'>64</a>
|
|
130
|
+
<a name='L65'></a><a href='#L65'>65</a>
|
|
131
|
+
<a name='L66'></a><a href='#L66'>66</a>
|
|
132
|
+
<a name='L67'></a><a href='#L67'>67</a>
|
|
133
|
+
<a name='L68'></a><a href='#L68'>68</a>
|
|
134
|
+
<a name='L69'></a><a href='#L69'>69</a>
|
|
135
|
+
<a name='L70'></a><a href='#L70'>70</a>
|
|
136
|
+
<a name='L71'></a><a href='#L71'>71</a>
|
|
137
|
+
<a name='L72'></a><a href='#L72'>72</a>
|
|
138
|
+
<a name='L73'></a><a href='#L73'>73</a>
|
|
139
|
+
<a name='L74'></a><a href='#L74'>74</a>
|
|
140
|
+
<a name='L75'></a><a href='#L75'>75</a>
|
|
141
|
+
<a name='L76'></a><a href='#L76'>76</a>
|
|
142
|
+
<a name='L77'></a><a href='#L77'>77</a>
|
|
143
|
+
<a name='L78'></a><a href='#L78'>78</a>
|
|
144
|
+
<a name='L79'></a><a href='#L79'>79</a>
|
|
145
|
+
<a name='L80'></a><a href='#L80'>80</a>
|
|
146
|
+
<a name='L81'></a><a href='#L81'>81</a>
|
|
147
|
+
<a name='L82'></a><a href='#L82'>82</a>
|
|
148
|
+
<a name='L83'></a><a href='#L83'>83</a>
|
|
149
|
+
<a name='L84'></a><a href='#L84'>84</a>
|
|
150
|
+
<a name='L85'></a><a href='#L85'>85</a>
|
|
151
|
+
<a name='L86'></a><a href='#L86'>86</a>
|
|
152
|
+
<a name='L87'></a><a href='#L87'>87</a>
|
|
153
|
+
<a name='L88'></a><a href='#L88'>88</a>
|
|
154
|
+
<a name='L89'></a><a href='#L89'>89</a>
|
|
155
|
+
<a name='L90'></a><a href='#L90'>90</a>
|
|
156
|
+
<a name='L91'></a><a href='#L91'>91</a>
|
|
157
|
+
<a name='L92'></a><a href='#L92'>92</a>
|
|
158
|
+
<a name='L93'></a><a href='#L93'>93</a>
|
|
159
|
+
<a name='L94'></a><a href='#L94'>94</a>
|
|
160
|
+
<a name='L95'></a><a href='#L95'>95</a>
|
|
161
|
+
<a name='L96'></a><a href='#L96'>96</a>
|
|
162
|
+
<a name='L97'></a><a href='#L97'>97</a>
|
|
163
|
+
<a name='L98'></a><a href='#L98'>98</a>
|
|
164
|
+
<a name='L99'></a><a href='#L99'>99</a>
|
|
165
|
+
<a name='L100'></a><a href='#L100'>100</a>
|
|
166
|
+
<a name='L101'></a><a href='#L101'>101</a>
|
|
167
|
+
<a name='L102'></a><a href='#L102'>102</a>
|
|
168
|
+
<a name='L103'></a><a href='#L103'>103</a>
|
|
169
|
+
<a name='L104'></a><a href='#L104'>104</a>
|
|
170
|
+
<a name='L105'></a><a href='#L105'>105</a>
|
|
171
|
+
<a name='L106'></a><a href='#L106'>106</a>
|
|
172
|
+
<a name='L107'></a><a href='#L107'>107</a>
|
|
173
|
+
<a name='L108'></a><a href='#L108'>108</a>
|
|
174
|
+
<a name='L109'></a><a href='#L109'>109</a>
|
|
175
|
+
<a name='L110'></a><a href='#L110'>110</a>
|
|
176
|
+
<a name='L111'></a><a href='#L111'>111</a>
|
|
177
|
+
<a name='L112'></a><a href='#L112'>112</a>
|
|
178
|
+
<a name='L113'></a><a href='#L113'>113</a>
|
|
179
|
+
<a name='L114'></a><a href='#L114'>114</a>
|
|
180
|
+
<a name='L115'></a><a href='#L115'>115</a>
|
|
181
|
+
<a name='L116'></a><a href='#L116'>116</a>
|
|
182
|
+
<a name='L117'></a><a href='#L117'>117</a>
|
|
183
|
+
<a name='L118'></a><a href='#L118'>118</a>
|
|
184
|
+
<a name='L119'></a><a href='#L119'>119</a>
|
|
185
|
+
<a name='L120'></a><a href='#L120'>120</a>
|
|
186
|
+
<a name='L121'></a><a href='#L121'>121</a>
|
|
187
|
+
<a name='L122'></a><a href='#L122'>122</a>
|
|
188
|
+
<a name='L123'></a><a href='#L123'>123</a>
|
|
189
|
+
<a name='L124'></a><a href='#L124'>124</a>
|
|
190
|
+
<a name='L125'></a><a href='#L125'>125</a>
|
|
191
|
+
<a name='L126'></a><a href='#L126'>126</a>
|
|
192
|
+
<a name='L127'></a><a href='#L127'>127</a>
|
|
193
|
+
<a name='L128'></a><a href='#L128'>128</a>
|
|
194
|
+
<a name='L129'></a><a href='#L129'>129</a>
|
|
195
|
+
<a name='L130'></a><a href='#L130'>130</a>
|
|
196
|
+
<a name='L131'></a><a href='#L131'>131</a>
|
|
197
|
+
<a name='L132'></a><a href='#L132'>132</a>
|
|
198
|
+
<a name='L133'></a><a href='#L133'>133</a>
|
|
199
|
+
<a name='L134'></a><a href='#L134'>134</a>
|
|
200
|
+
<a name='L135'></a><a href='#L135'>135</a>
|
|
201
|
+
<a name='L136'></a><a href='#L136'>136</a>
|
|
202
|
+
<a name='L137'></a><a href='#L137'>137</a>
|
|
203
|
+
<a name='L138'></a><a href='#L138'>138</a>
|
|
204
|
+
<a name='L139'></a><a href='#L139'>139</a>
|
|
205
|
+
<a name='L140'></a><a href='#L140'>140</a>
|
|
206
|
+
<a name='L141'></a><a href='#L141'>141</a>
|
|
207
|
+
<a name='L142'></a><a href='#L142'>142</a>
|
|
208
|
+
<a name='L143'></a><a href='#L143'>143</a>
|
|
209
|
+
<a name='L144'></a><a href='#L144'>144</a>
|
|
210
|
+
<a name='L145'></a><a href='#L145'>145</a>
|
|
211
|
+
<a name='L146'></a><a href='#L146'>146</a>
|
|
212
|
+
<a name='L147'></a><a href='#L147'>147</a>
|
|
213
|
+
<a name='L148'></a><a href='#L148'>148</a>
|
|
214
|
+
<a name='L149'></a><a href='#L149'>149</a>
|
|
215
|
+
<a name='L150'></a><a href='#L150'>150</a>
|
|
216
|
+
<a name='L151'></a><a href='#L151'>151</a>
|
|
217
|
+
<a name='L152'></a><a href='#L152'>152</a>
|
|
218
|
+
<a name='L153'></a><a href='#L153'>153</a>
|
|
219
|
+
<a name='L154'></a><a href='#L154'>154</a>
|
|
220
|
+
<a name='L155'></a><a href='#L155'>155</a>
|
|
221
|
+
<a name='L156'></a><a href='#L156'>156</a>
|
|
222
|
+
<a name='L157'></a><a href='#L157'>157</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
223
|
+
<span class="cline-any cline-yes">1x</span>
|
|
224
|
+
<span class="cline-any cline-neutral"> </span>
|
|
225
|
+
<span class="cline-any cline-yes">1x</span>
|
|
226
|
+
<span class="cline-any cline-neutral"> </span>
|
|
227
|
+
<span class="cline-any cline-yes">1x</span>
|
|
228
|
+
<span class="cline-any cline-neutral"> </span>
|
|
229
|
+
<span class="cline-any cline-neutral"> </span>
|
|
230
|
+
<span class="cline-any cline-neutral"> </span>
|
|
231
|
+
<span class="cline-any cline-neutral"> </span>
|
|
232
|
+
<span class="cline-any cline-yes">1x</span>
|
|
233
|
+
<span class="cline-any cline-neutral"> </span>
|
|
234
|
+
<span class="cline-any cline-yes">1x</span>
|
|
235
|
+
<span class="cline-any cline-neutral"> </span>
|
|
236
|
+
<span class="cline-any cline-neutral"> </span>
|
|
237
|
+
<span class="cline-any cline-neutral"> </span>
|
|
238
|
+
<span class="cline-any cline-neutral"> </span>
|
|
239
|
+
<span class="cline-any cline-yes">1x</span>
|
|
240
|
+
<span class="cline-any cline-yes">4x</span>
|
|
241
|
+
<span class="cline-any cline-neutral"> </span>
|
|
242
|
+
<span class="cline-any cline-neutral"> </span>
|
|
243
|
+
<span class="cline-any cline-neutral"> </span>
|
|
244
|
+
<span class="cline-any cline-neutral"> </span>
|
|
245
|
+
<span class="cline-any cline-yes">4x</span>
|
|
246
|
+
<span class="cline-any cline-yes">4x</span>
|
|
247
|
+
<span class="cline-any cline-neutral"> </span>
|
|
248
|
+
<span class="cline-any cline-neutral"> </span>
|
|
249
|
+
<span class="cline-any cline-neutral"> </span>
|
|
250
|
+
<span class="cline-any cline-neutral"> </span>
|
|
251
|
+
<span class="cline-any cline-neutral"> </span>
|
|
252
|
+
<span class="cline-any cline-neutral"> </span>
|
|
253
|
+
<span class="cline-any cline-yes">14x</span>
|
|
254
|
+
<span class="cline-any cline-no"> </span>
|
|
255
|
+
<span class="cline-any cline-neutral"> </span>
|
|
256
|
+
<span class="cline-any cline-neutral"> </span>
|
|
257
|
+
<span class="cline-any cline-yes">14x</span>
|
|
258
|
+
<span class="cline-any cline-yes">14x</span>
|
|
259
|
+
<span class="cline-any cline-yes">16x</span>
|
|
260
|
+
<span class="cline-any cline-neutral"> </span>
|
|
261
|
+
<span class="cline-any cline-neutral"> </span>
|
|
262
|
+
<span class="cline-any cline-neutral"> </span>
|
|
263
|
+
<span class="cline-any cline-neutral"> </span>
|
|
264
|
+
<span class="cline-any cline-yes">16x</span>
|
|
265
|
+
<span class="cline-any cline-neutral"> </span>
|
|
266
|
+
<span class="cline-any cline-neutral"> </span>
|
|
267
|
+
<span class="cline-any cline-yes">14x</span>
|
|
268
|
+
<span class="cline-any cline-neutral"> </span>
|
|
269
|
+
<span class="cline-any cline-neutral"> </span>
|
|
270
|
+
<span class="cline-any cline-neutral"> </span>
|
|
271
|
+
<span class="cline-any cline-neutral"> </span>
|
|
272
|
+
<span class="cline-any cline-neutral"> </span>
|
|
273
|
+
<span class="cline-any cline-neutral"> </span>
|
|
274
|
+
<span class="cline-any cline-neutral"> </span>
|
|
275
|
+
<span class="cline-any cline-neutral"> </span>
|
|
276
|
+
<span class="cline-any cline-neutral"> </span>
|
|
277
|
+
<span class="cline-any cline-neutral"> </span>
|
|
278
|
+
<span class="cline-any cline-yes">7x</span>
|
|
279
|
+
<span class="cline-any cline-yes">7x</span>
|
|
280
|
+
<span class="cline-any cline-neutral"> </span>
|
|
281
|
+
<span class="cline-any cline-yes">9x</span>
|
|
282
|
+
<span class="cline-any cline-neutral"> </span>
|
|
283
|
+
<span class="cline-any cline-neutral"> </span>
|
|
284
|
+
<span class="cline-any cline-neutral"> </span>
|
|
285
|
+
<span class="cline-any cline-neutral"> </span>
|
|
286
|
+
<span class="cline-any cline-neutral"> </span>
|
|
287
|
+
<span class="cline-any cline-neutral"> </span>
|
|
288
|
+
<span class="cline-any cline-neutral"> </span>
|
|
289
|
+
<span class="cline-any cline-neutral"> </span>
|
|
290
|
+
<span class="cline-any cline-neutral"> </span>
|
|
291
|
+
<span class="cline-any cline-neutral"> </span>
|
|
292
|
+
<span class="cline-any cline-neutral"> </span>
|
|
293
|
+
<span class="cline-any cline-neutral"> </span>
|
|
294
|
+
<span class="cline-any cline-neutral"> </span>
|
|
295
|
+
<span class="cline-any cline-neutral"> </span>
|
|
296
|
+
<span class="cline-any cline-neutral"> </span>
|
|
297
|
+
<span class="cline-any cline-neutral"> </span>
|
|
298
|
+
<span class="cline-any cline-yes">8x</span>
|
|
299
|
+
<span class="cline-any cline-neutral"> </span>
|
|
300
|
+
<span class="cline-any cline-yes">8x</span>
|
|
301
|
+
<span class="cline-any cline-yes">4x</span>
|
|
302
|
+
<span class="cline-any cline-neutral"> </span>
|
|
303
|
+
<span class="cline-any cline-neutral"> </span>
|
|
304
|
+
<span class="cline-any cline-neutral"> </span>
|
|
305
|
+
<span class="cline-any cline-neutral"> </span>
|
|
306
|
+
<span class="cline-any cline-neutral"> </span>
|
|
307
|
+
<span class="cline-any cline-yes">8x</span>
|
|
308
|
+
<span class="cline-any cline-neutral"> </span>
|
|
309
|
+
<span class="cline-any cline-yes">8x</span>
|
|
310
|
+
<span class="cline-any cline-yes">1x</span>
|
|
311
|
+
<span class="cline-any cline-neutral"> </span>
|
|
312
|
+
<span class="cline-any cline-neutral"> </span>
|
|
313
|
+
<span class="cline-any cline-yes">7x</span>
|
|
314
|
+
<span class="cline-any cline-no"> </span>
|
|
315
|
+
<span class="cline-any cline-neutral"> </span>
|
|
316
|
+
<span class="cline-any cline-neutral"> </span>
|
|
317
|
+
<span class="cline-any cline-yes">7x</span>
|
|
318
|
+
<span class="cline-any cline-neutral"> </span>
|
|
319
|
+
<span class="cline-any cline-neutral"> </span>
|
|
320
|
+
<span class="cline-any cline-neutral"> </span>
|
|
321
|
+
<span class="cline-any cline-yes">7x</span>
|
|
322
|
+
<span class="cline-any cline-neutral"> </span>
|
|
323
|
+
<span class="cline-any cline-yes">7x</span>
|
|
324
|
+
<span class="cline-any cline-neutral"> </span>
|
|
325
|
+
<span class="cline-any cline-neutral"> </span>
|
|
326
|
+
<span class="cline-any cline-neutral"> </span>
|
|
327
|
+
<span class="cline-any cline-neutral"> </span>
|
|
328
|
+
<span class="cline-any cline-neutral"> </span>
|
|
329
|
+
<span class="cline-any cline-yes">7x</span>
|
|
330
|
+
<span class="cline-any cline-neutral"> </span>
|
|
331
|
+
<span class="cline-any cline-yes">7x</span>
|
|
332
|
+
<span class="cline-any cline-yes">17x</span>
|
|
333
|
+
<span class="cline-any cline-yes">17x</span>
|
|
334
|
+
<span class="cline-any cline-neutral"> </span>
|
|
335
|
+
<span class="cline-any cline-neutral"> </span>
|
|
336
|
+
<span class="cline-any cline-neutral"> </span>
|
|
337
|
+
<span class="cline-any cline-neutral"> </span>
|
|
338
|
+
<span class="cline-any cline-yes">16x</span>
|
|
339
|
+
<span class="cline-any cline-neutral"> </span>
|
|
340
|
+
<span class="cline-any cline-neutral"> </span>
|
|
341
|
+
<span class="cline-any cline-yes">6x</span>
|
|
342
|
+
<span class="cline-any cline-neutral"> </span>
|
|
343
|
+
<span class="cline-any cline-yes">6x</span>
|
|
344
|
+
<span class="cline-any cline-neutral"> </span>
|
|
345
|
+
<span class="cline-any cline-neutral"> </span>
|
|
346
|
+
<span class="cline-any cline-yes">4x</span>
|
|
347
|
+
<span class="cline-any cline-neutral"> </span>
|
|
348
|
+
<span class="cline-any cline-neutral"> </span>
|
|
349
|
+
<span class="cline-any cline-neutral"> </span>
|
|
350
|
+
<span class="cline-any cline-yes">4x</span>
|
|
351
|
+
<span class="cline-any cline-neutral"> </span>
|
|
352
|
+
<span class="cline-any cline-neutral"> </span>
|
|
353
|
+
<span class="cline-any cline-yes">2x</span>
|
|
354
|
+
<span class="cline-any cline-yes">2x</span>
|
|
355
|
+
<span class="cline-any cline-neutral"> </span>
|
|
356
|
+
<span class="cline-any cline-neutral"> </span>
|
|
357
|
+
<span class="cline-any cline-neutral"> </span>
|
|
358
|
+
<span class="cline-any cline-neutral"> </span>
|
|
359
|
+
<span class="cline-any cline-neutral"> </span>
|
|
360
|
+
<span class="cline-any cline-neutral"> </span>
|
|
361
|
+
<span class="cline-any cline-yes">4x</span>
|
|
362
|
+
<span class="cline-any cline-yes">4x</span>
|
|
363
|
+
<span class="cline-any cline-yes">4x</span>
|
|
364
|
+
<span class="cline-any cline-neutral"> </span>
|
|
365
|
+
<span class="cline-any cline-neutral"> </span>
|
|
366
|
+
<span class="cline-any cline-yes">4x</span>
|
|
367
|
+
<span class="cline-any cline-neutral"> </span>
|
|
368
|
+
<span class="cline-any cline-yes">4x</span>
|
|
369
|
+
<span class="cline-any cline-yes">8x</span>
|
|
370
|
+
<span class="cline-any cline-neutral"> </span>
|
|
371
|
+
<span class="cline-any cline-neutral"> </span>
|
|
372
|
+
<span class="cline-any cline-neutral"> </span>
|
|
373
|
+
<span class="cline-any cline-neutral"> </span>
|
|
374
|
+
<span class="cline-any cline-neutral"> </span>
|
|
375
|
+
<span class="cline-any cline-yes">3x</span>
|
|
376
|
+
<span class="cline-any cline-neutral"> </span>
|
|
377
|
+
<span class="cline-any cline-neutral"> </span>
|
|
378
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import {ModelsUniverse} from './models-universe';
|
|
379
|
+
import {Observatory} from './observatory';
|
|
380
|
+
|
|
381
|
+
import {ERRORS} from '../util/errors';
|
|
382
|
+
|
|
383
|
+
import {STRINGS} from '../config';
|
|
384
|
+
|
|
385
|
+
import {ChildInformation} from '../types/supercomputer';
|
|
386
|
+
import {Children, Config, Impl, ModelParams} from '../types/impl';
|
|
387
|
+
|
|
388
|
+
const {ImplValidationError} = ERRORS;
|
|
389
|
+
|
|
390
|
+
const {STRUCTURE_MALFORMED} = STRINGS;
|
|
391
|
+
|
|
392
|
+
/**
|
|
393
|
+
* Computer for `impl` documents.
|
|
394
|
+
*/
|
|
395
|
+
export class Supercomputer {
|
|
396
|
+
private olderChild: ChildInformation = {name: '', info: {}};
|
|
397
|
+
private impl: Impl;
|
|
398
|
+
private modelsHandbook: ModelsUniverse;
|
|
399
|
+
|
|
400
|
+
constructor(impl: Impl, modelsHandbook: ModelsUniverse) {
|
|
401
|
+
this.impl = impl;
|
|
402
|
+
this.modelsHandbook = modelsHandbook;
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
/**
|
|
406
|
+
* Flattens config entries.
|
|
407
|
+
*/
|
|
408
|
+
private flattenConfigValues(config: Config) {
|
|
409
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!config) {
|
|
410
|
+
<span class="cstat-no" title="statement not covered" > return {};</span>
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
const configModelNames = Object.keys(config);
|
|
414
|
+
const values = configModelNames.reduce((acc: any, name: string) => {
|
|
415
|
+
acc = {
|
|
416
|
+
...acc,
|
|
417
|
+
...config[name],
|
|
418
|
+
};
|
|
419
|
+
|
|
420
|
+
return acc;
|
|
421
|
+
}, {});
|
|
422
|
+
|
|
423
|
+
return values;
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
/**
|
|
427
|
+
* Adds config entries to each obsercation object passed.
|
|
428
|
+
*/
|
|
429
|
+
private enrichInputs(
|
|
430
|
+
inputs: ModelParams[],
|
|
431
|
+
config: Config,
|
|
432
|
+
nestedConfig: Config
|
|
433
|
+
) {
|
|
434
|
+
const configValues = this.flattenConfigValues(config);
|
|
435
|
+
const nestedConfigValues = this.flattenConfigValues(nestedConfig);
|
|
436
|
+
|
|
437
|
+
return inputs.map((input: any) => ({
|
|
438
|
+
...input,
|
|
439
|
+
...configValues,
|
|
440
|
+
...nestedConfigValues,
|
|
441
|
+
}));
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
/**
|
|
445
|
+
* If child is top level, then initializes `this.olderChild`.
|
|
446
|
+
* If `children` object contains `children` property, it means inputs are nested (calls compute again).
|
|
447
|
+
* Otherwise enriches inputs, passes them to Observatory.
|
|
448
|
+
* For each model from pipeline Observatory gathers inputs. Then results are stored.
|
|
449
|
+
*/
|
|
450
|
+
private async calculateOutputsForChild(
|
|
451
|
+
childrenObject: Children,
|
|
452
|
+
params: any
|
|
453
|
+
) {
|
|
454
|
+
const {childName, areChildrenNested} = params;
|
|
455
|
+
|
|
456
|
+
if (!areChildrenNested) {
|
|
457
|
+
this.olderChild = {
|
|
458
|
+
name: childName,
|
|
459
|
+
info: this.impl.graph.children[childName],
|
|
460
|
+
};
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
const {pipeline, inputs, config} = this.olderChild.info;
|
|
464
|
+
|
|
465
|
+
if ('children' in childrenObject[childName]) {
|
|
466
|
+
return this.compute(childrenObject[childName].children);
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!('inputs' in childrenObject[childName])) {
|
|
470
|
+
<span class="cstat-no" title="statement not covered" > throw new ImplValidationError(STRUCTURE_MALFORMED(childName));</span>
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
const specificInputs = areChildrenNested
|
|
474
|
+
? childrenObject[childName].inputs
|
|
475
|
+
: inputs;
|
|
476
|
+
|
|
477
|
+
const childrenConfig = childrenObject[childName].config || {};
|
|
478
|
+
|
|
479
|
+
const enrichedInputs = this.enrichInputs(
|
|
480
|
+
specificInputs,
|
|
481
|
+
config,
|
|
482
|
+
childrenConfig
|
|
483
|
+
);
|
|
484
|
+
|
|
485
|
+
const observatory = new Observatory(enrichedInputs);
|
|
486
|
+
|
|
487
|
+
for (const modelName of pipeline) {
|
|
488
|
+
const params = config && config[modelName];
|
|
489
|
+
const modelInstance = await this.modelsHandbook.getInitializedModel(
|
|
490
|
+
modelName,
|
|
491
|
+
params
|
|
492
|
+
);
|
|
493
|
+
|
|
494
|
+
await observatory.doInvestigationsWith(modelInstance);
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
const outputs = observatory.getOutputs();
|
|
498
|
+
|
|
499
|
+
if (areChildrenNested) {
|
|
500
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
501
|
+
// @ts-ignore
|
|
502
|
+
this.impl.graph.children[this.olderChild.name].children[
|
|
503
|
+
childName
|
|
504
|
+
].outputs = observatory.getOutputs();
|
|
505
|
+
|
|
506
|
+
return;
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
this.impl.graph.children[this.olderChild.name].outputs = outputs;
|
|
510
|
+
return;
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
/**
|
|
514
|
+
* Checks if object is top level children or nested, then runs through all children and calculates outputs.
|
|
515
|
+
*/
|
|
516
|
+
public async compute(childrenObject?: any) {
|
|
517
|
+
const implOrChildren = childrenObject || this.impl;
|
|
518
|
+
const areChildrenNested = !!childrenObject;
|
|
519
|
+
const children: Children = areChildrenNested
|
|
520
|
+
? implOrChildren
|
|
521
|
+
: implOrChildren.graph.children;
|
|
522
|
+
const childrenNames = Object.keys(children);
|
|
523
|
+
|
|
524
|
+
for (const childName of childrenNames) {
|
|
525
|
+
await this.calculateOutputsForChild(children, {
|
|
526
|
+
childName,
|
|
527
|
+
areChildrenNested,
|
|
528
|
+
});
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
return this.impl;
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
</pre></td></tr></table></pre>
|
|
535
|
+
|
|
536
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
537
|
+
</div><!-- /wrapper -->
|
|
538
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
539
|
+
Code coverage generated by
|
|
540
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
541
|
+
at 2023-11-16T06:37:22.380Z
|
|
542
|
+
</div>
|
|
543
|
+
<script src="../prettify.js"></script>
|
|
544
|
+
<script>
|
|
545
|
+
window.onload = function () {
|
|
546
|
+
prettyPrint();
|
|
547
|
+
};
|
|
548
|
+
</script>
|
|
549
|
+
<script src="../sorter.js"></script>
|
|
550
|
+
<script src="../block-navigation.js"></script>
|
|
551
|
+
</body>
|
|
552
|
+
</html>
|
|
553
|
+
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">96% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>24/25</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">95.65% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>22/23</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -116,16 +116,24 @@
|
|
|
116
116
|
<a name='L51'></a><a href='#L51'>51</a>
|
|
117
117
|
<a name='L52'></a><a href='#L52'>52</a>
|
|
118
118
|
<a name='L53'></a><a href='#L53'>53</a>
|
|
119
|
-
<a name='L54'></a><a href='#L54'>54</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>
|
|
123
|
+
<a name='L58'></a><a href='#L58'>58</a>
|
|
124
|
+
<a name='L59'></a><a href='#L59'>59</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
120
125
|
<span class="cline-any cline-yes">1x</span>
|
|
121
126
|
<span class="cline-any cline-neutral"> </span>
|
|
122
127
|
<span class="cline-any cline-yes">1x</span>
|
|
128
|
+
<span class="cline-any cline-yes">1x</span>
|
|
123
129
|
<span class="cline-any cline-neutral"> </span>
|
|
124
130
|
<span class="cline-any cline-yes">1x</span>
|
|
125
131
|
<span class="cline-any cline-neutral"> </span>
|
|
126
132
|
<span class="cline-any cline-neutral"> </span>
|
|
127
133
|
<span class="cline-any cline-neutral"> </span>
|
|
128
134
|
<span class="cline-any cline-yes">1x</span>
|
|
135
|
+
<span class="cline-any cline-neutral"> </span>
|
|
136
|
+
<span class="cline-any cline-yes">1x</span>
|
|
129
137
|
<span class="cline-any cline-yes">1x</span>
|
|
130
138
|
<span class="cline-any cline-neutral"> </span>
|
|
131
139
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -166,6 +174,8 @@
|
|
|
166
174
|
<span class="cline-any cline-neutral"> </span>
|
|
167
175
|
<span class="cline-any cline-neutral"> </span>
|
|
168
176
|
<span class="cline-any cline-neutral"> </span>
|
|
177
|
+
<span class="cline-any cline-no"> </span>
|
|
178
|
+
<span class="cline-any cline-neutral"> </span>
|
|
169
179
|
<span class="cline-any cline-neutral"> </span>
|
|
170
180
|
<span class="cline-any cline-yes">1x</span>
|
|
171
181
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -173,15 +183,18 @@
|
|
|
173
183
|
import {parse} from 'ts-command-line-args';
|
|
174
184
|
|
|
175
185
|
import {checkIfFileIsYaml} from './yaml';
|
|
186
|
+
import {ERRORS} from './errors';
|
|
176
187
|
|
|
177
188
|
import {CONFIG, STRINGS} from '../config';
|
|
178
189
|
|
|
179
190
|
import {impactProcessArgs} from '../types/process-args';
|
|
180
191
|
|
|
192
|
+
const {CliInputError} = ERRORS;
|
|
193
|
+
|
|
181
194
|
const {impact} = CONFIG;
|
|
182
195
|
const {ARGS, HELP} = impact;
|
|
183
196
|
|
|
184
|
-
const {
|
|
197
|
+
const {FILE_IS_NOT_YAML, IMPL_IS_MISSING} = STRINGS;
|
|
185
198
|
|
|
186
199
|
/**
|
|
187
200
|
* Validates process arguments
|
|
@@ -218,9 +231,11 @@ export const parseProcessArgument = () => {
|
|
|
218
231
|
...(ompl && {outputPath: prependFullFilePath(ompl)}),
|
|
219
232
|
};
|
|
220
233
|
}
|
|
234
|
+
|
|
235
|
+
<span class="cstat-no" title="statement not covered" > throw new CliInputError(FILE_IS_NOT_YAML);</span>
|
|
221
236
|
}
|
|
222
237
|
|
|
223
|
-
throw
|
|
238
|
+
throw new CliInputError(IMPL_IS_MISSING);
|
|
224
239
|
};
|
|
225
240
|
</pre></td></tr></table></pre>
|
|
226
241
|
|
|
@@ -229,7 +244,7 @@ export const parseProcessArgument = () => {
|
|
|
229
244
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
230
245
|
Code coverage generated by
|
|
231
246
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
232
|
-
at 2023-11-
|
|
247
|
+
at 2023-11-16T06:37:22.380Z
|
|
233
248
|
</div>
|
|
234
249
|
<script src="../prettify.js"></script>
|
|
235
250
|
<script>
|