Browse Source

Added coverage report

Arnaud Vergnet 4 years ago
parent
commit
38a52a9e95

+ 0
- 1
.gitignore View File

@@ -9,7 +9,6 @@ npm-debug.*
9 9
 web-build/
10 10
 web-report/
11 11
 /.expo-shared/
12
-/coverage/
13 12
 /package-lock.json
14 13
 /passwords.json
15 14
 

+ 74
- 0
coverage/clover.xml View File

@@ -0,0 +1,74 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<coverage generated="1584889501493" clover="3.2.0">
3
+  <project timestamp="1584889501493" name="All files">
4
+    <metrics statements="65" coveredstatements="65" conditionals="39" coveredconditionals="36" methods="11" coveredmethods="11" elements="115" coveredelements="112" complexity="0" loc="65" ncloc="65" packages="1" files="1" classes="1"/>
5
+    <file name="PlanningEventManager.js" path="/home/keplyx/expo-projects/application-amicale/utils/PlanningEventManager.js">
6
+      <metrics statements="65" coveredstatements="65" conditionals="39" coveredconditionals="36" methods="11" coveredmethods="11"/>
7
+      <line num="18" count="1" type="stmt"/>
8
+      <line num="27" count="1" type="stmt"/>
9
+      <line num="38" count="19" type="stmt"/>
10
+      <line num="39" count="19" type="stmt"/>
11
+      <line num="40" count="19" type="cond" truecount="4" falsecount="0"/>
12
+      <line num="41" count="17" type="stmt"/>
13
+      <line num="43" count="2" type="stmt"/>
14
+      <line num="54" count="196" type="cond" truecount="2" falsecount="0"/>
15
+      <line num="55" count="192" type="stmt"/>
16
+      <line num="57" count="4" type="stmt"/>
17
+      <line num="68" count="271" type="cond" truecount="3" falsecount="0"/>
18
+      <line num="81" count="62" type="stmt"/>
19
+      <line num="82" count="62" type="cond" truecount="2" falsecount="0"/>
20
+      <line num="83" count="44" type="stmt"/>
21
+      <line num="84" count="44" type="stmt"/>
22
+      <line num="85" count="44" type="stmt"/>
23
+      <line num="86" count="44" type="stmt"/>
24
+      <line num="91" count="44" type="stmt"/>
25
+      <line num="98" count="18" type="stmt"/>
26
+      <line num="100" count="62" type="stmt"/>
27
+      <line num="111" count="189" type="stmt"/>
28
+      <line num="112" count="189" type="stmt"/>
29
+      <line num="113" count="189" type="stmt"/>
30
+      <line num="114" count="189" type="stmt"/>
31
+      <line num="115" count="189" type="stmt"/>
32
+      <line num="116" count="189" type="stmt"/>
33
+      <line num="133" count="7" type="stmt"/>
34
+      <line num="134" count="7" type="stmt"/>
35
+      <line num="135" count="7" type="stmt"/>
36
+      <line num="137" count="7" type="cond" truecount="5" falsecount="0"/>
37
+      <line num="138" count="2" type="stmt"/>
38
+      <line num="140" count="2" type="cond" truecount="5" falsecount="0"/>
39
+      <line num="143" count="1" type="stmt"/>
40
+      <line num="145" count="1" type="stmt"/>
41
+      <line num="147" count="5" type="cond" truecount="2" falsecount="0"/>
42
+      <line num="148" count="1" type="stmt"/>
43
+      <line num="152" count="7" type="stmt"/>
44
+      <line num="165" count="12" type="cond" truecount="4" falsecount="0"/>
45
+      <line num="166" count="10" type="stmt"/>
46
+      <line num="171" count="2" type="stmt"/>
47
+      <line num="183" count="3" type="stmt"/>
48
+      <line num="184" count="3" type="stmt"/>
49
+      <line num="185" count="3" type="stmt"/>
50
+      <line num="186" count="3" type="stmt"/>
51
+      <line num="187" count="185" type="stmt"/>
52
+      <line num="189" count="185" type="cond" truecount="1" falsecount="1"/>
53
+      <line num="190" count="185" type="stmt"/>
54
+      <line num="192" count="3" type="stmt"/>
55
+      <line num="207" count="1" type="stmt"/>
56
+      <line num="208" count="1" type="stmt"/>
57
+      <line num="209" count="5" type="stmt"/>
58
+      <line num="210" count="5" type="cond" truecount="1" falsecount="1"/>
59
+      <line num="211" count="5" type="stmt"/>
60
+      <line num="212" count="5" type="cond" truecount="1" falsecount="1"/>
61
+      <line num="213" count="5" type="stmt"/>
62
+      <line num="217" count="1" type="stmt"/>
63
+      <line num="229" count="9" type="cond" truecount="2" falsecount="0"/>
64
+      <line num="230" count="4" type="stmt"/>
65
+      <line num="232" count="5" type="stmt"/>
66
+      <line num="233" count="6" type="cond" truecount="2" falsecount="0"/>
67
+      <line num="234" count="2" type="stmt"/>
68
+      <line num="235" count="2" type="stmt"/>
69
+      <line num="236" count="4" type="cond" truecount="2" falsecount="0"/>
70
+      <line num="237" count="3" type="stmt"/>
71
+      <line num="238" count="3" type="stmt"/>
72
+    </file>
73
+  </project>
74
+</coverage>

+ 2
- 0
coverage/coverage-final.json
File diff suppressed because it is too large
View File


+ 809
- 0
coverage/lcov-report/PlanningEventManager.js.html View File

