@fncts/test 0.0.50 → 0.0.52

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 (416) hide show
  1. package/LICENSE +26 -0
  2. package/_cjs/Fragment.cjs +424 -0
  3. package/_cjs/Fragment.cjs.map +1 -0
  4. package/_cjs/api.cjs +97 -83
  5. package/_cjs/api.cjs.map +1 -1
  6. package/_cjs/chunk.cjs +28 -0
  7. package/_cjs/control/AbstractRunnableSpec.cjs +83 -86
  8. package/_cjs/control/AbstractRunnableSpec.cjs.map +1 -1
  9. package/_cjs/control/Annotations/api.cjs +25 -24
  10. package/_cjs/control/Annotations/api.cjs.map +1 -1
  11. package/_cjs/control/Annotations/definition.cjs +20 -23
  12. package/_cjs/control/Annotations/definition.cjs.map +1 -1
  13. package/_cjs/control/Annotations/live.cjs +50 -39
  14. package/_cjs/control/Annotations/live.cjs.map +1 -1
  15. package/_cjs/control/Annotations.cjs +13 -39
  16. package/_cjs/control/Assertion/api.cjs +170 -156
  17. package/_cjs/control/Assertion/api.cjs.map +1 -1
  18. package/_cjs/control/Assertion/definition.cjs +21 -19
  19. package/_cjs/control/Assertion/definition.cjs.map +1 -1
  20. package/_cjs/control/Assertion.cjs +39 -28
  21. package/_cjs/control/AssertionIO/api.cjs +33 -31
  22. package/_cjs/control/AssertionIO/api.cjs.map +1 -1
  23. package/_cjs/control/AssertionIO/definition.cjs +27 -27
  24. package/_cjs/control/AssertionIO/definition.cjs.map +1 -1
  25. package/_cjs/control/AssertionIO.cjs +9 -28
  26. package/_cjs/control/DefaultRunnableSpec.cjs +14 -18
  27. package/_cjs/control/DefaultRunnableSpec.cjs.map +1 -1
  28. package/_cjs/control/DefaultTestReporter/definition.cjs +5 -6
  29. package/_cjs/control/DefaultTestReporter/definition.cjs.map +1 -1
  30. package/_cjs/control/DefaultTestReporter/render.cjs +184 -176
  31. package/_cjs/control/DefaultTestReporter/render.cjs.map +1 -1
  32. package/_cjs/control/DefaultTestReporter.cjs +10 -28
  33. package/_cjs/control/FreeBooleanAlgebraIO/api.cjs +47 -46
  34. package/_cjs/control/FreeBooleanAlgebraIO/api.cjs.map +1 -1
  35. package/_cjs/control/FreeBooleanAlgebraIO/definition.cjs +5 -6
  36. package/_cjs/control/FreeBooleanAlgebraIO/definition.cjs.map +1 -1
  37. package/_cjs/control/FreeBooleanAlgebraIO.cjs +12 -28
  38. package/_cjs/control/Gen/api.cjs +653 -614
  39. package/_cjs/control/Gen/api.cjs.map +1 -1
  40. package/_cjs/control/Gen/constraints.cjs +0 -2
  41. package/_cjs/control/Gen/definition.cjs +13 -14
  42. package/_cjs/control/Gen/definition.cjs.map +1 -1
  43. package/_cjs/control/Gen.cjs +84 -39
  44. package/_cjs/control/Live/definition.cjs +43 -38
  45. package/_cjs/control/Live/definition.cjs.map +1 -1
  46. package/_cjs/control/Live.cjs +6 -17
  47. package/_cjs/control/Sample/api.cjs +143 -145
  48. package/_cjs/control/Sample/api.cjs.map +1 -1
  49. package/_cjs/control/Sample/definition.cjs +15 -15
  50. package/_cjs/control/Sample/definition.cjs.map +1 -1
  51. package/_cjs/control/Sample.cjs +18 -28
  52. package/_cjs/control/Sized/api.cjs +17 -16
  53. package/_cjs/control/Sized/api.cjs.map +1 -1
  54. package/_cjs/control/Sized/definition.cjs +15 -15
  55. package/_cjs/control/Sized/definition.cjs.map +1 -1
  56. package/_cjs/control/Sized/live.cjs +25 -24
  57. package/_cjs/control/Sized/live.cjs.map +1 -1
  58. package/_cjs/control/Sized.cjs +9 -39
  59. package/_cjs/control/Spec/api.cjs +288 -385
  60. package/_cjs/control/Spec/api.cjs.map +1 -1
  61. package/_cjs/control/Spec/definition.cjs +86 -72
  62. package/_cjs/control/Spec/definition.cjs.map +1 -1
  63. package/_cjs/control/Spec.cjs +38 -28
  64. package/_cjs/control/SummaryBuilder.cjs +48 -56
  65. package/_cjs/control/SummaryBuilder.cjs.map +1 -1
  66. package/_cjs/control/Test.cjs +21 -17
  67. package/_cjs/control/Test.cjs.map +1 -1
  68. package/_cjs/control/TestAnnotationRenderer/api.cjs +63 -57
  69. package/_cjs/control/TestAnnotationRenderer/api.cjs.map +1 -1
  70. package/_cjs/control/TestAnnotationRenderer/definition.cjs +36 -31
  71. package/_cjs/control/TestAnnotationRenderer/definition.cjs.map +1 -1
  72. package/_cjs/control/TestAnnotationRenderer.cjs +14 -28
  73. package/_cjs/control/TestAspect/api.cjs +81 -80
  74. package/_cjs/control/TestAspect/api.cjs.map +1 -1
  75. package/_cjs/control/TestAspect/definition.cjs +0 -2
  76. package/_cjs/control/TestAspect.cjs +14 -28
  77. package/_cjs/control/TestClock/api.cjs +44 -32
  78. package/_cjs/control/TestClock/api.cjs.map +1 -1
  79. package/_cjs/control/TestClock/definition.cjs +175 -156
  80. package/_cjs/control/TestClock/definition.cjs.map +1 -1
  81. package/_cjs/control/TestClock.cjs +13 -28
  82. package/_cjs/control/TestConsole/api.cjs +45 -34
  83. package/_cjs/control/TestConsole/api.cjs.map +1 -1
  84. package/_cjs/control/TestConsole/definition.cjs +76 -68
  85. package/_cjs/control/TestConsole/definition.cjs.map +1 -1
  86. package/_cjs/control/TestConsole.cjs +8 -28
  87. package/_cjs/control/TestEnvironment.cjs +31 -23
  88. package/_cjs/control/TestEnvironment.cjs.map +1 -1
  89. package/_cjs/control/TestLogger.cjs +36 -31
  90. package/_cjs/control/TestLogger.cjs.map +1 -1
  91. package/_cjs/control/TestRandom/api.cjs +67 -58
  92. package/_cjs/control/TestRandom/api.cjs.map +1 -1
  93. package/_cjs/control/TestRandom/definition.cjs +332 -343
  94. package/_cjs/control/TestRandom/definition.cjs.map +1 -1
  95. package/_cjs/control/TestRandom.cjs +20 -28
  96. package/_cjs/control/TestRenderer/ConsoleRenderer.cjs +78 -82
  97. package/_cjs/control/TestRenderer/ConsoleRenderer.cjs.map +1 -1
  98. package/_cjs/control/TestRenderer/definition.cjs +0 -2
  99. package/_cjs/control.cjs +0 -2
  100. package/_cjs/data/AssertionData.cjs +35 -31
  101. package/_cjs/data/AssertionData.cjs.map +1 -1
  102. package/_cjs/data/AssertionResult.cjs +23 -21
  103. package/_cjs/data/AssertionResult.cjs.map +1 -1
  104. package/_cjs/data/AssertionValue/api.cjs +39 -40
  105. package/_cjs/data/AssertionValue/api.cjs.map +1 -1
  106. package/_cjs/data/AssertionValue/definition.cjs +27 -24
  107. package/_cjs/data/AssertionValue/definition.cjs.map +1 -1
  108. package/_cjs/data/AssertionValue.cjs +10 -28
  109. package/_cjs/data/ExecutedSpec/api.cjs +71 -90
  110. package/_cjs/data/ExecutedSpec/api.cjs.map +1 -1
  111. package/_cjs/data/ExecutedSpec/definition.cjs +39 -35
  112. package/_cjs/data/ExecutedSpec/definition.cjs.map +1 -1
  113. package/_cjs/data/ExecutedSpec.cjs +15 -28
  114. package/_cjs/data/ExecutionResult.cjs +78 -97
  115. package/_cjs/data/ExecutionResult.cjs.map +1 -1
  116. package/_cjs/data/FailureDetails.cjs +12 -12
  117. package/_cjs/data/FailureDetails.cjs.map +1 -1
  118. package/_cjs/data/FreeBooleanAlgebra/api.cjs +129 -127
  119. package/_cjs/data/FreeBooleanAlgebra/api.cjs.map +1 -1
  120. package/_cjs/data/FreeBooleanAlgebra/definition.cjs +40 -35
  121. package/_cjs/data/FreeBooleanAlgebra/definition.cjs.map +1 -1
  122. package/_cjs/data/FreeBooleanAlgebra.cjs +22 -28
  123. package/_cjs/data/GenFailureDetails.cjs +14 -13
  124. package/_cjs/data/GenFailureDetails.cjs.map +1 -1
  125. package/_cjs/data/LogLine/Fragment.cjs +10 -71
  126. package/_cjs/data/LogLine/Line.cjs +13 -110
  127. package/_cjs/data/LogLine/Message.cjs +13 -114
  128. package/_cjs/data/LogLine/Style.cjs +56 -65
  129. package/_cjs/data/LogLine/Style.cjs.map +1 -1
  130. package/_cjs/data/LogLine/api.cjs +30 -29
  131. package/_cjs/data/LogLine/api.cjs.map +1 -1
  132. package/_cjs/data/LogLine.cjs +24 -28
  133. package/_cjs/data/Render/api.cjs +13 -14
  134. package/_cjs/data/Render/api.cjs.map +1 -1
  135. package/_cjs/data/Render/definition.cjs +37 -31
  136. package/_cjs/data/Render/definition.cjs.map +1 -1
  137. package/_cjs/data/Render.cjs +8 -28
  138. package/_cjs/data/RenderParam/api.cjs +18 -22
  139. package/_cjs/data/RenderParam/api.cjs.map +1 -1
  140. package/_cjs/data/RenderParam/definition.cjs +20 -19
  141. package/_cjs/data/RenderParam/definition.cjs.map +1 -1
  142. package/_cjs/data/RenderParam.cjs +8 -28
  143. package/_cjs/data/Summary.cjs +19 -15
  144. package/_cjs/data/Summary.cjs.map +1 -1
  145. package/_cjs/data/TestAnnotation/api.cjs +55 -40
  146. package/_cjs/data/TestAnnotation/api.cjs.map +1 -1
  147. package/_cjs/data/TestAnnotation/definition.cjs +44 -36
  148. package/_cjs/data/TestAnnotation/definition.cjs.map +1 -1
  149. package/_cjs/data/TestAnnotation.cjs +19 -28
  150. package/_cjs/data/TestAnnotationMap.cjs +36 -33
  151. package/_cjs/data/TestAnnotationMap.cjs.map +1 -1
  152. package/_cjs/data/TestArgs/definition.cjs +14 -13
  153. package/_cjs/data/TestArgs/definition.cjs.map +1 -1
  154. package/_cjs/data/TestArgs.cjs +3 -17
  155. package/_cjs/data/TestConfig.cjs +46 -44
  156. package/_cjs/data/TestConfig.cjs.map +1 -1
  157. package/_cjs/data/TestFailure.cjs +41 -39
  158. package/_cjs/data/TestFailure.cjs.map +1 -1
  159. package/_cjs/data/TestSuccess.cjs +26 -27
  160. package/_cjs/data/TestSuccess.cjs.map +1 -1
  161. package/_cjs/data/TestTimeoutException.cjs +9 -11
  162. package/_cjs/data/TestTimeoutException.cjs.map +1 -1
  163. package/_cjs/data.cjs +0 -2
  164. package/_cjs/global.cjs +0 -2
  165. package/_cjs/index.cjs +0 -2
  166. package/_cjs/util/math.cjs +319 -440
  167. package/_cjs/util/math.cjs.map +1 -1
  168. package/_cjs/util.cjs +0 -2
  169. package/_cjs/vitest.cjs +115 -104
  170. package/_cjs/vitest.cjs.map +1 -1
  171. package/_mjs/Fragment.mjs +237 -0
  172. package/_mjs/Fragment.mjs.map +1 -0
  173. package/_mjs/api.mjs +67 -64
  174. package/_mjs/api.mjs.map +1 -1
  175. package/_mjs/control/AbstractRunnableSpec.mjs +53 -70
  176. package/_mjs/control/AbstractRunnableSpec.mjs.map +1 -1
  177. package/_mjs/control/Annotations/api.mjs +21 -17
  178. package/_mjs/control/Annotations/api.mjs.map +1 -1
  179. package/_mjs/control/Annotations/definition.mjs +14 -14
  180. package/_mjs/control/Annotations/definition.mjs.map +1 -1
  181. package/_mjs/control/Annotations/live.mjs +32 -27
  182. package/_mjs/control/Annotations/live.mjs.map +1 -1
  183. package/_mjs/control/Annotations.mjs +4 -5
  184. package/_mjs/control/Assertion/api.mjs +140 -142
  185. package/_mjs/control/Assertion/api.mjs.map +1 -1
  186. package/_mjs/control/Assertion/definition.mjs +19 -12
  187. package/_mjs/control/Assertion/definition.mjs.map +1 -1
  188. package/_mjs/control/Assertion.mjs +3 -4
  189. package/_mjs/control/AssertionIO/api.mjs +26 -22
  190. package/_mjs/control/AssertionIO/api.mjs.map +1 -1
  191. package/_mjs/control/AssertionIO/definition.mjs +22 -18
  192. package/_mjs/control/AssertionIO/definition.mjs.map +1 -1
  193. package/_mjs/control/AssertionIO.mjs +3 -4
  194. package/_mjs/control/DefaultRunnableSpec.mjs +9 -8
  195. package/_mjs/control/DefaultRunnableSpec.mjs.map +1 -1
  196. package/_mjs/control/DefaultTestReporter/definition.mjs +5 -1
  197. package/_mjs/control/DefaultTestReporter/definition.mjs.map +1 -1
  198. package/_mjs/control/DefaultTestReporter/render.mjs +152 -165
  199. package/_mjs/control/DefaultTestReporter/render.mjs.map +1 -1
  200. package/_mjs/control/DefaultTestReporter.mjs +3 -4
  201. package/_mjs/control/FreeBooleanAlgebraIO/api.mjs +43 -39
  202. package/_mjs/control/FreeBooleanAlgebraIO/api.mjs.map +1 -1
  203. package/_mjs/control/FreeBooleanAlgebraIO/definition.mjs +5 -1
  204. package/_mjs/control/FreeBooleanAlgebraIO/definition.mjs.map +1 -1
  205. package/_mjs/control/FreeBooleanAlgebraIO.mjs +3 -4
  206. package/_mjs/control/Gen/api.mjs +570 -591
  207. package/_mjs/control/Gen/api.mjs.map +1 -1
  208. package/_mjs/control/Gen/constraints.mjs +0 -2
  209. package/_mjs/control/Gen/definition.mjs +13 -8
  210. package/_mjs/control/Gen/definition.mjs.map +1 -1
  211. package/_mjs/control/Gen.mjs +4 -5
  212. package/_mjs/control/Live/definition.mjs +31 -27
  213. package/_mjs/control/Live/definition.mjs.map +1 -1
  214. package/_mjs/control/Live.mjs +2 -3
  215. package/_mjs/control/Sample/api.mjs +109 -126
  216. package/_mjs/control/Sample/api.mjs.map +1 -1
  217. package/_mjs/control/Sample/definition.mjs +15 -9
  218. package/_mjs/control/Sample/definition.mjs.map +1 -1
  219. package/_mjs/control/Sample.mjs +3 -4
  220. package/_mjs/control/Sized/api.mjs +13 -9
  221. package/_mjs/control/Sized/api.mjs.map +1 -1
  222. package/_mjs/control/Sized/definition.mjs +11 -7
  223. package/_mjs/control/Sized/definition.mjs.map +1 -1
  224. package/_mjs/control/Sized/live.mjs +18 -17
  225. package/_mjs/control/Sized/live.mjs.map +1 -1
  226. package/_mjs/control/Sized.mjs +4 -5
  227. package/_mjs/control/Spec/api.mjs +245 -366
  228. package/_mjs/control/Spec/api.mjs.map +1 -1
  229. package/_mjs/control/Spec/definition.mjs +79 -60
  230. package/_mjs/control/Spec/definition.mjs.map +1 -1
  231. package/_mjs/control/Spec.mjs +3 -4
  232. package/_mjs/control/SummaryBuilder.mjs +31 -41
  233. package/_mjs/control/SummaryBuilder.mjs.map +1 -1
  234. package/_mjs/control/Test.mjs +13 -9
  235. package/_mjs/control/Test.mjs.map +1 -1
  236. package/_mjs/control/TestAnnotationRenderer/api.mjs +53 -55
  237. package/_mjs/control/TestAnnotationRenderer/api.mjs.map +1 -1
  238. package/_mjs/control/TestAnnotationRenderer/definition.mjs +25 -19
  239. package/_mjs/control/TestAnnotationRenderer/definition.mjs.map +1 -1
  240. package/_mjs/control/TestAnnotationRenderer.mjs +3 -4
  241. package/_mjs/control/TestAspect/api.mjs +49 -63
  242. package/_mjs/control/TestAspect/api.mjs.map +1 -1
  243. package/_mjs/control/TestAspect/definition.mjs +0 -2
  244. package/_mjs/control/TestAspect.mjs +3 -4
  245. package/_mjs/control/TestClock/api.mjs +24 -20
  246. package/_mjs/control/TestClock/api.mjs.map +1 -1
  247. package/_mjs/control/TestClock/definition.mjs +128 -133
  248. package/_mjs/control/TestClock/definition.mjs.map +1 -1
  249. package/_mjs/control/TestClock.mjs +3 -4
  250. package/_mjs/control/TestConsole/api.mjs +27 -24
  251. package/_mjs/control/TestConsole/api.mjs.map +1 -1
  252. package/_mjs/control/TestConsole/definition.mjs +62 -57
  253. package/_mjs/control/TestConsole/definition.mjs.map +1 -1
  254. package/_mjs/control/TestConsole.mjs +3 -4
  255. package/_mjs/control/TestEnvironment.mjs +14 -10
  256. package/_mjs/control/TestEnvironment.mjs.map +1 -1
  257. package/_mjs/control/TestLogger.mjs +25 -21
  258. package/_mjs/control/TestLogger.mjs.map +1 -1
  259. package/_mjs/control/TestRandom/api.mjs +46 -43
  260. package/_mjs/control/TestRandom/api.mjs.map +1 -1
  261. package/_mjs/control/TestRandom/definition.mjs +311 -327
  262. package/_mjs/control/TestRandom/definition.mjs.map +1 -1
  263. package/_mjs/control/TestRandom.mjs +3 -4
  264. package/_mjs/control/TestRenderer/ConsoleRenderer.mjs +66 -72
  265. package/_mjs/control/TestRenderer/ConsoleRenderer.mjs.map +1 -1
  266. package/_mjs/control/TestRenderer/definition.mjs +0 -2
  267. package/_mjs/control.mjs +0 -2
  268. package/_mjs/data/AssertionData.mjs +27 -22
  269. package/_mjs/data/AssertionData.mjs.map +1 -1
  270. package/_mjs/data/AssertionResult.mjs +18 -12
  271. package/_mjs/data/AssertionResult.mjs.map +1 -1
  272. package/_mjs/data/AssertionValue/api.mjs +34 -32
  273. package/_mjs/data/AssertionValue/api.mjs.map +1 -1
  274. package/_mjs/data/AssertionValue/definition.mjs +24 -17
  275. package/_mjs/data/AssertionValue/definition.mjs.map +1 -1
  276. package/_mjs/data/AssertionValue.mjs +3 -4
  277. package/_mjs/data/ExecutedSpec/api.mjs +64 -80
  278. package/_mjs/data/ExecutedSpec/api.mjs.map +1 -1
  279. package/_mjs/data/ExecutedSpec/definition.mjs +38 -28
  280. package/_mjs/data/ExecutedSpec/definition.mjs.map +1 -1
  281. package/_mjs/data/ExecutedSpec.mjs +3 -4
  282. package/_mjs/data/ExecutionResult.mjs +63 -85
  283. package/_mjs/data/ExecutionResult.mjs.map +1 -1
  284. package/_mjs/data/FailureDetails.mjs +12 -6
  285. package/_mjs/data/FailureDetails.mjs.map +1 -1
  286. package/_mjs/data/FreeBooleanAlgebra/api.mjs +107 -111
  287. package/_mjs/data/FreeBooleanAlgebra/api.mjs.map +1 -1
  288. package/_mjs/data/FreeBooleanAlgebra/definition.mjs +37 -27
  289. package/_mjs/data/FreeBooleanAlgebra/definition.mjs.map +1 -1
  290. package/_mjs/data/FreeBooleanAlgebra.mjs +3 -4
  291. package/_mjs/data/GenFailureDetails.mjs +14 -7
  292. package/_mjs/data/GenFailureDetails.mjs.map +1 -1
  293. package/_mjs/data/LogLine/Fragment.mjs +2 -56
  294. package/_mjs/data/LogLine/Line.mjs +2 -92
  295. package/_mjs/data/LogLine/Message.mjs +2 -98
  296. package/_mjs/data/LogLine/Style.mjs +56 -66
  297. package/_mjs/data/LogLine/Style.mjs.map +1 -1
  298. package/_mjs/data/LogLine/api.mjs +24 -20
  299. package/_mjs/data/LogLine/api.mjs.map +1 -1
  300. package/_mjs/data/LogLine.mjs +3 -3
  301. package/_mjs/data/Render/api.mjs +12 -8
  302. package/_mjs/data/Render/api.mjs.map +1 -1
  303. package/_mjs/data/Render/definition.mjs +31 -22
  304. package/_mjs/data/Render/definition.mjs.map +1 -1
  305. package/_mjs/data/Render.mjs +3 -4
  306. package/_mjs/data/RenderParam/api.mjs +15 -15
  307. package/_mjs/data/RenderParam/api.mjs.map +1 -1
  308. package/_mjs/data/RenderParam/definition.mjs +19 -13
  309. package/_mjs/data/RenderParam/definition.mjs.map +1 -1
  310. package/_mjs/data/RenderParam.mjs +3 -4
  311. package/_mjs/data/Summary.mjs +19 -9
  312. package/_mjs/data/Summary.mjs.map +1 -1
  313. package/_mjs/data/TestAnnotation/api.mjs +34 -30
  314. package/_mjs/data/TestAnnotation/api.mjs.map +1 -1
  315. package/_mjs/data/TestAnnotation/definition.mjs +31 -24
  316. package/_mjs/data/TestAnnotation/definition.mjs.map +1 -1
  317. package/_mjs/data/TestAnnotation.mjs +3 -4
  318. package/_mjs/data/TestAnnotationMap.mjs +28 -23
  319. package/_mjs/data/TestAnnotationMap.mjs.map +1 -1
  320. package/_mjs/data/TestArgs/definition.mjs +14 -7
  321. package/_mjs/data/TestArgs/definition.mjs.map +1 -1
  322. package/_mjs/data/TestArgs.mjs +2 -3
  323. package/_mjs/data/TestConfig.mjs +34 -33
  324. package/_mjs/data/TestConfig.mjs.map +1 -1
  325. package/_mjs/data/TestFailure.mjs +35 -29
  326. package/_mjs/data/TestFailure.mjs.map +1 -1
  327. package/_mjs/data/TestSuccess.mjs +22 -19
  328. package/_mjs/data/TestSuccess.mjs.map +1 -1
  329. package/_mjs/data/TestTimeoutException.mjs +9 -5
  330. package/_mjs/data/TestTimeoutException.mjs.map +1 -1
  331. package/_mjs/data.mjs +0 -2
  332. package/_mjs/global.mjs +0 -2
  333. package/_mjs/index.mjs +0 -2
  334. package/_mjs/util/math.mjs +310 -432
  335. package/_mjs/util/math.mjs.map +1 -1
  336. package/_mjs/util.mjs +0 -2
  337. package/_mjs/vitest.mjs +80 -80
  338. package/_mjs/vitest.mjs.map +1 -1
  339. package/_src/control/TestClock/definition.ts +26 -18
  340. package/_src/control/TestConsole/definition.ts +19 -9
  341. package/_src/control/TestRandom/definition.ts +39 -17
  342. package/_src/data/Summary.ts +3 -1
  343. package/_src/vitest.ts +1 -1
  344. package/control/TestClock/definition.d.ts +4 -4
  345. package/control/TestConsole/definition.d.ts +5 -5
  346. package/control/TestRandom/definition.d.ts +13 -13
  347. package/data/Summary.d.ts +1 -1
  348. package/package.json +14 -5
  349. package/_cjs/control/Annotations.cjs.map +0 -1
  350. package/_cjs/control/Assertion.cjs.map +0 -1
  351. package/_cjs/control/AssertionIO.cjs.map +0 -1
  352. package/_cjs/control/DefaultTestReporter.cjs.map +0 -1
  353. package/_cjs/control/FreeBooleanAlgebraIO.cjs.map +0 -1
  354. package/_cjs/control/Gen/constraints.cjs.map +0 -1
  355. package/_cjs/control/Gen.cjs.map +0 -1
  356. package/_cjs/control/Live.cjs.map +0 -1
  357. package/_cjs/control/Sample.cjs.map +0 -1
  358. package/_cjs/control/Sized.cjs.map +0 -1
  359. package/_cjs/control/Spec.cjs.map +0 -1
  360. package/_cjs/control/TestAnnotationRenderer.cjs.map +0 -1
  361. package/_cjs/control/TestAspect/definition.cjs.map +0 -1
  362. package/_cjs/control/TestAspect.cjs.map +0 -1
  363. package/_cjs/control/TestClock.cjs.map +0 -1
  364. package/_cjs/control/TestConsole.cjs.map +0 -1
  365. package/_cjs/control/TestRandom.cjs.map +0 -1
  366. package/_cjs/control/TestRenderer/definition.cjs.map +0 -1
  367. package/_cjs/control.cjs.map +0 -1
  368. package/_cjs/data/AssertionValue.cjs.map +0 -1
  369. package/_cjs/data/ExecutedSpec.cjs.map +0 -1
  370. package/_cjs/data/FreeBooleanAlgebra.cjs.map +0 -1
  371. package/_cjs/data/LogLine/Fragment.cjs.map +0 -1
  372. package/_cjs/data/LogLine/Line.cjs.map +0 -1
  373. package/_cjs/data/LogLine/Message.cjs.map +0 -1
  374. package/_cjs/data/LogLine.cjs.map +0 -1
  375. package/_cjs/data/Render.cjs.map +0 -1
  376. package/_cjs/data/RenderParam.cjs.map +0 -1
  377. package/_cjs/data/TestAnnotation.cjs.map +0 -1
  378. package/_cjs/data/TestArgs.cjs.map +0 -1
  379. package/_cjs/data.cjs.map +0 -1
  380. package/_cjs/global.cjs.map +0 -1
  381. package/_cjs/index.cjs.map +0 -1
  382. package/_cjs/util.cjs.map +0 -1
  383. package/_mjs/control/Annotations.mjs.map +0 -1
  384. package/_mjs/control/Assertion.mjs.map +0 -1
  385. package/_mjs/control/AssertionIO.mjs.map +0 -1
  386. package/_mjs/control/DefaultTestReporter.mjs.map +0 -1
  387. package/_mjs/control/FreeBooleanAlgebraIO.mjs.map +0 -1
  388. package/_mjs/control/Gen/constraints.mjs.map +0 -1
  389. package/_mjs/control/Gen.mjs.map +0 -1
  390. package/_mjs/control/Live.mjs.map +0 -1
  391. package/_mjs/control/Sample.mjs.map +0 -1
  392. package/_mjs/control/Sized.mjs.map +0 -1
  393. package/_mjs/control/Spec.mjs.map +0 -1
  394. package/_mjs/control/TestAnnotationRenderer.mjs.map +0 -1
  395. package/_mjs/control/TestAspect/definition.mjs.map +0 -1
  396. package/_mjs/control/TestAspect.mjs.map +0 -1
  397. package/_mjs/control/TestClock.mjs.map +0 -1
  398. package/_mjs/control/TestConsole.mjs.map +0 -1
  399. package/_mjs/control/TestRandom.mjs.map +0 -1
  400. package/_mjs/control/TestRenderer/definition.mjs.map +0 -1
  401. package/_mjs/control.mjs.map +0 -1
  402. package/_mjs/data/AssertionValue.mjs.map +0 -1
  403. package/_mjs/data/ExecutedSpec.mjs.map +0 -1
  404. package/_mjs/data/FreeBooleanAlgebra.mjs.map +0 -1
  405. package/_mjs/data/LogLine/Fragment.mjs.map +0 -1
  406. package/_mjs/data/LogLine/Line.mjs.map +0 -1
  407. package/_mjs/data/LogLine/Message.mjs.map +0 -1
  408. package/_mjs/data/LogLine.mjs.map +0 -1
  409. package/_mjs/data/Render.mjs.map +0 -1
  410. package/_mjs/data/RenderParam.mjs.map +0 -1
  411. package/_mjs/data/TestAnnotation.mjs.map +0 -1
  412. package/_mjs/data/TestArgs.mjs.map +0 -1
  413. package/_mjs/data.mjs.map +0 -1
  414. package/_mjs/global.mjs.map +0 -1
  415. package/_mjs/index.mjs.map +0 -1
  416. package/_mjs/util.mjs.map +0 -1
