@featurevisor/core 1.35.3 → 2.0.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.
Files changed (252) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +0 -6
  3. package/coverage/clover.xml +321 -237
  4. package/coverage/coverage-final.json +8 -8
  5. package/coverage/lcov-report/index.html +77 -47
  6. package/coverage/lcov-report/lib/builder/allocator.js.html +14 -14
  7. package/coverage/lcov-report/lib/builder/index.html +16 -16
  8. package/coverage/lcov-report/lib/builder/revision.js.html +3 -3
  9. package/coverage/lcov-report/lib/builder/traffic.js.html +88 -64
  10. package/coverage/lcov-report/lib/list/index.html +116 -0
  11. package/coverage/lcov-report/lib/{tester → list}/matrix.js.html +90 -66
  12. package/coverage/lcov-report/lib/tester/helpers.js.html +295 -0
  13. package/coverage/lcov-report/lib/tester/index.html +20 -35
  14. package/coverage/lcov-report/src/builder/allocator.ts.html +2 -2
  15. package/coverage/lcov-report/src/builder/index.html +15 -15
  16. package/coverage/lcov-report/src/builder/revision.ts.html +1 -1
  17. package/coverage/lcov-report/src/builder/traffic.ts.html +96 -24
  18. package/coverage/lcov-report/src/list/index.html +116 -0
  19. package/coverage/lcov-report/src/{tester → list}/matrix.ts.html +87 -21
  20. package/coverage/lcov-report/src/tester/helpers.ts.html +313 -0
  21. package/coverage/lcov-report/src/tester/index.html +20 -35
  22. package/coverage/lcov.info +592 -436
  23. package/lib/assess-distribution/index.d.ts +1 -1
  24. package/lib/assess-distribution/index.js +102 -162
  25. package/lib/assess-distribution/index.js.map +1 -1
  26. package/lib/benchmark/index.js +87 -143
  27. package/lib/benchmark/index.js.map +1 -1
  28. package/lib/builder/allocator.d.ts +1 -1
  29. package/lib/builder/allocator.js +12 -12
  30. package/lib/builder/allocator.js.map +1 -1
  31. package/lib/builder/allocator.spec.js +22 -22
  32. package/lib/builder/allocator.spec.js.map +1 -1
  33. package/lib/builder/buildDatafile.d.ts +4 -3
  34. package/lib/builder/buildDatafile.js +311 -388
  35. package/lib/builder/buildDatafile.js.map +1 -1
  36. package/lib/builder/buildProject.d.ts +2 -1
  37. package/lib/builder/buildProject.js +96 -183
  38. package/lib/builder/buildProject.js.map +1 -1
  39. package/lib/builder/convertToV1.d.ts +10 -0
  40. package/lib/builder/convertToV1.js +119 -0
  41. package/lib/builder/convertToV1.js.map +1 -0
  42. package/lib/builder/getFeatureRanges.d.ts +1 -1
  43. package/lib/builder/getFeatureRanges.js +32 -105
  44. package/lib/builder/getFeatureRanges.js.map +1 -1
  45. package/lib/builder/hashes.d.ts +4 -0
  46. package/lib/builder/hashes.js +70 -0
  47. package/lib/builder/hashes.js.map +1 -0
  48. package/lib/builder/revision.js +2 -2
  49. package/lib/builder/revision.js.map +1 -1
  50. package/lib/builder/revision.spec.js +1 -1
  51. package/lib/builder/revision.spec.js.map +1 -1
  52. package/lib/builder/traffic.d.ts +1 -1
  53. package/lib/builder/traffic.js +57 -49
  54. package/lib/builder/traffic.js.map +1 -1
  55. package/lib/builder/traffic.spec.js +14 -14
  56. package/lib/builder/traffic.spec.js.map +1 -1
  57. package/lib/cli/cli.js +60 -129
  58. package/lib/cli/cli.js.map +1 -1
  59. package/lib/cli/plugins.js +14 -16
  60. package/lib/cli/plugins.js.map +1 -1
  61. package/lib/config/parsers.js +1 -1
  62. package/lib/config/parsers.js.map +1 -1
  63. package/lib/config/projectConfig.d.ts +8 -6
  64. package/lib/config/projectConfig.js +31 -72
  65. package/lib/config/projectConfig.js.map +1 -1
  66. package/lib/datasource/adapter.d.ts +1 -1
  67. package/lib/datasource/adapter.js +2 -5
  68. package/lib/datasource/adapter.js.map +1 -1
  69. package/lib/datasource/datasource.d.ts +2 -1
  70. package/lib/datasource/datasource.js +107 -148
  71. package/lib/datasource/datasource.js.map +1 -1
  72. package/lib/datasource/filesystemAdapter.d.ts +1 -1
  73. package/lib/datasource/filesystemAdapter.js +224 -360
  74. package/lib/datasource/filesystemAdapter.js.map +1 -1
  75. package/lib/evaluate/index.d.ts +1 -1
  76. package/lib/evaluate/index.js +120 -188
  77. package/lib/evaluate/index.js.map +1 -1
  78. package/lib/find-duplicate-segments/findDuplicateSegments.d.ts +1 -1
  79. package/lib/find-duplicate-segments/findDuplicateSegments.js +40 -128
  80. package/lib/find-duplicate-segments/findDuplicateSegments.js.map +1 -1
  81. package/lib/find-duplicate-segments/index.js +27 -82
  82. package/lib/find-duplicate-segments/index.js.map +1 -1
  83. package/lib/find-usage/index.d.ts +7 -5
  84. package/lib/find-usage/index.js +333 -507
  85. package/lib/find-usage/index.js.map +1 -1
  86. package/lib/generate-code/index.js +36 -91
  87. package/lib/generate-code/index.js.map +1 -1
  88. package/lib/generate-code/typescript.js +117 -157
  89. package/lib/generate-code/typescript.js.map +1 -1
  90. package/lib/index.d.ts +0 -1
  91. package/lib/index.js +0 -1
  92. package/lib/index.js.map +1 -1
  93. package/lib/info/index.js +45 -133
  94. package/lib/info/index.js.map +1 -1
  95. package/lib/init/index.d.ts +1 -1
  96. package/lib/init/index.js +16 -64
  97. package/lib/init/index.js.map +1 -1
  98. package/lib/linter/attributeSchema.d.ts +21 -6
  99. package/lib/linter/attributeSchema.js +18 -4
  100. package/lib/linter/attributeSchema.js.map +1 -1
  101. package/lib/linter/checkCircularDependency.d.ts +1 -1
  102. package/lib/linter/checkCircularDependency.js +22 -80
  103. package/lib/linter/checkCircularDependency.js.map +1 -1
  104. package/lib/linter/checkPercentageExceedingSlot.d.ts +1 -1
  105. package/lib/linter/checkPercentageExceedingSlot.js +36 -76
  106. package/lib/linter/checkPercentageExceedingSlot.js.map +1 -1
  107. package/lib/linter/conditionSchema.d.ts +1 -1
  108. package/lib/linter/conditionSchema.js +89 -41
  109. package/lib/linter/conditionSchema.js.map +1 -1
  110. package/lib/linter/featureSchema.d.ts +345 -197
  111. package/lib/linter/featureSchema.js +313 -172
  112. package/lib/linter/featureSchema.js.map +1 -1
  113. package/lib/linter/groupSchema.js +6 -6
  114. package/lib/linter/groupSchema.js.map +1 -1
  115. package/lib/linter/lintProject.js +306 -480
  116. package/lib/linter/lintProject.js.map +1 -1
  117. package/lib/linter/printError.js +7 -7
  118. package/lib/linter/printError.js.map +1 -1
  119. package/lib/linter/segmentSchema.js +2 -2
  120. package/lib/linter/segmentSchema.js.map +1 -1
  121. package/lib/linter/testSchema.d.ts +155 -3
  122. package/lib/linter/testSchema.js +47 -17
  123. package/lib/linter/testSchema.js.map +1 -1
  124. package/lib/list/index.d.ts +1 -0
  125. package/lib/list/index.js +349 -517
  126. package/lib/list/index.js.map +1 -1
  127. package/lib/{tester → list}/matrix.d.ts +1 -1
  128. package/lib/{tester → list}/matrix.js +50 -42
  129. package/lib/list/matrix.js.map +1 -0
  130. package/lib/{tester → list}/matrix.spec.js +7 -7
  131. package/lib/list/matrix.spec.js.map +1 -0
  132. package/lib/site/exportSite.js +25 -71
  133. package/lib/site/exportSite.js.map +1 -1
  134. package/lib/site/generateHistory.d.ts +1 -1
  135. package/lib/site/generateHistory.js +26 -82
  136. package/lib/site/generateHistory.js.map +1 -1
  137. package/lib/site/generateSiteSearchIndex.d.ts +1 -1
  138. package/lib/site/generateSiteSearchIndex.js +182 -259
  139. package/lib/site/generateSiteSearchIndex.js.map +1 -1
  140. package/lib/site/getLastModifiedFromHistory.d.ts +1 -1
  141. package/lib/site/getLastModifiedFromHistory.js +2 -2
  142. package/lib/site/getLastModifiedFromHistory.js.map +1 -1
  143. package/lib/site/getOwnerAndRepoFromUrl.js +6 -6
  144. package/lib/site/getOwnerAndRepoFromUrl.js.map +1 -1
  145. package/lib/site/getRelativePaths.js +7 -7
  146. package/lib/site/getRelativePaths.js.map +1 -1
  147. package/lib/site/getRepoDetails.js +20 -20
  148. package/lib/site/getRepoDetails.js.map +1 -1
  149. package/lib/site/index.js +25 -73
  150. package/lib/site/index.js.map +1 -1
  151. package/lib/site/serveSite.js +10 -10
  152. package/lib/site/serveSite.js.map +1 -1
  153. package/lib/tester/helpers.d.ts +2 -0
  154. package/lib/tester/helpers.js +71 -0
  155. package/lib/tester/helpers.js.map +1 -0
  156. package/lib/tester/helpers.spec.js +115 -0
  157. package/lib/tester/helpers.spec.js.map +1 -0
  158. package/lib/tester/index.d.ts +0 -1
  159. package/lib/tester/index.js +0 -1
  160. package/lib/tester/index.js.map +1 -1
  161. package/lib/tester/prettyDuration.js +11 -11
  162. package/lib/tester/prettyDuration.js.map +1 -1
  163. package/lib/tester/printTestResult.d.ts +1 -1
  164. package/lib/tester/printTestResult.js +35 -15
  165. package/lib/tester/printTestResult.js.map +1 -1
  166. package/lib/tester/testFeature.d.ts +4 -2
  167. package/lib/tester/testFeature.js +264 -226
  168. package/lib/tester/testFeature.js.map +1 -1
  169. package/lib/tester/testProject.d.ts +3 -7
  170. package/lib/tester/testProject.js +145 -246
  171. package/lib/tester/testProject.js.map +1 -1
  172. package/lib/tester/testSegment.d.ts +5 -2
  173. package/lib/tester/testSegment.js +65 -102
  174. package/lib/tester/testSegment.js.map +1 -1
  175. package/lib/utils/extractKeys.d.ts +2 -1
  176. package/lib/utils/extractKeys.js +57 -12
  177. package/lib/utils/extractKeys.js.map +1 -1
  178. package/lib/utils/git.d.ts +1 -1
  179. package/lib/utils/git.js +23 -23
  180. package/lib/utils/git.js.map +1 -1
  181. package/lib/utils/pretty.js +2 -4
  182. package/lib/utils/pretty.js.map +1 -1
  183. package/package.json +5 -6
  184. package/src/assess-distribution/index.ts +3 -2
  185. package/src/benchmark/index.ts +3 -3
  186. package/src/builder/allocator.spec.ts +1 -1
  187. package/src/builder/allocator.ts +1 -1
  188. package/src/builder/buildDatafile.ts +161 -124
  189. package/src/builder/buildProject.ts +6 -3
  190. package/src/builder/convertToV1.ts +166 -0
  191. package/src/builder/getFeatureRanges.ts +1 -1
  192. package/src/builder/hashes.ts +109 -0
  193. package/src/builder/traffic.ts +40 -16
  194. package/src/cli/cli.ts +1 -1
  195. package/src/cli/plugins.ts +0 -2
  196. package/src/config/projectConfig.ts +13 -10
  197. package/src/datasource/adapter.ts +1 -1
  198. package/src/datasource/datasource.ts +23 -2
  199. package/src/datasource/filesystemAdapter.ts +11 -12
  200. package/src/evaluate/index.ts +7 -6
  201. package/src/find-duplicate-segments/findDuplicateSegments.ts +1 -1
  202. package/src/find-usage/index.ts +111 -44
  203. package/src/generate-code/index.ts +1 -3
  204. package/src/generate-code/typescript.ts +7 -29
  205. package/src/index.ts +0 -1
  206. package/src/info/index.ts +2 -2
  207. package/src/init/index.ts +2 -2
  208. package/src/linter/attributeSchema.ts +18 -2
  209. package/src/linter/checkCircularDependency.ts +1 -1
  210. package/src/linter/checkPercentageExceedingSlot.ts +28 -8
  211. package/src/linter/conditionSchema.ts +66 -10
  212. package/src/linter/featureSchema.ts +312 -116
  213. package/src/linter/lintProject.ts +9 -4
  214. package/src/linter/testSchema.ts +42 -3
  215. package/src/list/index.ts +18 -30
  216. package/src/{tester → list}/matrix.ts +33 -11
  217. package/src/site/exportSite.ts +2 -4
  218. package/src/site/generateHistory.ts +1 -1
  219. package/src/site/generateSiteSearchIndex.ts +58 -50
  220. package/src/site/getLastModifiedFromHistory.ts +1 -1
  221. package/src/tester/helpers.spec.ts +149 -0
  222. package/src/tester/helpers.ts +76 -0
  223. package/src/tester/index.ts +0 -1
  224. package/src/tester/printTestResult.ts +25 -3
  225. package/src/tester/testFeature.ts +270 -124
  226. package/src/tester/testProject.ts +28 -49
  227. package/src/tester/testSegment.ts +48 -40
  228. package/src/utils/extractKeys.ts +58 -1
  229. package/src/utils/git.ts +1 -1
  230. package/tsconfig.cjs.json +1 -0
  231. package/coverage/lcov-report/lib/tester/checkIfObjectsAreEqual.js.html +0 -151
  232. package/coverage/lcov-report/src/tester/checkIfObjectsAreEqual.ts.html +0 -157
  233. package/lib/restore/index.d.ts +0 -4
  234. package/lib/restore/index.js +0 -91
  235. package/lib/restore/index.js.map +0 -1
  236. package/lib/tester/checkIfArraysAreEqual.d.ts +0 -1
  237. package/lib/tester/checkIfArraysAreEqual.js +0 -18
  238. package/lib/tester/checkIfArraysAreEqual.js.map +0 -1
  239. package/lib/tester/checkIfObjectsAreEqual.d.ts +0 -1
  240. package/lib/tester/checkIfObjectsAreEqual.js +0 -23
  241. package/lib/tester/checkIfObjectsAreEqual.js.map +0 -1
  242. package/lib/tester/checkIfObjectsAreEqual.spec.js +0 -26
  243. package/lib/tester/checkIfObjectsAreEqual.spec.js.map +0 -1
  244. package/lib/tester/matrix.js.map +0 -1
  245. package/lib/tester/matrix.spec.js.map +0 -1
  246. package/src/restore/index.ts +0 -42
  247. package/src/tester/checkIfArraysAreEqual.ts +0 -16
  248. package/src/tester/checkIfObjectsAreEqual.spec.ts +0 -31
  249. package/src/tester/checkIfObjectsAreEqual.ts +0 -24
  250. /package/lib/{tester → list}/matrix.spec.d.ts +0 -0
  251. /package/lib/tester/{checkIfObjectsAreEqual.spec.d.ts → helpers.spec.d.ts} +0 -0
  252. /package/src/{tester → list}/matrix.spec.ts +0 -0
