@fncts/test 0.0.20 → 0.0.22

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 (459) hide show
  1. package/_cjs/api.cjs +39 -76
  2. package/_cjs/api.cjs.map +1 -1
  3. package/_cjs/control/AbstractRunnableSpec.cjs +1 -12
  4. package/_cjs/control/AbstractRunnableSpec.cjs.map +1 -1
  5. package/_cjs/control/Annotations/api.cjs +0 -12
  6. package/_cjs/control/Annotations/api.cjs.map +1 -1
  7. package/_cjs/control/Annotations/definition.cjs +0 -6
  8. package/_cjs/control/Annotations/definition.cjs.map +1 -1
  9. package/_cjs/control/Annotations/live.cjs +6 -29
  10. package/_cjs/control/Annotations/live.cjs.map +1 -1
  11. package/_cjs/control/Annotations.cjs +0 -6
  12. package/_cjs/control/Annotations.cjs.map +1 -1
  13. package/_cjs/control/Assertion/api.cjs +50 -100
  14. package/_cjs/control/Assertion/api.cjs.map +1 -1
  15. package/_cjs/control/Assertion/definition.cjs +0 -8
  16. package/_cjs/control/Assertion/definition.cjs.map +1 -1
  17. package/_cjs/control/Assertion.cjs +0 -4
  18. package/_cjs/control/Assertion.cjs.map +1 -1
  19. package/_cjs/control/AssertionIO/api.cjs +20 -26
  20. package/_cjs/control/AssertionIO/api.cjs.map +1 -1
  21. package/_cjs/control/AssertionIO/definition.cjs +0 -8
  22. package/_cjs/control/AssertionIO/definition.cjs.map +1 -1
  23. package/_cjs/control/AssertionIO.cjs +0 -4
  24. package/_cjs/control/AssertionIO.cjs.map +1 -1
  25. package/_cjs/control/DefaultRunnableSpec.cjs +0 -12
  26. package/_cjs/control/DefaultRunnableSpec.cjs.map +1 -1
  27. package/_cjs/control/DefaultTestReporter/definition.cjs.map +1 -1
  28. package/_cjs/control/DefaultTestReporter/render.cjs +54 -123
  29. package/_cjs/control/DefaultTestReporter/render.cjs.map +1 -1
  30. package/_cjs/control/DefaultTestReporter.cjs +0 -4
  31. package/_cjs/control/DefaultTestReporter.cjs.map +1 -1
  32. package/_cjs/control/FreeBooleanAlgebraIO/api.cjs +20 -36
  33. package/_cjs/control/FreeBooleanAlgebraIO/api.cjs.map +1 -1
  34. package/_cjs/control/FreeBooleanAlgebraIO/definition.cjs.map +1 -1
  35. package/_cjs/control/FreeBooleanAlgebraIO.cjs +0 -4
  36. package/_cjs/control/FreeBooleanAlgebraIO.cjs.map +1 -1
  37. package/_cjs/control/Gen/api.cjs +533 -200
  38. package/_cjs/control/Gen/api.cjs.map +1 -1
  39. package/_cjs/control/Gen/definition.cjs +0 -3
  40. package/_cjs/control/Gen/definition.cjs.map +1 -1
  41. package/_cjs/control/Gen.cjs +0 -97
  42. package/_cjs/control/Gen.cjs.map +1 -1
  43. package/_cjs/control/Live/definition.cjs +5 -23
  44. package/_cjs/control/Live/definition.cjs.map +1 -1
  45. package/_cjs/control/Live.cjs +0 -2
  46. package/_cjs/control/Live.cjs.map +1 -1
  47. package/_cjs/control/RunnableSpec.cjs +8 -28
  48. package/_cjs/control/RunnableSpec.cjs.map +1 -1
  49. package/_cjs/control/Sample/api.cjs +66 -107
  50. package/_cjs/control/Sample/api.cjs.map +1 -1
  51. package/_cjs/control/Sample/definition.cjs +0 -3
  52. package/_cjs/control/Sample/definition.cjs.map +1 -1
  53. package/_cjs/control/Sample.cjs +0 -4
  54. package/_cjs/control/Sample.cjs.map +1 -1
  55. package/_cjs/control/Sized/api.cjs +0 -8
  56. package/_cjs/control/Sized/api.cjs.map +1 -1
  57. package/_cjs/control/Sized/definition.cjs +0 -6
  58. package/_cjs/control/Sized/definition.cjs.map +1 -1
  59. package/_cjs/control/Sized/live.cjs +3 -15
  60. package/_cjs/control/Sized/live.cjs.map +1 -1
  61. package/_cjs/control/Sized.cjs +0 -6
  62. package/_cjs/control/Sized.cjs.map +1 -1
  63. package/_cjs/control/Spec/api.cjs +322 -367
  64. package/_cjs/control/Spec/api.cjs.map +1 -1
  65. package/_cjs/control/Spec/definition.cjs +6 -45
  66. package/_cjs/control/Spec/definition.cjs.map +1 -1
  67. package/_cjs/control/Spec.cjs +0 -4
  68. package/_cjs/control/Spec.cjs.map +1 -1
  69. package/_cjs/control/SummaryBuilder.cjs +10 -31
  70. package/_cjs/control/SummaryBuilder.cjs.map +1 -1
  71. package/_cjs/control/Test.cjs +1 -11
  72. package/_cjs/control/Test.cjs.map +1 -1
  73. package/_cjs/control/TestAnnotationRenderer/api.cjs +20 -45
  74. package/_cjs/control/TestAnnotationRenderer/api.cjs.map +1 -1
  75. package/_cjs/control/TestAnnotationRenderer/definition.cjs +4 -20
  76. package/_cjs/control/TestAnnotationRenderer/definition.cjs.map +1 -1
  77. package/_cjs/control/TestAnnotationRenderer.cjs +0 -4
  78. package/_cjs/control/TestAnnotationRenderer.cjs.map +1 -1
  79. package/_cjs/control/TestAspect/api.cjs +14 -55
  80. package/_cjs/control/TestAspect/api.cjs.map +1 -1
  81. package/_cjs/control/TestAspect.cjs +0 -4
  82. package/_cjs/control/TestAspect.cjs.map +1 -1
  83. package/_cjs/control/TestClock/api.cjs +1 -22
  84. package/_cjs/control/TestClock/api.cjs.map +1 -1
  85. package/_cjs/control/TestClock/definition.cjs +50 -110
  86. package/_cjs/control/TestClock/definition.cjs.map +1 -1
  87. package/_cjs/control/TestClock.cjs +0 -4
  88. package/_cjs/control/TestClock.cjs.map +1 -1
  89. package/_cjs/control/TestConsole/api.cjs +3 -21
  90. package/_cjs/control/TestConsole/api.cjs.map +1 -1
  91. package/_cjs/control/TestConsole/definition.cjs +23 -48
  92. package/_cjs/control/TestConsole/definition.cjs.map +1 -1
  93. package/_cjs/control/TestConsole.cjs +0 -4
  94. package/_cjs/control/TestConsole.cjs.map +1 -1
  95. package/_cjs/control/TestEnvironment.cjs +3 -15
  96. package/_cjs/control/TestEnvironment.cjs.map +1 -1
  97. package/_cjs/control/TestExecutor.cjs +3 -17
  98. package/_cjs/control/TestExecutor.cjs.map +1 -1
  99. package/_cjs/control/TestLogger.cjs +2 -17
  100. package/_cjs/control/TestLogger.cjs.map +1 -1
  101. package/_cjs/control/TestRandom/api.cjs +9 -39
  102. package/_cjs/control/TestRandom/api.cjs.map +1 -1
  103. package/_cjs/control/TestRandom/definition.cjs +61 -145
  104. package/_cjs/control/TestRandom/definition.cjs.map +1 -1
  105. package/_cjs/control/TestRandom.cjs +0 -4
  106. package/_cjs/control/TestRandom.cjs.map +1 -1
  107. package/_cjs/control/TestRenderer/ConsoleRenderer.cjs +11 -36
  108. package/_cjs/control/TestRenderer/ConsoleRenderer.cjs.map +1 -1
  109. package/_cjs/control/TestRunner.cjs +2 -19
  110. package/_cjs/control/TestRunner.cjs.map +1 -1
  111. package/_cjs/data/AssertionData.cjs +0 -14
  112. package/_cjs/data/AssertionData.cjs.map +1 -1
  113. package/_cjs/data/AssertionResult.cjs +0 -8
  114. package/_cjs/data/AssertionResult.cjs.map +1 -1
  115. package/_cjs/data/AssertionValue/api.cjs +23 -30
  116. package/_cjs/data/AssertionValue/api.cjs.map +1 -1
  117. package/_cjs/data/AssertionValue/definition.cjs +0 -8
  118. package/_cjs/data/AssertionValue/definition.cjs.map +1 -1
  119. package/_cjs/data/AssertionValue.cjs +0 -4
  120. package/_cjs/data/AssertionValue.cjs.map +1 -1
  121. package/_cjs/data/ExecutedSpec/api.cjs +61 -75
  122. package/_cjs/data/ExecutedSpec/api.cjs.map +1 -1
  123. package/_cjs/data/ExecutedSpec/definition.cjs +3 -21
  124. package/_cjs/data/ExecutedSpec/definition.cjs.map +1 -1
  125. package/_cjs/data/ExecutedSpec.cjs +0 -4
  126. package/_cjs/data/ExecutedSpec.cjs.map +1 -1
  127. package/_cjs/data/ExecutionResult.cjs +42 -67
  128. package/_cjs/data/ExecutionResult.cjs.map +1 -1
  129. package/_cjs/data/FailureDetails.cjs +0 -3
  130. package/_cjs/data/FailureDetails.cjs.map +1 -1
  131. package/_cjs/data/FreeBooleanAlgebra/api.cjs +82 -115
  132. package/_cjs/data/FreeBooleanAlgebra/api.cjs.map +1 -1
  133. package/_cjs/data/FreeBooleanAlgebra/definition.cjs +4 -24
  134. package/_cjs/data/FreeBooleanAlgebra/definition.cjs.map +1 -1
  135. package/_cjs/data/FreeBooleanAlgebra.cjs +0 -4
  136. package/_cjs/data/FreeBooleanAlgebra.cjs.map +1 -1
  137. package/_cjs/data/GenFailureDetails.cjs +0 -3
  138. package/_cjs/data/GenFailureDetails.cjs.map +1 -1
  139. package/_cjs/data/LogLine/Fragment.cjs +2 -24
  140. package/_cjs/data/LogLine/Fragment.cjs.map +1 -1
  141. package/_cjs/data/LogLine/Line.cjs +11 -41
  142. package/_cjs/data/LogLine/Line.cjs.map +1 -1
  143. package/_cjs/data/LogLine/Message.cjs +32 -58
  144. package/_cjs/data/LogLine/Message.cjs.map +1 -1
  145. package/_cjs/data/LogLine/Style.cjs +10 -44
  146. package/_cjs/data/LogLine/Style.cjs.map +1 -1
  147. package/_cjs/data/LogLine/api.cjs +0 -15
  148. package/_cjs/data/LogLine/api.cjs.map +1 -1
  149. package/_cjs/data/LogLine.cjs +0 -4
  150. package/_cjs/data/LogLine.cjs.map +1 -1
  151. package/_cjs/data/Render/api.cjs +0 -4
  152. package/_cjs/data/Render/api.cjs.map +1 -1
  153. package/_cjs/data/Render/definition.cjs +3 -17
  154. package/_cjs/data/Render/definition.cjs.map +1 -1
  155. package/_cjs/data/Render.cjs +0 -4
  156. package/_cjs/data/Render.cjs.map +1 -1
  157. package/_cjs/data/RenderParam/api.cjs +3 -15
  158. package/_cjs/data/RenderParam/api.cjs.map +1 -1
  159. package/_cjs/data/RenderParam/definition.cjs +2 -12
  160. package/_cjs/data/RenderParam/definition.cjs.map +1 -1
  161. package/_cjs/data/RenderParam.cjs +0 -4
  162. package/_cjs/data/RenderParam.cjs.map +1 -1
  163. package/_cjs/data/Summary.cjs +0 -3
  164. package/_cjs/data/Summary.cjs.map +1 -1
  165. package/_cjs/data/TestAnnotation/api.cjs +2 -17
  166. package/_cjs/data/TestAnnotation/api.cjs.map +1 -1
  167. package/_cjs/data/TestAnnotation/definition.cjs +4 -19
  168. package/_cjs/data/TestAnnotation/definition.cjs.map +1 -1
  169. package/_cjs/data/TestAnnotation.cjs +0 -4
  170. package/_cjs/data/TestAnnotation.cjs.map +1 -1
  171. package/_cjs/data/TestAnnotationMap.cjs +4 -19
  172. package/_cjs/data/TestAnnotationMap.cjs.map +1 -1
  173. package/_cjs/data/TestArgs/definition.cjs +0 -3
  174. package/_cjs/data/TestArgs/definition.cjs.map +1 -1
  175. package/_cjs/data/TestArgs.cjs +0 -2
  176. package/_cjs/data/TestArgs.cjs.map +1 -1
  177. package/_cjs/data/TestConfig.cjs +0 -17
  178. package/_cjs/data/TestConfig.cjs.map +1 -1
  179. package/_cjs/data/TestFailure.cjs +2 -23
  180. package/_cjs/data/TestFailure.cjs.map +1 -1
  181. package/_cjs/data/TestSuccess.cjs +2 -16
  182. package/_cjs/data/TestSuccess.cjs.map +1 -1
  183. package/_cjs/data/TestTimeoutException.cjs +0 -3
  184. package/_cjs/data/TestTimeoutException.cjs.map +1 -1
  185. package/_cjs/demo.cjs +5 -15
  186. package/_cjs/demo.cjs.map +1 -1
  187. package/_cjs/util/math.cjs +20 -148
  188. package/_cjs/util/math.cjs.map +1 -1
  189. package/_mjs/api.mjs +37 -40
  190. package/_mjs/api.mjs.map +1 -1
  191. package/_mjs/control/AbstractRunnableSpec.mjs +1 -7
  192. package/_mjs/control/AbstractRunnableSpec.mjs.map +1 -1
  193. package/_mjs/control/Annotations/api.mjs +0 -4
  194. package/_mjs/control/Annotations/api.mjs.map +1 -1
  195. package/_mjs/control/Annotations/definition.mjs +0 -2
  196. package/_mjs/control/Annotations/definition.mjs.map +1 -1
  197. package/_mjs/control/Annotations/live.mjs +6 -11
  198. package/_mjs/control/Annotations/live.mjs.map +1 -1
  199. package/_mjs/control/Annotations.mjs.map +1 -1
  200. package/_mjs/control/Assertion/api.mjs +43 -46
  201. package/_mjs/control/Assertion/api.mjs.map +1 -1
  202. package/_mjs/control/Assertion/definition.mjs +0 -2
  203. package/_mjs/control/Assertion/definition.mjs.map +1 -1
  204. package/_mjs/control/Assertion.mjs.map +1 -1
  205. package/_mjs/control/AssertionIO/api.mjs +17 -14
  206. package/_mjs/control/AssertionIO/api.mjs.map +1 -1
  207. package/_mjs/control/AssertionIO/definition.mjs +0 -3
  208. package/_mjs/control/AssertionIO/definition.mjs.map +1 -1
  209. package/_mjs/control/AssertionIO.mjs.map +1 -1
  210. package/_mjs/control/DefaultRunnableSpec.mjs +0 -1
  211. package/_mjs/control/DefaultRunnableSpec.mjs.map +1 -1
  212. package/_mjs/control/DefaultTestReporter/definition.mjs.map +1 -1
  213. package/_mjs/control/DefaultTestReporter/render.mjs +54 -87
  214. package/_mjs/control/DefaultTestReporter/render.mjs.map +1 -1
  215. package/_mjs/control/DefaultTestReporter.mjs.map +1 -1
  216. package/_mjs/control/FreeBooleanAlgebraIO/api.mjs +18 -22
  217. package/_mjs/control/FreeBooleanAlgebraIO/api.mjs.map +1 -1
  218. package/_mjs/control/FreeBooleanAlgebraIO/definition.mjs.map +1 -1
  219. package/_mjs/control/FreeBooleanAlgebraIO.mjs.map +1 -1
  220. package/_mjs/control/Gen/api.mjs +462 -138
  221. package/_mjs/control/Gen/api.mjs.map +1 -1
  222. package/_mjs/control/Gen/definition.mjs +0 -1
  223. package/_mjs/control/Gen/definition.mjs.map +1 -1
  224. package/_mjs/control/Gen.mjs +1 -10
  225. package/_mjs/control/Gen.mjs.map +1 -1
  226. package/_mjs/control/Live/definition.mjs +5 -10
  227. package/_mjs/control/Live/definition.mjs.map +1 -1
  228. package/_mjs/control/Live.mjs.map +1 -1
  229. package/_mjs/control/RunnableSpec.mjs +8 -11
  230. package/_mjs/control/RunnableSpec.mjs.map +1 -1
  231. package/_mjs/control/Sample/api.mjs +57 -73
  232. package/_mjs/control/Sample/api.mjs.map +1 -1
  233. package/_mjs/control/Sample/definition.mjs +0 -1
  234. package/_mjs/control/Sample/definition.mjs.map +1 -1
  235. package/_mjs/control/Sample.mjs.map +1 -1
  236. package/_mjs/control/Sized/api.mjs +0 -2
  237. package/_mjs/control/Sized/api.mjs.map +1 -1
  238. package/_mjs/control/Sized/definition.mjs +0 -2
  239. package/_mjs/control/Sized/definition.mjs.map +1 -1
  240. package/_mjs/control/Sized/live.mjs +3 -6
  241. package/_mjs/control/Sized/live.mjs.map +1 -1
  242. package/_mjs/control/Sized.mjs.map +1 -1
  243. package/_mjs/control/Spec/api.mjs +300 -309
  244. package/_mjs/control/Spec/api.mjs.map +1 -1
  245. package/_mjs/control/Spec/definition.mjs +6 -31
  246. package/_mjs/control/Spec/definition.mjs.map +1 -1
  247. package/_mjs/control/Spec.mjs.map +1 -1
  248. package/_mjs/control/SummaryBuilder.mjs +10 -15
  249. package/_mjs/control/SummaryBuilder.mjs.map +1 -1
  250. package/_mjs/control/Test.mjs +1 -2
  251. package/_mjs/control/Test.mjs.map +1 -1
  252. package/_mjs/control/TestAnnotationRenderer/api.mjs +20 -34
  253. package/_mjs/control/TestAnnotationRenderer/api.mjs.map +1 -1
  254. package/_mjs/control/TestAnnotationRenderer/definition.mjs +4 -10
  255. package/_mjs/control/TestAnnotationRenderer/definition.mjs.map +1 -1
  256. package/_mjs/control/TestAnnotationRenderer.mjs.map +1 -1
  257. package/_mjs/control/TestAspect/api.mjs +14 -18
  258. package/_mjs/control/TestAspect/api.mjs.map +1 -1
  259. package/_mjs/control/TestAspect.mjs.map +1 -1
  260. package/_mjs/control/TestClock/api.mjs +1 -5
  261. package/_mjs/control/TestClock/api.mjs.map +1 -1
  262. package/_mjs/control/TestClock/definition.mjs +50 -72
  263. package/_mjs/control/TestClock/definition.mjs.map +1 -1
  264. package/_mjs/control/TestClock.mjs.map +1 -1
  265. package/_mjs/control/TestConsole/api.mjs +3 -6
  266. package/_mjs/control/TestConsole/api.mjs.map +1 -1
  267. package/_mjs/control/TestConsole/definition.mjs +23 -32
  268. package/_mjs/control/TestConsole/definition.mjs.map +1 -1
  269. package/_mjs/control/TestConsole.mjs.map +1 -1
  270. package/_mjs/control/TestEnvironment.mjs +3 -3
  271. package/_mjs/control/TestEnvironment.mjs.map +1 -1
  272. package/_mjs/control/TestExecutor.mjs +3 -3
  273. package/_mjs/control/TestExecutor.mjs.map +1 -1
  274. package/_mjs/control/TestLogger.mjs +2 -7
  275. package/_mjs/control/TestLogger.mjs.map +1 -1
  276. package/_mjs/control/TestRandom/api.mjs +9 -19
  277. package/_mjs/control/TestRandom/api.mjs.map +1 -1
  278. package/_mjs/control/TestRandom/definition.mjs +61 -121
  279. package/_mjs/control/TestRandom/definition.mjs.map +1 -1
  280. package/_mjs/control/TestRandom.mjs.map +1 -1
  281. package/_mjs/control/TestRenderer/ConsoleRenderer.mjs +11 -21
  282. package/_mjs/control/TestRenderer/ConsoleRenderer.mjs.map +1 -1
  283. package/_mjs/control/TestRunner.mjs +2 -6
  284. package/_mjs/control/TestRunner.mjs.map +1 -1
  285. package/_mjs/data/AssertionData.mjs +0 -5
  286. package/_mjs/data/AssertionData.mjs.map +1 -1
  287. package/_mjs/data/AssertionResult.mjs +0 -2
  288. package/_mjs/data/AssertionResult.mjs.map +1 -1
  289. package/_mjs/data/AssertionValue/api.mjs +23 -20
  290. package/_mjs/data/AssertionValue/api.mjs.map +1 -1
  291. package/_mjs/data/AssertionValue/definition.mjs +0 -2
  292. package/_mjs/data/AssertionValue/definition.mjs.map +1 -1
  293. package/_mjs/data/AssertionValue.mjs.map +1 -1
  294. package/_mjs/data/ExecutedSpec/api.mjs +55 -57
  295. package/_mjs/data/ExecutedSpec/api.mjs.map +1 -1
  296. package/_mjs/data/ExecutedSpec/definition.mjs +5 -13
  297. package/_mjs/data/ExecutedSpec/definition.mjs.map +1 -1
  298. package/_mjs/data/ExecutedSpec.mjs.map +1 -1
  299. package/_mjs/data/ExecutionResult.mjs +40 -52
  300. package/_mjs/data/ExecutionResult.mjs.map +1 -1
  301. package/_mjs/data/FailureDetails.mjs +0 -1
  302. package/_mjs/data/FailureDetails.mjs.map +1 -1
  303. package/_mjs/data/FreeBooleanAlgebra/api.mjs +70 -87
  304. package/_mjs/data/FreeBooleanAlgebra/api.mjs.map +1 -1
  305. package/_mjs/data/FreeBooleanAlgebra/definition.mjs +8 -16
  306. package/_mjs/data/FreeBooleanAlgebra/definition.mjs.map +1 -1
  307. package/_mjs/data/FreeBooleanAlgebra.mjs.map +1 -1
  308. package/_mjs/data/GenFailureDetails.mjs +0 -1
  309. package/_mjs/data/GenFailureDetails.mjs.map +1 -1
  310. package/_mjs/data/LogLine/Fragment.mjs +2 -11
  311. package/_mjs/data/LogLine/Fragment.mjs.map +1 -1
  312. package/_mjs/data/LogLine/Line.mjs +11 -24
  313. package/_mjs/data/LogLine/Line.mjs.map +1 -1
  314. package/_mjs/data/LogLine/Message.mjs +26 -36
  315. package/_mjs/data/LogLine/Message.mjs.map +1 -1
  316. package/_mjs/data/LogLine/Style.mjs +10 -39
  317. package/_mjs/data/LogLine/Style.mjs.map +1 -1
  318. package/_mjs/data/LogLine/api.mjs.map +1 -1
  319. package/_mjs/data/LogLine.mjs.map +1 -1
  320. package/_mjs/data/Render/api.mjs +0 -2
  321. package/_mjs/data/Render/api.mjs.map +1 -1
  322. package/_mjs/data/Render/definition.mjs +3 -9
  323. package/_mjs/data/Render/definition.mjs.map +1 -1
  324. package/_mjs/data/Render.mjs.map +1 -1
  325. package/_mjs/data/RenderParam/api.mjs +3 -10
  326. package/_mjs/data/RenderParam/api.mjs.map +1 -1
  327. package/_mjs/data/RenderParam/definition.mjs +4 -8
  328. package/_mjs/data/RenderParam/definition.mjs.map +1 -1
  329. package/_mjs/data/RenderParam.mjs.map +1 -1
  330. package/_mjs/data/Summary.mjs +0 -1
  331. package/_mjs/data/Summary.mjs.map +1 -1
  332. package/_mjs/data/TestAnnotation/api.mjs +2 -8
  333. package/_mjs/data/TestAnnotation/api.mjs.map +1 -1
  334. package/_mjs/data/TestAnnotation/definition.mjs +4 -8
  335. package/_mjs/data/TestAnnotation/definition.mjs.map +1 -1
  336. package/_mjs/data/TestAnnotation.mjs.map +1 -1
  337. package/_mjs/data/TestAnnotationMap.mjs +4 -10
  338. package/_mjs/data/TestAnnotationMap.mjs.map +1 -1
  339. package/_mjs/data/TestArgs/definition.mjs +0 -1
  340. package/_mjs/data/TestArgs/definition.mjs.map +1 -1
  341. package/_mjs/data/TestArgs.mjs.map +1 -1
  342. package/_mjs/data/TestConfig.mjs +0 -8
  343. package/_mjs/data/TestConfig.mjs.map +1 -1
  344. package/_mjs/data/TestFailure.mjs +4 -12
  345. package/_mjs/data/TestFailure.mjs.map +1 -1
  346. package/_mjs/data/TestSuccess.mjs +4 -10
  347. package/_mjs/data/TestSuccess.mjs.map +1 -1
  348. package/_mjs/data/TestTimeoutException.mjs +0 -1
  349. package/_mjs/data/TestTimeoutException.mjs.map +1 -1
  350. package/_mjs/demo.mjs +5 -8
  351. package/_mjs/demo.mjs.map +1 -1
  352. package/_mjs/util/math.mjs +20 -117
  353. package/_mjs/util/math.mjs.map +1 -1
  354. package/_src/api.ts +36 -35
  355. package/_src/control/AbstractRunnableSpec.ts +0 -6
  356. package/_src/control/Annotations/live.ts +4 -10
  357. package/_src/control/Assertion/api.ts +36 -25
  358. package/_src/control/AssertionIO/api.ts +23 -17
  359. package/_src/control/DefaultTestReporter/render.ts +2 -12
  360. package/_src/control/FreeBooleanAlgebraIO/api.ts +12 -14
  361. package/_src/control/Gen/api.ts +476 -71
  362. package/_src/control/Gen.ts +0 -10
  363. package/_src/control/Live/definition.ts +0 -4
  364. package/_src/control/RunnableSpec.ts +1 -1
  365. package/_src/control/Sample/api.ts +78 -67
  366. package/_src/control/Spec/api.ts +235 -222
  367. package/_src/control/Spec/definition.ts +0 -2
  368. package/_src/control/SummaryBuilder.ts +0 -1
  369. package/_src/control/TestAnnotationRenderer/api.ts +17 -15
  370. package/_src/control/TestAnnotationRenderer/definition.ts +0 -2
  371. package/_src/control/TestAspect/api.ts +2 -3
  372. package/_src/control/TestClock/definition.ts +13 -25
  373. package/_src/control/TestConsole/definition.ts +1 -2
  374. package/_src/control/TestLogger.ts +0 -2
  375. package/_src/control/TestRandom/api.ts +5 -0
  376. package/_src/control/TestRandom/definition.ts +3 -37
  377. package/_src/control/TestRenderer/ConsoleRenderer.ts +0 -1
  378. package/_src/control/TestRunner.ts +0 -3
  379. package/_src/data/AssertionValue/api.ts +27 -23
  380. package/_src/data/AssertionValue/definition.ts +0 -1
  381. package/_src/data/ExecutedSpec/api.ts +41 -36
  382. package/_src/data/ExecutionResult.ts +54 -51
  383. package/_src/data/FreeBooleanAlgebra/api.ts +68 -58
  384. package/_src/data/LogLine/Line.ts +5 -3
  385. package/_src/data/LogLine/Message.ts +26 -18
  386. package/_src/data/LogLine/Style.ts +0 -1
  387. package/_src/data/Render/definition.ts +0 -2
  388. package/_src/data/RenderParam/api.ts +1 -1
  389. package/_src/data/TestAnnotation/api.ts +4 -2
  390. package/_src/data/TestAnnotation/definition.ts +0 -3
  391. package/_src/data/TestAnnotationMap.ts +2 -8
  392. package/_src/demo.ts +3 -4
  393. package/_src/util/math.ts +31 -17
  394. package/api.d.ts +12 -12
  395. package/control/AbstractRunnableSpec.d.ts +0 -1
  396. package/control/Annotations/live.d.ts +1 -1
  397. package/control/Assertion/api.d.ts +16 -12
  398. package/control/AssertionIO/api.d.ts +8 -8
  399. package/control/FreeBooleanAlgebraIO/api.d.ts +6 -6
  400. package/control/Gen/api.d.ts +216 -33
  401. package/control/Gen.d.ts +0 -7
  402. package/control/Sample/api.d.ts +14 -14
  403. package/control/Spec/api.d.ts +38 -41
  404. package/control/TestAnnotationRenderer/api.d.ts +3 -3
  405. package/control/TestClock/definition.d.ts +2 -2
  406. package/control/TestConsole/definition.d.ts +1 -1
  407. package/control/TestRandom/definition.d.ts +1 -1
  408. package/control/TestRunner.d.ts +1 -3
  409. package/data/AssertionValue/api.d.ts +8 -8
  410. package/data/ExecutedSpec/api.d.ts +8 -8
  411. package/data/ExecutionResult.d.ts +4 -4
  412. package/data/FreeBooleanAlgebra/api.d.ts +20 -20
  413. package/data/LogLine/Line.d.ts +2 -2
  414. package/data/LogLine/Message.d.ts +10 -10
  415. package/data/TestAnnotation/api.d.ts +1 -1
  416. package/data/TestAnnotation/definition.d.ts +2 -2
  417. package/package.json +4 -4
  418. package/_cjs/control/Gen/api/array.cjs +0 -50
  419. package/_cjs/control/Gen/api/array.cjs.map +0 -1
  420. package/_cjs/control/Gen/api/char.cjs +0 -129
  421. package/_cjs/control/Gen/api/char.cjs.map +0 -1
  422. package/_cjs/control/Gen/api/conc.cjs +0 -73
  423. package/_cjs/control/Gen/api/conc.cjs.map +0 -1
  424. package/_cjs/control/Gen/api/double.cjs +0 -82
  425. package/_cjs/control/Gen/api/double.cjs.map +0 -1
  426. package/_cjs/control/Gen/api/float.cjs +0 -55
  427. package/_cjs/control/Gen/api/float.cjs.map +0 -1
  428. package/_cjs/control/Gen/api/string.cjs +0 -102
  429. package/_cjs/control/Gen/api/string.cjs.map +0 -1
  430. package/_cjs/control/Gen/api/struct.cjs +0 -36
  431. package/_cjs/control/Gen/api/struct.cjs.map +0 -1
  432. package/_mjs/control/Gen/api/array.mjs +0 -31
  433. package/_mjs/control/Gen/api/array.mjs.map +0 -1
  434. package/_mjs/control/Gen/api/char.mjs +0 -95
  435. package/_mjs/control/Gen/api/char.mjs.map +0 -1
  436. package/_mjs/control/Gen/api/conc.mjs +0 -49
  437. package/_mjs/control/Gen/api/conc.mjs.map +0 -1
  438. package/_mjs/control/Gen/api/double.mjs +0 -60
  439. package/_mjs/control/Gen/api/double.mjs.map +0 -1
  440. package/_mjs/control/Gen/api/float.mjs +0 -41
  441. package/_mjs/control/Gen/api/float.mjs.map +0 -1
  442. package/_mjs/control/Gen/api/string.mjs +0 -72
  443. package/_mjs/control/Gen/api/string.mjs.map +0 -1
  444. package/_mjs/control/Gen/api/struct.mjs +0 -18
  445. package/_mjs/control/Gen/api/struct.mjs.map +0 -1
  446. package/_src/control/Gen/api/array.ts +0 -31
  447. package/_src/control/Gen/api/char.ts +0 -83
  448. package/_src/control/Gen/api/conc.ts +0 -48
  449. package/_src/control/Gen/api/double.ts +0 -64
  450. package/_src/control/Gen/api/float.ts +0 -36
  451. package/_src/control/Gen/api/string.ts +0 -71
  452. package/_src/control/Gen/api/struct.ts +0 -21
  453. package/control/Gen/api/array.d.ts +0 -18
  454. package/control/Gen/api/char.d.ts +0 -47
  455. package/control/Gen/api/conc.d.ts +0 -25
  456. package/control/Gen/api/double.d.ts +0 -13
  457. package/control/Gen/api/float.d.ts +0 -7
  458. package/control/Gen/api/string.d.ts +0 -48
  459. package/control/Gen/api/struct.d.ts +0 -8