@@ -1,366 +1,355 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.TestRandomTag = exports.TestRandom = exports.Data = exports.Buffer = void 0;
7
- exports.addArrayIntToNew = addArrayIntToNew;
8
- exports.addOneToPositiveArrayInt = addOneToPositiveArrayInt;
9
- exports.substractArrayIntToNew = substractArrayIntToNew;
10
- exports.trimArrayIntInplace = trimArrayIntInplace;
11
- var tsplus_module_1 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/data/Tag/constructors"));
12
- var tsplus_module_2 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/collection/immutable/Vector/api"));
13
- var tsplus_module_3 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/Ref/api/modify"));
14
- var tsplus_module_4 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/Ref/api/get"));
15
- var tsplus_module_5 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/IO/api"));
16
- var tsplus_module_6 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/collection/immutable/Queue/constructors"));
17
- var tsplus_module_7 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/Ref/api/set"));
18
- var tsplus_module_8 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/data/Maybe/destructors"));
19
- var tsplus_module_9 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/collection/immutable/List/api"));
20
- var tsplus_module_10 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/collection/immutable/List/constructors"));
21
- var _exceptions = /*#__PURE__*/require("@fncts/base/data/exceptions");
22
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_chunk = require("../../chunk.cjs");
3
+ let _fncts_base_collection_immutable_List_constructors = require("@fncts/base/collection/immutable/List/constructors");
4
+ _fncts_base_collection_immutable_List_constructors = require_chunk.__toESM(_fncts_base_collection_immutable_List_constructors, 1);
5
+ let _fncts_base_collection_immutable_List_api = require("@fncts/base/collection/immutable/List/api");
6
+ _fncts_base_collection_immutable_List_api = require_chunk.__toESM(_fncts_base_collection_immutable_List_api, 1);
7
+ let _fncts_io_IO_api = require("@fncts/io/IO/api");
8
+ _fncts_io_IO_api = require_chunk.__toESM(_fncts_io_IO_api, 1);
9
+ let _fncts_base_data_Maybe_destructors = require("@fncts/base/data/Maybe/destructors");
10
+ _fncts_base_data_Maybe_destructors = require_chunk.__toESM(_fncts_base_data_Maybe_destructors, 1);
11
+ let _fncts_base_data_Tag_constructors = require("@fncts/base/data/Tag/constructors");
12
+ _fncts_base_data_Tag_constructors = require_chunk.__toESM(_fncts_base_data_Tag_constructors, 1);
13
+ let _fncts_base_collection_immutable_Vector_api = require("@fncts/base/collection/immutable/Vector/api");
14
+ _fncts_base_collection_immutable_Vector_api = require_chunk.__toESM(_fncts_base_collection_immutable_Vector_api, 1);
15
+ let _fncts_io_Ref_api_modify = require("@fncts/io/Ref/api/modify");
16
+ _fncts_io_Ref_api_modify = require_chunk.__toESM(_fncts_io_Ref_api_modify, 1);
17
+ let _fncts_io_Ref_api_get = require("@fncts/io/Ref/api/get");
18
+ _fncts_io_Ref_api_get = require_chunk.__toESM(_fncts_io_Ref_api_get, 1);
19
+ let _fncts_base_collection_immutable_Queue_constructors = require("@fncts/base/collection/immutable/Queue/constructors");
20
+ _fncts_base_collection_immutable_Queue_constructors = require_chunk.__toESM(_fncts_base_collection_immutable_Queue_constructors, 1);
21
+ let _fncts_io_Ref_api_set = require("@fncts/io/Ref/api/set");
22
+ _fncts_io_Ref_api_set = require_chunk.__toESM(_fncts_io_Ref_api_set, 1);
23
+ let _fncts_base_data_exceptions = require("@fncts/base/data/exceptions");
24
+ //#region build/esm/control/TestRandom/definition.js
23
25
  const fileName_1 = "(@fncts/test) src/control/TestRandom/definition.ts";