@@ -1,9 +1,9 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <coverage generated="1744490104416" clover="3.2.0">
3
- <project timestamp="1744490104416" name="All files">
4
- <metrics statements="376" coveredstatements="255" conditionals="201" coveredconditionals="122" methods="54" coveredmethods="37" elements="631" coveredelements="414" complexity="0" loc="376" ncloc="376" packages="4" files="10" classes="10"/>
2
+ <coverage generated="1752956687830" clover="3.2.0">
3
+ <project timestamp="1752956687830" name="All files">
4
+ <metrics statements="454" coveredstatements="310" conditionals="279" coveredconditionals="185" methods="54" coveredmethods="38" elements="787" coveredelements="533" complexity="0" loc="454" ncloc="454" packages="6" files="10" classes="10"/>
5
5
  <package name="lib.builder">
6
- <metrics statements="103" coveredstatements="97" conditionals="60" coveredconditionals="50" methods="15" coveredmethods="15"/>
6
+ <metrics statements="105" coveredstatements="97" conditionals="68" coveredconditionals="53" methods="15" coveredmethods="15"/>
7
7
  <file name="allocator.js" path="/home/runner/work/featurevisor/featurevisor/packages/core/lib/builder/allocator.js">
8
8
  <metrics statements="28" coveredstatements="28" conditionals="8" coveredconditionals="8" methods="2" coveredmethods="2"/>
