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