24
26
  /**
25
- * @tsplus static fncts.test.TestRandomOps Tag
26
- */
27
- const TestRandomTag = exports.TestRandomTag = /*#__PURE__*/tsplus_module_1.makeTag("fncts.test.TestRandom");
27
+ * @tsplus static fncts.test.TestRandomOps Tag
28
+ */
29
+ const TestRandomTag = _fncts_base_data_Tag_constructors.makeTag("fncts.test.TestRandom");
28
30
  /**
29
- * @tsplus type fncts.test.TestRandom
30
- * @tsplus companion fncts.test.TestRandomOps
31
- */
32
- class TestRandom {
33
- constructor(randomState, bufferState) {
34
- this.randomState = randomState;
35
- this.bufferState = bufferState;
36
- this.clearBooleans = tsplus_module_3.update(buff => buff.copy({
37
- booleans: tsplus_module_2.empty()
38
- }), fileName_1 + ":19:53")(this.bufferState);
39
- this.clearBytes = tsplus_module_3.update(buff => buff.copy({
40
- bytes: tsplus_module_2.empty()
41
- }), fileName_1 + ":20:53")(this.bufferState);
42
- this.clearChars = tsplus_module_3.update(buff => buff.copy({
43
- chars: tsplus_module_2.empty()
44
- }), fileName_1 + ":21:53")(this.bufferState);
45
- this.clearDoubles = tsplus_module_3.update(buff => buff.copy({
46
- doubles: tsplus_module_2.empty()
47
- }), fileName_1 + ":22:53")(this.bufferState);
48
- this.clearInts = tsplus_module_3.update(buff => buff.copy({
49
- integers: tsplus_module_2.empty()
50
- }), fileName_1 + ":23:53")(this.bufferState);
51
- this.clearStrings = tsplus_module_3.update(buff => buff.copy({
52
- strings: tsplus_module_2.empty()
53
- }), fileName_1 + ":24:53")(this.bufferState);
54
- this.getSeed = tsplus_module_5.map(data => (data.seed1 << 24 | data.seed2) ^ 0x5deece66d, fileName_1 + ":43:50")(tsplus_module_4.get(this.randomState, fileName_1 + ":43:42"));
55
- this.bufferedBoolean = buffer => {
56
- return [tsplus_module_2.head(buffer.booleans), buffer.copy({
57
- booleans: tsplus_module_2.drop(1)(buffer.booleans)
58
- })];
59
- };
60
- this.bufferedDouble = buffer => {
61
- return [tsplus_module_2.head(buffer.doubles), buffer.copy({
62
- doubles: tsplus_module_2.drop(1)(buffer.doubles)
63
- })];
64
- };
65
- this.bufferedInt = buffer => {
66
- return [tsplus_module_2.head(buffer.integers), buffer.copy({
67
- integers: tsplus_module_2.drop(1)(buffer.integers)
68
- })];
69
- };
70
- this.getOrElse = (buffer, random) => {
71
- return tsplus_module_5.flatMap(_ => tsplus_module_8.match(() => random, tsplus_module_5.succeedNow)(_), fileName_1 + ":61:51")(tsplus_module_3.modify(buffer, fileName_1 + ":61:35")(this.bufferState));
72
- };
73
- this.leastSignificantBits = x => {
74
- return Math.floor(x) & (1 << 24) - 1;
75
- };
76
- this.mostSignificantBits = x => {
77
- return Math.floor(x / (1 << 24));
78
- };
79
- this.randomBits = bits => {
80
- return tsplus_module_3.modify(data => {
81
- const multiplier = 0x5deece66d;
82
- const multiplier1 = Math.floor(multiplier >>> 24);
83
- const multiplier2 = Math.floor(multiplier) & (1 << 24) - 1;
84
- const product1 = data.seed1 * multiplier1 + data.seed1 * multiplier2;
85
- const product2 = data.seed2 * multiplier2 + 0xb;
86
- const newSeed1 = this.mostSignificantBits(product2) + this.leastSignificantBits(product1) & (1 << 24) - 1;
87
- const newSeed2 = this.leastSignificantBits(product2);
88
- const result = newSeed1 << 8 | newSeed2 >> 16;
89
- return [result >>> 32 - bits, new Data(newSeed1, newSeed2, data.nextNextGaussians)];
90
- }, fileName_1 + ":70:35")(this.randomState);
91
- };
92
- this.randomBoolean = tsplus_module_5.map(n => n !== 0, fileName_1 + ":82:49")(this.randomBits(1));
93
- this.randomBytes = length => {
94
- const loop = (i, rnd, n, acc) => {
95
- if (i === length) {
96
- return tsplus_module_5.map(l => tsplus_module_9.reverse(l), fileName_1 + ":86:23")(acc);
97
- } else if (n > 0) {
98
- return tsplus_module_5.flatMap(rnd => loop(i + 1, tsplus_module_5.succeedNow(rnd >> 8, fileName_1 + ":91:26"), n - 1, tsplus_module_5.map(_ => tsplus_module_9.prepend(rnd)(_), fileName_1 + ":93:20")(acc)), fileName_1 + ":88:27")(rnd);
99
- } else {
100
- return loop(i, this.nextInt, Math.min(length - i, 4), acc);
101
- }
102
- };
103
- return tsplus_module_5.map(list => Array.from(list), fileName_1 + ":100:89")(loop(0, this.randomInt, Math.min(length, 4), tsplus_module_5.succeedNow(tsplus_module_10.empty(), fileName_1 + ":100:70")));
104
- };
105
- this.randomIntBounded = n => {
106
- if (n <= 0) {
107
- return tsplus_module_5.haltNow(new _exceptions.IllegalArgumentError("n must be positive", "TestRandom.randomIntBounded"), fileName_1 + ":104:24");
108
- } else if ((n & -n) === n) {
109
- return tsplus_module_5.map(_ => _ >> Math.clz32(n), fileName_1 + ":106:37")(this.randomBits(31));
110
- } else {
111
- const loop = tsplus_module_5.flatMap(i => {
112
- const value = i % n;
113
- if (i - value + (n - 1) < 0) return loop;else return tsplus_module_5.succeedNow(value, fileName_1 + ":111:34");
114
- }, fileName_1 + ":108:60")(this.randomBits(31));
115
- return loop;
116
- }
117
- };
118
- this.randomLong = tsplus_module_5.flatMap(i1 => tsplus_module_5.flatMap(i2 => tsplus_module_5.succeedNow(BigInt(i1 << 32) + BigInt(i2), fileName_1 + ":117:54"), fileName_1 + ":117:32")(this.randomBits(32)), fileName_1 + ":116:64")(this.randomBits(32));
119
- this.randomInt = this.randomBits(32);
120
- this.randomDouble = tsplus_module_5.flatMap(i1 => tsplus_module_5.map(i2 => (i1 * (1 << 27) + i2) / (1 << 53), fileName_1 + ":121:28")(this.randomBits(27)), fileName_1 + ":120:53")(this.randomBits(26));
121
- this.random = this.randomBits(26);
122
- }
123
- feedBooleans(...booleans) {
124
- return tsplus_module_3.update(buff => buff.copy({
125
- booleans: tsplus_module_2.concat(buff.booleans)(tsplus_module_2.from(booleans))
126
- }), fileName_1 + ":26:35")(this.bufferState);
127
- }
128
- feedBytes(...bytes) {
129
- return tsplus_module_3.update(data => data.copy({
130
- bytes: tsplus_module_2.concat(data.bytes)(tsplus_module_2.from(bytes))
131
- }), fileName_1 + ":29:35")(this.bufferState);
132
- }
133
- feedChars(...chars) {
134
- return tsplus_module_3.update(data => data.copy({
135
- chars: tsplus_module_2.concat(data.chars)(tsplus_module_2.from(chars))
136
- }), fileName_1 + ":32:35")(this.bufferState);
137
- }
138
- feedDoubles(...doubles) {
139
- return tsplus_module_3.update(data => data.copy({
140
- doubles: tsplus_module_2.concat(data.doubles)(tsplus_module_2.from(doubles))
141
- }), fileName_1 + ":35:35")(this.bufferState);
142
- }
143
- feedInts(...ints) {
144
- return tsplus_module_3.update(data => data.copy({
145
- integers: tsplus_module_2.concat(data.integers)(tsplus_module_2.from(ints))
146
- }), fileName_1 + ":38:35")(this.bufferState);
147
- }
148
- feedStrings(...strings) {
149
- return tsplus_module_3.update(data => data.copy({
150
- strings: tsplus_module_2.concat(data.strings)(tsplus_module_2.from(strings))
151
- }), fileName_1 + ":41:35")(this.bufferState);
152
- }
153
- setSeed(seed) {
154
- const mash = Mash();
155
- const newSeed = mash(seed.toString());
156
- const seed1 = Math.floor(newSeed >>> 24);
157
- const seed2 = Math.floor(newSeed) & (1 << 24) - 1;
158
- return tsplus_module_7.set(new Data(seed1, seed2, tsplus_module_6.empty()), fileName_1 + ":49:32")(this.randomState);
159
- }
160
- get nextInt() {
161
- return this.getOrElse(this.bufferedInt, this.randomInt);
162
- }
163
- get nextBoolean() {
164
- return this.getOrElse(this.bufferedBoolean, this.randomBoolean);
165
- }
166
- get nextDouble() {
167
- return this.getOrElse(this.bufferedDouble, this.randomDouble);
168
- }
169
- get next() {
170
- return this.getOrElse(this.bufferedDouble, this.random);
171
- }
172
- nextBigIntBetween(low, high) {
173
- return tsplus_module_5.repeatUntil(n => low <= n && n < high, fileName_1 + ":137:39")(this.randomLong);
174
- }
175
- nextIntBetween(low, high) {
176
- return nextIntBetweenWith(low, high, this.randomInt, this.randomIntBounded);
177
- }
178
- nextRange(low, high) {
179
- return tsplus_module_5.map(n => (high - low + 1) * n + low, fileName_1 + ":143:25")(this.next);
180
- }
181
- nextArrayIntBetween(low, high) {
182
- const self = this;
183
- return tsplus_module_5.map(ns => trimArrayIntInplace(addArrayIntToNew({
184
- sign: 1,
185
- data: ns
186
- }, low)), fileName_1 + ":167:11")(tsplus_module_5.gen(function* (_) {
187
- const rangeSize = trimArrayIntInplace(addOneToPositiveArrayInt(substractArrayIntToNew(high, low)));
188
- const rangeLength = rangeSize.data.length;
189
- const out = [];
190
- while (true) {
191
- for (let index = 0; index !== rangeLength; ++index) {
192
- const indexRangeSize = index === 0 ? rangeSize.data[0] + 1 : 0x100000000;
193
- const g = yield* _(self.randomIntBounded(indexRangeSize), fileName_1 + ":154:42");
194
- out[index] = g;
195
- }
196
- for (let index = 0; index !== rangeLength; ++index) {
197
- const current = out[index];
198
- const currentInRange = rangeSize.data[index];
199
- if (current < currentInRange) {
200
- return out;
201
- } else if (current > currentInRange) {
202
- break;
203
- }
204
- }
205
- }
206
- }, fileName_1 + ":147:18"));
207
- }
208
- }
31
+ * @tsplus type fncts.test.TestRandom
32
+ * @tsplus companion fncts.test.TestRandomOps
33
+ */
34
+ var TestRandom = class {
35
+ randomState;
36
+ bufferState;
37
+ constructor(randomState, bufferState) {
38
+ this.randomState = randomState;
39
+ this.bufferState = bufferState;
40
+ }
41
+ get clearBooleans() {
42
+ return _fncts_io_Ref_api_modify.update((buff) => buff.copy({ booleans: _fncts_base_collection_immutable_Vector_api.empty() }), fileName_1 + ":20:35")(this.bufferState);
43
+ }
44
+ get clearBytes() {
45
+ return _fncts_io_Ref_api_modify.update((buff) => buff.copy({ bytes: _fncts_base_collection_immutable_Vector_api.empty() }), fileName_1 + ":23:35")(this.bufferState);
46
+ }
47
+ get clearChars() {
48
+ return _fncts_io_Ref_api_modify.update((buff) => buff.copy({ chars: _fncts_base_collection_immutable_Vector_api.empty() }), fileName_1 + ":26:35")(this.bufferState);
49
+ }
50
+ get clearDoubles() {
51
+ return _fncts_io_Ref_api_modify.update((buff) => buff.copy({ doubles: _fncts_base_collection_immutable_Vector_api.empty() }), fileName_1 + ":29:35")(this.bufferState);
52
+ }
53
+ get clearInts() {
54
+ return _fncts_io_Ref_api_modify.update((buff) => buff.copy({ integers: _fncts_base_collection_immutable_Vector_api.empty() }), fileName_1 + ":32:35")(this.bufferState);
55
+ }
56
+ get clearStrings() {
57
+ return _fncts_io_Ref_api_modify.update((buff) => buff.copy({ strings: _fncts_base_collection_immutable_Vector_api.empty() }), fileName_1 + ":35:35")(this.bufferState);
58
+ }
59
+ feedBooleans(...booleans) {
60
+ return _fncts_io_Ref_api_modify.update((buff) => buff.copy({ booleans: _fncts_base_collection_immutable_Vector_api.concat(buff.booleans)(_fncts_base_collection_immutable_Vector_api.from(booleans)) }), fileName_1 + ":38:35")(this.bufferState);
61
+ }
62
+ feedBytes(...bytes) {
63
+ return _fncts_io_Ref_api_modify.update((data) => data.copy({ bytes: _fncts_base_collection_immutable_Vector_api.concat(data.bytes)(_fncts_base_collection_immutable_Vector_api.from(bytes)) }), fileName_1 + ":41:35")(this.bufferState);
64
+ }
65
+ feedChars(...chars) {
66
+ return _fncts_io_Ref_api_modify.update((data) => data.copy({ chars: _fncts_base_collection_immutable_Vector_api.concat(data.chars)(_fncts_base_collection_immutable_Vector_api.from(chars)) }), fileName_1 + ":44:35")(this.bufferState);
67
+ }
68
+ feedDoubles(...doubles) {
69
+ return _fncts_io_Ref_api_modify.update((data) => data.copy({ doubles: _fncts_base_collection_immutable_Vector_api.concat(data.doubles)(_fncts_base_collection_immutable_Vector_api.from(doubles)) }), fileName_1 + ":47:35")(this.bufferState);
70
+ }
71
+ feedInts(...ints) {
72
+ return _fncts_io_Ref_api_modify.update((data) => data.copy({ integers: _fncts_base_collection_immutable_Vector_api.concat(data.integers)(_fncts_base_collection_immutable_Vector_api.from(ints)) }), fileName_1 + ":50:35")(this.bufferState);
73
+ }
74
+ feedStrings(...strings) {
75
+ return _fncts_io_Ref_api_modify.update((data) => data.copy({ strings: _fncts_base_collection_immutable_Vector_api.concat(data.strings)(_fncts_base_collection_immutable_Vector_api.from(strings)) }), fileName_1 + ":53:35")(this.bufferState);
76
+ }
77
+ get getSeed() {
78
+ return _fncts_io_IO_api.map((data) => (data.seed1 << 24 | data.seed2) ^ 25214903917, fileName_1 + ":56:36")(_fncts_io_Ref_api_get.get(this.randomState, fileName_1 + ":56:28"));
79
+ }
80
+ setSeed(seed) {
81
+ const newSeed = Mash()(seed.toString());
82
+ const seed1 = Math.floor(newSeed >>> 24);
83
+ const seed2 = Math.floor(newSeed) & (1 << 24) - 1;
84
+ return _fncts_io_Ref_api_set.set(new Data(seed1, seed2, _fncts_base_collection_immutable_Queue_constructors.empty()), fileName_1 + ":63:32")(this.randomState);
85
+ }
86
+ bufferedBoolean = (buffer) => {
87
+ return [_fncts_base_collection_immutable_Vector_api.head(buffer.booleans), buffer.copy({ booleans: _fncts_base_collection_immutable_Vector_api.drop(1)(buffer.booleans) })];
88
+ };
89
+ bufferedDouble = (buffer) => {
90
+ return [_fncts_base_collection_immutable_Vector_api.head(buffer.doubles), buffer.copy({ doubles: _fncts_base_collection_immutable_Vector_api.drop(1)(buffer.doubles) })];
91
+ };
92
+ bufferedInt = (buffer) => {
93
+ return [_fncts_base_collection_immutable_Vector_api.head(buffer.integers), buffer.copy({ integers: _fncts_base_collection_immutable_Vector_api.drop(1)(buffer.integers) })];
94
+ };
95
+ getOrElse = (buffer, random) => {
96
+ return _fncts_io_IO_api.flatMap((_) => _fncts_base_data_Maybe_destructors.match(() => random, _fncts_io_IO_api.succeedNow)(_), fileName_1 + ":75:51")(_fncts_io_Ref_api_modify.modify(buffer, fileName_1 + ":75:35")(this.bufferState));
97
+ };
98
+ leastSignificantBits = (x) => {
99
+ return Math.floor(x) & (1 << 24) - 1;
100
+ };
101
+ mostSignificantBits = (x) => {
102
+ return Math.floor(x / (1 << 24));
103
+ };
104
+ randomBits = (bits) => {
105
+ return _fncts_io_Ref_api_modify.modify((data) => {
106
+ const multiplier = 25214903917;
107
+ const multiplier1 = Math.floor(multiplier >>> 24);
108
+ const multiplier2 = Math.floor(multiplier) & (1 << 24) - 1;
109
+ const product1 = data.seed1 * multiplier1 + data.seed1 * multiplier2;
110
+ const product2 = data.seed2 * multiplier2 + 11;
111
+ const newSeed1 = this.mostSignificantBits(product2) + this.leastSignificantBits(product1) & (1 << 24) - 1;
112
+ const newSeed2 = this.leastSignificantBits(product2);
113
+ return [(newSeed1 << 8 | newSeed2 >> 16) >>> 32 - bits, new Data(newSeed1, newSeed2, data.nextNextGaussians)];
114
+ }, fileName_1 + ":84:35")(this.randomState);
115
+ };
116
+ get randomBoolean() {
117
+ return _fncts_io_IO_api.map((n) => n !== 0, fileName_1 + ":97:34")(this.randomBits(1));
118
+ }
119
+ randomBytes = (length) => {
120
+ const loop = (i, rnd, n, acc) => {
121
+ if (i === length) return _fncts_io_IO_api.map((l) => _fncts_base_collection_immutable_List_api.reverse(l), fileName_1 + ":102:23")(acc);
122
+ else if (n > 0) return _fncts_io_IO_api.flatMap((rnd) => loop(i + 1, _fncts_io_IO_api.succeedNow(rnd >> 8, fileName_1 + ":107:26"), n - 1, _fncts_io_IO_api.map((_) => _fncts_base_collection_immutable_List_api.prepend(rnd)(_), fileName_1 + ":109:20")(acc)), fileName_1 + ":104:27")(rnd);
123
+ else return loop(i, this.nextInt, Math.min(length - i, 4), acc);
124
+ };
125
+ return _fncts_io_IO_api.map((list) => Array.from(list), fileName_1 + ":116:89")(loop(0, this.randomInt, Math.min(length, 4), _fncts_io_IO_api.succeedNow(_fncts_base_collection_immutable_List_constructors.empty(), fileName_1 + ":116:70")));
126
+ };
127
+ randomIntBounded = (n) => {
128
+ if (n <= 0) return _fncts_io_IO_api.haltNow(new _fncts_base_data_exceptions.IllegalArgumentError("n must be positive", "TestRandom.randomIntBounded"), fileName_1 + ":120:24");
129
+ else if ((n & -n) === n) return _fncts_io_IO_api.map((_) => _ >> Math.clz32(n), fileName_1 + ":122:37")(this.randomBits(31));
130
+ else {
131
+ const loop = _fncts_io_IO_api.flatMap((i) => {
132
+ const value = i % n;
133
+ if (i - value + (n - 1) < 0) return loop;
134
+ else return _fncts_io_IO_api.succeedNow(value, fileName_1 + ":127:34");
135
+ }, fileName_1 + ":124:60")(this.randomBits(31));
136
+ return loop;
137
+ }
138
+ };
139
+ get randomLong() {
140
+ return _fncts_io_IO_api.flatMap((i1) => _fncts_io_IO_api.flatMap((i2) => _fncts_io_IO_api.succeedNow(BigInt(i1 << 32) + BigInt(i2), fileName_1 + ":134:56"), fileName_1 + ":134:34")(this.randomBits(32)), fileName_1 + ":133:39")(this.randomBits(32));
141
+ }
142
+ get randomInt() {
143
+ return this.randomBits(32);
144
+ }
145
+ get randomDouble() {
146
+ return _fncts_io_IO_api.flatMap((i1) => _fncts_io_IO_api.map((i2) => (i1 * (1 << 27) + i2) / (1 << 53), fileName_1 + ":141:71")(this.randomBits(27)), fileName_1 + ":141:39")(this.randomBits(26));
147
+ }
148
+ get random() {
149
+ return this.randomBits(26);
150
+ }
151
+ get nextInt() {
152
+ return this.getOrElse(this.bufferedInt, this.randomInt);
153
+ }
154
+ get nextBoolean() {
155
+ return this.getOrElse(this.bufferedBoolean, this.randomBoolean);
156
+ }
157
+ get nextDouble() {
158
+ return this.getOrElse(this.bufferedDouble, this.randomDouble);
159
+ }
160
+ get next() {
161
+ return this.getOrElse(this.bufferedDouble, this.random);
162
+ }
163
+ nextBigIntBetween(low, high) {
164
+ return _fncts_io_IO_api.repeatUntil((n) => low <= n && n < high, fileName_1 + ":159:39")(this.randomLong);
165
+ }
166
+ nextIntBetween(low, high) {
167
+ return nextIntBetweenWith(low, high, this.randomInt, this.randomIntBounded);
168
+ }
169
+ nextRange(low, high) {
170
+ return _fncts_io_IO_api.map((n) => (high - low + 1) * n + low, fileName_1 + ":165:25")(this.next);
171
+ }
172
+ nextArrayIntBetween(low, high) {
173
+ const self = this;
174
+ return _fncts_io_IO_api.map((ns) => trimArrayIntInplace(addArrayIntToNew({
175
+ sign: 1,
176
+ data: ns
177
+ }, low)), fileName_1 + ":189:11")(_fncts_io_IO_api.gen(function* (_) {
178
+ const rangeSize = trimArrayIntInplace(addOneToPositiveArrayInt(substractArrayIntToNew(high, low)));
179
+ const rangeLength = rangeSize.data.length;
180
+ const out = [];
181
+ while (true) {
182
+ for (let index = 0; index !== rangeLength; ++index) {
183
+ const indexRangeSize = index === 0 ? rangeSize.data[0] + 1 : 4294967296;
184
+ out[index] = yield* _(self.randomIntBounded(indexRangeSize), fileName_1 + ":176:42");
185
+ }
186
+ for (let index = 0; index !== rangeLength; ++index) {
187
+ const current = out[index];
188
+ const currentInRange = rangeSize.data[index];
189
+ if (current < currentInRange) return out;
190
+ else if (current > currentInRange) break;
191
+ }
192
+ }
193
+ }, fileName_1 + ":169:18"));
194
+ }
195
+ };
209
196
  /**
210
- * @internal
211
- */
212
- exports.TestRandom = TestRandom;
197
+ * @internal
198
+ */
213
199
  function nextIntBetweenWith(min, max, nextInt, nextIntBounded) {
214
- if (min >= max) {
215
- return tsplus_module_5.haltNow(new _exceptions.IllegalArgumentError("invalid bounds", "TestRandom.nextIntBetweenWith"), fileName_1 + ":180:22");
216
- } else {
217
- const difference = max - min;
218
- if (difference > 0) return tsplus_module_5.map(n => n + min, fileName_1 + ":183:62")(nextIntBounded(difference));else return tsplus_module_5.repeatUntil(n => min <= n && n < max, fileName_1 + ":184:36")(nextInt);
219
- }
220
- }
221
- class Data {
222
- constructor(seed1, seed2, nextNextGaussians = tsplus_module_6.empty()) {
223
- this.seed1 = seed1;
224
- this.seed2 = seed2;
225
- this.nextNextGaussians = nextNextGaussians;
226
- }
227
- }
228
- exports.Data = Data;
229
- class Buffer {
230
- constructor(booleans = tsplus_module_2.empty(), bytes = tsplus_module_2.empty(), chars = tsplus_module_2.empty(), doubles = tsplus_module_2.empty(), integers = tsplus_module_2.empty(), strings = tsplus_module_2.empty()) {
231
- this.booleans = booleans;
232
- this.bytes = bytes;
233
- this.chars = chars;
234
- this.doubles = doubles;
235
- this.integers = integers;
236
- this.strings = strings;
237
- }
238
- copy(_) {
239
- return new Buffer(_.booleans ?? this.booleans, _.bytes ?? this.bytes, _.chars ?? this.chars, _.doubles ?? this.doubles, _.integers ?? this.integers, _.strings ?? this.strings);
240
- }
200
+ if (min >= max) return _fncts_io_IO_api.haltNow(new _fncts_base_data_exceptions.IllegalArgumentError("invalid bounds", "TestRandom.nextIntBetweenWith"), fileName_1 + ":202:22");
201
+ else {
202
+ const difference = max - min;
203
+ if (difference > 0) return _fncts_io_IO_api.map((n) => n + min, fileName_1 + ":205:62")(nextIntBounded(difference));
204
+ else return _fncts_io_IO_api.repeatUntil((n) => min <= n && n < max, fileName_1 + ":206:36")(nextInt);
205
+ }
241
206
  }