9
9
  <line num="2" count="2" type="stmt"/>
@@ -50,7 +50,7 @@
50
50
  <line num="20" count="0" type="stmt"/>
51
51
  </file>
52
52
  <file name="traffic.js" path="/home/runner/work/featurevisor/featurevisor/packages/core/lib/builder/traffic.js">
53
- <metrics statements="64" coveredstatements="59" conditionals="44" coveredconditionals="35" methods="12" coveredmethods="12"/>
53
+ <metrics statements="66" coveredstatements="59" conditionals="52" coveredconditionals="38" methods="12" coveredmethods="12"/>
54
54
  <line num="2" count="1" type="stmt"/>
55
55
  <line num="3" count="1" type="stmt"/>
56
56
  <line num="4" count="1" type="stmt"/>
@@ -63,164 +63,200 @@
63
63
  <line num="15" count="4" type="stmt"/>
64
64
  <line num="18" count="0" type="stmt"/>
65
65
  <line num="20" count="9" type="cond" truecount="1" falsecount="1"/>
66
- <line num="22" count="21" type="stmt"/>
67
- <line num="23" count="21" type="stmt"/>
68
- <line num="26" count="9" type="stmt"/>
69
- <line num="27" count="22" type="stmt"/>
70
- <line num="28" count="22" type="stmt"/>
71
- <line num="36" count="13" type="cond" truecount="2" falsecount="0"/>
72
- <line num="37" count="4" type="stmt"/>
73
- <line num="39" count="9" type="stmt"/>
74
- <line num="40" count="9" type="stmt"/>
75
- <line num="44" count="13" type="cond" truecount="2" falsecount="0"/>
76
- <line num="45" count="4" type="stmt"/>
77
- <line num="47" count="9" type="cond" truecount="1" falsecount="1"/>
78
- <line num="48" count="9" type="stmt"/>
79
- <line num="50" count="0" type="stmt"/>
80
- <line num="59" count="13" type="stmt"/>
81
- <line num="61" count="13" type="cond" truecount="2" falsecount="2"/>
82
- <line num="62" count="13" type="stmt"/>
83
- <line num="63" count="13" type="stmt"/>
84
- <line num="64" count="13" type="stmt"/>
85
- <line num="71" count="13" type="cond" truecount="1" falsecount="1"/>
86
- <line num="72" count="0" type="stmt"/>
87
- <line num="74" count="13" type="cond" truecount="1" falsecount="1"/>
88
- <line num="75" count="0" type="stmt"/>
89
- <line num="78" count="13" type="stmt"/>
90
- <line num="79" count="13" type="cond" truecount="4" falsecount="0"/>
91
- <line num="80" count="13" type="stmt"/>
92
- <line num="81" count="13" type="stmt"/>
93
- <line num="82" count="13" type="cond" truecount="4" falsecount="0"/>
94
- <line num="86" count="13" type="stmt"/>
95
- <line num="87" count="13" type="cond" truecount="4" falsecount="0"/>
66
+ <line num="21" count="21" type="stmt"/>
67
+ <line num="23" count="22" type="stmt"/>
68
+ <line num="30" count="13" type="cond" truecount="2" falsecount="0"/>
69
+ <line num="31" count="4" type="stmt"/>
70
+ <line num="33" count="9" type="stmt"/>
71
+ <line num="34" count="9" type="stmt"/>
72
+ <line num="38" count="13" type="cond" truecount="2" falsecount="0"/>
73
+ <line num="39" count="4" type="stmt"/>
74
+ <line num="41" count="9" type="cond" truecount="1" falsecount="1"/>
75
+ <line num="42" count="9" type="stmt"/>
76
+ <line num="44" count="0" type="stmt"/>
77
+ <line num="53" count="13" type="stmt"/>
78
+ <line num="55" count="13" type="cond" truecount="2" falsecount="2"/>
79
+ <line num="56" count="13" type="stmt"/>
80
+ <line num="57" count="13" type="stmt"/>
81
+ <line num="58" count="13" type="stmt"/>
82
+ <line num="66" count="13" type="cond" truecount="1" falsecount="1"/>
83
+ <line num="67" count="0" type="stmt"/>
84
+ <line num="69" count="13" type="cond" truecount="1" falsecount="1"/>
85
+ <line num="70" count="0" type="stmt"/>
86
+ <line num="73" count="13" type="stmt"/>
87
+ <line num="74" count="13" type="stmt"/>
88
+ <line num="75" count="13" type="stmt"/>
89
+ <line num="76" count="13" type="stmt"/>
90
+ <line num="77" count="13" type="cond" truecount="5" falsecount="0"/>
91
+ <line num="85" count="13" type="stmt"/>
92
+ <line num="86" count="13" type="cond" truecount="5" falsecount="0"/>
93
+ <line num="88" count="1" type="stmt"/>
96
94
  <line num="89" count="1" type="stmt"/>
