@esri/solutions-components 0.5.3 → 0.5.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (116) hide show
  1. package/dist/cjs/calcite-input-text_5.cjs.entry.js +36 -36
  2. package/dist/cjs/calcite-shell-panel_14.cjs.entry.js +1 -1
  3. package/dist/cjs/solution-configuration.cjs.entry.js +1 -1
  4. package/dist/cjs/solution-contents_3.cjs.entry.js +1 -1
  5. package/dist/cjs/{solution-store-70002b57.js → solution-store-ca4639d5.js} +3 -3
  6. package/dist/collection/components/add-record-modal/test/add-record-modal.e2e.js +24 -0
  7. package/dist/collection/components/add-record-modal/test/add-record-modal.spec.js +32 -0
  8. package/dist/collection/components/buffer-tools/test/buffer-tools.e2e.js +24 -0
  9. package/dist/collection/components/buffer-tools/test/buffer-tools.spec.js +157 -0
  10. package/dist/collection/components/card-manager/test/card-manager.e2e.js +24 -0
  11. package/dist/collection/components/card-manager/test/card-manager.spec.js +32 -0
  12. package/dist/collection/components/comment-card/test/comment-card.e2e.js +24 -0
  13. package/dist/collection/components/comment-card/test/comment-card.spec.js +32 -0
  14. package/dist/collection/components/crowdsource-manager/test/crowdsource-manager.e2e.js +24 -0
  15. package/dist/collection/components/crowdsource-manager/test/crowdsource-manager.spec.js +32 -0
  16. package/dist/collection/components/crowdsource-reporter/test/crowdsource-reporter.e2e.js +24 -0
  17. package/dist/collection/components/crowdsource-reporter/test/crowdsource-reporter.spec.js +32 -0
  18. package/dist/collection/components/deduct-calculator/test/deduct-calculator.e2e.js +24 -0
  19. package/dist/collection/components/deduct-calculator/test/deduct-calculator.spec.js +32 -0
  20. package/dist/collection/components/edit-record-modal/test/edit-record-modal.e2e.js +24 -0
  21. package/dist/collection/components/edit-record-modal/test/edit-record-modal.spec.js +32 -0
  22. package/dist/collection/components/info-card/test/info-card.e2e.js +24 -0
  23. package/dist/collection/components/info-card/test/info-card.spec.js +32 -0
  24. package/dist/collection/components/json-editor/test/json-editor.e2e.js +31 -0
  25. package/dist/collection/components/json-editor/test/json-editor.spec.js +60 -0
  26. package/dist/collection/components/layer-table/test/layer-table.e2e.js +24 -0
  27. package/dist/collection/components/layer-table/test/layer-table.spec.js +32 -0
  28. package/dist/collection/components/list-item/test/list-item.e2e.js +24 -0
  29. package/dist/collection/components/list-item/test/list-item.spec.js +32 -0
  30. package/dist/collection/components/map-card/test/map-card.e2e.js +24 -0
  31. package/dist/collection/components/map-card/test/map-card.spec.js +32 -0
  32. package/dist/collection/components/map-draw-tools/test/map-draw-tools.e2e.js +24 -0
  33. package/dist/collection/components/map-draw-tools/test/map-draw-tools.spec.js +32 -0
  34. package/dist/collection/components/map-layer-picker/test/map-layer-picker.e2e.js +24 -0
  35. package/dist/collection/components/map-layer-picker/test/map-layer-picker.spec.js +109 -0
  36. package/dist/collection/components/map-search/test/map-search.e2e.js +24 -0
  37. package/dist/collection/components/map-search/test/map-search.spec.js +53 -0
  38. package/dist/collection/components/map-select-tools/map-select-tools.js +36 -36
  39. package/dist/collection/components/map-select-tools/test/map-select-tools.e2e.js +24 -0
  40. package/dist/collection/components/map-select-tools/test/map-select-tools.spec.js +349 -0
  41. package/dist/collection/components/media-card/test/media-card.e2e.js +24 -0
  42. package/dist/collection/components/media-card/test/media-card.spec.js +32 -0
  43. package/dist/collection/components/pci-calculator/test/pci-calculator.e2e.js +24 -0
  44. package/dist/collection/components/pci-calculator/test/pci-calculator.spec.js +32 -0
  45. package/dist/collection/components/pdf-download/test/pdf-download.e2e.js +71 -0
  46. package/dist/collection/components/pdf-download/test/pdf-download.spec.js +104 -0
  47. package/dist/collection/components/public-notification/test/public-notification.e2e.js +95 -0
  48. package/dist/collection/components/public-notification/test/public-notification.spec.js +149 -0
  49. package/dist/collection/components/refine-selection/refine-selection.css +85 -85
  50. package/dist/collection/components/solution-configuration/test/solution-configuration.e2e.js +31 -0
  51. package/dist/collection/components/solution-configuration/test/solution-configuration.spec.js +114 -0
  52. package/dist/collection/components/solution-contents/test/solution-contents.e2e.js +89 -0
  53. package/dist/collection/components/solution-contents/test/solution-contents.spec.js +138 -0
  54. package/dist/collection/components/solution-item/test/solution-item.e2e.js +31 -0
  55. package/dist/collection/components/solution-item/test/solution-item.spec.js +72 -0
  56. package/dist/collection/components/solution-item-details/test/solution-item-details.e2e.js +31 -0
  57. package/dist/collection/components/solution-item-details/test/solution-item-details.spec.js +137 -0
  58. package/dist/collection/components/solution-item-icon/test/solution-item-icon.e2e.js +24 -0
  59. package/dist/collection/components/solution-item-icon/test/solution-item-icon.spec.js +34 -0
  60. package/dist/collection/components/solution-item-sharing/test/solution-item-sharing.e2e.js +31 -0
  61. package/dist/collection/components/solution-item-sharing/test/solution-item-sharing.spec.js +49 -0
  62. package/dist/collection/components/solution-organization-variables/test/solution-organization-variables.e2e.js +31 -0
  63. package/dist/collection/components/solution-organization-variables/test/solution-organization-variables.spec.js +60 -0
  64. package/dist/collection/components/solution-resource-item/test/solution-resource-item.e2e.js +31 -0
  65. package/dist/collection/components/solution-resource-item/test/solution-resource-item.spec.js +50 -0
  66. package/dist/collection/components/solution-spatial-ref/test/solution-spatial-ref.e2e.js +31 -0
  67. package/dist/collection/components/solution-spatial-ref/test/solution-spatial-ref.spec.js +170 -0
  68. package/dist/collection/components/solution-template-data/test/solution-template-data.e2e.js +31 -0
  69. package/dist/collection/components/solution-template-data/test/solution-template-data.spec.js +55 -0
  70. package/dist/collection/components/solution-variables/test/solution-variables.e2e.js +31 -0
  71. package/dist/collection/components/solution-variables/test/solution-variables.spec.js +126 -0
  72. package/dist/collection/utils/publicNotificationUtils.js +45 -0
  73. package/dist/collection/utils/templates.e2e.js +25 -0
  74. package/dist/collection/utils/test/csvUtils.spec.js +46 -0
  75. package/dist/collection/utils/test/downloadUtils.spec.js +102 -0
  76. package/dist/collection/utils/test/pciUtils.spec.js +297 -0
  77. package/dist/collection/utils/test/solution-store.spec.js +439 -0
  78. package/dist/components/map-select-tools2.js +36 -36
  79. package/dist/components/solution-store.js +3 -3
  80. package/dist/esm/calcite-input-text_5.entry.js +36 -36
  81. package/dist/esm/calcite-shell-panel_14.entry.js +1 -1
  82. package/dist/esm/solution-configuration.entry.js +1 -1
  83. package/dist/esm/solution-contents_3.entry.js +1 -1
  84. package/dist/esm/{solution-store-5d068b07.js → solution-store-70f874f8.js} +3 -3
  85. package/dist/solutions-components/{p-41802f6b.entry.js → p-16dfb254.entry.js} +1 -1
  86. package/dist/solutions-components/{p-4769a2a5.entry.js → p-5ed755a2.entry.js} +1 -1
  87. package/dist/solutions-components/{p-826a814d.js → p-78719506.js} +2 -2
  88. package/dist/solutions-components/{p-9f620303.entry.js → p-b4b19fd3.entry.js} +1 -1
  89. package/dist/solutions-components/{p-24fe6e1c.entry.js → p-d5d5942d.entry.js} +1 -1
  90. package/dist/solutions-components/solutions-components.esm.js +1 -1
  91. package/dist/solutions-components/utils/common.js +291 -0
  92. package/dist/solutions-components/utils/csvDownload.js +36 -0
  93. package/dist/solutions-components/utils/csvUtils.js +32 -0
  94. package/dist/solutions-components/utils/downloadUtils.js +386 -0
  95. package/dist/solutions-components/utils/interfaces.js +56 -0
  96. package/dist/solutions-components/utils/languageUtil.js +85 -0
  97. package/dist/solutions-components/utils/loadModules.js +20 -0
  98. package/dist/solutions-components/utils/locale.js +56 -0
  99. package/dist/solutions-components/utils/mapViewUtils.js +140 -0
  100. package/dist/solutions-components/utils/pciUtils.js +837 -0
  101. package/dist/solutions-components/utils/pdfUtils.js +62 -0
  102. package/dist/solutions-components/utils/publicNotificationStore.js +38 -0
  103. package/dist/solutions-components/utils/publicNotificationUtils.js +45 -0
  104. package/dist/solutions-components/utils/queryUtils.js +148 -0
  105. package/dist/solutions-components/utils/solution-store.js +579 -0
  106. package/dist/solutions-components/utils/templates.e2e.js +25 -0
  107. package/dist/solutions-components/utils/templates.js +341 -0
  108. package/dist/solutions-components/utils/test/csvUtils.spec.js +46 -0
  109. package/dist/solutions-components/utils/test/downloadUtils.spec.js +102 -0
  110. package/dist/solutions-components/utils/test/mocks/jsApi.js +74 -0
  111. package/dist/solutions-components/utils/test/pciUtils.spec.js +297 -0
  112. package/dist/solutions-components/utils/test/solution-store.spec.js +439 -0
  113. package/dist/solutions-components/utils/test/testUtils.js +135 -0
  114. package/dist/solutions-components/utils/types.js +14 -0
  115. package/dist/solutions-components_commit.txt +7 -0
  116. package/package.json +7 -7