207
+ var Data = class {
208
+ seed1;
209
+ seed2;
210
+ nextNextGaussians;
211
+ constructor(seed1, seed2, nextNextGaussians = _fncts_base_collection_immutable_Queue_constructors.empty()) {
212
+ this.seed1 = seed1;
213
+ this.seed2 = seed2;
214
+ this.nextNextGaussians = nextNextGaussians;
215
+ }
216
+ };
217
+ var Buffer = class Buffer {
218
+ booleans;
219
+ bytes;
220
+ chars;
221
+ doubles;
222
+ integers;
223
+ strings;
224
+ constructor(booleans = _fncts_base_collection_immutable_Vector_api.empty(), bytes = _fncts_base_collection_immutable_Vector_api.empty(), chars = _fncts_base_collection_immutable_Vector_api.empty(), doubles = _fncts_base_collection_immutable_Vector_api.empty(), integers = _fncts_base_collection_immutable_Vector_api.empty(), strings = _fncts_base_collection_immutable_Vector_api.empty()) {
225
+ this.booleans = booleans;
226
+ this.bytes = bytes;
227
+ this.chars = chars;
228
+ this.doubles = doubles;
229
+ this.integers = integers;
230
+ this.strings = strings;
231
+ }
232
+ copy(_) {
233
+ return new Buffer(_.booleans ?? this.booleans, _.bytes ?? this.bytes, _.chars ?? this.chars, _.doubles ?? this.doubles, _.integers ?? this.integers, _.strings ?? this.strings);
234
+ }
235
+ };
242
236
  /** @internal */