97
- <line num="90" count="1" type="stmt"/>
98
- <line num="91" count="2" type="stmt"/>
99
- <line num="92" count="2" type="stmt"/>
100
- <line num="96" count="2" type="stmt"/>
101
- <line num="97" count="2" type="stmt"/>
102
- <line num="99" count="1" type="stmt"/>
103
- <line num="101" count="13" type="cond" truecount="1" falsecount="1"/>
104
- <line num="102" count="13" type="stmt"/>
105
- <line num="103" count="30" type="stmt"/>
106
- <line num="104" count="30" type="stmt"/>
107
- <line num="105" count="30" type="cond" truecount="2" falsecount="0"/>
108
- <line num="108" count="30" type="stmt"/>
109
- <line num="109" count="30" type="stmt"/>
110
- <line num="110" count="26" type="stmt"/>
111
- <line num="115" count="30" type="stmt"/>
112
- <line num="118" count="13" type="stmt"/>
113
- <line num="119" count="28" type="cond" truecount="3" falsecount="1"/>
114
- <line num="120" count="0" type="stmt"/>
115
- <line num="122" count="28" type="stmt"/>
116
- <line num="125" count="13" type="stmt"/>
117
- <line num="127" count="13" type="stmt"/>
95
+ <line num="90" count="2" type="stmt"/>
96
+ <line num="94" count="2" type="stmt"/>
97
+ <line num="95" count="2" type="stmt"/>
98
+ <line num="97" count="1" type="stmt"/>
99
+ <line num="99" count="13" type="cond" truecount="1" falsecount="1"/>
100
+ <line num="100" count="13" type="stmt"/>
101
+ <line num="101" count="30" type="stmt"/>
102
+ <line num="102" count="30" type="cond" truecount="2" falsecount="2"/>
103
+ <line num="104" count="0" type="stmt"/>
104
+ <line num="106" count="30" type="stmt"/>
105
+ <line num="107" count="30" type="cond" truecount="2" falsecount="0"/>
106
+ <line num="110" count="30" type="stmt"/>
107
+ <line num="111" count="30" type="stmt"/>
108
+ <line num="112" count="26" type="cond" truecount="1" falsecount="1"/>
109
+ <line num="113" count="26" type="stmt"/>
110
+ <line num="119" count="30" type="stmt"/>
111
+ <line num="122" count="13" type="cond" truecount="1" falsecount="1"/>
112
+ <line num="123" count="13" type="stmt"/>
113
+ <line num="124" count="28" type="cond" truecount="3" falsecount="1"/>
114
+ <line num="125" count="0" type="stmt"/>
115
+ <line num="127" count="28" type="stmt"/>
116
+ <line num="129" count="13" type="cond" truecount="1" falsecount="1"/>
117
+ <line num="130" count="0" type="stmt"/>
118
+ <line num="133" count="13" type="stmt"/>
119
+ <line num="135" count="13" type="stmt"/>
118
120
  </file>
119
121
  </package>
120
- <package name="lib.tester">
121
- <metrics statements="93" coveredstatements="36" conditionals="58" coveredconditionals="21" methods="13" coveredmethods="4"/>
122
- <file name="checkIfObjectsAreEqual.js" path="/home/runner/work/featurevisor/featurevisor/packages/core/lib/tester/checkIfObjectsAreEqual.js">
123
- <metrics statements="14" coveredstatements="13" conditionals="14" coveredconditionals="13" methods="1" coveredmethods="1"/>
122
+ <package name="lib.list">
123
+ <metrics statements="81" coveredstatements="20" conditionals="39" coveredconditionals="4" methods="10" coveredmethods="2"/>
124
+ <file name="matrix.js" path="/home/runner/work/featurevisor/featurevisor/packages/core/lib/list/matrix.js">
125
+ <metrics statements="81" coveredstatements="20" conditionals="39" coveredconditionals="4" methods="10" coveredmethods="2"/>
124
126
  <line num="2" count="1" type="stmt"/>
125
127
  <line num="3" count="1" type="stmt"/>
126
- <line num="5" count="12" type="cond" truecount="2" falsecount="0"/>
127
- <line num="6" count="5" type="stmt"/>
128
- <line num="8" count="7" type="cond" truecount="6" falsecount="0"/>
129
- <line num="9" count="2" type="stmt"/>
130
- <line num="11" count="5" type="stmt"/>
131
- <line num="12" count="5" type="cond" truecount="1" falsecount="1"/>
132
- <line num="13" count="0" type="stmt"/>
133
- <line num="15" count="5" type="stmt"/>
134
- <line num="16" count="8" type="stmt"/>
135
- <line num="17" count="8" type="cond" truecount="4" falsecount="0"/>
136
- <line num="18" count="2" type="stmt"/>
137
- <line num="21" count="3" type="stmt"/>
138
- </file>
139
- <file name="matrix.js" path="/home/runner/work/featurevisor/featurevisor/packages/core/lib/tester/matrix.js">
140
- <metrics statements="79" coveredstatements="23" conditionals="44" coveredconditionals="8" methods="12" coveredmethods="3"/>
141
- <line num="2" count="1" type="cond" truecount="3" falsecount="0"/>
142
- <line num="3" count="2" type="cond" truecount="1" falsecount="1"/>
143
- <line num="4" count="0" type="stmt"/>
144
- <line num="5" count="0" type="stmt"/>
145
- <line num="6" count="0" type="cond" truecount="0" falsecount="2"/>
146
- <line num="7" count="0" type="stmt"/>
147
- <line num="9" count="0" type="stmt"/>
148
- <line num="11" count="2" type="stmt"/>
149
- <line num="13" count="1" type="stmt"/>
150
- <line num="14" count="1" type="stmt"/>
151
- <line num="15" count="1" type="stmt"/>
152
- <line num="16" count="1" type="stmt"/>
153
- <line num="17" count="1" type="stmt"/>
154
- <line num="18" count="1" type="stmt"/>
155
- <line num="19" count="1" type="stmt"/>
156
- <line num="22" count="10" type="stmt"/>
157
- <line num="23" count="10" type="stmt"/>
158
- <line num="24" count="10" type="stmt"/>
159
- <line num="25" count="20" type="stmt"/>
160
- <line num="26" count="20" type="cond" truecount="2" falsecount="0"/>
161
- <line num="27" count="12" type="stmt"/>
162
- <line num="30" count="8" type="stmt"/>
163
- <line num="35" count="3" type="stmt"/>
164
- <line num="36" count="3" type="cond" truecount="2" falsecount="0"/>
165
- <line num="37" count="1" type="stmt"/>
166
- <line num="39" count="2" type="stmt"/>
167
- <line num="40" count="2" type="stmt"/>
168
- <line num="41" count="2" type="stmt"/>
169
- <line num="44" count="0" type="cond" truecount="0" falsecount="2"/>
170
- <line num="45" count="0" type="stmt"/>
171
- <line num="47" count="0" type="cond" truecount="0" falsecount="2"/>
172
- <line num="48" count="0" type="stmt"/>
173
- <line num="51" count="0" type="cond" truecount="0" falsecount="5"/>
128
+ <line num="4" count="1" type="stmt"/>
129
+ <line num="5" count="1" type="stmt"/>
130
+ <line num="6" count="1" type="stmt"/>
131
+ <line num="7" count="1" type="stmt"/>
132
+ <line num="8" count="1" type="stmt"/>
133
+ <line num="10" count="10" type="stmt"/>
134
+ <line num="11" count="10" type="stmt"/>
135
+ <line num="12" count="10" type="stmt"/>
136
+ <line num="13" count="20" type="stmt"/>
137
+ <line num="14" count="20" type="cond" truecount="2" falsecount="0"/>
138
+ <line num="15" count="12" type="stmt"/>
139
+ <line num="18" count="8" type="stmt"/>
140
+ <line num="23" count="3" type="stmt"/>
141
+ <line num="24" count="3" type="cond" truecount="2" falsecount="0"/>
142
+ <line num="25" count="1" type="stmt"/>
143
+ <line num="27" count="2" type="stmt"/>
144
+ <line num="28" count="2" type="stmt"/>
145
+ <line num="29" count="2" type="stmt"/>
146
+ <line num="32" count="0" type="cond" truecount="0" falsecount="2"/>
147
+ <line num="33" count="0" type="stmt"/>
148
+ <line num="35" count="0" type="cond" truecount="0" falsecount="2"/>
149
+ <line num="36" count="0" type="stmt"/>
150
+ <line num="39" count="0" type="cond" truecount="0" falsecount="5"/>
151
+ <line num="40" count="0" type="stmt"/>
152
+ <line num="41" count="0" type="stmt"/>
153
+ <line num="44" count="0" type="stmt"/>
154
+ <line num="46" count="0" type="stmt"/>
174
155
  <line num="52" count="0" type="stmt"/>