@@ -11,7 +11,6 @@ export class LeafRenderer {
11
11
  constructor(
12
12
  readonly use: <X>(f: <V>(annotation: TestAnnotation<V>, render: (_: List<V>) => Maybe<string>) => X) => X,
13
13
  ) {}
14
-
15
14
  run(ancestors: List<TestAnnotationMap>, child: TestAnnotationMap): List<string> {
16
15
  return this.use((annotation, render) =>
17
16
  render(
@@ -30,7 +29,6 @@ export class LeafRenderer {
30
29
  export class CompositeRenderer {
31
30
  readonly _tag = TestAnnotationRendererTag.CompositeRenderer;
32
31
  constructor(readonly renderers: Vector<TestAnnotationRenderer>) {}
33
-
34
32
  run(ancestors: List<TestAnnotationMap>, child: TestAnnotationMap): List<string> {
35
33
  return this.renderers.toList.flatMap((renderer) => renderer.run(ancestors, child));
36
34
  }
@@ -35,7 +35,7 @@ export function after<R, E, A>(effect: IO<R, E, A>): TestAspect<R, E> {
35
35
  return perTest<R, E>((test) =>
36
36
  test.result
37
37
  .zipWith(effect.catchAllCause((cause) => IO.fail(new RuntimeFailure(cause))).result, (ex0, ex1) =>
38
- ex0.apFirst(ex1),
38
+ ex0.zipLeft(ex1),
39
39
  )
40
40
  .flatMap(IO.fromExitNow),
41
41
  );
@@ -60,7 +60,7 @@ export function aroundAll<R, E, A, R1>(
60
60
  }
61
61
 
62
62
  export function before<R0>(effect: IO<R0, never, any>): TestAspect<R0, never> {
63
- return perTest<R0, never>((test) => effect.apSecond(test));
63
+ return perTest<R0, never>((test) => effect.zipRight(test));
64
64
  }
65
65
 
66
66
  export function beforeAll<R0, E0>(effect: IO<R0, E0, any>): TestAspect<R0, E0> {
@@ -96,7 +96,6 @@ export function timeoutWarning(duration: Duration): TestAspect<Live, any> {
96
96
  Multiple: ({ specs }) => Spec.multiple(specs.map((spec) => loop(labels, spec))),
97
97
  Test: ({ test, annotations }) => Spec.test(warn(labels, test, duration), annotations),
98
98
  });
99
-
100
99
  return loop(Vector(), spec);
101
100
  };
102
101
  }
@@ -4,6 +4,7 @@ import type { Live } from "@fncts/test/control/Live";
4
4
 
5
5
  import { matchTag } from "@fncts/base/util/pattern";
6
6
  import { Console } from "@fncts/io/Console";
7
+ import { FiberStatusTag } from "@fncts/io/FiberStatus";
7
8
  import { TestAnnotation } from "@fncts/test/data/TestAnnotation";
8
9
 
9
10
  export class Data {
@@ -60,9 +61,9 @@ export class TestClock extends Clock {
60
61
  }
61
62
  sleep = (ms: Lazy<Duration>) => {
62
63
  const self = this;
63
- return IO.gen(function* (_) {
64
- const promise = yield* _(Future.make<never, void>());
65
- const wait = yield* _(
64
+ return Do((_) => {
65
+ const promise = _(Future.make<never, void>());
66
+ const wait = _(
66
67
  self.clockState.modify((data) => {
67
68
  const end = data.duration + ms().milliseconds;
68
69
  if (end > data.duration) {
@@ -72,7 +73,7 @@ export class TestClock extends Clock {
72
73
  }
73
74
  }),
74
75
  );
75
- yield* _(
76
+ _(
76
77
  IO.defer(() => {
77
78
  if (wait) {
78
79
  return self.warningStart > promise.await;
@@ -83,46 +84,39 @@ export class TestClock extends Clock {
83
84
  );
84
85
  });
85
86
  };
86
-
87
87
  currentTime = this.clockState.get.map((data) => data.duration);
88
-
89
88
  adjust(duration: number): UIO<void> {
90
89
  return this.warningDone > this.run((d) => d + duration);
91
90
  }
92
-
93
91
  setDate(date: Date): UIO<void> {
94
92
  return this.setTime(date.getTime());
95
93
  }
96
-
97
94
  setTime(time: number): UIO<void> {
98
95
  return this.warningDone > this.run((_) => time);
99
96
  }
100
-
101
97
  sleeps = this.clockState.get.map((data) => data.sleeps.map(([_]) => _));
102
-
103
98
  get supervizedFibers(): UIO<HashSet<Fiber.Runtime<any, any>>> {
104
- return IO.descriptorWith((descriptor) =>
99
+ return IO.fiberId.flatMap((fiberId) =>
105
100
  this.annotations.get(TestAnnotation.Fibers).flatMap((_) =>
106
101
  _.match(
107
- (_) => IO.succeed(HashSet.makeDefault()),
102
+ (_) => IO.succeed(HashSet.empty()),
108
103
  (fibers) =>
109
104
  IO.foreach(fibers, (ref) => ref.get)
110
- .map((_) => _.foldLeft(HashSet.makeDefault<Fiber.Runtime<any, any>>(), (s0, s1) => s0.union(s1)))
111
- .map((set) => set.filter((f) => !Equatable.strictEquals(f.id, descriptor.id))),
105
+ .map((_) => _.foldLeft(HashSet.empty<Fiber.Runtime<any, any>>(), (s0, s1) => s0.union(s1)))
106
+ .map((set) => set.filter((f) => !Equatable.strictEquals(f.id, fiberId))),
112
107
  ),
113
108
  ),
114
109
  );
115
110
  }
116
-
117
111
  private get freeze(): IO<never, void, HashMap<FiberId, FiberStatus>> {
118
112
  return this.supervizedFibers.flatMap((fibers) =>
119
- IO.foldLeft(fibers, HashMap.makeDefault<FiberId, FiberStatus>(), (map, fiber) =>
113
+ IO.foldLeft(fibers, HashMap.empty<FiberId, FiberStatus>(), (map, fiber) =>
120
114
  fiber.status.flatMap((status) => {
121
115
  switch (status._tag) {
122
- case "Done": {
116
+ case FiberStatusTag.Done: {
123
117
  return IO.succeed(map.set(fiber.id, status));
124
118
  }
125
- case "Suspended": {
119
+ case FiberStatusTag.Suspended: {
126
120
  return IO.succeed(map.set(fiber.id, status));
127
121
  }
128
122
  default: {
@@ -133,23 +127,20 @@ export class TestClock extends Clock {
133
127
  ),
134
128
  );
135
129
  }
136
-
137
130
  private get delay(): UIO<void> {
138
131
  return this.live.provide(Clock.sleep((5).milliseconds));
139
132
  }
140
-
141
133
  private get awaitSuspended(): UIO<void> {
142
134
  return this.suspended
143
135
  .zipWith(this.live.provide(Clock.sleep((10).milliseconds)) > this.suspended, Equatable.strictEquals)
144
136
  .filterOrFail(Function.identity, (): void => undefined).eventually.asUnit;
145
137
  }
146
-
147
138
  private run(f: (duration: number) => number): UIO<void> {
148
139
  return (
149
140
  this.awaitSuspended >
150
141
  this.clockState.modify((data) => {
151
142
  const end = f(data.duration);
152
- const sorted = data.sleeps.sortWith(([x], [y]) => Number.Ord.compare(x, y));
143
+ const sorted = data.sleeps.sortWith(([x], [y]) => Number.Ord.compare(y)(x));
153
144
  return sorted.head
154
145
  .flatMap(([duration, promise]) =>
155
146
  duration <= end
@@ -165,7 +156,6 @@ export class TestClock extends Clock {
165
156
  ),
166
157
  );
167
158
  }
168
-
169
159
  private get suspended(): IO<never, void, HashMap<FiberId, FiberStatus>> {
170
160
  return this.freeze.zip(this.delay > this.freeze).flatMap(([first, last]) => {
171
161
  if (Equatable.strictEquals(first, last)) {
@@ -175,7 +165,6 @@ export class TestClock extends Clock {
175
165
  }
176
166
  });
177
167
  }
178
-
179
168
  warningDone: UIO<void> = this.warningState.updateJustIO(
180
169
  matchTag({
181
170
  Start: () => Just(IO(Done)),
@@ -183,7 +172,6 @@ export class TestClock extends Clock {
183
172
  Done: () => Nothing(),
184
173
  }),
185
174
  );
186
-
187
175
  private warningStart: UIO<void> = this.warningState.updateJustIO(
188
176
  matchTag(
189
177
  {
@@ -1,7 +1,7 @@
1
1
  import type { Console } from "@fncts/io/Console";
2
2
  import type { Live } from "@fncts/test/control/Live";
3
3
 
4
- import { showWithOptions } from "@fncts/base/typeclass/Showable";
4
+ import { showWithOptions } from "@fncts/base/data/Showable";
5
5
 
6
6
  export class ConsoleData extends CaseClass<{
7
7
  readonly input: Vector<string>;
@@ -54,7 +54,6 @@ export class TestConsole implements Console {
54
54
  return this.debugState.locally(true)(io);
55
55
  }
56
56
  }
57
-
58
57
  /**
59
58
  * @tsplus static fncts.test.TestConsoleOps Tag
60
59
  */
@@ -1,5 +1,3 @@
1
- import { Console } from "@fncts/io/Console";
2
-
3
1
  /**
4
2
  * @tsplus type fncts.test.TestLogger
5
3
  * @tsplus companion fncts.test.TestLoggerOps
@@ -7,30 +7,35 @@ import { Buffer, Data, TestRandom } from "@fncts/test/control/TestRandom";
7
7
  export function feedInts(...ints: ReadonlyArray<number>) {
8
8
  return IO.serviceWithIO((tr) => tr.feedInts(...ints), TestRandom.Tag);
9
9
  }
10
+
10
11
  /**
11
12
  * @tsplus static fncts.test.TestRandom feedBytes
12
13
  */
13
14
  export function feedBytes(...bytes: ReadonlyArray<ReadonlyArray<Byte>>) {
14
15
  return IO.serviceWithIO((tr) => tr.feedBytes(...bytes), TestRandom.Tag);
15
16
  }
17
+
16
18
  /**
17
19
  * @tsplus static fncts.test.TestRandom feedChars
18
20
  */
19
21
  export function feedChars(...chars: ReadonlyArray<string>) {
20
22
  return IO.serviceWithIO((tr) => tr.feedChars(...chars), TestRandom.Tag);
21
23
  }
24
+
22
25
  /**
23
26
  * @tsplus static fncts.test.TestRandom feedDoubles
24
27
  */
25
28
  export function feedDoubles(...doubles: ReadonlyArray<number>) {
26
29
  return IO.serviceWithIO((tr) => tr.feedDoubles(...doubles), TestRandom.Tag);
27
30
  }
31
+
28
32
  /**
29
33
  * @tsplus static fncts.test.TestRandom feedStrings
30
34
  */
31
35
  export function feedStrings(...strings: ReadonlyArray<string>) {
32
36
  return IO.serviceWithIO((tr) => tr.feedStrings(...strings), TestRandom.Tag);
33
37
  }
38
+
34
39
  /**
35
40
  * @tsplus static fncts.test.TestRandom feedBooleans
36
41
  */
@@ -13,7 +13,6 @@ export const TestRandomTag = Tag<TestRandom>("fncts.test.TestRandom");
13
13
  */
14
14
  export class TestRandom implements Random {
15
15
  constructor(readonly randomState: Ref<Data>, readonly bufferState: Ref<Buffer>) {}
16
-
17
16
  clearBooleans: UIO<void> = this.bufferState.update((buff) => buff.copy({ booleans: Vector.empty() }));
18
17
  clearBytes: UIO<void> = this.bufferState.update((buff) => buff.copy({ bytes: Vector.empty() }));
19
18
  clearChars: UIO<void> = this.bufferState.update((buff) => buff.copy({ chars: Vector.empty() }));
@@ -39,7 +38,6 @@ export class TestRandom implements Random {
39
38
  return this.bufferState.update((data) => data.copy({ strings: Vector.from(strings).concat(data.strings) }));
40
39
  }
41
40
  getSeed: UIO<number> = this.randomState.get.map((data) => ((data.seed1 << 24) | data.seed2) ^ 0x5deece66d);
42
-
43
41
  setSeed(seed: number): UIO<void> {
44
42
  const mash = Mash();
45
43
  const newSeed = mash(seed.toString());
@@ -47,7 +45,6 @@ export class TestRandom implements Random {
47
45
  const seed2 = Math.floor(newSeed) & ((1 << 24) - 1);
48
46
  return this.randomState.set(new Data(seed1, seed2, ImmutableQueue.empty()));
49
47
  }
50
-
51
48
  private bufferedBoolean = (buffer: Buffer): readonly [Maybe<boolean>, Buffer] => {
52
49
  return [buffer.booleans.head, buffer.copy({ booleans: buffer.booleans.drop(1) })];
53
50
  };
@@ -57,19 +54,15 @@ export class TestRandom implements Random {
57
54
  private bufferedInt = (buffer: Buffer): readonly [Maybe<number>, Buffer] => {
58
55
  return [buffer.integers.head, buffer.copy({ integers: buffer.integers.drop(1) })];
59
56
  };
60
-
61
57
  private getOrElse = <A>(buffer: (_: Buffer) => readonly [Maybe<A>, Buffer], random: UIO<A>): UIO<A> => {
62
58
  return this.bufferState.modify(buffer).flatMap((_) => _.match(() => random, IO.succeedNow));
63
59
  };
64
-
65
60
  private leastSignificantBits = (x: number): number => {
66
61
  return Math.floor(x) & ((1 << 24) - 1);
67
62
  };
68
-
69
63
  private mostSignificantBits = (x: number): number => {
70
64
  return Math.floor(x / (1 << 24));
71
65
  };
72
-
73
66
  private randomBits = (bits: number): UIO<number> => {
74
67
  return this.randomState.modify((data) => {
75
68
  const multiplier = 0x5deece66d;
@@ -83,10 +76,8 @@ export class TestRandom implements Random {
83
76
  return [result >>> (32 - bits), new Data(newSeed1, newSeed2, data.nextNextGaussians)];
84
77
  });
85
78
  };
86
-
87
79
  private randomBoolean = this.randomBits(1).map((n) => n !== 0);
88
-
89
- private randomBytes = (length: number): UIO<ReadonlyArray<Byte>> => {
80
+ private randomBytes = (length: number): UIO<ReadonlyArray<Byte>> => {
90
81
  const loop = (i: number, rnd: UIO<number>, n: number, acc: UIO<List<Byte>>): UIO<List<Byte>> => {
91
82
  if (i === length) {
92
83
  return acc.map((l) => l.reverse);
@@ -103,10 +94,8 @@ export class TestRandom implements Random {
103
94
  return loop(i, this.nextInt, Math.min(length - i, 4), acc);
104
95
  }
105
96
  };
106
-
107
97
  return loop(0, this.randomInt, Math.min(length, 4), IO.succeedNow(List.empty())).map((list) => Array.from(list));
108
98
  };
109
-
110
99
  private randomIntBounded = (n: number) => {
111
100
  if (n <= 0) {
112
101
  return IO.haltNow(new IllegalArgumentError("n must be positive", "TestRandom.randomIntBounded"));
@@ -121,47 +110,35 @@ export class TestRandom implements Random {
121
110
  return loop;
122
111
  }
123
112
  };
124
-
125
113
  private randomLong: UIO<bigint> = this.randomBits(32).flatMap((i1) =>
126
114
  this.randomBits(32).flatMap((i2) => IO.succeedNow(BigInt(i1 << 32) + BigInt(i2))),
127
115
  );
128
-
129
- private randomInt = this.randomBits(32);
130
-
116
+ private randomInt = this.randomBits(32);
131
117
  private randomDouble = this.randomBits(26).flatMap((i1) =>
132
118
  this.randomBits(27).map((i2) => (i1 * (1 << 27) + i2) / (1 << 53)),
133
119
  );
134
-
135
120
  private random = this.randomBits(26);
136
-
137
121
  get nextInt(): UIO<number> {
138
122
  return this.getOrElse(this.bufferedInt, this.randomInt);
139
123
  }
140
-
141
124
  get nextBoolean(): UIO<boolean> {
142
125
  return this.getOrElse(this.bufferedBoolean, this.randomBoolean);
143
126
  }
144
-
145
127
  get nextDouble(): UIO<number> {
146
128
  return this.getOrElse(this.bufferedDouble, this.randomDouble);
147
129
  }
148
-
149
130
  get next(): UIO<number> {
150
131
  return this.getOrElse(this.bufferedDouble, this.random);
151
132
  }
152
-
153
133
  nextBigIntBetween(low: bigint, high: bigint): UIO<bigint> {
154
134
  return this.randomLong.repeatUntil((n) => low <= n && n < high);
155
135
  }
156
-
157
136
  nextIntBetween(low: number, high: number): UIO<number> {
158
137
  return nextIntBetweenWith(low, high, this.randomInt, this.randomIntBounded);
159
138
  }
160
-
161
139
  nextRange(low: number, high: number): UIO<number> {
162
140
  return this.next.map((n) => (high - low + 1) * n + low);
163
141
  }
164
-
165
142
  nextArrayIntBetween(low: ArrayInt, high: ArrayInt): UIO<ArrayInt> {
166
143
  const self = this;
167
144
  return IO.gen(function* (_) {
@@ -187,7 +164,6 @@ export class TestRandom implements Random {
187
164
  }).map((ns) => trimArrayIntInplace(addArrayIntToNew({ sign: 1, data: ns }, low)));
188
165
  }
189
166
  }
190
-
191
167
  /**
192
168
  * @internal
193
169
  */
@@ -205,7 +181,6 @@ function nextIntBetweenWith(
205
181
  else return nextInt.repeatUntil((n) => min <= n && n < max);
206
182
  }
207
183
  }
208
-
209
184
  export class Data {
210
185
  constructor(
211
186
  readonly seed1: number,
@@ -213,7 +188,6 @@ export class Data {
213
188
  readonly nextNextGaussians: ImmutableQueue<number> = ImmutableQueue.empty(),
214
189
  ) {}
215
190
  }
216
-
217
191
  export class Buffer {
218
192
  constructor(
219
193
  readonly booleans: Vector<boolean> = Vector.empty(),
@@ -223,7 +197,6 @@ export class Buffer {
223
197
  readonly integers: Vector<number> = Vector.empty(),
224
198
  readonly strings: Vector<string> = Vector.empty(),
225
199
  ) {}
226
-
227
200
  copy(_: Partial<Buffer>): Buffer {
228
201
  return new Buffer(
229
202
  _.booleans ?? this.booleans,
@@ -235,7 +208,6 @@ export class Buffer {
235
208
  );
236
209
  }
237
210
  }
238
-
239
211
  /** @internal */
240
212
  function isStrictlySmaller(dataA: number[], dataB: number[]): boolean {
241
213
  const maxLength = Math.max(dataA.length, dataB.length);
@@ -249,7 +221,6 @@ function isStrictlySmaller(dataA: number[], dataB: number[]): boolean {
249
221
  }
250
222
  return false;
251
223
  }
252
-
253
224
  export function substractArrayIntToNew(arrayIntA: ArrayInt, arrayIntB: ArrayInt): ArrayInt {
254
225
  if (arrayIntA.sign !== arrayIntB.sign) {
255
226
  return addArrayIntToNew(arrayIntA, { sign: -arrayIntB.sign as -1 | 1, data: arrayIntB.data });
@@ -272,7 +243,6 @@ export function substractArrayIntToNew(arrayIntA: ArrayInt, arrayIntB: ArrayInt)
272
243
  }
273
244
  return { sign: arrayIntA.sign, data: data.reverse() };
274
245
  }
275
-
276
246
  /**
277
247
  * Trim uneeded zeros in ArrayInt
278
248
  * and uniform notation for zero: {sign: 1, data: [0]}
@@ -292,7 +262,6 @@ export function trimArrayIntInplace(arrayInt: ArrayInt) {
292
262
  return arrayInt;
293
263
  /* eslint-enable */
294
264
  }
295
-
296
265
  /**
297
266
  * Add two ArrayInt
298
267
  * @internal
@@ -320,7 +289,6 @@ export function addArrayIntToNew(arrayIntA: ArrayInt, arrayIntB: ArrayInt): Arra
320
289
  }
321
290
  return { sign: arrayIntA.sign, data: data.reverse() };
322
291
  }
323
-
324
292
  /**
325
293
  * Add one to a given positive ArrayInt
326
294
  * @internal
@@ -342,8 +310,7 @@ export function addOneToPositiveArrayInt(arrayInt: ArrayInt): ArrayInt {
342
310
  }
343
311
 
344
312
  function Mash() {
345
- let n = 0xefc8249d;
346
-
313
+ let n = 0xefc8249d;
347
314
  const mash = function (data: string) {
348
315
  for (let i = 0; i < data.length; i++) {
349
316
  n += data.charCodeAt(i);
@@ -357,6 +324,5 @@ function Mash() {
357
324
  }
358
325
  return (n >>> 0) * 2.3283064365386963e-10; // 2^-32
359
326
  };
360
-
361
327
  return mash;
362
328
  }
@@ -10,7 +10,6 @@ import { fr, info, sp, warn } from "../../data/LogLine.js";
10
10
  import { Line } from "../../data/LogLine/Line.js";
11
11
  import { Message } from "../../data/LogLine/Message.js";
12
12
  import { TestAnnotation } from "../../data/TestAnnotation.js";
13
- import { TestRenderer } from "./definition.js";
14
13
 
15
14
  const tabSize = 2;
16
15
 
@@ -5,8 +5,6 @@ import type { Spec } from "@fncts/test/control/Spec";
5
5
  import type { TestExecutor } from "@fncts/test/control/TestExecutor";
6
6
  import type { ExecutedSpec } from "@fncts/test/data/ExecutedSpec";
7
7
 
8
- import { Console } from "@fncts/io/Console";
9
- import { defaultRuntimeConfig } from "@fncts/io/IO";
10
8
  import { DefaultTestReporter } from "@fncts/test/control/DefaultTestReporter";
11
9
  import { TestAnnotationRenderer } from "@fncts/test/control/TestAnnotationRenderer";
12
10
  import { TestLogger } from "@fncts/test/control/TestLogger";
@@ -17,7 +15,6 @@ export class TestRunner<R, E> {
17
15
  readonly bootstrap: Layer<never, never, TestLogger>;
18
16
  constructor(
19
17
  readonly executor: TestExecutor<R>,
20
- readonly runtimeConfig: RuntimeConfig = defaultRuntimeConfig,
21
18
  reporter?: TestReporter<E>,
22
19
  bootstrap?: Layer<never, never, TestLogger>,
23
20
  ) {
@@ -1,32 +1,38 @@
1
- import { showWithOptions } from "@fncts/base/typeclass/Showable";
1
+ import { showWithOptions } from "@fncts/base/data/Showable";
2
2
 
3
3
  import { AssertionValue } from "./definition.js";
4
4
 
5
5
  /**
6
- * @tsplus fluent fncts.test.data.AssertionValue label
6
+ * @tsplus pipeable fncts.test.data.AssertionValue label
7
7
  */
8
- export function label<A>(self: AssertionValue<A>, string: string): AssertionValue<A> {
9
- return new AssertionValue(
10
- LazyValue(() => self.assertion.value.label(string)),
11
- self.value,
12
- self.result,
13
- self.expression,
14
- self.sourceLocation,
15
- );
8
+ export function label(string: string) {
9
+ return <A>(self: AssertionValue<A>): AssertionValue<A> => {
10
+ return new AssertionValue(
11
+ LazyValue(() => self.assertion.value.label(string)),
12
+ self.value,
13
+ self.result,
14
+ self.expression,
15
+ self.sourceLocation,
16
+ );
17
+ };
16
18
  }
17
19
 
18
20
  /**
19
- * @tsplus fluent fncts.test.data.AssertionValue isSameAssertionAs
21
+ * @tsplus pipeable fncts.test.data.AssertionValue isSameAssertionAs
20
22
  */
21
- export function isSameAssertionAs<A>(self: AssertionValue<A>, that: AssertionValue<A>): boolean {
22
- return self.assertion.value.rendered === that.assertion.value.rendered;
23
+ export function isSameAssertionAs<A>(that: AssertionValue<A>) {
24
+ return (self: AssertionValue<A>): boolean => {
25
+ return self.assertion.value.rendered === that.assertion.value.rendered;
26
+ };
23
27
  }
24
28
 
25
29
  /**
26
- * @tsplus fluent fncts.test.data.AssertionValue showValue
30
+ * @tsplus pipeable fncts.test.data.AssertionValue showValue
27
31
  */
28
- export function showValue<A>(self: AssertionValue<A>, offset = 0): string {
29
- return showWithOptions(self.value, { indentationLevel: offset });
32
+ export function showValue(offset = 0) {
33
+ return <A>(self: AssertionValue<A>): string => {
34
+ return showWithOptions(self.value, { indentationLevel: offset });
35
+ };
30
36
  }
31
37
 
32
38
  /**
@@ -37,12 +43,10 @@ export function printAssertion<A>(self: AssertionValue<A>): string {
37
43
  }
38
44
 
39
45
  /**
40
- * @tsplus fluent fncts.test.data.AssertionValue withContext
46
+ * @tsplus pipeable fncts.test.data.AssertionValue withContext
41
47
  */
42
- export function withContext<A>(
43
- self: AssertionValue<A>,
44
- expr: Maybe<string>,
45
- sourceLocation: Maybe<string>,
46
- ): AssertionValue<A> {
47
- return new AssertionValue(self.assertion, self.value, self.result, expr, sourceLocation);
48
+ export function withContext(expr: Maybe<string>, sourceLocation: Maybe<string>) {
49
+ return <A>(self: AssertionValue<A>): AssertionValue<A> => {
50
+ return new AssertionValue(self.assertion, self.value, self.result, expr, sourceLocation);
51
+ };
48
52
  }
@@ -1,6 +1,5 @@
1
1
  import type { AssertionIO } from "../../control/AssertionIO/definition.js";
2
2
  import type { FreeBooleanAlgebra } from "../FreeBooleanAlgebra.js";
3
-
4
3
  export const AssertionValueTypeId = Symbol.for("fncts.test.data.AssertionValue");
5
4
  export type AssertionValueTypeId = typeof AssertionValueTypeId;
6
5
 
@@ -10,14 +10,16 @@ import { ExecutedSpec, TestCase } from "./definition.js";
10
10
  import { LabeledCase, MultipleCase } from "./definition.js";
11
11
 
12
12
  /**
13
- * @tsplus fluent fncts.test.data.ExecutedSpec fold
13
+ * @tsplus pipeable fncts.test.data.ExecutedSpec fold
14
14
  */
15
- export function fold_<E, Z>(self: ExecutedSpec<E>, f: (_: SpecCase<E, Z>) => Z): Z {
16
- return matchTag_(self.caseValue, {
17
- Labeled: ({ label, spec }) => f(new LabeledCase(label, spec.fold(f))),
18
- Multiple: ({ specs }) => f(new MultipleCase(specs.map((spec) => spec.fold(f)))),
19
- Test: f,
20
- });
15
+ export function fold<E, Z>(f: (_: SpecCase<E, Z>) => Z) {
16
+ return (self: ExecutedSpec<E>): Z => {
17
+ return matchTag_(self.caseValue, {
18
+ Labeled: ({ label, spec }) => f(new LabeledCase(label, spec.fold(f))),
19
+ Multiple: ({ specs }) => f(new MultipleCase(specs.map((spec) => spec.fold(f)))),
20
+ Test: f,
21
+ });
22
+ };
21
23
  }
22
24
 
23
25
  /**
@@ -28,17 +30,19 @@ export function labeled<E>(spec: ExecutedSpec<E>, label: string): ExecutedSpec<E
28
30
  }
29
31
 
30
32
  /**
31
- * @tsplus fluent fncts.test.data.ExecutedSpecCase map
33
+ * @tsplus pipeable fncts.test.data.ExecutedSpecCase map
32
34
  */
33
- export function mapSpecCase_<E, A, B>(self: SpecCase<E, A>, f: (a: A) => B): SpecCase<E, B> {
34
- return matchTag_(
35
- self,
36
- {
37
- Labeled: ({ label, spec }) => new LabeledCase(label, f(spec)),
38
- Multiple: ({ specs }) => new MultipleCase(specs.map(f)),
39
- },
40
- identity,
41
- );
35
+ export function mapSpecCase<A, B>(f: (a: A) => B) {
36
+ return <E>(self: SpecCase<E, A>): SpecCase<E, B> => {
37
+ return matchTag_(
38
+ self,
39
+ {
40
+ Labeled: ({ label, spec }) => new LabeledCase(label, f(spec)),
41
+ Multiple: ({ specs }) => new MultipleCase(specs.map(f)),
42
+ },
43
+ identity,
44
+ );
45
+ };
42
46
  }
43
47
 
44
48
  /**
@@ -56,30 +60,31 @@ export function test<E>(test: Either<TestFailure<E>, TestSuccess>, annotations:
56
60
  }
57
61
 
58
62
  /**
59
- * @tsplus fluent fncts.test.data.ExecutedSpec transform
63
+ * @tsplus pipeable fncts.test.data.ExecutedSpec transform
60
64
  */
61
- export function transform_<E, E1>(
62
- self: ExecutedSpec<E>,
63
- f: (_: SpecCase<E, ExecutedSpec<E1>>) => SpecCase<E1, ExecutedSpec<E1>>,
64
- ): ExecutedSpec<E1> {
65
- return matchTag_(self.caseValue, {
66
- Labeled: ({ label, spec }) => new ExecutedSpec(f(new LabeledCase(label, spec.transform(f)))),
67
- Multiple: ({ specs }) => new ExecutedSpec(f(new MultipleCase(specs.map((spec) => spec.transform(f))))),
68
- Test: (t) => new ExecutedSpec(f(t)),
69
- });
65
+ export function transform<E, E1>(f: (_: SpecCase<E, ExecutedSpec<E1>>) => SpecCase<E1, ExecutedSpec<E1>>) {
66
+ return (self: ExecutedSpec<E>): ExecutedSpec<E1> => {
67
+ return matchTag_(self.caseValue, {
68
+ Labeled: ({ label, spec }) => new ExecutedSpec(f(new LabeledCase(label, spec.transform(f)))),
69
+ Multiple: ({ specs }) => new ExecutedSpec(f(new MultipleCase(specs.map((spec) => spec.transform(f))))),
70
+ Test: (t) => new ExecutedSpec(f(t)),
71
+ });
72
+ };
70
73
  }
71
74
 
72
75
  /**
73
- * @tsplus fluent fncts.test.data.ExecutedSpec exists
76
+ * @tsplus pipeable fncts.test.data.ExecutedSpec some
74
77
  */
75
- export function exists_<E>(self: ExecutedSpec<E>, f: (_: SpecCase<E, boolean>) => boolean): boolean {
76
- return self.fold(
77
- matchTag({
78
- Labeled: (c) => c.spec || f(c),
79
- Multiple: (c) => c.specs.exists(identity) || f(c),
80
- Test: f,
81
- }),
82
- );
78
+ export function some<E>(f: (_: SpecCase<E, boolean>) => boolean) {
79
+ return (self: ExecutedSpec<E>): boolean => {
80
+ return self.fold(
81
+ matchTag({
82
+ Labeled: (c) => c.spec || f(c),
83
+ Multiple: (c) => c.specs.some(identity) || f(c),
84
+ Test: f,
85
+ }),
86
+ );
87
+ };
83
88
  }
84
89
 
85
90
  /**