243
- exports.Buffer = Buffer;
244
237
  function isStrictlySmaller(dataA, dataB) {
245
- const maxLength = Math.max(dataA.length, dataB.length);
246
- for (let index = 0; index < maxLength; ++index) {
247
- const indexA = index + dataA.length - maxLength;
248
- const indexB = index + dataB.length - maxLength;
249
- const vA = indexA >= 0 ? dataA[indexA] : 0;
250
- const vB = indexB >= 0 ? dataB[indexB] : 0;
251
- if (vA < vB) return true;
252
- if (vA > vB) return false;
253
- }
254
- return false;
238
+ const maxLength = Math.max(dataA.length, dataB.length);
239
+ for (let index = 0; index < maxLength; ++index) {
240
+ const indexA = index + dataA.length - maxLength;
241
+ const indexB = index + dataB.length - maxLength;
242
+ const vA = indexA >= 0 ? dataA[indexA] : 0;
243
+ const vB = indexB >= 0 ? dataB[indexB] : 0;
244
+ if (vA < vB) return true;
245
+ if (vA > vB) return false;
246
+ }
247
+ return false;
255
248
  }
256
249
  function substractArrayIntToNew(arrayIntA, arrayIntB) {
257
- if (arrayIntA.sign !== arrayIntB.sign) {
258
- return addArrayIntToNew(arrayIntA, {
259
- sign: -arrayIntB.sign,
260
- data: arrayIntB.data
261
- });
262
- }
263
- const dataA = arrayIntA.data;
264
- const dataB = arrayIntB.data;
265
- if (isStrictlySmaller(dataA, dataB)) {
266
- const out = substractArrayIntToNew(arrayIntB, arrayIntA);
267
- out.sign = -out.sign;
268
- return out;
269
- }
270
- const data = [];
271
- let reminder = 0;
272
- for (let indexA = dataA.length - 1, indexB = dataB.length - 1; indexA >= 0 || indexB >= 0; --indexA, --indexB) {
273
- const vA = indexA >= 0 ? dataA[indexA] : 0;
274
- const vB = indexB >= 0 ? dataB[indexB] : 0;
275
- const current = vA - vB - reminder;
276
- data.push(current >>> 0);
277
- reminder = current < 0 ? 1 : 0;
278
- }
279
- return {
280
- sign: arrayIntA.sign,
281
- data: data.reverse()
282
- };
250
+ if (arrayIntA.sign !== arrayIntB.sign) return addArrayIntToNew(arrayIntA, {
251
+ sign: -arrayIntB.sign,
252
+ data: arrayIntB.data
253
+ });
254
+ const dataA = arrayIntA.data;
255
+ const dataB = arrayIntB.data;
256
+ if (isStrictlySmaller(dataA, dataB)) {
257
+ const out = substractArrayIntToNew(arrayIntB, arrayIntA);
258
+ out.sign = -out.sign;
259
+ return out;
260
+ }
261
+ const data = [];
262
+ let reminder = 0;
263
+ for (let indexA = dataA.length - 1, indexB = dataB.length - 1; indexA >= 0 || indexB >= 0; --indexA, --indexB) {
264
+ const current = (indexA >= 0 ? dataA[indexA] : 0) - (indexB >= 0 ? dataB[indexB] : 0) - reminder;
265
+ data.push(current >>> 0);
266
+ reminder = current < 0 ? 1 : 0;
267
+ }
268
+ return {
269
+ sign: arrayIntA.sign,
270
+ data: data.reverse()
271
+ };
283
272
  }