175
- <line num="53" count="0" type="stmt"/>
176
- <line num="56" count="0" type="stmt"/>
156
+ <line num="54" count="0" type="stmt"/>
157
+ <line num="56" count="0" type="cond" truecount="0" falsecount="2"/>
158
+ <line num="57" count="0" type="stmt"/>
177
159
  <line num="58" count="0" type="stmt"/>
178
- <line num="64" count="0" type="stmt"/>
179
- <line num="66" count="0" type="stmt"/>
180
- <line num="68" count="0" type="stmt"/>
181
- <line num="69" count="0" type="stmt"/>
160
+ <line num="61" count="0" type="stmt"/>
161
+ <line num="62" count="0" type="cond" truecount="0" falsecount="2"/>
162
+ <line num="63" count="0" type="stmt"/>
163
+ <line num="69" count="0" type="cond" truecount="0" falsecount="2"/>
182
164
  <line num="70" count="0" type="stmt"/>
183
- <line num="73" count="0" type="stmt"/>
184
- <line num="74" count="0" type="cond" truecount="0" falsecount="2"/>
185
- <line num="75" count="0" type="stmt"/>
165
+ <line num="72" count="0" type="stmt"/>
166
+ <line num="75" count="0" type="cond" truecount="0" falsecount="2"/>
167
+ <line num="76" count="0" type="stmt"/>
168
+ <line num="78" count="0" type="cond" truecount="0" falsecount="2"/>
169
+ <line num="79" count="0" type="stmt"/>
186
170
  <line num="81" count="0" type="cond" truecount="0" falsecount="2"/>
187
171
  <line num="82" count="0" type="stmt"/>
188
- <line num="84" count="0" type="stmt"/>
189
- <line num="87" count="0" type="cond" truecount="0" falsecount="2"/>
172
+ <line num="85" count="0" type="stmt"/>
173
+ <line num="87" count="0" type="stmt"/>
190
174
  <line num="88" count="0" type="stmt"/>
191
- <line num="89" count="0" type="cond" truecount="0" falsecount="4"/>
192
175
  <line num="90" count="0" type="stmt"/>
176
+ <line num="91" count="0" type="stmt"/>
193
177
  <line num="92" count="0" type="stmt"/>
194
178
  <line num="93" count="0" type="stmt"/>
195
179
  <line num="94" count="0" type="stmt"/>
196
- <line num="95" count="0" type="stmt"/>
197
- <line num="96" count="0" type="stmt"/>
198
- <line num="97" count="0" type="cond" truecount="0" falsecount="4"/>
199
- <line num="98" count="0" type="stmt"/>
180
+ <line num="96" count="0" type="cond" truecount="0" falsecount="2"/>
181
+ <line num="97" count="0" type="stmt"/>
182
+ <line num="99" count="0" type="cond" truecount="0" falsecount="2"/>
200
183
  <line num="100" count="0" type="stmt"/>
184
+ <line num="103" count="0" type="stmt"/>
185
+ <line num="105" count="0" type="stmt"/>
201
186
  <line num="106" count="0" type="stmt"/>
202
187
  <line num="108" count="0" type="stmt"/>
203
- <line num="109" count="0" type="stmt"/>
204
- <line num="110" count="0" type="stmt"/>
205
- <line num="113" count="0" type="cond" truecount="0" falsecount="2"/>
206
188
  <line num="114" count="0" type="stmt"/>
207
189
  <line num="116" count="0" type="stmt"/>
208
- <line num="119" count="0" type="cond" truecount="0" falsecount="2"/>
209
- <line num="120" count="0" type="stmt"/>
190
+ <line num="117" count="0" type="stmt"/>
191
+ <line num="118" count="0" type="stmt"/>
210
192
  <line num="121" count="0" type="cond" truecount="0" falsecount="2"/>
211
193
  <line num="122" count="0" type="stmt"/>
212
194
  <line num="124" count="0" type="stmt"/>
213
- <line num="125" count="0" type="stmt"/>
214
- <line num="126" count="0" type="stmt"/>
215
- <line num="127" count="0" type="stmt"/>
195
+ <line num="127" count="0" type="cond" truecount="0" falsecount="2"/>
216
196
  <line num="128" count="0" type="stmt"/>
217
197
  <line num="129" count="0" type="cond" truecount="0" falsecount="2"/>
218
198
  <line num="130" count="0" type="stmt"/>
219
199
  <line num="132" count="0" type="stmt"/>