@@ -0,0 +1,297 @@
1
+ /** @license
2
+ * Copyright 2022 Esri
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import * as pciUtils from "../pciUtils";
17
+ jest.setTimeout(30000);
18
+ afterEach(() => {
19
+ jest.restoreAllMocks();
20
+ });
21
+ describe("pciUtils", () => {
22
+ it("calculateDeductValue", () => {
23
+ const logMock = jest.spyOn(console, "log").mockImplementation(() => { });
24
+ // 1
25
+ let type = "1";
26
+ let actual = pciUtils.calculateDeductValue(type, "L", "0.52", true);
27
+ let expected = "1|L|7.4|0.52";
28
+ expect(actual).toEqual(expected);
29
+ expect(logMock).toBeCalledTimes(3);
30
+ actual = pciUtils.calculateDeductValue(type, "M", "0.52");
31
+ expected = "1|M|16|0.52";
32
+ expect(actual).toEqual(expected);
33
+ actual = pciUtils.calculateDeductValue(type, "H", "0.52");
34
+ expected = "1|H|23.3|0.52";
35
+ expect(actual).toEqual(expected);
36
+ // 2
37
+ type = "2";
38
+ actual = pciUtils.calculateDeductValue(type, "L", "0.52");
39
+ expected = "2|L|0|0.52";
40
+ expect(actual).toEqual(expected);
41
+ actual = pciUtils.calculateDeductValue(type, "M", "0.52");
42
+ expected = "2|M|1.1|0.52";
43
+ expect(actual).toEqual(expected);
44
+ actual = pciUtils.calculateDeductValue(type, "H", "0.52");
45
+ expected = "2|H|3.9|0.52";
46
+ expect(actual).toEqual(expected);
47
+ // 3
48
+ type = "3";
49
+ actual = pciUtils.calculateDeductValue(type, "L", "0.52");
50
+ expected = "3|L|-0.2|0.52";
51
+ expect(actual).toEqual(expected);
52
+ actual = pciUtils.calculateDeductValue(type, "M", "0.52");
53
+ expected = "3|M|0.5|0.52";
54
+ expect(actual).toEqual(expected);
55
+ actual = pciUtils.calculateDeductValue(type, "H", "0.52");
56
+ expected = "3|H|5.2|0.52";
57
+ expect(actual).toEqual(expected);
58
+ // 4
59
+ type = "4";
60
+ actual = pciUtils.calculateDeductValue(type, "L", "0.52");
61
+ expected = "4|L|5.3|0.52";
62
+ expect(actual).toEqual(expected);
63
+ actual = pciUtils.calculateDeductValue(type, "M", "0.52");
64
+ expected = "4|M|17.9|0.52";
65
+ expect(actual).toEqual(expected);
66
+ actual = pciUtils.calculateDeductValue(type, "H", "0.52");
67
+ expected = "4|H|42.7|0.52";
68
+ expect(actual).toEqual(expected);
69
+ // 5
70
+ type = "5";
71
+ actual = pciUtils.calculateDeductValue(type, "L", "0.52");
72
+ expected = "5|L|1.1|0.52";
73
+ expect(actual).toEqual(expected);
74
+ actual = pciUtils.calculateDeductValue(type, "M", "0.52");
75
+ expected = "5|M|10.7|0.52";
76
+ expect(actual).toEqual(expected);
77
+ actual = pciUtils.calculateDeductValue(type, "H", "0.52");
78
+ expected = "5|H|28.1|0.52";
79
+ expect(actual).toEqual(expected);
80
+ // 6
81
+ type = "6";
82
+ actual = pciUtils.calculateDeductValue(type, "L", "0.52");
83
+ expected = "6|L|5.2|0.52";
84
+ expect(actual).toEqual(expected);
85
+ actual = pciUtils.calculateDeductValue(type, "M", "0.52");
86
+ expected = "6|M|8.1|0.52";
87
+ expect(actual).toEqual(expected);
88
+ actual = pciUtils.calculateDeductValue(type, "H", "0.52");
89
+ expected = "6|H|16.5|0.52";
90
+ expect(actual).toEqual(expected);
91
+ // 7
92
+ type = "7";
93
+ actual = pciUtils.calculateDeductValue(type, "L", "0.52");
94
+ expected = "7|L|2|0.52";
95
+ expect(actual).toEqual(expected);
96
+ actual = pciUtils.calculateDeductValue(type, "M", "0.52");
97
+ expected = "7|M|6.7|0.52";
98
+ expect(actual).toEqual(expected);
99
+ actual = pciUtils.calculateDeductValue(type, "H", "0.52");
100
+ expected = "7|H|11.9|0.52";
101
+ expect(actual).toEqual(expected);
102
+ // 8
103
+ type = "8";
104
+ actual = pciUtils.calculateDeductValue(type, "L", "0.52");
105
+ expected = "8|L|0.8|0.52";
106
+ expect(actual).toEqual(expected);
107
+ actual = pciUtils.calculateDeductValue(type, "M", "0.52");
108
+ expected = "8|M|7.1|0.52";
109
+ expect(actual).toEqual(expected);
110
+ actual = pciUtils.calculateDeductValue(type, "H", "0.52");
111
+ expected = "8|H|11.5|0.52";
112
+ expect(actual).toEqual(expected);
113
+ // 9
114
+ type = "9";
115
+ actual = pciUtils.calculateDeductValue(type, "L", "0.52");
116
+ expected = "9|L|2|0.52";
117
+ expect(actual).toEqual(expected);
118
+ actual = pciUtils.calculateDeductValue(type, "M", "0.52");
119
+ expected = "9|M|4|0.52";
120
+ expect(actual).toEqual(expected);
121
+ actual = pciUtils.calculateDeductValue(type, "H", "0.52");
122
+ expected = "9|H|6|0.52";
123
+ expect(actual).toEqual(expected);
124
+ // 10
125
+ type = "10";
126
+ actual = pciUtils.calculateDeductValue(type, "L", "0.52");
127
+ expected = "10|L|0.5|0.52";
128
+ expect(actual).toEqual(expected);
129
+ actual = pciUtils.calculateDeductValue(type, "M", "0.52");
130
+ expected = "10|M|5.7|0.52";
131
+ expect(actual).toEqual(expected);
132
+ actual = pciUtils.calculateDeductValue(type, "H", "0.52");
133
+ expected = "10|H|13.5|0.52";
134
+ expect(actual).toEqual(expected);
135
+ // 11
136
+ type = "11";
137
+ actual = pciUtils.calculateDeductValue(type, "L", "0.52");
138
+ expected = "11|L|1|0.52";
139
+ expect(actual).toEqual(expected);
140
+ actual = pciUtils.calculateDeductValue(type, "M", "0.52");
141
+ expected = "11|M|7.1|0.52";
142
+ expect(actual).toEqual(expected);
143
+ actual = pciUtils.calculateDeductValue(type, "H", "0.52");
144
+ expected = "11|H|15.7|0.52";
145
+ expect(actual).toEqual(expected);
146
+ // 12
147
+ type = "12";
148
+ actual = pciUtils.calculateDeductValue(type, "L", "0.52");
149
+ expected = "12|L|18.8|0.52";
150
+ expect(actual).toEqual(expected);
151
+ actual = pciUtils.calculateDeductValue(type, "M", "0.52");
152
+ expected = "12|M|18.8|0.52";
153
+ expect(actual).toEqual(expected);
154
+ actual = pciUtils.calculateDeductValue(type, "H", "0.52");
155
+ expected = "12|H|18.8|0.52";
156
+ expect(actual).toEqual(expected);
157
+ // 13
158
+ type = "13";
159
+ actual = pciUtils.calculateDeductValue(type, "L", "0.52");
160
+ expected = "13|L|46.9|0.52";
161
+ expect(actual).toEqual(expected);
162
+ actual = pciUtils.calculateDeductValue(type, "M", "0.52");
163
+ expected = "13|M|73.4|0.52";
164
+ expect(actual).toEqual(expected);
165
+ actual = pciUtils.calculateDeductValue(type, "H", "0.52");
166
+ expected = "13|H|93.7|0.52";
167
+ expect(actual).toEqual(expected);
168
+ // 14
169
+ type = "14";
170
+ actual = pciUtils.calculateDeductValue(type, "L", "0.52");
171
+ expected = "14|L|3.3|0.52";
172
+ expect(actual).toEqual(expected);
173
+ actual = pciUtils.calculateDeductValue(type, "M", "0.52");
174
+ expected = "14|M|-8.7|0.52";
175
+ expect(actual).toEqual(expected);
176
+ actual = pciUtils.calculateDeductValue(type, "H", "0.52");
177
+ expected = "14|H|-1.6|0.52";
178
+ expect(actual).toEqual(expected);
179
+ // 15
180
+ type = "15";
181
+ actual = pciUtils.calculateDeductValue(type, "L", "0.52");
182
+ expected = "15|L|4.9|0.52";
183
+ expect(actual).toEqual(expected);
184
+ actual = pciUtils.calculateDeductValue(type, "M", "0.52");
185
+ expected = "15|M|13.1|0.52";
186
+ expect(actual).toEqual(expected);
187
+ actual = pciUtils.calculateDeductValue(type, "H", "0.52");
188
+ expected = "15|H|21.1|0.52";
189
+ expect(actual).toEqual(expected);
190
+ // 16
191
+ type = "16";
192
+ actual = pciUtils.calculateDeductValue(type, "L", "0.52");
193
+ expected = "16|L|1.5|0.52";
194
+ expect(actual).toEqual(expected);
195
+ actual = pciUtils.calculateDeductValue(type, "M", "0.52");
196
+ expected = "16|M|6.6|0.52";
197
+ expect(actual).toEqual(expected);
198
+ actual = pciUtils.calculateDeductValue(type, "H", "0.52");
199
+ expected = "16|H|13.7|0.52";
200
+ expect(actual).toEqual(expected);
201
+ // 17
202
+ type = "17";
203
+ actual = pciUtils.calculateDeductValue(type, "L", "0.52");
204
+ expected = "17|L|2.4|0.52";
205
+ expect(actual).toEqual(expected);
206
+ actual = pciUtils.calculateDeductValue(type, "M", "0.52");
207
+ expected = "17|M|7.5|0.52";
208
+ expect(actual).toEqual(expected);
209
+ actual = pciUtils.calculateDeductValue(type, "H", "0.52");
210
+ expected = "17|H|12.7|0.52";
211
+ expect(actual).toEqual(expected);
212
+ // 18
213
+ type = "18";
214
+ actual = pciUtils.calculateDeductValue(type, "L", "0.52");
215
+ expected = "18|L|-2.8|0.52";
216
+ expect(actual).toEqual(expected);
217
+ actual = pciUtils.calculateDeductValue(type, "M", "0.52");
218
+ expected = "18|M|10|0.52";
219
+ expect(actual).toEqual(expected);
220
+ actual = pciUtils.calculateDeductValue(type, "H", "0.52");
221
+ expected = "18|H|26.3|0.52";
222
+ expect(actual).toEqual(expected);
223
+ // 19
224
+ type = "19";
225
+ actual = pciUtils.calculateDeductValue(type, "L", "0.52");
226
+ expected = "19|L|0|0.52";
227
+ expect(actual).toEqual(expected);
228
+ actual = pciUtils.calculateDeductValue(type, "M", "0.52");
229
+ expected = "19|M|7.1|0.52";
230
+ expect(actual).toEqual(expected);
231
+ actual = pciUtils.calculateDeductValue(type, "H", "0.52");
232
+ expected = "19|H|13.9|0.52";
233
+ expect(actual).toEqual(expected);
234
+ });
235
+ it("calculatePCI", () => {
236
+ const debugMessages = [
237
+ "Deduct values sorted in descending order: 25.1,23.4,17.9,11.2,7.9,7.5,6.9,5.3",
238
+ "Highest deduct value: 25.1",
239
+ "Allowable number of deducts including fractions: 7.87857142857143",
240
+ "Reduce deduct values to the m largest including the fractional part: 25.1,23.4,17.9,11.2,7.9,7.5,6.9,4.7",
241
+ "vals: 25.1,23.4,17.9,11.2,7.9,7.5,6.9,4.7",
242
+ "totalDV: 104.60000000000002",
243
+ "q: 8",
244
+ "CDV: 51.412097117472015",
245
+ "vals: 25.1,23.4,17.9,11.2,7.9,7.5,6.9,2",
246
+ "totalDV: 101.90000000000002",
247
+ "q: 7",
248
+ "CDV: 50.051756691168016",
249
+ "vals: 25.1,23.4,17.9,11.2,7.9,7.5,2,2",
250
+ "totalDV: 97.00000000000001",
251
+ "q: 6",
252
+ "CDV: 47.48916845800001",
253
+ "vals: 25.1,23.4,17.9,11.2,7.9,2,2,2",
254
+ "totalDV: 91.50000000000001",
255
+ "q: 5",
256
+ "CDV: 47.433547768125",
257
+ "vals: 25.1,23.4,17.9,11.2,2,2,2,2",
258
+ "totalDV: 85.60000000000001",
259
+ "q: 4",
260
+ "CDV: 48.57397038028801",
261
+ "vals: 25.1,23.4,17.9,2,2,2,2,2",
262
+ "totalDV: 76.4",
263
+ "q: 3",
264
+ "CDV: 48.755270187200004",
265
+ "vals: 25.1,23.4,2,2,2,2,2,2",
266
+ "totalDV: 60.5",
267
+ "q: 2",
268
+ "CDV: 44.42615179325001",
269
+ "vals: 25.1,2,2,2,2,2,2,2",
270
+ "totalDV: 39.1",
271
+ "q: 1",
272
+ "CDV: 39.1",
273
+ "Max CDV: 51.412097117472015"
274
+ ];
275
+ const logMock = jest.spyOn(console, "log").mockImplementation(() => { });
276
+ const expected = 48.6;
277
+ const actual = pciUtils.calculatePCI("7.9,23.4,7.5,25.1,17.9,11.2,6.9,5.3", true);
278
+ expect(actual).toEqual(expected);
279
+ debugMessages.forEach((m, i) => {
280
+ expect(logMock).nthCalledWith(i + 1, m);
281
+ });
282
+ });
283
+ it("calculatePCI", () => {
284
+ const logMock = jest.spyOn(console, "log").mockImplementation(() => { });
285
+ const expected = 48.6;
286
+ const actual = pciUtils.calculatePCI("7.9,23.4,7.5,25.1,17.9,11.2,6.9,5.3", false);
287
+ expect(actual).toEqual(expected);
288
+ expect(logMock).toBeCalledTimes(0);
289
+ });
290
+ it("calculatePCI", () => {
291
+ const logMock = jest.spyOn(console, "log").mockImplementation(() => { });
292
+ const expected = 92.1;
293
+ const actual = pciUtils.calculatePCI("7.9", true);
294
+ expect(actual).toEqual(expected);
295
+ expect(logMock).lastCalledWith("Max CDV: 7.9");
296
+ });
297
+ });