284
273
  /**
285
- * Trim uneeded zeros in ArrayInt
286
- * and uniform notation for zero: {sign: 1, data: [0]}
287
- */
274
+ * Trim uneeded zeros in ArrayInt
275
+ * and uniform notation for zero: {sign: 1, data: [0]}
276
+ */
288
277
  function trimArrayIntInplace(arrayInt) {
289
- const data = arrayInt.data;
290
- let firstNonZero = 0;
291
- for (; firstNonZero !== data.length && data[firstNonZero] === 0; ++firstNonZero) {}
292
- if (firstNonZero === data.length) {
293
- // only zeros
294
- arrayInt.sign = 1;
295
- arrayInt.data = [0];
296
- return arrayInt;
297
- }
298
- data.splice(0, firstNonZero);
299
- return arrayInt;
278
+ const data = arrayInt.data;
279
+ let firstNonZero = 0;
280
+ for (; firstNonZero !== data.length && data[firstNonZero] === 0; ++firstNonZero);
281
+ if (firstNonZero === data.length) {
282
+ arrayInt.sign = 1;
283
+ arrayInt.data = [0];
284
+ return arrayInt;
285
+ }
286
+ data.splice(0, firstNonZero);
287
+ return arrayInt;
300
288
  }
301
289
  /**
302
- * Add two ArrayInt
303
- * @internal
304
- */
290
+ * Add two ArrayInt
291
+ * @internal
292
+ */
305
293
  function addArrayIntToNew(arrayIntA, arrayIntB) {
306
- if (arrayIntA.sign !== arrayIntB.sign) {
307
- return substractArrayIntToNew(arrayIntA, {
308
- sign: -arrayIntB.sign,
309
- data: arrayIntB.data
310
- });
311
- }
312
- const data = [];
313
- let reminder = 0;
314
- const dataA = arrayIntA.data;
315
- const dataB = arrayIntB.data;
316
- for (let indexA = dataA.length - 1, indexB = dataB.length - 1; indexA >= 0 || indexB >= 0; --indexA, --indexB) {
317
- const vA = indexA >= 0 ? dataA[indexA] : 0;
318
- const vB = indexB >= 0 ? dataB[indexB] : 0;
319
- const current = vA + vB + reminder;
320
- data.push(current >>> 0);
321
- reminder = ~~(current / 0x100000000);
322
- }
323
- if (reminder !== 0) {
324
- data.push(reminder);
325
- }
326
- return {
327
- sign: arrayIntA.sign,
328
- data: data.reverse()
329
- };
294
+ if (arrayIntA.sign !== arrayIntB.sign) return substractArrayIntToNew(arrayIntA, {
295
+ sign: -arrayIntB.sign,
296
+ data: arrayIntB.data
297
+ });
298
+ const data = [];
299
+ let reminder = 0;
300
+ const dataA = arrayIntA.data;
301
+ const dataB = arrayIntB.data;
302
+ for (let indexA = dataA.length - 1, indexB = dataB.length - 1; indexA >= 0 || indexB >= 0; --indexA, --indexB) {
303
+ const current = (indexA >= 0 ? dataA[indexA] : 0) + (indexB >= 0 ? dataB[indexB] : 0) + reminder;
304
+ data.push(current >>> 0);
305
+ reminder = ~~(current / 4294967296);
306
+ }
307
+ if (reminder !== 0) data.push(reminder);
308
+ return {
309
+ sign: arrayIntA.sign,
310
+ data: data.reverse()
311
+ };
330
312
  }