200
+ <line num="133" count="0" type="stmt"/>
201
+ <line num="134" count="0" type="stmt"/>
202
+ <line num="135" count="0" type="stmt"/>
203
+ <line num="136" count="0" type="stmt"/>
204
+ <line num="137" count="0" type="cond" truecount="0" falsecount="2"/>
205
+ <line num="138" count="0" type="stmt"/>
206
+ <line num="140" count="0" type="stmt"/>
207
+ </file>
208
+ </package>
209
+ <package name="lib.tester">
210
+ <metrics statements="43" coveredstatements="40" conditionals="50" coveredconditionals="47" methods="2" coveredmethods="2"/>
211
+ <file name="helpers.js" path="/home/runner/work/featurevisor/featurevisor/packages/core/lib/tester/helpers.js">
212
+ <metrics statements="43" coveredstatements="40" conditionals="50" coveredconditionals="47" methods="2" coveredmethods="2"/>
213
+ <line num="2" count="1" type="stmt"/>
214
+ <line num="3" count="1" type="stmt"/>
215
+ <line num="4" count="1" type="stmt"/>
216
+ <line num="6" count="23" type="cond" truecount="1" falsecount="1"/>
217
+ <line num="7" count="0" type="stmt"/>
218
+ <line num="9" count="23" type="cond" truecount="5" falsecount="1"/>
219
+ <line num="10" count="0" type="stmt"/>
220
+ <line num="12" count="23" type="stmt"/>
221
+ <line num="13" count="23" type="stmt"/>
222
+ <line num="14" count="23" type="cond" truecount="2" falsecount="0"/>
223
+ <line num="15" count="3" type="stmt"/>
224
+ <line num="17" count="20" type="stmt"/>
225
+ <line num="18" count="24" type="cond" truecount="2" falsecount="0"/>
226
+ <line num="19" count="1" type="stmt"/>
227
+ <line num="21" count="23" type="stmt"/>
228
+ <line num="22" count="23" type="stmt"/>
229
+ <line num="23" count="23" type="cond" truecount="4" falsecount="0"/>
230
+ <line num="24" count="4" type="cond" truecount="2" falsecount="0"/>
231
+ <line num="25" count="1" type="stmt"/>
232
+ <line num="28" count="19" type="cond" truecount="4" falsecount="0"/>
233
+ <line num="29" count="4" type="cond" truecount="2" falsecount="0"/>
234
+ <line num="30" count="2" type="stmt"/>
235
+ <line num="33" count="15" type="cond" truecount="2" falsecount="0"/>
236
+ <line num="34" count="4" type="stmt"/>
237
+ <line num="37" count="12" type="stmt"/>
238
+ <line num="40" count="29" type="cond" truecount="1" falsecount="1"/>
239
+ <line num="41" count="0" type="stmt"/>
240
+ <line num="43" count="29" type="cond" truecount="4" falsecount="0"/>
241
+ <line num="44" count="3" type="stmt"/>
242
+ <line num="46" count="26" type="cond" truecount="2" falsecount="0"/>
243
+ <line num="47" count="3" type="stmt"/>
244
+ <line num="49" count="23" type="stmt"/>
245
+ <line num="50" count="44" type="stmt"/>
246
+ <line num="51" count="44" type="stmt"/>
247
+ <line num="52" count="44" type="cond" truecount="4" falsecount="0"/>
248
+ <line num="53" count="4" type="cond" truecount="2" falsecount="0"/>
249
+ <line num="54" count="1" type="stmt"/>
250
+ <line num="57" count="40" type="cond" truecount="6" falsecount="0"/>
251
+ <line num="61" count="6" type="cond" truecount="2" falsecount="0"/>
252
+ <line num="62" count="2" type="stmt"/>
253
+ <line num="65" count="34" type="cond" truecount="2" falsecount="0"/>
254
+ <line num="66" count="6" type="stmt"/>
255
+ <line num="69" count="14" type="stmt"/>
220
256
  </file>
221
257
  </package>
222
258
  <package name="src.builder">
223
- <metrics statements="97" coveredstatements="91" conditionals="45" coveredconditionals="39" methods="15" coveredmethods="15"/>
259
+ <metrics statements="103" coveredstatements="95" conditionals="53" coveredconditionals="44" methods="15" coveredmethods="15"/>
224
260
  <file name="allocator.ts" path="/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/allocator.ts">
225
261
  <metrics statements="27" coveredstatements="27" conditionals="6" coveredconditionals="6" methods="2" coveredmethods="2"/>
226
262
  <line num="3" count="2" type="stmt"/>
@@ -265,89 +301,79 @@
265
301
  <line num="21" count="0" type="stmt"/>
266
302
  </file>
267
303
  <file name="traffic.ts" path="/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/traffic.ts">
268
- <metrics statements="60" coveredstatements="55" conditionals="34" coveredconditionals="28" methods="12" coveredmethods="12"/>
269
- <line num="2" count="1" type="stmt"/>
270
- <line num="4" count="1" type="stmt"/>
271
- <line num="6" count="1" type="stmt"/>
272
- <line num="10" count="13" type="cond" truecount="3" falsecount="0"/>
273
- <line num="11" count="4" type="cond" truecount="3" falsecount="0"/>
274
- <line num="14" count="4" type="stmt"/>
275
- <line num="18" count="0" type="stmt"/>
276
- <line num="21" count="9" type="cond" truecount="1" falsecount="1"/>
277
- <line num="22" count="21" type="stmt"/>
278
- <line num="25" count="9" type="stmt"/>
279
- <line num="27" count="22" type="stmt"/>
280
- <line num="35" count="1" type="stmt"/>
281
- <line num="39" count="13" type="cond" truecount="1" falsecount="0"/>
282
- <line num="40" count="4" type="stmt"/>
283
- <line num="43" count="9" type="stmt"/>
284
- <line num="45" count="9" type="stmt"/>
285
- <line num="48" count="1" type="stmt"/>
286
- <line num="52" count="13" type="cond" truecount="1" falsecount="0"/>
287
- <line num="53" count="4" type="stmt"/>
288
- <line num="56" count="9" type="cond" truecount="1" falsecount="0"/>
289
- <line num="57" count="9" type="stmt"/>
290
- <line num="60" count="0" type="stmt"/>
291
- <line num="63" count="1" type="stmt"/>
292
- <line num="72" count="13" type="stmt"/>
293
- <line num="76" count="13" type="cond" truecount="2" falsecount="2"/>
294
- <line num="78" count="13" type="stmt"/>
304
+ <metrics statements="66" coveredstatements="59" conditionals="42" coveredconditionals="33" methods="12" coveredmethods="12"/>
305
+ <line num="9" count="1" type="stmt"/>
306
+ <line num="11" count="1" type="stmt"/>
307
+ <line num="13" count="1" type="stmt"/>
308
+ <line num="17" count="13" type="cond" truecount="3" falsecount="0"/>
309
+ <line num="18" count="4" type="cond" truecount="3" falsecount="0"/>
310
+ <line num="21" count="4" type="stmt"/>
311
+ <line num="25" count="0" type="stmt"/>
312
+ <line num="28" count="9" type="cond" truecount="1" falsecount="1"/>
313
+ <line num="29" count="21" type="stmt"/>
314
+ <line num="32" count="9" type="stmt"/>
315
+ <line num="34" count="22" type="stmt"/>
316
+ <line num="42" count="1" type="stmt"/>
317
+ <line num="46" count="13" type="cond" truecount="1" falsecount="0"/>
318
+ <line num="47" count="4" type="stmt"/>
319
+ <line num="50" count="9" type="stmt"/>
320
+ <line num="52" count="9" type="stmt"/>
321
+ <line num="55" count="1" type="stmt"/>
322
+ <line num="59" count="13" type="cond" truecount="1" falsecount="0"/>
323
+ <line num="60" count="4" type="stmt"/>
324
+ <line num="63" count="9" type="cond" truecount="1" falsecount="0"/>
325
+ <line num="64" count="9" type="stmt"/>
326
+ <line num="67" count="0" type="stmt"/>
327
+ <line num="70" count="1" type="stmt"/>
295
328
  <line num="79" count="13" type="stmt"/>