@@ -0,0 +1,809 @@
1
+
2
+<!doctype html>
3
+<html lang="en">
4
+
5
+<head>
6
+    <title>Code coverage report for PlanningEventManager.js</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> PlanningEventManager.js</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'>68/68</span>
29
+            </div>
30
+        
31
+            
32
+            <div class='fl pad1y space-right2'>
33
+                <span class="strong">92.31% </span>
34
+                <span class="quiet">Branches</span>
35
+                <span class='fraction'>36/39</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'>11/11</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'>65/65</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
+    </div>
58
+    <div class='status-line high'></div>
59
+    <pre><table class="coverage">
60
+<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
61
+<a name='L2'></a><a href='#L2'>2</a>
62
+<a name='L3'></a><a href='#L3'>3</a>
63
+<a name='L4'></a><a href='#L4'>4</a>
64
+<a name='L5'></a><a href='#L5'>5</a>
65
+<a name='L6'></a><a href='#L6'>6</a>
66
+<a name='L7'></a><a href='#L7'>7</a>
67
+<a name='L8'></a><a href='#L8'>8</a>
68
+<a name='L9'></a><a href='#L9'>9</a>
69
+<a name='L10'></a><a href='#L10'>10</a>
70
+<a name='L11'></a><a href='#L11'>11</a>
71
+<a name='L12'></a><a href='#L12'>12</a>
72
+<a name='L13'></a><a href='#L13'>13</a>
73
+<a name='L14'></a><a href='#L14'>14</a>
74
+<a name='L15'></a><a href='#L15'>15</a>
75
+<a name='L16'></a><a href='#L16'>16</a>
76
+<a name='L17'></a><a href='#L17'>17</a>
77
+<a name='L18'></a><a href='#L18'>18</a>
78
+<a name='L19'></a><a href='#L19'>19</a>
79
+<a name='L20'></a><a href='#L20'>20</a>
80
+<a name='L21'></a><a href='#L21'>21</a>
81
+<a name='L22'></a><a href='#L22'>22</a>
82
+<a name='L23'></a><a href='#L23'>23</a>
83
+<a name='L24'></a><a href='#L24'>24</a>
84
+<a name='L25'></a><a href='#L25'>25</a>
85
+<a name='L26'></a><a href='#L26'>26</a>
86
+<a name='L27'></a><a href='#L27'>27</a>
87
+<a name='L28'></a><a href='#L28'>28</a>
88
+<a name='L29'></a><a href='#L29'>29</a>
89
+<a name='L30'></a><a href='#L30'>30</a>
90
+<a name='L31'></a><a href='#L31'>31</a>
91
+<a name='L32'></a><a href='#L32'>32</a>
92
+<a name='L33'></a><a href='#L33'>33</a>
93
+<a name='L34'></a><a href='#L34'>34</a>
94
+<a name='L35'></a><a href='#L35'>35</a>
95
+<a name='L36'></a><a href='#L36'>36</a>
96
+<a name='L37'></a><a href='#L37'>37</a>
97
+<a name='L38'></a><a href='#L38'>38</a>
98
+<a name='L39'></a><a href='#L39'>39</a>
99
+<a name='L40'></a><a href='#L40'>40</a>
100
+<a name='L41'></a><a href='#L41'>41</a>
101
+<a name='L42'></a><a href='#L42'>42</a>
102
+<a name='L43'></a><a href='#L43'>43</a>
103
+<a name='L44'></a><a href='#L44'>44</a>
104
+<a name='L45'></a><a href='#L45'>45</a>
105
+<a name='L46'></a><a href='#L46'>46</a>
106
+<a name='L47'></a><a href='#L47'>47</a>
107
+<a name='L48'></a><a href='#L48'>48</a>
108
+<a name='L49'></a><a href='#L49'>49</a>
109
+<a name='L50'></a><a href='#L50'>50</a>
110
+<a name='L51'></a><a href='#L51'>51</a>
111
+<a name='L52'></a><a href='#L52'>52</a>
112
+<a name='L53'></a><a href='#L53'>53</a>
113
+<a name='L54'></a><a href='#L54'>54</a>
114
+<a name='L55'></a><a href='#L55'>55</a>
115
+<a name='L56'></a><a href='#L56'>56</a>
116
+<a name='L57'></a><a href='#L57'>57</a>
117
+<a name='L58'></a><a href='#L58'>58</a>
118
+<a name='L59'></a><a href='#L59'>59</a>
119
+<a name='L60'></a><a href='#L60'>60</a>
120
+<a name='L61'></a><a href='#L61'>61</a>
121
+<a name='L62'></a><a href='#L62'>62</a>
122
+<a name='L63'></a><a href='#L63'>63</a>
123
+<a name='L64'></a><a href='#L64'>64</a>
124
+<a name='L65'></a><a href='#L65'>65</a>
125
+<a name='L66'></a><a href='#L66'>66</a>
126
+<a name='L67'></a><a href='#L67'>67</a>
127
+<a name='L68'></a><a href='#L68'>68</a>
128
+<a name='L69'></a><a href='#L69'>69</a>
129
+<a name='L70'></a><a href='#L70'>70</a>
130
+<a name='L71'></a><a href='#L71'>71</a>
131
+<a name='L72'></a><a href='#L72'>72</a>
132
+<a name='L73'></a><a href='#L73'>73</a>
133
+<a name='L74'></a><a href='#L74'>74</a>
134
+<a name='L75'></a><a href='#L75'>75</a>
135
+<a name='L76'></a><a href='#L76'>76</a>
136
+<a name='L77'></a><a href='#L77'>77</a>
137
+<a name='L78'></a><a href='#L78'>78</a>
138
+<a name='L79'></a><a href='#L79'>79</a>
139
+<a name='L80'></a><a href='#L80'>80</a>
140
+<a name='L81'></a><a href='#L81'>81</a>
141
+<a name='L82'></a><a href='#L82'>82</a>
142
+<a name='L83'></a><a href='#L83'>83</a>
143
+<a name='L84'></a><a href='#L84'>84</a>
144
+<a name='L85'></a><a href='#L85'>85</a>
145
+<a name='L86'></a><a href='#L86'>86</a>
146
+<a name='L87'></a><a href='#L87'>87</a>
147
+<a name='L88'></a><a href='#L88'>88</a>
148
+<a name='L89'></a><a href='#L89'>89</a>
149
+<a name='L90'></a><a href='#L90'>90</a>
150
+<a name='L91'></a><a href='#L91'>91</a>
151
+<a name='L92'></a><a href='#L92'>92</a>
152
+<a name='L93'></a><a href='#L93'>93</a>
153
+<a name='L94'></a><a href='#L94'>94</a>
154
+<a name='L95'></a><a href='#L95'>95</a>
155
+<a name='L96'></a><a href='#L96'>96</a>
156
+<a name='L97'></a><a href='#L97'>97</a>
157
+<a name='L98'></a><a href='#L98'>98</a>
158
+<a name='L99'></a><a href='#L99'>99</a>
159
+<a name='L100'></a><a href='#L100'>100</a>
160
+<a name='L101'></a><a href='#L101'>101</a>
161
+<a name='L102'></a><a href='#L102'>102</a>
162
+<a name='L103'></a><a href='#L103'>103</a>
163
+<a name='L104'></a><a href='#L104'>104</a>
164
+<a name='L105'></a><a href='#L105'>105</a>
165
+<a name='L106'></a><a href='#L106'>106</a>
166
+<a name='L107'></a><a href='#L107'>107</a>
167
+<a name='L108'></a><a href='#L108'>108</a>
168
+<a name='L109'></a><a href='#L109'>109</a>
169
+<a name='L110'></a><a href='#L110'>110</a>
170
+<a name='L111'></a><a href='#L111'>111</a>
171
+<a name='L112'></a><a href='#L112'>112</a>
172
+<a name='L113'></a><a href='#L113'>113</a>
173
+<a name='L114'></a><a href='#L114'>114</a>
174
+<a name='L115'></a><a href='#L115'>115</a>
175
+<a name='L116'></a><a href='#L116'>116</a>
176
+<a name='L117'></a><a href='#L117'>117</a>
177
+<a name='L118'></a><a href='#L118'>118</a>
178
+<a name='L119'></a><a href='#L119'>119</a>
179
+<a name='L120'></a><a href='#L120'>120</a>
180
+<a name='L121'></a><a href='#L121'>121</a>
181
+<a name='L122'></a><a href='#L122'>122</a>
182
+<a name='L123'></a><a href='#L123'>123</a>
183
+<a name='L124'></a><a href='#L124'>124</a>
184
+<a name='L125'></a><a href='#L125'>125</a>
185
+<a name='L126'></a><a href='#L126'>126</a>
186
+<a name='L127'></a><a href='#L127'>127</a>
187
+<a name='L128'></a><a href='#L128'>128</a>
188
+<a name='L129'></a><a href='#L129'>129</a>
189
+<a name='L130'></a><a href='#L130'>130</a>
190
+<a name='L131'></a><a href='#L131'>131</a>
191
+<a name='L132'></a><a href='#L132'>132</a>
192
+<a name='L133'></a><a href='#L133'>133</a>
193
+<a name='L134'></a><a href='#L134'>134</a>
194
+<a name='L135'></a><a href='#L135'>135</a>
195
+<a name='L136'></a><a href='#L136'>136</a>
196
+<a name='L137'></a><a href='#L137'>137</a>
197
+<a name='L138'></a><a href='#L138'>138</a>
198
+<a name='L139'></a><a href='#L139'>139</a>
199
+<a name='L140'></a><a href='#L140'>140</a>
200
+<a name='L141'></a><a href='#L141'>141</a>
201
+<a name='L142'></a><a href='#L142'>142</a>
202
+<a name='L143'></a><a href='#L143'>143</a>
203
+<a name='L144'></a><a href='#L144'>144</a>
204
+<a name='L145'></a><a href='#L145'>145</a>
205
+<a name='L146'></a><a href='#L146'>146</a>
206
+<a name='L147'></a><a href='#L147'>147</a>
207
+<a name='L148'></a><a href='#L148'>148</a>
208
+<a name='L149'></a><a href='#L149'>149</a>
209
+<a name='L150'></a><a href='#L150'>150</a>
210
+<a name='L151'></a><a href='#L151'>151</a>
211
+<a name='L152'></a><a href='#L152'>152</a>
212
+<a name='L153'></a><a href='#L153'>153</a>
213
+<a name='L154'></a><a href='#L154'>154</a>
214
+<a name='L155'></a><a href='#L155'>155</a>
215
+<a name='L156'></a><a href='#L156'>156</a>
216
+<a name='L157'></a><a href='#L157'>157</a>
217
+<a name='L158'></a><a href='#L158'>158</a>
218
+<a name='L159'></a><a href='#L159'>159</a>
219
+<a name='L160'></a><a href='#L160'>160</a>
220
+<a name='L161'></a><a href='#L161'>161</a>
221
+<a name='L162'></a><a href='#L162'>162</a>
222
+<a name='L163'></a><a href='#L163'>163</a>
223
+<a name='L164'></a><a href='#L164'>164</a>
224
+<a name='L165'></a><a href='#L165'>165</a>
225
+<a name='L166'></a><a href='#L166'>166</a>
226
+<a name='L167'></a><a href='#L167'>167</a>
227
+<a name='L168'></a><a href='#L168'>168</a>
228
+<a name='L169'></a><a href='#L169'>169</a>
229
+<a name='L170'></a><a href='#L170'>170</a>
230
+<a name='L171'></a><a href='#L171'>171</a>
231
+<a name='L172'></a><a href='#L172'>172</a>
232
+<a name='L173'></a><a href='#L173'>173</a>
233
+<a name='L174'></a><a href='#L174'>174</a>
234
+<a name='L175'></a><a href='#L175'>175</a>
235
+<a name='L176'></a><a href='#L176'>176</a>
236
+<a name='L177'></a><a href='#L177'>177</a>
237
+<a name='L178'></a><a href='#L178'>178</a>
238
+<a name='L179'></a><a href='#L179'>179</a>
239
+<a name='L180'></a><a href='#L180'>180</a>
240
+<a name='L181'></a><a href='#L181'>181</a>
241
+<a name='L182'></a><a href='#L182'>182</a>
242
+<a name='L183'></a><a href='#L183'>183</a>
243
+<a name='L184'></a><a href='#L184'>184</a>
244
+<a name='L185'></a><a href='#L185'>185</a>
245
+<a name='L186'></a><a href='#L186'>186</a>
246
+<a name='L187'></a><a href='#L187'>187</a>
247
+<a name='L188'></a><a href='#L188'>188</a>
248
+<a name='L189'></a><a href='#L189'>189</a>
249
+<a name='L190'></a><a href='#L190'>190</a>
250
+<a name='L191'></a><a href='#L191'>191</a>
251
+<a name='L192'></a><a href='#L192'>192</a>
252
+<a name='L193'></a><a href='#L193'>193</a>
253
+<a name='L194'></a><a href='#L194'>194</a>
254
+<a name='L195'></a><a href='#L195'>195</a>
255
+<a name='L196'></a><a href='#L196'>196</a>
256
+<a name='L197'></a><a href='#L197'>197</a>
257
+<a name='L198'></a><a href='#L198'>198</a>
258
+<a name='L199'></a><a href='#L199'>199</a>
259
+<a name='L200'></a><a href='#L200'>200</a>
260
+<a name='L201'></a><a href='#L201'>201</a>
261
+<a name='L202'></a><a href='#L202'>202</a>
262
+<a name='L203'></a><a href='#L203'>203</a>
263
+<a name='L204'></a><a href='#L204'>204</a>
264
+<a name='L205'></a><a href='#L205'>205</a>
265
+<a name='L206'></a><a href='#L206'>206</a>
266
+<a name='L207'></a><a href='#L207'>207</a>
267
+<a name='L208'></a><a href='#L208'>208</a>
268
+<a name='L209'></a><a href='#L209'>209</a>
269
+<a name='L210'></a><a href='#L210'>210</a>
270
+<a name='L211'></a><a href='#L211'>211</a>
271
+<a name='L212'></a><a href='#L212'>212</a>
272
+<a name='L213'></a><a href='#L213'>213</a>
273
+<a name='L214'></a><a href='#L214'>214</a>
274
+<a name='L215'></a><a href='#L215'>215</a>
275
+<a name='L216'></a><a href='#L216'>216</a>
276
+<a name='L217'></a><a href='#L217'>217</a>
277
+<a name='L218'></a><a href='#L218'>218</a>
278
+<a name='L219'></a><a href='#L219'>219</a>
279
+<a name='L220'></a><a href='#L220'>220</a>
280
+<a name='L221'></a><a href='#L221'>221</a>
281
+<a name='L222'></a><a href='#L222'>222</a>
282
+<a name='L223'></a><a href='#L223'>223</a>
283
+<a name='L224'></a><a href='#L224'>224</a>
284
+<a name='L225'></a><a href='#L225'>225</a>
285
+<a name='L226'></a><a href='#L226'>226</a>
286
+<a name='L227'></a><a href='#L227'>227</a>
287
+<a name='L228'></a><a href='#L228'>228</a>
288
+<a name='L229'></a><a href='#L229'>229</a>
289
+<a name='L230'></a><a href='#L230'>230</a>
290
+<a name='L231'></a><a href='#L231'>231</a>
291
+<a name='L232'></a><a href='#L232'>232</a>
292
+<a name='L233'></a><a href='#L233'>233</a>
293
+<a name='L234'></a><a href='#L234'>234</a>
294
+<a name='L235'></a><a href='#L235'>235</a>
295
+<a name='L236'></a><a href='#L236'>236</a>
296
+<a name='L237'></a><a href='#L237'>237</a>
297
+<a name='L238'></a><a href='#L238'>238</a>
298
+<a name='L239'></a><a href='#L239'>239</a>
299
+<a name='L240'></a><a href='#L240'>240</a>
300
+<a name='L241'></a><a href='#L241'>241</a>
301
+<a name='L242'></a><a href='#L242'>242</a>
302
+<a name='L243'></a><a href='#L243'>243</a>
303
+<a name='L244'></a><a href='#L244'>244</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
304
+<span class="cline-any cline-neutral">&nbsp;</span>
305
+<span class="cline-any cline-neutral">&nbsp;</span>
306
+<span class="cline-any cline-neutral">&nbsp;</span>
307
+<span class="cline-any cline-neutral">&nbsp;</span>
308
+<span class="cline-any cline-neutral">&nbsp;</span>
309
+<span class="cline-any cline-neutral">&nbsp;</span>
310
+<span class="cline-any cline-neutral">&nbsp;</span>
311
+<span class="cline-any cline-neutral">&nbsp;</span>
312
+<span class="cline-any cline-neutral">&nbsp;</span>
313
+<span class="cline-any cline-neutral">&nbsp;</span>
314
+<span class="cline-any cline-neutral">&nbsp;</span>
315
+<span class="cline-any cline-neutral">&nbsp;</span>
316
+<span class="cline-any cline-neutral">&nbsp;</span>
317
+<span class="cline-any cline-neutral">&nbsp;</span>
318
+<span class="cline-any cline-neutral">&nbsp;</span>
319
+<span class="cline-any cline-neutral">&nbsp;</span>
320
+<span class="cline-any cline-yes">1x</span>
321
+<span class="cline-any cline-neutral">&nbsp;</span>
322
+<span class="cline-any cline-neutral">&nbsp;</span>
323
+<span class="cline-any cline-neutral">&nbsp;</span>
324
+<span class="cline-any cline-neutral">&nbsp;</span>
325
+<span class="cline-any cline-neutral">&nbsp;</span>
326
+<span class="cline-any cline-neutral">&nbsp;</span>
327
+<span class="cline-any cline-neutral">&nbsp;</span>
328
+<span class="cline-any cline-neutral">&nbsp;</span>
329
+<span class="cline-any cline-yes">1x</span>
330
+<span class="cline-any cline-neutral">&nbsp;</span>
331
+<span class="cline-any cline-neutral">&nbsp;</span>
332
+<span class="cline-any cline-neutral">&nbsp;</span>
333
+<span class="cline-any cline-neutral">&nbsp;</span>
334
+<span class="cline-any cline-neutral">&nbsp;</span>
335
+<span class="cline-any cline-neutral">&nbsp;</span>
336
+<span class="cline-any cline-neutral">&nbsp;</span>
337
+<span class="cline-any cline-neutral">&nbsp;</span>
338
+<span class="cline-any cline-neutral">&nbsp;</span>
339
+<span class="cline-any cline-neutral">&nbsp;</span>
340
+<span class="cline-any cline-yes">19x</span>
341
+<span class="cline-any cline-yes">19x</span>
342
+<span class="cline-any cline-yes">19x</span>
343
+<span class="cline-any cline-yes">17x</span>
344
+<span class="cline-any cline-neutral">&nbsp;</span>
345
+<span class="cline-any cline-yes">2x</span>
346
+<span class="cline-any cline-neutral">&nbsp;</span>
347
+<span class="cline-any cline-neutral">&nbsp;</span>
348
+<span class="cline-any cline-neutral">&nbsp;</span>
349
+<span class="cline-any cline-neutral">&nbsp;</span>
350
+<span class="cline-any cline-neutral">&nbsp;</span>
351
+<span class="cline-any cline-neutral">&nbsp;</span>
352
+<span class="cline-any cline-neutral">&nbsp;</span>
353
+<span class="cline-any cline-neutral">&nbsp;</span>
354
+<span class="cline-any cline-neutral">&nbsp;</span>
355
+<span class="cline-any cline-neutral">&nbsp;</span>
356
+<span class="cline-any cline-yes">196x</span>
357
+<span class="cline-any cline-yes">192x</span>
358
+<span class="cline-any cline-neutral">&nbsp;</span>
359
+<span class="cline-any cline-yes">4x</span>
360
+<span class="cline-any cline-neutral">&nbsp;</span>
361
+<span class="cline-any cline-neutral">&nbsp;</span>
362
+<span class="cline-any cline-neutral">&nbsp;</span>
363
+<span class="cline-any cline-neutral">&nbsp;</span>
364
+<span class="cline-any cline-neutral">&nbsp;</span>
365
+<span class="cline-any cline-neutral">&nbsp;</span>
366
+<span class="cline-any cline-neutral">&nbsp;</span>
367
+<span class="cline-any cline-neutral">&nbsp;</span>
368
+<span class="cline-any cline-neutral">&nbsp;</span>
369
+<span class="cline-any cline-neutral">&nbsp;</span>
370
+<span class="cline-any cline-yes">271x</span>
371
+<span class="cline-any cline-neutral">&nbsp;</span>
372
+<span class="cline-any cline-neutral">&nbsp;</span>
373
+<span class="cline-any cline-neutral">&nbsp;</span>
374
+<span class="cline-any cline-neutral">&nbsp;</span>
375
+<span class="cline-any cline-neutral">&nbsp;</span>
376
+<span class="cline-any cline-neutral">&nbsp;</span>
377
+<span class="cline-any cline-neutral">&nbsp;</span>
378
+<span class="cline-any cline-neutral">&nbsp;</span>
379
+<span class="cline-any cline-neutral">&nbsp;</span>
380
+<span class="cline-any cline-neutral">&nbsp;</span>
381
+<span class="cline-any cline-neutral">&nbsp;</span>
382
+<span class="cline-any cline-neutral">&nbsp;</span>
383
+<span class="cline-any cline-yes">62x</span>
384
+<span class="cline-any cline-yes">62x</span>
385
+<span class="cline-any cline-yes">44x</span>
386
+<span class="cline-any cline-yes">44x</span>
387
+<span class="cline-any cline-yes">44x</span>
388
+<span class="cline-any cline-yes">44x</span>
389
+<span class="cline-any cline-neutral">&nbsp;</span>
390
+<span class="cline-any cline-neutral">&nbsp;</span>
391
+<span class="cline-any cline-neutral">&nbsp;</span>
392
+<span class="cline-any cline-neutral">&nbsp;</span>
393
+<span class="cline-any cline-yes">44x</span>
394
+<span class="cline-any cline-neutral">&nbsp;</span>
395
+<span class="cline-any cline-neutral">&nbsp;</span>
396
+<span class="cline-any cline-neutral">&nbsp;</span>
397
+<span class="cline-any cline-neutral">&nbsp;</span>
398
+<span class="cline-any cline-neutral">&nbsp;</span>
399
+<span class="cline-any cline-neutral">&nbsp;</span>
400
+<span class="cline-any cline-yes">18x</span>
401
+<span class="cline-any cline-neutral">&nbsp;</span>
402
+<span class="cline-any cline-yes">62x</span>
403
+<span class="cline-any cline-neutral">&nbsp;</span>
404
+<span class="cline-any cline-neutral">&nbsp;</span>
405
+<span class="cline-any cline-neutral">&nbsp;</span>
406
+<span class="cline-any cline-neutral">&nbsp;</span>
407
+<span class="cline-any cline-neutral">&nbsp;</span>
408
+<span class="cline-any cline-neutral">&nbsp;</span>
409
+<span class="cline-any cline-neutral">&nbsp;</span>
410
+<span class="cline-any cline-neutral">&nbsp;</span>
411
+<span class="cline-any cline-neutral">&nbsp;</span>
412
+<span class="cline-any cline-neutral">&nbsp;</span>
413
+<span class="cline-any cline-yes">189x</span>
414
+<span class="cline-any cline-yes">189x</span>
415
+<span class="cline-any cline-yes">189x</span>
416
+<span class="cline-any cline-yes">189x</span>
417
+<span class="cline-any cline-yes">189x</span>
418
+<span class="cline-any cline-yes">189x</span>
419
+<span class="cline-any cline-neutral">&nbsp;</span>
420
+<span class="cline-any cline-neutral">&nbsp;</span>
421
+<span class="cline-any cline-neutral">&nbsp;</span>
422
+<span class="cline-any cline-neutral">&nbsp;</span>
423
+<span class="cline-any cline-neutral">&nbsp;</span>
424
+<span class="cline-any cline-neutral">&nbsp;</span>
425
+<span class="cline-any cline-neutral">&nbsp;</span>
426
+<span class="cline-any cline-neutral">&nbsp;</span>
427
+<span class="cline-any cline-neutral">&nbsp;</span>
428
+<span class="cline-any cline-neutral">&nbsp;</span>
429
+<span class="cline-any cline-neutral">&nbsp;</span>
430
+<span class="cline-any cline-neutral">&nbsp;</span>
431
+<span class="cline-any cline-neutral">&nbsp;</span>
432
+<span class="cline-any cline-neutral">&nbsp;</span>
433
+<span class="cline-any cline-neutral">&nbsp;</span>
434
+<span class="cline-any cline-neutral">&nbsp;</span>
435
+<span class="cline-any cline-yes">7x</span>
436
+<span class="cline-any cline-yes">7x</span>
437
+<span class="cline-any cline-yes">7x</span>
438
+<span class="cline-any cline-neutral">&nbsp;</span>
439
+<span class="cline-any cline-yes">7x</span>
440
+<span class="cline-any cline-yes">2x</span>
441
+<span class="cline-any cline-neutral">&nbsp;</span>
442
+<span class="cline-any cline-yes">2x</span>
443
+<span class="cline-any cline-neutral">&nbsp;</span>
444
+<span class="cline-any cline-neutral">&nbsp;</span>
445
+<span class="cline-any cline-yes">1x</span>
446
+<span class="cline-any cline-neutral">&nbsp;</span>
447
+<span class="cline-any cline-yes">1x</span>
448
+<span class="cline-any cline-neutral">&nbsp;</span>
449
+<span class="cline-any cline-yes">5x</span>
450
+<span class="cline-any cline-yes">1x</span>
451
+<span class="cline-any cline-neutral">&nbsp;</span>
452
+<span class="cline-any cline-neutral">&nbsp;</span>
453
+<span class="cline-any cline-neutral">&nbsp;</span>
454
+<span class="cline-any cline-yes">7x</span>
455
+<span class="cline-any cline-neutral">&nbsp;</span>
456
+<span class="cline-any cline-neutral">&nbsp;</span>
457
+<span class="cline-any cline-neutral">&nbsp;</span>
458
+<span class="cline-any cline-neutral">&nbsp;</span>
459
+<span class="cline-any cline-neutral">&nbsp;</span>
460
+<span class="cline-any cline-neutral">&nbsp;</span>
461
+<span class="cline-any cline-neutral">&nbsp;</span>
462
+<span class="cline-any cline-neutral">&nbsp;</span>
463
+<span class="cline-any cline-neutral">&nbsp;</span>
464
+<span class="cline-any cline-neutral">&nbsp;</span>
465
+<span class="cline-any cline-neutral">&nbsp;</span>
466
+<span class="cline-any cline-neutral">&nbsp;</span>
467
+<span class="cline-any cline-yes">12x</span>
468
+<span class="cline-any cline-yes">10x</span>
469
+<span class="cline-any cline-neutral">&nbsp;</span>
470
+<span class="cline-any cline-neutral">&nbsp;</span>
471
+<span class="cline-any cline-neutral">&nbsp;</span>
472
+<span class="cline-any cline-neutral">&nbsp;</span>
473
+<span class="cline-any cline-yes">2x</span>
474
+<span class="cline-any cline-neutral">&nbsp;</span>
475
+<span class="cline-any cline-neutral">&nbsp;</span>
476
+<span class="cline-any cline-neutral">&nbsp;</span>
477
+<span class="cline-any cline-neutral">&nbsp;</span>
478
+<span class="cline-any cline-neutral">&nbsp;</span>
479
+<span class="cline-any cline-neutral">&nbsp;</span>
480
+<span class="cline-any cline-neutral">&nbsp;</span>
481
+<span class="cline-any cline-neutral">&nbsp;</span>
482
+<span class="cline-any cline-neutral">&nbsp;</span>
483
+<span class="cline-any cline-neutral">&nbsp;</span>
484
+<span class="cline-any cline-neutral">&nbsp;</span>
485
+<span class="cline-any cline-yes">3x</span>
486
+<span class="cline-any cline-yes">3x</span>
487
+<span class="cline-any cline-yes">3x</span>
488
+<span class="cline-any cline-yes">3x</span>
489
+<span class="cline-any cline-yes">185x</span>
490
+<span class="cline-any cline-neutral">&nbsp;</span>
491
+<span class="cline-any cline-yes">185x</span>
492
+<span class="cline-any cline-yes">185x</span>
493
+<span class="cline-any cline-neutral">&nbsp;</span>
494
+<span class="cline-any cline-yes">3x</span>
495
+<span class="cline-any cline-neutral">&nbsp;</span>
496
+<span class="cline-any cline-neutral">&nbsp;</span>
497
+<span class="cline-any cline-neutral">&nbsp;</span>
498
+<span class="cline-any cline-neutral">&nbsp;</span>
499
+<span class="cline-any cline-neutral">&nbsp;</span>
500
+<span class="cline-any cline-neutral">&nbsp;</span>
501
+<span class="cline-any cline-neutral">&nbsp;</span>
502
+<span class="cline-any cline-neutral">&nbsp;</span>
503
+<span class="cline-any cline-neutral">&nbsp;</span>
504
+<span class="cline-any cline-neutral">&nbsp;</span>
505
+<span class="cline-any cline-neutral">&nbsp;</span>
506
+<span class="cline-any cline-neutral">&nbsp;</span>
507
+<span class="cline-any cline-neutral">&nbsp;</span>
508
+<span class="cline-any cline-neutral">&nbsp;</span>
509
+<span class="cline-any cline-yes">1x</span>
510
+<span class="cline-any cline-yes">1x</span>
511
+<span class="cline-any cline-yes">5x</span>
512
+<span class="cline-any cline-yes">5x</span>
513
+<span class="cline-any cline-yes">5x</span>
514
+<span class="cline-any cline-yes">5x</span>
515
+<span class="cline-any cline-yes">5x</span>
516
+<span class="cline-any cline-neutral">&nbsp;</span>
517
+<span class="cline-any cline-neutral">&nbsp;</span>
518
+<span class="cline-any cline-neutral">&nbsp;</span>
519
+<span class="cline-any cline-yes">1x</span>
520
+<span class="cline-any cline-neutral">&nbsp;</span>
521
+<span class="cline-any cline-neutral">&nbsp;</span>
522
+<span class="cline-any cline-neutral">&nbsp;</span>
523
+<span class="cline-any cline-neutral">&nbsp;</span>
524
+<span class="cline-any cline-neutral">&nbsp;</span>
525
+<span class="cline-any cline-neutral">&nbsp;</span>
526
+<span class="cline-any cline-neutral">&nbsp;</span>
527
+<span class="cline-any cline-neutral">&nbsp;</span>
528
+<span class="cline-any cline-neutral">&nbsp;</span>
529
+<span class="cline-any cline-neutral">&nbsp;</span>
530
+<span class="cline-any cline-neutral">&nbsp;</span>
531
+<span class="cline-any cline-yes">9x</span>
532
+<span class="cline-any cline-yes">4x</span>
533
+<span class="cline-any cline-neutral">&nbsp;</span>
534
+<span class="cline-any cline-yes">5x</span>
535
+<span class="cline-any cline-yes">6x</span>
536
+<span class="cline-any cline-yes">2x</span>
537
+<span class="cline-any cline-yes">2x</span>
538
+<span class="cline-any cline-yes">4x</span>
539
+<span class="cline-any cline-yes">3x</span>
540
+<span class="cline-any cline-yes">3x</span>
541
+<span class="cline-any cline-neutral">&nbsp;</span>
542
+<span class="cline-any cline-neutral">&nbsp;</span>
543
+<span class="cline-any cline-neutral">&nbsp;</span>
544
+<span class="cline-any cline-neutral">&nbsp;</span>
545
+<span class="cline-any cline-neutral">&nbsp;</span>
546
+<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">// @flow
547
+&nbsp;
548
+export type eventObject = {
549
+    id: number,
550
+    title: string,
551
+    logo: string,
552
+    date_begin: string,
553
+    date_end: string,
554
+    description: string,
555
+    club: string,
556
+    category_id: number,
557
+    url: string,
558
+};
559
+&nbsp;
560
+export default class PlanningEventManager {
561
+&nbsp;
562
+    // Regex used to check date string validity
563
+    static dateRegExp = /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}$/;
564
+&nbsp;
565
+    /**
566
+     * Gets the current day string representation in the format
567
+     * YYYY-MM-DD
568
+     *
569
+     * @return {string} The string representation
570
+     */
571
+    static getCurrentDateString(): string {
572
+        return PlanningEventManager.dateToString(new Date(Date.now()));
573
+    }
574
+&nbsp;
575
+    /**
576
+     * Checks if the given date is before the other.
577
+     *
578
+     * @param event1Date Event 1 date in format YYYY-MM-DD HH:MM
579
+     * @param event2Date Event 2 date in format YYYY-MM-DD HH:MM
580
+     * @return {boolean}
581
+     */
582
+    static isEventBefore(event1Date: string, event2Date: string): boolean {
583
+        let date1 = PlanningEventManager.stringToDate(event1Date);
584
+        let date2 = PlanningEventManager.stringToDate(event2Date);
585
+        if (date1 !== null &amp;&amp; date2 !== null)
586
+            return date1 &lt; date2;
587
+        else
588
+            return false;
589
+    }
590
+&nbsp;
591
+    /**
592
+     * Gets only the date part of the given event date string in the format
593
+     * YYYY-MM-DD HH:MM
594
+     *
595
+     * @param dateString The string to get the date from
596
+     * @return {string|null} Date in format YYYY:MM:DD or null if given string is invalid
597
+     */
598
+    static getDateOnlyString(dateString: string): string | null {
599
+        if (PlanningEventManager.isEventDateStringFormatValid(dateString))
600
+            return dateString.split(" ")[0];
601
+        else
602
+            return null;
603
+    }
604
+&nbsp;
605
+    /**
606
+     * Checks if the given date string is in the format
607
+     * YYYY-MM-DD HH:MM
608
+     *
609
+     * @param dateString The string to check
610
+     * @return {boolean}
611
+     */
612
+    static isEventDateStringFormatValid(dateString: ?string): boolean {
613
+        return dateString !== undefined
614
+            &amp;&amp; dateString !== null
615
+            &amp;&amp; PlanningEventManager.dateRegExp.test(dateString);
616
+    }
617
+&nbsp;
618
+    /**
619
+     * Converts the given date string to a date object.&lt;br&gt;
620
+     * Accepted format: YYYY-MM-DD HH:MM
621
+     *
622
+     * @param dateString The string to convert
623
+     * @return {Date|null} The date object or null if the given string is invalid
624
+     */
625
+    static stringToDate(dateString: string): Date | null {
626
+        let date = new Date();
627
+        if (PlanningEventManager.isEventDateStringFormatValid(dateString)) {
628
+            let stringArray = dateString.split(' ');
629
+            let dateArray = stringArray[0].split('-');
630
+            let timeArray = stringArray[1].split(':');
631
+            date.setFullYear(
632
+                parseInt(dateArray[0]),
633
+                parseInt(dateArray[1]) - 1, // Month range from 0 to 11
634
+                parseInt(dateArray[2])
635
+            );
636
+            date.setHours(
637
+                parseInt(timeArray[0]),
638
+                parseInt(timeArray[1]),
639
+                0,
640
+                0,
641
+            );
642
+        } else
643
+            date = null;
644
+&nbsp;
645
+        return date;
646
+    }
647
+&nbsp;
648
+    /**
649
+     * Converts a date object to a string in the format
650
+     * YYYY-MM-DD HH-MM-SS
651
+     *
652
+     * @param date The date object to convert
653
+     * @return {string} The converted string
654
+     */
655
+    static dateToString(date: Date): string {
656
+        const day = String(date.getDate()).padStart(2, '0');
657
+        const month = String(date.getMonth() + 1).padStart(2, '0'); //January is 0!
658
+        const year = date.getFullYear();
659
+        const hours = String(date.getHours()).padStart(2, '0');
660
+        const minutes = String(date.getMinutes()).padStart(2, '0');
661
+        return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes;
662
+    }
663
+&nbsp;
664
+    /**
665
+     * Returns a string corresponding to the event start and end times in the following format:
666
+     *
667
+     * HH:MM - HH:MM
668
+     *
669
+     * If the end date is not specified or is equal to start time, only start time will be shown.
670
+     *
671
+     * If the end date is not on the same day, 23:59 will be shown as end time
672
+     *
673
+     * @param start Start time in YYYY-MM-DD HH:MM:SS format
674
+     * @param end End time in YYYY-MM-DD HH:MM:SS format
675
+     * @return {string} Formatted string or "/ - /" on error
676
+     */
677
+    static getFormattedEventTime(start: string, end: string): string {
678
+        let formattedStr = '/ - /';
679
+        let startDate = PlanningEventManager.stringToDate(start);
680
+        let endDate = PlanningEventManager.stringToDate(end);
681
+&nbsp;
682
+        if (startDate !== null &amp;&amp; endDate !== null &amp;&amp; startDate.getTime() !== endDate.getTime()) {
683
+            formattedStr = String(startDate.getHours()).padStart(2, '0') + ':'
684
+                + String(startDate.getMinutes()).padStart(2, '0') + ' - ';
685
+            if (endDate.getFullYear() &gt; startDate.getFullYear()
686
+                || endDate.getMonth() &gt; startDate.getMonth()
687
+                || endDate.getDate() &gt; startDate.getDate())
688
+                formattedStr += '23:59';
689
+            else
690
+                formattedStr += String(endDate.getHours()).padStart(2, '0') + ':'
691
+                    + String(endDate.getMinutes()).padStart(2, '0');
692
+        } else if (startDate !== null)
693
+            formattedStr =
694
+                String(startDate.getHours()).padStart(2, '0') + ':'
695
+                + String(startDate.getMinutes()).padStart(2, '0');
696
+&nbsp;
697
+        return formattedStr
698
+    }
699
+&nbsp;
700
+    /**
701
+     * Checks if the given description can be considered empty.
702
+     * &lt;br&gt;
703
+     * An empty description is composed only of whitespace, &lt;b&gt;br&lt;/b&gt; or &lt;b&gt;p&lt;/b&gt; tags
704
+     *
705
+     *
706
+     * @param description The text to check
707
+     * @return {boolean}
708
+     */
709
+    static isDescriptionEmpty(description: ?string): boolean {
710
+        if (description !== undefined &amp;&amp; description !== null) {
711
+            return description
712
+                .split('&lt;p&gt;').join('') // Equivalent to a replace all
713
+                .split('&lt;/p&gt;').join('')
714
+                .split('&lt;br&gt;').join('').trim() === '';
715
+        } else
716
+            return true;
717
+    }
718
+&nbsp;
719
+    /**
720
+     * Generates an object with an empty array for each key.
721
+     * Each key is a date string in the format
722
+     * YYYY-MM-DD
723
+     *
724
+     * @param numberOfMonths The number of months to create, starting from the current date
725
+     * @return {Object}
726
+     */
727
+    static generateEmptyCalendar(numberOfMonths: number): Object {
728
+        let end = new Date(Date.now());
729
+        end.setMonth(end.getMonth() + numberOfMonths);
730
+        let daysOfYear = {};
731
+        for (let d = new Date(Date.now()); d &lt;= end; d.setDate(d.getDate() + 1)) {
732
+            const dateString = PlanningEventManager.getDateOnlyString(
733
+                PlanningEventManager.dateToString(new Date(d)));
734
+            <span class="missing-if-branch" title="else path not taken" >E</span>if (dateString !== null)
735
+                daysOfYear[dateString] = []
736
+        }
737
+        return daysOfYear;
738
+    }
739
+&nbsp;
740
+    /**
741
+     * Generates an object with an array of eventObject at each key.
742
+     * Each key is a date string in the format
743
+     * YYYY-MM-DD.
744
+     *
745
+     * If no event is available at the given key, the array will be empty
746
+     *
747
+     * @param eventList The list of events to map to the agenda
748
+     * @param numberOfMonths The number of months to create the agenda for
749
+     * @return {Object}
750
+     */
751
+    static generateEventAgenda(eventList: Array&lt;eventObject&gt;, numberOfMonths: number): Object {
752
+        let agendaItems = PlanningEventManager.generateEmptyCalendar(numberOfMonths);
753
+        for (let i = 0; i &lt; eventList.length; i++) {
754
+            const dateString = PlanningEventManager.getDateOnlyString(eventList[i].date_begin);
755
+            <span class="missing-if-branch" title="else path not taken" >E</span>if (dateString !== null) {
756
+                const eventArray = agendaItems[dateString];
757
+                <span class="missing-if-branch" title="else path not taken" >E</span>if (eventArray !== undefined)
758
+                    this.pushEventInOrder(eventArray, eventList[i]);
759
+            }
760
+&nbsp;
761
+        }
762
+        return agendaItems;
763
+    }
764
+&nbsp;
765
+    /**
766
+     * Adds events to the given array depending on their starting date.
767
+     *
768
+     * Events starting before are added at the front.
769
+     *
770
+     * @param eventArray The array to hold sorted events
771
+     * @param event The event to add to the array
772
+     */
773
+    static pushEventInOrder(eventArray: Array&lt;eventObject&gt;, event: eventObject): Object {
774
+        if (eventArray.length === 0)
775
+            eventArray.push(event);
776
+        else {
777
+            for (let i = 0; i &lt; eventArray.length; i++) {
778
+                if (PlanningEventManager.isEventBefore(event.date_begin, eventArray[i].date_begin)) {
779
+                    eventArray.splice(i, 0, event);
780
+                    break;
781
+                } else if (i === eventArray.length - 1) {
782
+                    eventArray.push(event);
783
+                    break;
784
+                }
785
+            }
786
+        }
787
+    }
788
+}
789
+&nbsp;</pre></td></tr></table></pre>
790
+
791
+                <div class='push'></div><!-- for sticky footer -->
792
+            </div><!-- /wrapper -->
793
+            <div class='footer quiet pad2 space-top1 center small'>
794
+                Code coverage generated by
795
+                <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
796
+                at Sun Mar 22 2020 16:05:01 GMT+0100 (Central European Standard Time)
797
+            </div>
798
+        </div>
799
+        <script src="prettify.js"></script>
800
+        <script>
801
+            window.onload = function () {
802
+                prettyPrint();
803
+            };
804
+        </script>
805
+        <script src="sorter.js"></script>
806
+        <script src="block-navigation.js"></script>
807
+    </body>
808
+</html>
809
+    