331
313
  /**
332
- * Add one to a given positive ArrayInt
333
- * @internal
334
- */
314
+ * Add one to a given positive ArrayInt
315
+ * @internal
316
+ */
335
317
  function addOneToPositiveArrayInt(arrayInt) {
336
- arrayInt.sign = 1; // handling case { sign: -1, data: [0,...,0] }
337
- const data = arrayInt.data;
338
- for (let index = data.length - 1; index >= 0; --index) {
339
- if (data[index] === 0xffffffff) {
340
- data[index] = 0;
341
- } else {
342
- data[index] += 1;
343
- return arrayInt;
344
- }
345
- }
346
- data.unshift(1);
347
- return arrayInt;
318
+ arrayInt.sign = 1;
319
+ const data = arrayInt.data;
320
+ for (let index = data.length - 1; index >= 0; --index) if (data[index] === 4294967295) data[index] = 0;
321
+ else {
322
+ data[index] += 1;
323
+ return arrayInt;
324
+ }
325
+ data.unshift(1);
326
+ return arrayInt;
348
327
  }
349
328
  function Mash() {
350
- let n = 0xefc8249d;
351
- const mash = function (data) {
352
- for (let i = 0; i < data.length; i++) {
353
- n += data.charCodeAt(i);
354
- let h = 0.02519603282416938 * n;
355
- n = h >>> 0;
356
- h -= n;
357
- h *= n;
358
- n = h >>> 0;
359
- h -= n;
360
- n += h * 0x100000000; // 2^32
361
- }
362
- return (n >>> 0) * 2.3283064365386963e-10; // 2^-32
363
- };
364
- return mash;
329
+ let n = 4022871197;
330
+ const mash = function(data) {
331
+ for (let i = 0; i < data.length; i++) {
332
+ n += data.charCodeAt(i);
333
+ let h = .02519603282416938 * n;
334
+ n = h >>> 0;
335
+ h -= n;
336
+ h *= n;
337
+ n = h >>> 0;
338
+ h -= n;
339
+ n += h * 4294967296;
340
+ }
341
+ return (n >>> 0) * 23283064365386963e-26;
342
+ };
343
+ return mash;
365
344
  }
345
+ //#endregion
346
+ exports.Buffer = Buffer;
347
+ exports.Data = Data;
348
+ exports.TestRandom = TestRandom;
349
+ exports.TestRandomTag = TestRandomTag;
350
+ exports.addArrayIntToNew = addArrayIntToNew;
351
+ exports.addOneToPositiveArrayInt = addOneToPositiveArrayInt;
352
+ exports.substractArrayIntToNew = substractArrayIntToNew;
353
+ exports.trimArrayIntInplace = trimArrayIntInplace;
354
+
366
355
  //# sourceMappingURL=definition.cjs.map