@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,352 +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
- constructor(randomState, bufferState) {
23
- this.randomState = randomState;
24
- this.bufferState = bufferState;
25
- this.clearBooleans = tsplus_module_3.update(buff => buff.copy({
26
- booleans: tsplus_module_2.empty()
27
- }), fileName_1 + ":19:53")(this.bufferState);
28
- this.clearBytes = tsplus_module_3.update(buff => buff.copy({
29
- bytes: tsplus_module_2.empty()
30
- }), fileName_1 + ":20:53")(this.bufferState);
31
- this.clearChars = tsplus_module_3.update(buff => buff.copy({
32
- chars: tsplus_module_2.empty()
33
- }), fileName_1 + ":21:53")(this.bufferState);
34
- this.clearDoubles = tsplus_module_3.update(buff => buff.copy({
35
- doubles: tsplus_module_2.empty()
36
- }), fileName_1 + ":22:53")(this.bufferState);
37
- this.clearInts = tsplus_module_3.update(buff => buff.copy({
38
- integers: tsplus_module_2.empty()
39
- }), fileName_1 + ":23:53")(this.bufferState);
40
- this.clearStrings = tsplus_module_3.update(buff => buff.copy({
41
- strings: tsplus_module_2.empty()
42
- }), fileName_1 + ":24:53")(this.bufferState);
43
- 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"));
44
- this.bufferedBoolean = buffer => {
45
- return [tsplus_module_2.head(buffer.booleans), buffer.copy({
46
- booleans: tsplus_module_2.drop(1)(buffer.booleans)
47
- })];
48
- };
49
- this.bufferedDouble = buffer => {
50
- return [tsplus_module_2.head(buffer.doubles), buffer.copy({
51
- doubles: tsplus_module_2.drop(1)(buffer.doubles)
52
- })];
53
- };
54
- this.bufferedInt = buffer => {
55
- return [tsplus_module_2.head(buffer.integers), buffer.copy({
56
- integers: tsplus_module_2.drop(1)(buffer.integers)
57
- })];
58
- };
59
- this.getOrElse = (buffer, random) => {
60
- 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));
61
- };
62
- this.leastSignificantBits = x => {
63
- return Math.floor(x) & (1 << 24) - 1;
64
- };
65
- this.mostSignificantBits = x => {
66
- return Math.floor(x / (1 << 24));
67
- };
68
- this.randomBits = bits => {
69
- return tsplus_module_3.modify(data => {
70
- const multiplier = 0x5deece66d;
71
- const multiplier1 = Math.floor(multiplier >>> 24);
72
- const multiplier2 = Math.floor(multiplier) & (1 << 24) - 1;
73
- const product1 = data.seed1 * multiplier1 + data.seed1 * multiplier2;
74
- const product2 = data.seed2 * multiplier2 + 0xb;
75
- const newSeed1 = this.mostSignificantBits(product2) + this.leastSignificantBits(product1) & (1 << 24) - 1;
76
- const newSeed2 = this.leastSignificantBits(product2);
77
- const result = newSeed1 << 8 | newSeed2 >> 16;
78
- return [result >>> 32 - bits, new Data(newSeed1, newSeed2, data.nextNextGaussians)];
79
- }, fileName_1 + ":70:35")(this.randomState);
80
- };
81
- this.randomBoolean = tsplus_module_5.map(n => n !== 0, fileName_1 + ":82:49")(this.randomBits(1));
82
- this.randomBytes = length => {
83
- const loop = (i, rnd, n, acc) => {
84
- if (i === length) {
85
- return tsplus_module_5.map(l => tsplus_module_9.reverse(l), fileName_1 + ":86:23")(acc);
86
- } else if (n > 0) {
87
- 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);
88
- } else {
89
- return loop(i, this.nextInt, Math.min(length - i, 4), acc);
90
- }
91
- };
92
- 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")));
93
- };
94
- this.randomIntBounded = n => {
95
- if (n <= 0) {
96
- return tsplus_module_5.haltNow(new IllegalArgumentError("n must be positive", "TestRandom.randomIntBounded"), fileName_1 + ":104:24");
97
- } else if ((n & -n) === n) {
98
- return tsplus_module_5.map(_ => _ >> Math.clz32(n), fileName_1 + ":106:37")(this.randomBits(31));
99
- } else {
100
- const loop = tsplus_module_5.flatMap(i => {
101
- const value = i % n;
102
- if (i - value + (n - 1) < 0) return loop;else return tsplus_module_5.succeedNow(value, fileName_1 + ":111:34");
103
- }, fileName_1 + ":108:60")(this.randomBits(31));
104
- return loop;
105
- }
106
- };
107
- 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));
108
- this.randomInt = this.randomBits(32);
109
- 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));
110
- this.random = this.randomBits(26);
111
- }
112
- feedBooleans(...booleans) {
113
- return tsplus_module_3.update(buff => buff.copy({
114
- booleans: tsplus_module_2.concat(buff.booleans)(tsplus_module_2.from(booleans))
115
- }), fileName_1 + ":26:35")(this.bufferState);
116
- }
117
- feedBytes(...bytes) {
118
- return tsplus_module_3.update(data => data.copy({
119
- bytes: tsplus_module_2.concat(data.bytes)(tsplus_module_2.from(bytes))
120
- }), fileName_1 + ":29:35")(this.bufferState);
121
- }
122
- feedChars(...chars) {
123
- return tsplus_module_3.update(data => data.copy({
124
- chars: tsplus_module_2.concat(data.chars)(tsplus_module_2.from(chars))
125
- }), fileName_1 + ":32:35")(this.bufferState);
126
- }
127
- feedDoubles(...doubles) {
128
- return tsplus_module_3.update(data => data.copy({
129
- doubles: tsplus_module_2.concat(data.doubles)(tsplus_module_2.from(doubles))
130
- }), fileName_1 + ":35:35")(this.bufferState);
131
- }
132
- feedInts(...ints) {
133
- return tsplus_module_3.update(data => data.copy({
134
- integers: tsplus_module_2.concat(data.integers)(tsplus_module_2.from(ints))
135
- }), fileName_1 + ":38:35")(this.bufferState);
136
- }
137
- feedStrings(...strings) {
138
- return tsplus_module_3.update(data => data.copy({
139
- strings: tsplus_module_2.concat(data.strings)(tsplus_module_2.from(strings))
140
- }), fileName_1 + ":41:35")(this.bufferState);
141
- }
142
- setSeed(seed) {
143
- const mash = Mash();
144
- const newSeed = mash(seed.toString());
145
- const seed1 = Math.floor(newSeed >>> 24);
146
- const seed2 = Math.floor(newSeed) & (1 << 24) - 1;
147
- return tsplus_module_7.set(new Data(seed1, seed2, tsplus_module_6.empty()), fileName_1 + ":49:32")(this.randomState);
148
- }
149
- get nextInt() {
150
- return this.getOrElse(this.bufferedInt, this.randomInt);
151
- }
152
- get nextBoolean() {
153
- return this.getOrElse(this.bufferedBoolean, this.randomBoolean);
154
- }
155
- get nextDouble() {
156
- return this.getOrElse(this.bufferedDouble, this.randomDouble);
157
- }
158
- get next() {
159
- return this.getOrElse(this.bufferedDouble, this.random);
160
- }
161
- nextBigIntBetween(low, high) {
162
- return tsplus_module_5.repeatUntil(n => low <= n && n < high, fileName_1 + ":137:39")(this.randomLong);
163
- }
164
- nextIntBetween(low, high) {
165
- return nextIntBetweenWith(low, high, this.randomInt, this.randomIntBounded);
166
- }
167
- nextRange(low, high) {
168
- return tsplus_module_5.map(n => (high - low + 1) * n + low, fileName_1 + ":143:25")(this.next);
169
- }
170
- nextArrayIntBetween(low, high) {
171
- const self = this;
172
- return tsplus_module_5.map(ns => trimArrayIntInplace(addArrayIntToNew({
173
- sign: 1,
174
- data: ns
175
- }, low)), fileName_1 + ":167:11")(tsplus_module_5.gen(function* (_) {
176
- const rangeSize = trimArrayIntInplace(addOneToPositiveArrayInt(substractArrayIntToNew(high, low)));
177
- const rangeLength = rangeSize.data.length;
178
- const out = [];
179
- while (true) {
180
- for (let index = 0; index !== rangeLength; ++index) {
181
- const indexRangeSize = index === 0 ? rangeSize.data[0] + 1 : 0x100000000;
182
- const g = yield* _(self.randomIntBounded(indexRangeSize), fileName_1 + ":154:42");
183
- out[index] = g;
184
- }
185
- for (let index = 0; index !== rangeLength; ++index) {
186
- const current = out[index];
187
- const currentInRange = rangeSize.data[index];
188
- if (current < currentInRange) {
189
- return out;
190
- } else if (current > currentInRange) {
191
- break;
192
- }
193
- }
194
- }
195
- }, fileName_1 + ":147:18"));
196
- }
197
- }
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
+ };
198
184
  /**
199
- * @internal
200
- */
185
+ * @internal
186
+ */
201
187
  function nextIntBetweenWith(min, max, nextInt, nextIntBounded) {
202
- if (min >= max) {
203
- return tsplus_module_5.haltNow(new IllegalArgumentError("invalid bounds", "TestRandom.nextIntBetweenWith"), fileName_1 + ":180:22");
204
- } else {
205
- const difference = max - min;
206
- 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);
207
- }
208
- }
209
- export class Data {
210
- constructor(seed1, seed2, nextNextGaussians = tsplus_module_6.empty()) {
211
- this.seed1 = seed1;
212
- this.seed2 = seed2;
213
- this.nextNextGaussians = nextNextGaussians;
214
- }
215
- }
216
- export class Buffer {
217
- 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()) {
218
- this.booleans = booleans;
219
- this.bytes = bytes;
220
- this.chars = chars;
221
- this.doubles = doubles;
222
- this.integers = integers;
223
- this.strings = strings;
224
- }
225
- copy(_) {
226
- return new Buffer(_.booleans ?? this.booleans, _.bytes ?? this.bytes, _.chars ?? this.chars, _.doubles ?? this.doubles, _.integers ?? this.integers, _.strings ?? this.strings);
227
- }
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
+ }
228
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
+ };
229
224
  /** @internal */