296
- <line num="81" count="13" type="stmt"/>
297
- <line num="89" count="13" type="cond" truecount="0" falsecount="1"/>
298
- <line num="90" count="0" type="stmt"/>
299
- <line num="93" count="13" type="cond" truecount="0" falsecount="1"/>
300
- <line num="94" count="0" type="stmt"/>
301
- <line num="98" count="13" type="stmt"/>
302
- <line num="99" count="13" type="cond" truecount="4" falsecount="0"/>
303
- <line num="100" count="13" type="stmt"/>
304
- <line num="101" count="13" type="stmt"/>
305
- <line num="104" count="13" type="cond" truecount="4" falsecount="0"/>
329
+ <line num="83" count="13" type="cond" truecount="2" falsecount="2"/>
330
+ <line num="85" count="13" type="stmt"/>
331
+ <line num="86" count="13" type="stmt"/>
332
+ <line num="88" count="13" type="stmt"/>
333
+ <line num="97" count="13" type="cond" truecount="0" falsecount="1"/>
334
+ <line num="98" count="0" type="stmt"/>
335
+ <line num="101" count="13" type="cond" truecount="0" falsecount="1"/>
336
+ <line num="102" count="0" type="stmt"/>
337
+ <line num="106" count="13" type="stmt"/>
338
+ <line num="107" count="13" type="cond" truecount="4" falsecount="0"/>
339
+ <line num="108" count="13" type="stmt"/>
306
340
  <line num="109" count="13" type="stmt"/>
307
- <line num="111" count="13" type="cond" truecount="3" falsecount="0"/>
308
- <line num="113" count="1" type="stmt"/>
309
- <line num="115" count="1" type="stmt"/>
310
- <line num="116" count="2" type="stmt"/>
311
- <line num="121" count="2" type="stmt"/>
312
- <line num="123" count="2" type="stmt"/>
313
- <line num="126" count="1" type="stmt"/>
314
- <line num="129" count="13" type="cond" truecount="1" falsecount="0"/>
315
- <line num="130" count="13" type="stmt"/>
316
- <line num="131" count="30" type="stmt"/>
317
- <line num="132" count="30" type="stmt"/>
318
- <line num="134" count="30" type="cond" truecount="2" falsecount="0"/>
319
- <line num="137" count="30" type="stmt"/>
320
- <line num="139" count="30" type="stmt"/>
321
- <line num="140" count="26" type="stmt"/>
322
- <line num="146" count="30" type="stmt"/>
323
- <line num="153" count="13" type="stmt"/>
324
- <line num="154" count="28" type="cond" truecount="2" falsecount="1"/>
325
- <line num="155" count="0" type="stmt"/>
326
- <line num="158" count="28" type="stmt"/>
327
- <line num="163" count="13" type="stmt"/>
328
- <line num="166" count="13" type="stmt"/>
341
+ <line num="112" count="13" type="cond" truecount="5" falsecount="0"/>
342
+ <line num="121" count="13" type="stmt"/>
343
+ <line num="123" count="13" type="cond" truecount="4" falsecount="0"/>
344
+ <line num="125" count="1" type="stmt"/>
345
+ <line num="127" count="1" type="stmt"/>
346
+ <line num="128" count="2" type="stmt"/>
347
+ <line num="133" count="2" type="stmt"/>
348
+ <line num="135" count="2" type="stmt"/>
349
+ <line num="138" count="1" type="stmt"/>
350
+ <line num="141" count="13" type="cond" truecount="1" falsecount="0"/>
351
+ <line num="142" count="13" type="stmt"/>
352
+ <line num="143" count="30" type="stmt"/>
353
+ <line num="145" count="30" type="cond" truecount="1" falsecount="2"/>
354
+ <line num="147" count="0" type="stmt"/>
355
+ <line num="150" count="30" type="stmt"/>
356
+ <line num="152" count="30" type="cond" truecount="2" falsecount="0"/>
357
+ <line num="155" count="30" type="stmt"/>
358
+ <line num="157" count="30" type="stmt"/>
359
+ <line num="158" count="26" type="cond" truecount="1" falsecount="0"/>
360
+ <line num="159" count="26" type="stmt"/>
361
+ <line num="166" count="30" type="stmt"/>
362
+ <line num="173" count="13" type="cond" truecount="1" falsecount="0"/>
363
+ <line num="174" count="13" type="stmt"/>
364
+ <line num="175" count="28" type="cond" truecount="2" falsecount="1"/>
365
+ <line num="176" count="0" type="stmt"/>
366
+ <line num="179" count="28" type="stmt"/>
367
+ <line num="182" count="13" type="cond" truecount="0" falsecount="1"/>
368
+ <line num="183" count="0" type="stmt"/>
369
+ <line num="187" count="13" type="stmt"/>
370
+ <line num="190" count="13" type="stmt"/>
329
371
  </file>
330
372
  </package>
331
- <package name="src.tester">
332
- <metrics statements="83" coveredstatements="31" conditionals="38" coveredconditionals="12" methods="11" coveredmethods="3"/>
333
- <file name="checkIfObjectsAreEqual.ts" path="/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/checkIfObjectsAreEqual.ts">
334
- <metrics statements="13" coveredstatements="12" conditionals="10" coveredconditionals="9" methods="1" coveredmethods="1"/>
335
- <line num="1" count="1" type="stmt"/>
336
- <line num="2" count="12" type="cond" truecount="1" falsecount="0"/>
337
- <line num="3" count="5" type="stmt"/>
338
- <line num="6" count="7" type="cond" truecount="5" falsecount="0"/>
339
- <line num="7" count="2" type="stmt"/>
340
- <line num="10" count="5" type="stmt"/>
341
- <line num="11" count="5" type="stmt"/>
342
- <line num="13" count="5" type="cond" truecount="0" falsecount="1"/>
343
- <line num="14" count="0" type="stmt"/>
344
- <line num="17" count="5" type="stmt"/>
345
- <line num="18" count="8" type="cond" truecount="3" falsecount="0"/>
346
- <line num="19" count="2" type="stmt"/>
347
- <line num="23" count="3" type="stmt"/>
348
- </file>
349
- <file name="matrix.ts" path="/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/matrix.ts">
350
- <metrics statements="70" coveredstatements="19" conditionals="28" coveredconditionals="3" methods="10" coveredmethods="2"/>
373
+ <package name="src.list">
374
+ <metrics statements="80" coveredstatements="19" conditionals="32" coveredconditionals="3" methods="10" coveredmethods="2"/>
375
+ <file name="matrix.ts" path="/home/runner/work/featurevisor/featurevisor/packages/core/src/list/matrix.ts">
376
+ <metrics statements="80" coveredstatements="19" conditionals="32" coveredconditionals="3" methods="10" coveredmethods="2"/>
351
377
  <line num="10" count="10" type="stmt"/>
352
378
  <line num="11" count="10" type="stmt"/>
353
379
  <line num="13" count="10" type="stmt"/>
@@ -375,8 +401,8 @@
375
401
  <line num="63" count="1" type="stmt"/>
376
402
  <line num="67" count="0" type="stmt"/>
377
403
  <line num="70" count="0" type="stmt"/>
378
- <line num="76" count="0" type="stmt"/>
379
- <line num="77" count="0" type="stmt"/>
404
+ <line num="76" count="0" type="cond" truecount="0" falsecount="2"/>
405
+ <line num="77" count="0" type="cond" truecount="0" falsecount="4"/>
380
406
  <line num="79" count="0" type="stmt"/>
381
407
  <line num="83" count="0" type="stmt"/>
382
408
  <line num="84" count="0" type="cond" truecount="0" falsecount="1"/>
@@ -387,37 +413,95 @@
387
413
  <line num="102" count="1" type="stmt"/>
388
414
  <line num="106" count="0" type="cond" truecount="0" falsecount="1"/>