+ 224
- 0
coverage/lcov-report/base.css View File

@@ -0,0 +1,224 @@
1
+body, html {
2
+  margin:0; padding: 0;
3
+  height: 100%;
4
+}
5
+body {
6
+    font-family: Helvetica Neue, Helvetica, Arial;
7
+    font-size: 14px;
8
+    color:#333;
9
+}
10
+.small { font-size: 12px; }
11
+*, *:after, *:before {
12
+  -webkit-box-sizing:border-box;
13
+     -moz-box-sizing:border-box;
14
+          box-sizing:border-box;
15
+  }
16
+h1 { font-size: 20px; margin: 0;}
17
+h2 { font-size: 14px; }
18
+pre {
19
+    font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace;
20
+    margin: 0;
21
+    padding: 0;
22
+    -moz-tab-size: 2;
23
+    -o-tab-size:  2;
24
+    tab-size: 2;
25
+}
26
+a { color:#0074D9; text-decoration:none; }
27
+a:hover { text-decoration:underline; }
28
+.strong { font-weight: bold; }
29
+.space-top1 { padding: 10px 0 0 0; }
30
+.pad2y { padding: 20px 0; }
31
+.pad1y { padding: 10px 0; }
32
+.pad2x { padding: 0 20px; }
33
+.pad2 { padding: 20px; }
34
+.pad1 { padding: 10px; }
35
+.space-left2 { padding-left:55px; }
36
+.space-right2 { padding-right:20px; }
37
+.center { text-align:center; }
38
+.clearfix { display:block; }
39
+.clearfix:after {
40
+  content:'';
41
+  display:block;
42
+  height:0;
43
+  clear:both;
44
+  visibility:hidden;
45
+  }
46
+.fl { float: left; }
47
+@media only screen and (max-width:640px) {
48
+  .col3 { width:100%; max-width:100%; }
49
+  .hide-mobile { display:none!important; }
50
+}
51
+
52
+.quiet {
53
+  color: #7f7f7f;
54
+  color: rgba(0,0,0,0.5);
55
+}
56
+.quiet a { opacity: 0.7; }
57
+
58
+.fraction {
59
+  font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;
60
+  font-size: 10px;
61
+  color: #555;
62
+  background: #E8E8E8;
63
+  padding: 4px 5px;
64
+  border-radius: 3px;
65
+  vertical-align: middle;
66
+}
67
+
68
+div.path a:link, div.path a:visited { color: #333; }
69
+table.coverage {
70
+  border-collapse: collapse;
71
+  margin: 10px 0 0 0;
72
+  padding: 0;
73
+}
74
+
75
+table.coverage td {
76
+  margin: 0;
77
+  padding: 0;
78
+  vertical-align: top;
79
+}
80
+table.coverage td.line-count {
81
+    text-align: right;
82
+    padding: 0 5px 0 20px;
83
+}
84
+table.coverage td.line-coverage {
85
+    text-align: right;
86
+    padding-right: 10px;
87
+    min-width:20px;
88
+}
89
+
90
+table.coverage td span.cline-any {
91
+    display: inline-block;
92
+    padding: 0 5px;
93
+    width: 100%;
94
+}
95
+.missing-if-branch {
96
+    display: inline-block;
97
+    margin-right: 5px;
98
+    border-radius: 3px;
99
+    position: relative;
100
+    padding: 0 4px;
101
+    background: #333;
102
+    color: yellow;
103
+}
104
+
105
+.skip-if-branch {
106
+    display: none;
107
+    margin-right: 10px;
108
+    position: relative;
109
+    padding: 0 4px;
110
+    background: #ccc;
111
+    color: white;
112
+}
113
+.missing-if-branch .typ, .skip-if-branch .typ {
114
+    color: inherit !important;
115
+}
116
+.coverage-summary {
117
+  border-collapse: collapse;
118
+  width: 100%;
119
+}
120
+.coverage-summary tr { border-bottom: 1px solid #bbb; }
121
+.keyline-all { border: 1px solid #ddd; }
122
+.coverage-summary td, .coverage-summary th { padding: 10px; }
123
+.coverage-summary tbody { border: 1px solid #bbb; }
124
+.coverage-summary td { border-right: 1px solid #bbb; }
125
+.coverage-summary td:last-child { border-right: none; }
126
+.coverage-summary th {
127
+  text-align: left;
128
+  font-weight: normal;
129
+  white-space: nowrap;
130
+}
131
+.coverage-summary th.file { border-right: none !important; }
132
+.coverage-summary th.pct { }
133
+.coverage-summary th.pic,
134
+.coverage-summary th.abs,
135
+.coverage-summary td.pct,
136
+.coverage-summary td.abs { text-align: right; }
137
+.coverage-summary td.file { white-space: nowrap;  }
138
+.coverage-summary td.pic { min-width: 120px !important;  }
139
+.coverage-summary tfoot td { }
140
+
141
+.coverage-summary .sorter {
142
+    height: 10px;
143
+    width: 7px;
144
+    display: inline-block;
145
+    margin-left: 0.5em;
146
+    background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent;
147
+}
148
+.coverage-summary .sorted .sorter {
149
+    background-position: 0 -20px;
150
+}
151
+.coverage-summary .sorted-desc .sorter {
152
+    background-position: 0 -10px;
153
+}
154
+.status-line {  height: 10px; }
155
+/* yellow */
156
+.cbranch-no { background: yellow !important; color: #111; }
157
+/* dark red */
158
+.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 }
159
+.low .chart { border:1px solid #C21F39 }
160
+.highlighted,
161
+.highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{
162
+  background: #C21F39 !important;
163
+}
164
+/* medium red */
165
+.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE }
166
+/* light red */
167
+.low, .cline-no { background:#FCE1E5 }
168
+/* light green */
169
+.high, .cline-yes { background:rgb(230,245,208) }
170
+/* medium green */
171
+.cstat-yes { background:rgb(161,215,106) }
172
+/* dark green */
173
+.status-line.high, .high .cover-fill { background:rgb(77,146,33) }
174
+.high .chart { border:1px solid rgb(77,146,33) }
175
+/* dark yellow (gold) */
176
+.status-line.medium, .medium .cover-fill { background: #f9cd0b; }
177
+.medium .chart { border:1px solid #f9cd0b; }
178
+/* light yellow */
179
+.medium { background: #fff4c2; }
180
+
181
+.cstat-skip { background: #ddd; color: #111; }
182
+.fstat-skip { background: #ddd; color: #111 !important; }
183
+.cbranch-skip { background: #ddd !important; color: #111; }
184
+
185
+span.cline-neutral { background: #eaeaea; }
186
+
187
+.coverage-summary td.empty {
188
+    opacity: .5;
189
+    padding-top: 4px;
190
+    padding-bottom: 4px;
191
+    line-height: 1;
192
+    color: #888;
193
+}
194
+
195
+.cover-fill, .cover-empty {
196
+  display:inline-block;
197
+  height: 12px;
198
+}
199
+.chart {
200
+  line-height: 0;
201
+}
202
+.cover-empty {
203
+    background: white;
204
+}
205
+.cover-full {
206
+    border-right: none !important;
207
+}
208
+pre.prettyprint {
209
+    border: none !important;
210
+    padding: 0 !important;
211
+    margin: 0 !important;
212
+}
213
+.com { color: #999 !important; }
214
+.ignore-none { color: #999; font-weight: normal; }
215
+
216
+.wrapper {
217
+  min-height: 100%;
218
+  height: auto !important;
219
+  height: 100%;
220
+  margin: 0 auto -48px;
221
+}
222
+.footer, .push {
223
+  height: 48px;
224
+}

+ 79
- 0
coverage/lcov-report/block-navigation.js View File

@@ -0,0 +1,79 @@
1
+/* eslint-disable */
2
+var jumpToCode = (function init() {
3
+    // Classes of code we would like to highlight in the file view
4
+    var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no'];
5
+
6
+    // Elements to highlight in the file listing view
7
+    var fileListingElements = ['td.pct.low'];
8
+
9
+    // We don't want to select elements that are direct descendants of another match
10
+    var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > `
11
+
12
+    // Selecter that finds elements on the page to which we can jump
13
+    var selector =
14
+        fileListingElements.join(', ') +
15
+        ', ' +
16
+        notSelector +
17
+        missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b`
18
+
19
+    // The NodeList of matching elements
20
+    var missingCoverageElements = document.querySelectorAll(selector);
21
+
22
+    var currentIndex;
23
+
24
+    function toggleClass(index) {
25
+        missingCoverageElements
26
+            .item(currentIndex)
27
+            .classList.remove('highlighted');
28
+        missingCoverageElements.item(index).classList.add('highlighted');
29
+    }
30
+
31
+    function makeCurrent(index) {
32
+        toggleClass(index);
33
+        currentIndex = index;
34
+        missingCoverageElements.item(index).scrollIntoView({
35
+            behavior: 'smooth',
36
+            block: 'center',
37
+            inline: 'center'
38
+        });
39
+    }
40
+
41
+    function goToPrevious() {
42
+        var nextIndex = 0;
43
+        if (typeof currentIndex !== 'number' || currentIndex === 0) {
44
+            nextIndex = missingCoverageElements.length - 1;
45
+        } else if (missingCoverageElements.length > 1) {
46
+            nextIndex = currentIndex - 1;
47
+        }
48
+
49
+        makeCurrent(nextIndex);
50
+    }
51
+
52
+    function goToNext() {
53
+        var nextIndex = 0;
54
+
55
+        if (
56
+            typeof currentIndex === 'number' &&
57
+            currentIndex < missingCoverageElements.length - 1
58
+        ) {
59
+            nextIndex = currentIndex + 1;
60
+        }
61
+
62
+        makeCurrent(nextIndex);
63
+    }
64
+
65
+    return function jump(event) {
66
+        switch (event.which) {
67
+            case 78: // n
68
+            case 74: // j
69
+                goToNext();
70
+                break;
71
+            case 66: // b
72
+            case 75: // k
73
+            case 80: // p
74
+                goToPrevious();
75
+                break;
76
+        }
77
+    };
78
+})();
79
+window.addEventListener('keydown', jumpToCode);

BIN
coverage/lcov-report/favicon.png View File


+ 111
- 0
coverage/lcov-report/index.html View File

@@ -0,0 +1,111 @@
1
+
2
+<!doctype html>
3
+<html lang="en">
4
+
5
+<head>
6
+    <title>Code coverage report for All files</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>All files</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'>68/68</span>
29
+            </div>
30
+        
31
+            
32
+            <div class='fl pad1y space-right2'>
33
+                <span class="strong">92.31% </span>
34
+                <span class="quiet">Branches</span>
35
+                <span class='fraction'>36/39</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'>11/11</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'>65/65</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
+    </div>
58
+    <div class='status-line high'></div>
59
+    <div class="pad1">
60
+<table class="coverage-summary">
61
+<thead>
62
+<tr>
63
+   <th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
64
+   <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
65
+   <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
66
+   <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
67
+   <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
68
+   <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
69
+   <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
70
+   <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
71
+   <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
72
+   <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
73
+</tr>
74
+</thead>
75
+<tbody><tr>
76
+	<td class="file high" data-value="PlanningEventManager.js"><a href="PlanningEventManager.js.html">PlanningEventManager.js</a></td>
77
+	<td data-value="100" class="pic high">
78
+	<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
79
+	</td>
80
+	<td data-value="100" class="pct high">100%</td>
81
+	<td data-value="68" class="abs high">68/68</td>
82
+	<td data-value="92.31" class="pct high">92.31%</td>
83
+	<td data-value="39" class="abs high">36/39</td>
84
+	<td data-value="100" class="pct high">100%</td>
85
+	<td data-value="11" class="abs high">11/11</td>
86
+	<td data-value="100" class="pct high">100%</td>
87
+	<td data-value="65" class="abs high">65/65</td>
88
+	</tr>
89
+
90
+</tbody>
91
+</table>
92
+</div>
93
+                <div class='push'></div><!-- for sticky footer -->
94
+            </div><!-- /wrapper -->
95
+            <div class='footer quiet pad2 space-top1 center small'>
96
+                Code coverage generated by
97
+                <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
98
+                at Sun Mar 22 2020 16:05:01 GMT+0100 (Central European Standard Time)
99
+            </div>
100
+        </div>
101
+        <script src="prettify.js"></script>
102
+        <script>
103
+            window.onload = function () {
104
+                prettyPrint();
105
+            };
106
+        </script>
107
+        <script src="sorter.js"></script>
108
+        <script src="block-navigation.js"></script>
109
+    </body>
110
+</html>
111
+    

+ 1
- 0
coverage/lcov-report/prettify.css View File

@@ -0,0 +1 @@
1
+.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}

+ 2
- 0
coverage/lcov-report/prettify.js
File diff suppressed because it is too large
View File


BIN
coverage/lcov-report/sort-arrow-sprite.png View File


+ 170
- 0
coverage/lcov-report/sorter.js View File

@@ -0,0 +1,170 @@
1
+/* eslint-disable */
2
+var addSorting = (function() {
3
+    'use strict';
4
+    var cols,
5
+        currentSort = {
6
+            index: 0,
7
+            desc: false
8
+        };
9
+
10
+    // returns the summary table element
11
+    function getTable() {
12
+        return document.querySelector('.coverage-summary');
13
+    }
14
+    // returns the thead element of the summary table
15
+    function getTableHeader() {
16
+        return getTable().querySelector('thead tr');
17
+    }
18
+    // returns the tbody element of the summary table
19
+    function getTableBody() {
20
+        return getTable().querySelector('tbody');
21
+    }
22
+    // returns the th element for nth column
23
+    function getNthColumn(n) {
24
+        return getTableHeader().querySelectorAll('th')[n];
25
+    }
26
+
27
+    // loads all columns
28
+    function loadColumns() {
29
+        var colNodes = getTableHeader().querySelectorAll('th'),
30
+            colNode,
31
+            cols = [],
32
+            col,
33
+            i;
34
+
35
+        for (i = 0; i < colNodes.length; i += 1) {
36
+            colNode = colNodes[i];
37
+            col = {
38
+                key: colNode.getAttribute('data-col'),
39
+                sortable: !colNode.getAttribute('data-nosort'),
40
+                type: colNode.getAttribute('data-type') || 'string'
41
+            };
42
+            cols.push(col);
43
+            if (col.sortable) {
44
+                col.defaultDescSort = col.type === 'number';
45
+                colNode.innerHTML =
46
+                    colNode.innerHTML + '<span class="sorter"></span>';
47
+            }
48
+        }
49
+        return cols;
50
+    }
51
+    // attaches a data attribute to every tr element with an object
52
+    // of data values keyed by column name
53
+    function loadRowData(tableRow) {
54
+        var tableCols = tableRow.querySelectorAll('td'),
55
+            colNode,
56
+            col,
57
+            data = {},
58
+            i,
59
+            val;
60
+        for (i = 0; i < tableCols.length; i += 1) {
61
+            colNode = tableCols[i];
62
+            col = cols[i];
63
+            val = colNode.getAttribute('data-value');
64
+            if (col.type === 'number') {
65
+                val = Number(val);
66
+            }
67
+            data[col.key] = val;
68
+        }
69
+        return data;
70
+    }
71
+    // loads all row data
72
+    function loadData() {
73
+        var rows = getTableBody().querySelectorAll('tr'),
74
+            i;
75
+
76
+        for (i = 0; i < rows.length; i += 1) {
77
+            rows[i].data = loadRowData(rows[i]);
78
+        }
79
+    }
80
+    // sorts the table using the data for the ith column
81
+    function sortByIndex(index, desc) {
82
+        var key = cols[index].key,
83
+            sorter = function(a, b) {
84
+                a = a.data[key];
85
+                b = b.data[key];
86
+                return a < b ? -1 : a > b ? 1 : 0;
87
+            },
88
+            finalSorter = sorter,
89
+            tableBody = document.querySelector('.coverage-summary tbody'),
90
+            rowNodes = tableBody.querySelectorAll('tr'),
91
+            rows = [],
92
+            i;
93
+
94
+        if (desc) {
95
+            finalSorter = function(a, b) {
96
+                return -1 * sorter(a, b);
97
+            };
98
+        }
99
+
100
+        for (i = 0; i < rowNodes.length; i += 1) {
101
+            rows.push(rowNodes[i]);
102
+            tableBody.removeChild(rowNodes[i]);
103
+        }
104
+
105
+        rows.sort(finalSorter);
106
+
107
+        for (i = 0; i < rows.length; i += 1) {
108
+            tableBody.appendChild(rows[i]);
109
+        }
110
+    }
111
+    // removes sort indicators for current column being sorted
112
+    function removeSortIndicators() {
113
+        var col = getNthColumn(currentSort.index),
114
+            cls = col.className;
115
+
116
+        cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, '');
117
+        col.className = cls;
118
+    }
119
+    // adds sort indicators for current column being sorted
120
+    function addSortIndicators() {
121
+        getNthColumn(currentSort.index).className += currentSort.desc
122
+            ? ' sorted-desc'
123
+            : ' sorted';
124
+    }
125
+    // adds event listeners for all sorter widgets
126
+    function enableUI() {
127
+        var i,
128
+            el,
129
+            ithSorter = function ithSorter(i) {
130
+                var col = cols[i];
131
+
132
+                return function() {
133
+                    var desc = col.defaultDescSort;
134
+
135
+                    if (currentSort.index === i) {
136
+                        desc = !currentSort.desc;
137
+                    }
138
+                    sortByIndex(i, desc);
139
+                    removeSortIndicators();
140
+                    currentSort.index = i;
141
+                    currentSort.desc = desc;
142
+                    addSortIndicators();
143
+                };
144
+            };
145
+        for (i = 0; i < cols.length; i += 1) {
146
+            if (cols[i].sortable) {
147
+                // add the click event handler on the th so users
148
+                // dont have to click on those tiny arrows
149
+                el = getNthColumn(i).querySelector('.sorter').parentElement;
150
+                if (el.addEventListener) {
151
+                    el.addEventListener('click', ithSorter(i));
152
+                } else {
153
+                    el.attachEvent('onclick', ithSorter(i));
154
+                }
155
+            }
156
+        }
157
+    }
158
+    // adds sorting functionality to the UI
159
+    return function() {
160
+        if (!getTable()) {
161
+            return;
162
+        }
163
+        cols = loadColumns();
164
+        loadData();
165
+        addSortIndicators();
166
+        enableUI();
167
+    };
168
+})();
169
+
170
+window.addEventListener('load', addSorting);

+ 135
- 0
coverage/lcov.info View File

@@ -0,0 +1,135 @@
1
+TN:
2
+SF:utils/PlanningEventManager.js
3
+FN:26,(anonymous_0)
4
+FN:37,(anonymous_1)
5
+FN:53,(anonymous_2)
6
+FN:67,(anonymous_3)
7
+FN:80,(anonymous_4)
8
+FN:110,(anonymous_5)
9
+FN:132,(anonymous_6)
10
+FN:164,(anonymous_7)
11
+FN:182,(anonymous_8)
12
+FN:206,(anonymous_9)
13
+FN:228,(anonymous_10)
14
+FNF:11
15
+FNH:11
16
+FNDA:1,(anonymous_0)
17
+FNDA:19,(anonymous_1)
18
+FNDA:196,(anonymous_2)
19
+FNDA:271,(anonymous_3)
20
+FNDA:62,(anonymous_4)
21
+FNDA:189,(anonymous_5)
22
+FNDA:7,(anonymous_6)
23
+FNDA:12,(anonymous_7)
24
+FNDA:3,(anonymous_8)
25
+FNDA:1,(anonymous_9)
26
+FNDA:9,(anonymous_10)
27
+DA:18,1
28
+DA:27,1
29
+DA:38,19
30
+DA:39,19
31
+DA:40,19
32
+DA:41,17
33
+DA:43,2
34
+DA:54,196
35
+DA:55,192
36
+DA:57,4
37
+DA:68,271
38
+DA:81,62
39
+DA:82,62
40
+DA:83,44
41
+DA:84,44
42
+DA:85,44
43
+DA:86,44
44
+DA:91,44
45
+DA:98,18
46
+DA:100,62
47
+DA:111,189
48
+DA:112,189
49
+DA:113,189
50
+DA:114,189
51
+DA:115,189
52
+DA:116,189
53
+DA:133,7
54
+DA:134,7
55
+DA:135,7
56
+DA:137,7
57
+DA:138,2
58
+DA:140,2
59
+DA:143,1
60
+DA:145,1
61
+DA:147,5
62
+DA:148,1
63
+DA:152,7
64
+DA:165,12
65
+DA:166,10
66
+DA:171,2
67
+DA:183,3
68
+DA:184,3
69
+DA:185,3
70
+DA:186,3
71
+DA:187,185
72
+DA:189,185
73
+DA:190,185
74
+DA:192,3
75
+DA:207,1
76
+DA:208,1
77
+DA:209,5
78
+DA:210,5
79
+DA:211,5
80
+DA:212,5
81
+DA:213,5
82
+DA:217,1
83
+DA:229,9
84
+DA:230,4
85
+DA:232,5
86
+DA:233,6
87
+DA:234,2
88
+DA:235,2
89
+DA:236,4
90
+DA:237,3
91
+DA:238,3
92
+LF:65
93
+LH:65
94
+BRDA:40,0,0,17
95
+BRDA:40,0,1,2
96
+BRDA:40,1,0,19
97
+BRDA:40,1,1,17
98
+BRDA:54,2,0,192
99
+BRDA:54,2,1,4
100
+BRDA:68,3,0,271
101
+BRDA:68,3,1,265
102
+BRDA:68,3,2,262
103
+BRDA:82,4,0,44
104
+BRDA:82,4,1,18
105
+BRDA:137,5,0,2
106
+BRDA:137,5,1,5
107
+BRDA:137,6,0,7
108
+BRDA:137,6,1,3
109
+BRDA:137,6,2,3
110
+BRDA:140,7,0,1
111
+BRDA:140,7,1,1
112
+BRDA:140,8,0,2
113
+BRDA:140,8,1,2
114
+BRDA:140,8,2,2
115
+BRDA:147,9,0,1
116
+BRDA:147,9,1,4
117
+BRDA:165,10,0,10
118
+BRDA:165,10,1,2
119
+BRDA:165,11,0,12
120
+BRDA:165,11,1,11
121
+BRDA:189,12,0,185
122
+BRDA:189,12,1,0
123
+BRDA:210,13,0,5
124
+BRDA:210,13,1,0
125
+BRDA:212,14,0,5
126
+BRDA:212,14,1,0
127
+BRDA:229,15,0,4
128
+BRDA:229,15,1,5
129
+BRDA:233,16,0,2
130
+BRDA:233,16,1,4
131
+BRDA:236,17,0,3
132
+BRDA:236,17,1,1
133
+BRF:39
134
+BRH:36
135
+end_of_record

Loading…
Cancel
Save