230
225
  function isStrictlySmaller(dataA, dataB) {
231
- const maxLength = Math.max(dataA.length, dataB.length);
232
- for (let index = 0; index < maxLength; ++index) {
233
- const indexA = index + dataA.length - maxLength;
234
- const indexB = index + dataB.length - maxLength;
235
- const vA = indexA >= 0 ? dataA[indexA] : 0;
236
- const vB = indexB >= 0 ? dataB[indexB] : 0;
237
- if (vA < vB) return true;
238
- if (vA > vB) return false;
239
- }
240
- 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;
241
236
  }
242
- export function substractArrayIntToNew(arrayIntA, arrayIntB) {
243
- if (arrayIntA.sign !== arrayIntB.sign) {
244
- return addArrayIntToNew(arrayIntA, {
245
- sign: -arrayIntB.sign,
246
- data: arrayIntB.data
247
- });
248
- }
249
- const dataA = arrayIntA.data;
250
- const dataB = arrayIntB.data;
251
- if (isStrictlySmaller(dataA, dataB)) {
252
- const out = substractArrayIntToNew(arrayIntB, arrayIntA);
253
- out.sign = -out.sign;
254
- return out;
255
- }
256
- const data = [];
257
- let reminder = 0;
258
- for (let indexA = dataA.length - 1, indexB = dataB.length - 1; indexA >= 0 || indexB >= 0; --indexA, --indexB) {
259
- const vA = indexA >= 0 ? dataA[indexA] : 0;
260
- const vB = indexB >= 0 ? dataB[indexB] : 0;
261
- const current = vA - vB - reminder;
262
- data.push(current >>> 0);
263
- reminder = current < 0 ? 1 : 0;
264
- }
265
- return {
266
- sign: arrayIntA.sign,
267
- data: data.reverse()
268
- };
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
+ };
269
260
  }