389
415
  <line num="107" count="0" type="stmt"/>
390
- <line num="108" count="0" type="cond" truecount="0" falsecount="2"/>
416
+ <line num="111" count="0" type="cond" truecount="0" falsecount="1"/>
391
417
  <line num="112" count="0" type="stmt"/>
392
- <line num="115" count="0" type="stmt"/>
418
+ <line num="115" count="0" type="cond" truecount="0" falsecount="2"/>
393
419
  <line num="116" count="0" type="stmt"/>
394
420
  <line num="118" count="0" type="stmt"/>
395
- <line num="119" count="0" type="stmt"/>
396
- <line num="120" count="0" type="stmt"/>
397
- <line num="121" count="0" type="cond" truecount="0" falsecount="2"/>
398
- <line num="125" count="0" type="stmt"/>
399
- <line num="128" count="0" type="stmt"/>
400
- <line num="134" count="1" type="stmt"/>
401
- <line num="138" count="0" type="stmt"/>
402
- <line num="141" count="0" type="stmt"/>
421
+ <line num="121" count="0" type="stmt"/>
422
+ <line num="123" count="0" type="stmt"/>
423
+ <line num="126" count="0" type="stmt"/>
424
+ <line num="127" count="0" type="stmt"/>
425
+ <line num="129" count="0" type="stmt"/>
426
+ <line num="130" count="0" type="stmt"/>
427
+ <line num="131" count="0" type="stmt"/>
428
+ <line num="135" count="0" type="cond" truecount="0" falsecount="1"/>
429
+ <line num="136" count="0" type="stmt"/>
430
+ <line num="139" count="0" type="cond" truecount="0" falsecount="2"/>
431
+ <line num="140" count="0" type="stmt"/>
403
432
  <line num="142" count="0" type="stmt"/>
404
- <line num="144" count="0" type="stmt"/>
405
- <line num="148" count="0" type="cond" truecount="0" falsecount="1"/>
406
- <line num="149" count="0" type="stmt"/>
407
- <line num="155" count="0" type="stmt"/>
408
- <line num="158" count="1" type="stmt"/>
409
- <line num="162" count="0" type="cond" truecount="0" falsecount="1"/>
433
+ <line num="145" count="0" type="stmt"/>
434
+ <line num="147" count="0" type="stmt"/>
435
+ <line num="150" count="0" type="stmt"/>
436
+ <line num="156" count="1" type="stmt"/>
437
+ <line num="160" count="0" type="stmt"/>
410
438
  <line num="163" count="0" type="stmt"/>
411
439
  <line num="164" count="0" type="stmt"/>
412
- <line num="168" count="0" type="stmt"/>
440
+ <line num="166" count="0" type="stmt"/>
441
+ <line num="170" count="0" type="cond" truecount="0" falsecount="1"/>
413
442
  <line num="171" count="0" type="stmt"/>
414
- <line num="172" count="0" type="stmt"/>
415
- <line num="174" count="0" type="stmt"/>
416
- <line num="175" count="0" type="stmt"/>
417
- <line num="176" count="0" type="stmt"/>
418
443
  <line num="177" count="0" type="stmt"/>
419
- <line num="181" count="0" type="stmt"/>
420
- <line num="184" count="0" type="stmt"/>
444
+ <line num="180" count="1" type="stmt"/>
445
+ <line num="184" count="0" type="cond" truecount="0" falsecount="1"/>
446
+ <line num="185" count="0" type="stmt"/>
447
+ <line num="186" count="0" type="stmt"/>
448
+ <line num="190" count="0" type="stmt"/>
449
+ <line num="193" count="0" type="stmt"/>
450
+ <line num="194" count="0" type="stmt"/>
451
+ <line num="196" count="0" type="stmt"/>
452
+ <line num="197" count="0" type="stmt"/>
453
+ <line num="198" count="0" type="stmt"/>
454
+ <line num="199" count="0" type="stmt"/>
455
+ <line num="203" count="0" type="stmt"/>
456
+ <line num="206" count="0" type="stmt"/>
457
+ </file>
458
+ </package>
459
+ <package name="src.tester">
460
+ <metrics statements="42" coveredstatements="39" conditionals="37" coveredconditionals="34" methods="2" coveredmethods="2"/>
461
+ <file name="helpers.ts" path="/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/helpers.ts">
462
+ <metrics statements="42" coveredstatements="39" conditionals="37" coveredconditionals="34" methods="2" coveredmethods="2"/>
463
+ <line num="1" count="1" type="stmt"/>
464
+ <line num="2" count="23" type="cond" truecount="0" falsecount="1"/>
465
+ <line num="3" count="0" type="stmt"/>
466
+ <line num="6" count="23" type="cond" truecount="4" falsecount="1"/>
467
+ <line num="7" count="0" type="stmt"/>
468
+ <line num="10" count="23" type="stmt"/>
469
+ <line num="11" count="23" type="stmt"/>
470
+ <line num="13" count="23" type="cond" truecount="1" falsecount="0"/>
471
+ <line num="14" count="3" type="stmt"/>
472
+ <line num="17" count="20" type="stmt"/>
473
+ <line num="18" count="24" type="cond" truecount="1" falsecount="0"/>
474
+ <line num="19" count="1" type="stmt"/>
475
+ <line num="22" count="23" type="stmt"/>
476
+ <line num="23" count="23" type="stmt"/>
477
+ <line num="25" count="23" type="cond" truecount="4" falsecount="0"/>
478
+ <line num="26" count="4" type="cond" truecount="1" falsecount="0"/>
479
+ <line num="27" count="1" type="stmt"/>
480
+ <line num="29" count="19" type="cond" truecount="4" falsecount="0"/>
481
+ <line num="30" count="4" type="cond" truecount="1" falsecount="0"/>
482
+ <line num="31" count="2" type="stmt"/>
483
+ <line num="33" count="15" type="cond" truecount="1" falsecount="0"/>
484
+ <line num="34" count="4" type="stmt"/>
485
+ <line num="37" count="12" type="stmt"/>
486
+ <line num="40" count="1" type="stmt"/>
487
+ <line num="41" count="29" type="cond" truecount="0" falsecount="1"/>
488
+ <line num="42" count="0" type="stmt"/>
489
+ <line num="45" count="29" type="cond" truecount="3" falsecount="0"/>
490
+ <line num="46" count="3" type="stmt"/>
491
+ <line num="49" count="26" type="cond" truecount="1" falsecount="0"/>
492
+ <line num="50" count="3" type="stmt"/>
493
+ <line num="53" count="23" type="stmt"/>
494
+ <line num="54" count="44" type="stmt"/>
495
+ <line num="55" count="44" type="stmt"/>
496
+ <line num="57" count="44" type="cond" truecount="4" falsecount="0"/>
497
+ <line num="58" count="4" type="cond" truecount="1" falsecount="0"/>
498
+ <line num="59" count="1" type="stmt"/>
499
+ <line num="61" count="40" type="cond" truecount="2" falsecount="0"/>
500
+ <line num="67" count="6" type="cond" truecount="1" falsecount="0"/>
501
+ <line num="68" count="2" type="stmt"/>
502
+ <line num="70" count="34" type="cond" truecount="1" falsecount="0"/>
503
+ <line num="71" count="6" type="stmt"/>
504
+ <line num="75" count="14" type="stmt"/>
421
505
  </file>
422
506
  </package>
423
507
  </project>