270
261
  /**
271
- * Trim uneeded zeros in ArrayInt
272
- * and uniform notation for zero: {sign: 1, data: [0]}
273
- */
274
- export function trimArrayIntInplace(arrayInt) {
275
- const data = arrayInt.data;
276
- let firstNonZero = 0;
277
- for (; firstNonZero !== data.length && data[firstNonZero] === 0; ++firstNonZero) {}
278
- if (firstNonZero === data.length) {
279
- // only zeros
280
- arrayInt.sign = 1;
281
- arrayInt.data = [0];
282
- return arrayInt;
283
- }
284
- data.splice(0, firstNonZero);
285
- 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;
286
276
  }
287
277
  /**
288
- * Add two ArrayInt
289
- * @internal
290
- */
291
- export function addArrayIntToNew(arrayIntA, arrayIntB) {
292
- if (arrayIntA.sign !== arrayIntB.sign) {
293
- return substractArrayIntToNew(arrayIntA, {
294
- sign: -arrayIntB.sign,
295
- data: arrayIntB.data
296
- });
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 vA = indexA >= 0 ? dataA[indexA] : 0;
304
- const vB = indexB >= 0 ? dataB[indexB] : 0;
305
- const current = vA + vB + reminder;
306
- data.push(current >>> 0);
307
- reminder = ~~(current / 0x100000000);
308
- }
309
- if (reminder !== 0) {
310
- data.push(reminder);
311
- }
312
- return {
313
- sign: arrayIntA.sign,
314
- data: data.reverse()
315
- };
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
+ };
316
300
  }
317
301
  /**
318
- * Add one to a given positive ArrayInt
319
- * @internal
320
- */
321
- export function addOneToPositiveArrayInt(arrayInt) {
322
- arrayInt.sign = 1; // handling case { sign: -1, data: [0,...,0] }
323
- const data = arrayInt.data;
324
- for (let index = data.length - 1; index >= 0; --index) {
325
- if (data[index] === 0xffffffff) {
326
- data[index] = 0;
327
- } else {
328
- data[index] += 1;
329
- return arrayInt;
330
- }
331
- }
332
- data.unshift(1);
333
- 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;
334
315
  }
335
316
  function Mash() {
336
- let n = 0xefc8249d;
337
- const mash = function (data) {
338
- for (let i = 0; i < data.length; i++) {
339
- n += data.charCodeAt(i);
340
- let h = 0.02519603282416938 * n;
341
- n = h >>> 0;
342
- h -= n;
343
- h *= n;
344
- n = h >>> 0;
345
- h -= n;
346
- n += h * 0x100000000; // 2^32
347
- }
348
- return (n >>> 0) * 2.3283064365386963e-10; // 2^-32
349
- };
350
- 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;
351
332
  }
333
+ //#endregion
334
+ export { Buffer, Data, TestRandom, TestRandomTag, addArrayIntToNew, addOneToPositiveArrayInt, substractArrayIntToNew, trimArrayIntInplace };
335
+
352
336
  //# sourceMappingURL=definition.mjs.map