@fgv/ts-random 5.1.0-19 → 5.1.0-21

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 (273) hide show
  1. package/package.json +6 -6
  2. package/.rush/temp/chunked-rush-logs/ts-random.build.chunks.jsonl +0 -6
  3. package/.rush/temp/fba88d771243a88edd09f745ba7194831032f604.tar.log +0 -121
  4. package/.rush/temp/operation/build/all.log +0 -6
  5. package/.rush/temp/operation/build/log-chunks.jsonl +0 -6
  6. package/.rush/temp/operation/build/state.json +0 -3
  7. package/.rush/temp/shrinkwrap-deps.json +0 -614
  8. package/config/jest.config.json +0 -13
  9. package/config/rig.json +0 -4
  10. package/config/typedoc.json +0 -7
  11. package/dist/test/unit/generators.test.js +0 -596
  12. package/dist/test/unit/generators.test.js.map +0 -1
  13. package/dist/test/unit/randomSource.test.js +0 -452
  14. package/dist/test/unit/randomSource.test.js.map +0 -1
  15. package/docs/Chars/README.md +0 -152
  16. package/docs/Chars/variables/all.md +0 -9
  17. package/docs/Chars/variables/alphanumeric.md +0 -9
  18. package/docs/Chars/variables/base64.md +0 -9
  19. package/docs/Chars/variables/base64Url.md +0 -9
  20. package/docs/Chars/variables/base64UrlNoPadding.md +0 -9
  21. package/docs/Chars/variables/digits.md +0 -9
  22. package/docs/Chars/variables/hex.md +0 -9
  23. package/docs/Chars/variables/hexDigits.md +0 -9
  24. package/docs/Chars/variables/hexDigitsUpper.md +0 -9
  25. package/docs/Chars/variables/letters.md +0 -9
  26. package/docs/Chars/variables/lowerCase.md +0 -9
  27. package/docs/Chars/variables/printable.md +0 -9
  28. package/docs/Chars/variables/symbols.md +0 -9
  29. package/docs/Chars/variables/upperCase.md +0 -9
  30. package/docs/Chars/variables/whitespace.md +0 -9
  31. package/docs/Generator/README.md +0 -144
  32. package/docs/Generator/classes/PseudoRandomGenerator.clone.md +0 -17
  33. package/docs/Generator/classes/PseudoRandomGenerator.create.md +0 -24
  34. package/docs/Generator/classes/PseudoRandomGenerator.createChild.md +0 -24
  35. package/docs/Generator/classes/PseudoRandomGenerator.ensureRng.md +0 -25
  36. package/docs/Generator/classes/PseudoRandomGenerator.getGlobalRng.md +0 -17
  37. package/docs/Generator/classes/PseudoRandomGenerator.md +0 -258
  38. package/docs/Generator/classes/PseudoRandomGenerator.nextBoolean.md +0 -24
  39. package/docs/Generator/classes/PseudoRandomGenerator.nextFloat.md +0 -17
  40. package/docs/Generator/classes/PseudoRandomGenerator.nextInRange.md +0 -25
  41. package/docs/Generator/classes/PseudoRandomGenerator.nextInt.md +0 -24
  42. package/docs/Generator/classes/PseudoRandomGenerator.nextString.md +0 -25
  43. package/docs/Generator/classes/PseudoRandomGenerator.pickNext.md +0 -24
  44. package/docs/Generator/classes/PseudoRandomGenerator.pickRandom.md +0 -25
  45. package/docs/Generator/classes/PseudoRandomGenerator.pickSequence.md +0 -24
  46. package/docs/Generator/classes/PseudoRandomGenerator.pickSequential.md +0 -25
  47. package/docs/Generator/classes/PseudoRandomGenerator.rng.md +0 -11
  48. package/docs/Generator/classes/PseudoRandomGenerator.setGlobalRng.md +0 -24
  49. package/docs/Generator/classes/SeededRandomSource.clone.md +0 -17
  50. package/docs/Generator/classes/SeededRandomSource.counter.md +0 -11
  51. package/docs/Generator/classes/SeededRandomSource.create.md +0 -24
  52. package/docs/Generator/classes/SeededRandomSource.createChild.md +0 -24
  53. package/docs/Generator/classes/SeededRandomSource.hashSeed.md +0 -24
  54. package/docs/Generator/classes/SeededRandomSource.hashStateAndLabel.md +0 -25
  55. package/docs/Generator/classes/SeededRandomSource.lineage.md +0 -9
  56. package/docs/Generator/classes/SeededRandomSource.md +0 -187
  57. package/docs/Generator/classes/SeededRandomSource.mulberryStep.md +0 -24
  58. package/docs/Generator/classes/SeededRandomSource.next.md +0 -17
  59. package/docs/Generator/classes/SeededRandomSource.seed.md +0 -9
  60. package/docs/Generator/interfaces/INextResult.md +0 -61
  61. package/docs/Generator/interfaces/INextResult.nextState.md +0 -9
  62. package/docs/Generator/interfaces/INextResult.value.md +0 -9
  63. package/docs/Generator/interfaces/IPseudoRandomGeneratorCreateParams.global.md +0 -9
  64. package/docs/Generator/interfaces/IPseudoRandomGeneratorCreateParams.md +0 -78
  65. package/docs/Generator/interfaces/IPseudoRandomGeneratorCreateParams.seed.md +0 -9
  66. package/docs/Generator/interfaces/IPseudoRandomGeneratorCreateParams.step.md +0 -9
  67. package/docs/Generator/interfaces/IRandomSequencePickParams.candidates.md +0 -9
  68. package/docs/Generator/interfaces/IRandomSequencePickParams.count.md +0 -9
  69. package/docs/Generator/interfaces/IRandomSequencePickParams.how.md +0 -9
  70. package/docs/Generator/interfaces/IRandomSequencePickParams.md +0 -79
  71. package/docs/Generator/interfaces/ISeedPair.md +0 -61
  72. package/docs/Generator/interfaces/ISeedPair.seed.md +0 -9
  73. package/docs/Generator/interfaces/ISeedPair.state.md +0 -9
  74. package/docs/Generator/interfaces/ISeededRandomSourceConstructorParams.counter.md +0 -9
  75. package/docs/Generator/interfaces/ISeededRandomSourceConstructorParams.lineage.md +0 -9
  76. package/docs/Generator/interfaces/ISeededRandomSourceConstructorParams.md +0 -112
  77. package/docs/Generator/interfaces/ISeededRandomSourceConstructorParams.seed.md +0 -9
  78. package/docs/Generator/interfaces/ISeededRandomSourceConstructorParams.state.md +0 -9
  79. package/docs/Generator/interfaces/ISeededRandomSourceConstructorParams.step.md +0 -9
  80. package/docs/Generator/interfaces/ISeededRandomSourceCreateParams.md +0 -61
  81. package/docs/Generator/interfaces/ISeededRandomSourceCreateParams.seed.md +0 -9
  82. package/docs/Generator/interfaces/ISeededRandomSourceCreateParams.step.md +0 -9
  83. package/docs/Generator/interfaces/ISequentialPickParams.candidates.md +0 -9
  84. package/docs/Generator/interfaces/ISequentialPickParams.count.md +0 -9
  85. package/docs/Generator/interfaces/ISequentialPickParams.how.md +0 -9
  86. package/docs/Generator/interfaces/ISequentialPickParams.md +0 -79
  87. package/docs/Generator/type-aliases/RandomStepFunction.md +0 -11
  88. package/docs/Generator/type-aliases/SequencePickParams.md +0 -11
  89. package/docs/GeneratorData/Chars/README.md +0 -152
  90. package/docs/GeneratorData/Chars/variables/all.md +0 -9
  91. package/docs/GeneratorData/Chars/variables/alphanumeric.md +0 -9
  92. package/docs/GeneratorData/Chars/variables/base64.md +0 -9
  93. package/docs/GeneratorData/Chars/variables/base64Url.md +0 -9
  94. package/docs/GeneratorData/Chars/variables/base64UrlNoPadding.md +0 -9
  95. package/docs/GeneratorData/Chars/variables/digits.md +0 -9
  96. package/docs/GeneratorData/Chars/variables/hex.md +0 -9
  97. package/docs/GeneratorData/Chars/variables/hexDigits.md +0 -9
  98. package/docs/GeneratorData/Chars/variables/hexDigitsUpper.md +0 -9
  99. package/docs/GeneratorData/Chars/variables/letters.md +0 -9
  100. package/docs/GeneratorData/Chars/variables/lowerCase.md +0 -9
  101. package/docs/GeneratorData/Chars/variables/printable.md +0 -9
  102. package/docs/GeneratorData/Chars/variables/symbols.md +0 -9
  103. package/docs/GeneratorData/Chars/variables/upperCase.md +0 -9
  104. package/docs/GeneratorData/Chars/variables/whitespace.md +0 -9
  105. package/docs/GeneratorData/README.md +0 -35
  106. package/docs/GeneratorData/Words/README.md +0 -125
  107. package/docs/GeneratorData/Words/variables/Adjectives.md +0 -7
  108. package/docs/GeneratorData/Words/variables/Animals.md +0 -7
  109. package/docs/GeneratorData/Words/variables/Cities.md +0 -7
  110. package/docs/GeneratorData/Words/variables/Colors.md +0 -7
  111. package/docs/GeneratorData/Words/variables/Countries.md +0 -7
  112. package/docs/GeneratorData/Words/variables/Domains.md +0 -7
  113. package/docs/GeneratorData/Words/variables/FamilyNames.md +0 -9
  114. package/docs/GeneratorData/Words/variables/FirstNames.md +0 -9
  115. package/docs/GeneratorData/Words/variables/FirstNamesFemale.md +0 -9
  116. package/docs/GeneratorData/Words/variables/FirstNamesMale.md +0 -9
  117. package/docs/GeneratorData/Words/variables/Gerunds.md +0 -7
  118. package/docs/GeneratorData/Words/variables/jobs.md +0 -7
  119. package/docs/GeneratorData/variables/Adjectives.md +0 -7
  120. package/docs/GeneratorData/variables/Animals.md +0 -7
  121. package/docs/GeneratorData/variables/Cities.md +0 -7
  122. package/docs/GeneratorData/variables/Colors.md +0 -7
  123. package/docs/GeneratorData/variables/Countries.md +0 -7
  124. package/docs/GeneratorData/variables/Domains.md +0 -7
  125. package/docs/GeneratorData/variables/FamilyNames.md +0 -9
  126. package/docs/GeneratorData/variables/FirstNames.md +0 -9
  127. package/docs/GeneratorData/variables/FirstNamesFemale.md +0 -9
  128. package/docs/GeneratorData/variables/FirstNamesMale.md +0 -9
  129. package/docs/GeneratorData/variables/Gerunds.md +0 -7
  130. package/docs/GeneratorData/variables/all.md +0 -9
  131. package/docs/GeneratorData/variables/alphanumeric.md +0 -9
  132. package/docs/GeneratorData/variables/base64.md +0 -9
  133. package/docs/GeneratorData/variables/base64Url.md +0 -9
  134. package/docs/GeneratorData/variables/base64UrlNoPadding.md +0 -9
  135. package/docs/GeneratorData/variables/digits.md +0 -9
  136. package/docs/GeneratorData/variables/hex.md +0 -9
  137. package/docs/GeneratorData/variables/hexDigits.md +0 -9
  138. package/docs/GeneratorData/variables/hexDigitsUpper.md +0 -9
  139. package/docs/GeneratorData/variables/jobs.md +0 -7
  140. package/docs/GeneratorData/variables/letters.md +0 -9
  141. package/docs/GeneratorData/variables/lowerCase.md +0 -9
  142. package/docs/GeneratorData/variables/printable.md +0 -9
  143. package/docs/GeneratorData/variables/symbols.md +0 -9
  144. package/docs/GeneratorData/variables/upperCase.md +0 -9
  145. package/docs/GeneratorData/variables/whitespace.md +0 -9
  146. package/docs/README.md +0 -35
  147. package/docs/Words/README.md +0 -125
  148. package/docs/Words/variables/Adjectives.md +0 -7
  149. package/docs/Words/variables/Animals.md +0 -7
  150. package/docs/Words/variables/Cities.md +0 -7
  151. package/docs/Words/variables/Colors.md +0 -7
  152. package/docs/Words/variables/Countries.md +0 -7
  153. package/docs/Words/variables/Domains.md +0 -7
  154. package/docs/Words/variables/FamilyNames.md +0 -9
  155. package/docs/Words/variables/FirstNames.md +0 -9
  156. package/docs/Words/variables/FirstNamesFemale.md +0 -9
  157. package/docs/Words/variables/FirstNamesMale.md +0 -9
  158. package/docs/Words/variables/Gerunds.md +0 -7
  159. package/docs/Words/variables/jobs.md +0 -7
  160. package/docs/classes/PseudoRandomGenerator.clone.md +0 -17
  161. package/docs/classes/PseudoRandomGenerator.create.md +0 -24
  162. package/docs/classes/PseudoRandomGenerator.createChild.md +0 -24
  163. package/docs/classes/PseudoRandomGenerator.ensureRng.md +0 -25
  164. package/docs/classes/PseudoRandomGenerator.getGlobalRng.md +0 -17
  165. package/docs/classes/PseudoRandomGenerator.md +0 -258
  166. package/docs/classes/PseudoRandomGenerator.nextBoolean.md +0 -24
  167. package/docs/classes/PseudoRandomGenerator.nextFloat.md +0 -17
  168. package/docs/classes/PseudoRandomGenerator.nextInRange.md +0 -25
  169. package/docs/classes/PseudoRandomGenerator.nextInt.md +0 -24
  170. package/docs/classes/PseudoRandomGenerator.nextString.md +0 -25
  171. package/docs/classes/PseudoRandomGenerator.pickNext.md +0 -24
  172. package/docs/classes/PseudoRandomGenerator.pickRandom.md +0 -25
  173. package/docs/classes/PseudoRandomGenerator.pickSequence.md +0 -24
  174. package/docs/classes/PseudoRandomGenerator.pickSequential.md +0 -25
  175. package/docs/classes/PseudoRandomGenerator.rng.md +0 -11
  176. package/docs/classes/PseudoRandomGenerator.setGlobalRng.md +0 -24
  177. package/docs/classes/SeededRandomSource.clone.md +0 -17
  178. package/docs/classes/SeededRandomSource.counter.md +0 -11
  179. package/docs/classes/SeededRandomSource.create.md +0 -24
  180. package/docs/classes/SeededRandomSource.createChild.md +0 -24
  181. package/docs/classes/SeededRandomSource.hashSeed.md +0 -24
  182. package/docs/classes/SeededRandomSource.hashStateAndLabel.md +0 -25
  183. package/docs/classes/SeededRandomSource.lineage.md +0 -9
  184. package/docs/classes/SeededRandomSource.md +0 -187
  185. package/docs/classes/SeededRandomSource.mulberryStep.md +0 -24
  186. package/docs/classes/SeededRandomSource.next.md +0 -17
  187. package/docs/classes/SeededRandomSource.seed.md +0 -9
  188. package/docs/interfaces/INextResult.md +0 -61
  189. package/docs/interfaces/INextResult.nextState.md +0 -9
  190. package/docs/interfaces/INextResult.value.md +0 -9
  191. package/docs/interfaces/IPseudoRandomGeneratorCreateParams.global.md +0 -9
  192. package/docs/interfaces/IPseudoRandomGeneratorCreateParams.md +0 -78
  193. package/docs/interfaces/IPseudoRandomGeneratorCreateParams.seed.md +0 -9
  194. package/docs/interfaces/IPseudoRandomGeneratorCreateParams.step.md +0 -9
  195. package/docs/interfaces/IRandomSequencePickParams.candidates.md +0 -9
  196. package/docs/interfaces/IRandomSequencePickParams.count.md +0 -9
  197. package/docs/interfaces/IRandomSequencePickParams.how.md +0 -9
  198. package/docs/interfaces/IRandomSequencePickParams.md +0 -79
  199. package/docs/interfaces/ISeedPair.md +0 -61
  200. package/docs/interfaces/ISeedPair.seed.md +0 -9
  201. package/docs/interfaces/ISeedPair.state.md +0 -9
  202. package/docs/interfaces/ISeededRandomSourceConstructorParams.counter.md +0 -9
  203. package/docs/interfaces/ISeededRandomSourceConstructorParams.lineage.md +0 -9
  204. package/docs/interfaces/ISeededRandomSourceConstructorParams.md +0 -112
  205. package/docs/interfaces/ISeededRandomSourceConstructorParams.seed.md +0 -9
  206. package/docs/interfaces/ISeededRandomSourceConstructorParams.state.md +0 -9
  207. package/docs/interfaces/ISeededRandomSourceConstructorParams.step.md +0 -9
  208. package/docs/interfaces/ISeededRandomSourceCreateParams.md +0 -61
  209. package/docs/interfaces/ISeededRandomSourceCreateParams.seed.md +0 -9
  210. package/docs/interfaces/ISeededRandomSourceCreateParams.step.md +0 -9
  211. package/docs/interfaces/ISequentialPickParams.candidates.md +0 -9
  212. package/docs/interfaces/ISequentialPickParams.count.md +0 -9
  213. package/docs/interfaces/ISequentialPickParams.how.md +0 -9
  214. package/docs/interfaces/ISequentialPickParams.md +0 -79
  215. package/docs/type-aliases/RandomStepFunction.md +0 -11
  216. package/docs/type-aliases/SequencePickParams.md +0 -11
  217. package/docs/variables/Adjectives.md +0 -7
  218. package/docs/variables/Animals.md +0 -7
  219. package/docs/variables/Cities.md +0 -7
  220. package/docs/variables/Colors.md +0 -7
  221. package/docs/variables/Countries.md +0 -7
  222. package/docs/variables/Domains.md +0 -7
  223. package/docs/variables/FamilyNames.md +0 -9
  224. package/docs/variables/FirstNames.md +0 -9
  225. package/docs/variables/FirstNamesFemale.md +0 -9
  226. package/docs/variables/FirstNamesMale.md +0 -9
  227. package/docs/variables/Gerunds.md +0 -7
  228. package/docs/variables/all.md +0 -9
  229. package/docs/variables/alphanumeric.md +0 -9
  230. package/docs/variables/base64.md +0 -9
  231. package/docs/variables/base64Url.md +0 -9
  232. package/docs/variables/base64UrlNoPadding.md +0 -9
  233. package/docs/variables/digits.md +0 -9
  234. package/docs/variables/hex.md +0 -9
  235. package/docs/variables/hexDigits.md +0 -9
  236. package/docs/variables/hexDigitsUpper.md +0 -9
  237. package/docs/variables/jobs.md +0 -7
  238. package/docs/variables/letters.md +0 -9
  239. package/docs/variables/lowerCase.md +0 -9
  240. package/docs/variables/printable.md +0 -9
  241. package/docs/variables/symbols.md +0 -9
  242. package/docs/variables/upperCase.md +0 -9
  243. package/docs/variables/whitespace.md +0 -9
  244. package/lib/test/unit/generators.test.d.ts +0 -2
  245. package/lib/test/unit/generators.test.d.ts.map +0 -1
  246. package/lib/test/unit/generators.test.js +0 -598
  247. package/lib/test/unit/generators.test.js.map +0 -1
  248. package/lib/test/unit/randomSource.test.d.ts +0 -2
  249. package/lib/test/unit/randomSource.test.d.ts.map +0 -1
  250. package/lib/test/unit/randomSource.test.js +0 -454
  251. package/lib/test/unit/randomSource.test.js.map +0 -1
  252. package/rush-logs/ts-random.build.cache.log +0 -3
  253. package/rush-logs/ts-random.build.log +0 -6
  254. package/src/generator/generators.ts +0 -273
  255. package/src/generator/index.ts +0 -22
  256. package/src/generator/randomSource.ts +0 -224
  257. package/src/generator-data/charClasses.ts +0 -95
  258. package/src/generator-data/index.ts +0 -22
  259. package/src/generator-data/words/adjectives.ts +0 -247
  260. package/src/generator-data/words/animals.ts +0 -75
  261. package/src/generator-data/words/cities.ts +0 -229
  262. package/src/generator-data/words/colors.ts +0 -56
  263. package/src/generator-data/words/countries.ts +0 -217
  264. package/src/generator-data/words/domains.ts +0 -47
  265. package/src/generator-data/words/gerunds.ts +0 -126
  266. package/src/generator-data/words/index.ts +0 -29
  267. package/src/generator-data/words/jobs.ts +0 -175
  268. package/src/generator-data/words/names.ts +0 -717
  269. package/src/index.ts +0 -7
  270. package/src/test/unit/generators.test.ts +0 -697
  271. package/src/test/unit/randomSource.test.ts +0 -526
  272. package/temp/build/typescript/ts_8nwakTlr.json +0 -1
  273. package/tsconfig.json +0 -7
@@ -1 +0,0 @@
1
- {"version":3,"file":"randomSource.test.js","sourceRoot":"","sources":["../../../src/test/unit/randomSource.test.ts"],"names":[],"mappings":"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","sourcesContent":["import '@fgv/ts-utils-jest';\n\nimport { RandomStepFunction, SeededRandomSource } from '../../generator';\n\n/**\n * A passthrough step function useful for testing: returns the state as the value\n * and increments the state by 1 each step, making sequences predictable.\n */\nconst passthroughStep: RandomStepFunction = (state: number) => {\n return {\n value: state,\n nextState: state + 1\n };\n};\n\nfunction createSource(seed: number | string): SeededRandomSource {\n return SeededRandomSource.create(seed).orThrow();\n}\n\nfunction readValues(source: SeededRandomSource, count: number): number[] {\n const values: number[] = [];\n for (let index = 0; index < count; index += 1) {\n values.push(source.next());\n }\n return values;\n}\n\ndescribe('SeededRandomSource', () => {\n describe('create', () => {\n test('succeeds with a numeric seed', () => {\n expect(SeededRandomSource.create(42)).toSucceedAndSatisfy((source) => {\n expect(source.seed).toBe('42');\n expect(source.counter).toBe(0);\n expect(source.lineage).toEqual([]);\n });\n });\n\n test('succeeds with a string seed', () => {\n expect(SeededRandomSource.create('hello')).toSucceedAndSatisfy((source) => {\n expect(source.seed).toBe('hello');\n expect(source.counter).toBe(0);\n expect(source.lineage).toEqual([]);\n });\n });\n\n test('succeeds with no seed using Date.now as fallback', () => {\n const nowSpy = jest.spyOn(Date, 'now').mockReturnValue(999);\n try {\n expect(SeededRandomSource.create()).toSucceedAndSatisfy((source) => {\n expect(source.seed).toBe('999');\n expect(source.counter).toBe(0);\n });\n } finally {\n nowSpy.mockRestore();\n }\n });\n\n test('unseeded sources created at different times produce different sequences', () => {\n const nowSpy = jest.spyOn(Date, 'now');\n nowSpy.mockReturnValueOnce(100);\n nowSpy.mockReturnValueOnce(200);\n try {\n const first = SeededRandomSource.create().orThrow();\n const second = SeededRandomSource.create().orThrow();\n expect(readValues(first, 4)).not.toEqual(readValues(second, 4));\n } finally {\n nowSpy.mockRestore();\n }\n });\n\n test('object-form initialization behaves like primitive initialization', () => {\n const primitive = createSource(12345);\n const object = SeededRandomSource.create({ seed: 12345 }).orThrow();\n expect(readValues(primitive, 4)).toEqual(readValues(object, 4));\n });\n\n test('object-form with custom step function uses that step', () => {\n expect(SeededRandomSource.create({ seed: 10, step: passthroughStep })).toSucceedAndSatisfy((source) => {\n expect(source.next()).toBe(10);\n expect(source.next()).toBe(11);\n expect(source.next()).toBe(12);\n });\n });\n\n test('object-form without seed falls back to Date.now', () => {\n const nowSpy = jest.spyOn(Date, 'now').mockReturnValue(555);\n try {\n expect(SeededRandomSource.create({ step: passthroughStep })).toSucceedAndSatisfy((source) => {\n expect(source.seed).toBe('555');\n expect(source.next()).toBe(555);\n });\n } finally {\n nowSpy.mockRestore();\n }\n });\n });\n\n describe('deterministic sequences', () => {\n test('same seed always produces the same sequence', () => {\n const first = createSource('deterministic');\n const second = createSource('deterministic');\n expect(readValues(first, 10)).toEqual(readValues(second, 10));\n });\n\n test('numeric and string forms of the same seed produce identical sequences', () => {\n const numeric = createSource(12345);\n const stringForm = createSource('12345');\n expect(readValues(numeric, 10)).toEqual(readValues(stringForm, 10));\n });\n\n test('different seeds produce different sequences', () => {\n const first = createSource('alpha');\n const second = createSource('beta');\n expect(readValues(first, 4)).not.toEqual(readValues(second, 4));\n });\n });\n\n describe('next', () => {\n test('counter increments with each call', () => {\n const source = createSource(1);\n expect(source.counter).toBe(0);\n source.next();\n expect(source.counter).toBe(1);\n source.next();\n source.next();\n expect(source.counter).toBe(3);\n });\n\n test('returns values in [0, 1) range over many iterations', () => {\n const source = createSource(42);\n for (let i = 0; i < 1000; i++) {\n const value = source.next();\n expect(value).toBeGreaterThanOrEqual(0);\n expect(value).toBeLessThan(1);\n }\n });\n\n test('sequence does not degenerate to constant values', () => {\n const source = createSource(42);\n const values = readValues(source, 100);\n const unique = new Set(values);\n // With 100 values from a proper PRNG, we expect many unique values\n expect(unique.size).toBeGreaterThan(90);\n });\n });\n\n describe('clone', () => {\n test('clone produces identical sequence from clone point', () => {\n const parent = createSource(7);\n parent.next();\n parent.next();\n\n const clone = parent.clone();\n expect(readValues(parent, 4)).toEqual(readValues(clone, 4));\n });\n\n test('clone preserves counter and lineage', () => {\n const parent = createSource(7);\n parent.next();\n parent.next();\n parent.next();\n\n const clone = parent.clone();\n expect(clone.counter).toBe(3);\n expect(clone.seed).toBe(parent.seed);\n expect(clone.lineage).toEqual(parent.lineage);\n });\n\n test('advancing clone does not affect parent', () => {\n const parent = createSource(7);\n parent.next();\n\n const clone = parent.clone();\n clone.next();\n clone.next();\n clone.next();\n\n // Parent should still be at counter 1 and produce its own next value\n expect(parent.counter).toBe(1);\n expect(clone.counter).toBe(4);\n\n // Parent's next value should differ from clone's (different positions)\n parent.next();\n clone.next();\n expect(parent.counter).toBe(2);\n expect(clone.counter).toBe(5);\n });\n\n test('clone of a child preserves child lineage', () => {\n const parent = createSource(7);\n parent.next();\n const child = parent.createChild('branch');\n child.next();\n child.next();\n\n const clone = child.clone();\n expect(clone.lineage).toEqual(['1:branch']);\n expect(clone.counter).toBe(2);\n expect(readValues(child, 4)).toEqual(readValues(clone, 4));\n });\n });\n\n describe('createChild', () => {\n test('child starts with counter at 0', () => {\n const parent = createSource(7);\n parent.next();\n parent.next();\n\n const child = parent.createChild('test');\n expect(child.counter).toBe(0);\n });\n\n test('child records lineage as counter:label', () => {\n const parent = createSource(7);\n parent.next();\n parent.next();\n parent.next();\n\n const child = parent.createChild('myLabel');\n expect(child.lineage).toEqual(['3:myLabel']);\n });\n\n test('grandchild accumulates lineage', () => {\n const parent = createSource(7);\n parent.next();\n parent.next();\n\n const child = parent.createChild('branch');\n child.next();\n\n const grandchild = child.createChild('leaf');\n expect(grandchild.lineage).toEqual(['2:branch', '1:leaf']);\n expect(grandchild.counter).toBe(0);\n });\n\n test('children with same label from same parent state are identical', () => {\n const parent1 = createSource(7);\n const parent2 = createSource(7);\n parent1.next();\n parent1.next();\n parent2.next();\n parent2.next();\n\n const child1 = parent1.createChild('same');\n const child2 = parent2.createChild('same');\n expect(readValues(child1, 10)).toEqual(readValues(child2, 10));\n });\n\n test('children with different labels produce different sequences', () => {\n const parent = createSource(7);\n parent.next();\n parent.next();\n\n const childA = parent.createChild('alpha');\n const childB = parent.createChild('beta');\n expect(readValues(childA, 4)).not.toEqual(readValues(childB, 4));\n });\n\n test('same label but different parent positions produce different children', () => {\n const early = createSource(7);\n const later = createSource(7);\n early.next();\n later.next();\n later.next();\n\n const earlyChild = early.createChild('shared');\n const laterChild = later.createChild('shared');\n expect(readValues(earlyChild, 4)).not.toEqual(readValues(laterChild, 4));\n });\n\n test('advancing child does not affect parent', () => {\n const parent = createSource(7);\n parent.next();\n parent.next();\n\n const child = parent.createChild('test');\n child.next();\n child.next();\n child.next();\n\n expect(parent.counter).toBe(2);\n expect(child.counter).toBe(3);\n });\n\n test('child uses same step function as parent', () => {\n const parent = SeededRandomSource.create({ seed: 10, step: passthroughStep }).orThrow();\n parent.next(); // advances state to 11\n\n const child = parent.createChild('x');\n // Child should use passthroughStep too. Its initial state comes from hashStateAndLabel\n // so value = hashed state, next call returns hashed state + 1\n const first = child.next();\n const second = child.next();\n expect(second - first).toBe(1); // passthroughStep increments by 1\n });\n\n test('child with empty label produces a valid source', () => {\n const parent = createSource(7);\n parent.next();\n\n const child = parent.createChild('');\n expect(child.lineage).toEqual(['1:']);\n expect(child.counter).toBe(0);\n // Should still produce valid numbers\n const value = child.next();\n expect(value).toBeGreaterThanOrEqual(0);\n expect(value).toBeLessThan(1);\n });\n });\n\n describe('hashSeed', () => {\n test('numeric input returns number as string seed and number as state', () => {\n const result = SeededRandomSource.hashSeed(42);\n expect(result).toEqual({ seed: '42', state: 42 });\n });\n\n test('numeric zero is handled correctly', () => {\n const result = SeededRandomSource.hashSeed(0);\n expect(result).toEqual({ seed: '0', state: 0 });\n });\n\n test('negative number is handled correctly', () => {\n const result = SeededRandomSource.hashSeed(-5);\n expect(result).toEqual({ seed: '-5', state: -5 });\n });\n\n test('string that parses as number uses numeric state', () => {\n const result = SeededRandomSource.hashSeed('123');\n expect(result).toEqual({ seed: '123', state: 123 });\n });\n\n test('string \"0\" parses as numeric zero', () => {\n const result = SeededRandomSource.hashSeed('0');\n expect(result).toEqual({ seed: '0', state: 0 });\n });\n\n test('non-numeric string is hashed to a state', () => {\n const result = SeededRandomSource.hashSeed('hello');\n expect(result.seed).toBe('hello');\n expect(typeof result.state).toBe('number');\n expect(result.state).toBeGreaterThanOrEqual(0);\n });\n\n test('same non-numeric string always produces same hash', () => {\n const first = SeededRandomSource.hashSeed('test-seed');\n const second = SeededRandomSource.hashSeed('test-seed');\n expect(first).toEqual(second);\n });\n\n test('different non-numeric strings produce different hashes', () => {\n const a = SeededRandomSource.hashSeed('alpha');\n const b = SeededRandomSource.hashSeed('beta');\n expect(a.state).not.toBe(b.state);\n });\n\n test('empty string is hashed (not treated as numeric)', () => {\n const result = SeededRandomSource.hashSeed('');\n expect(result.seed).toBe('');\n // Empty string: Number('') is 0, isFinite(0) is true, so state should be 0\n expect(result.state).toBe(0);\n });\n\n test('string \"Infinity\" is hashed as non-numeric', () => {\n const result = SeededRandomSource.hashSeed('Infinity');\n expect(result.seed).toBe('Infinity');\n // Number('Infinity') is Infinity, isFinite(Infinity) is false → hashed\n expect(typeof result.state).toBe('number');\n expect(result.state).not.toBe(Infinity);\n });\n\n test('string \"NaN\" is hashed as non-numeric', () => {\n const result = SeededRandomSource.hashSeed('NaN');\n expect(result.seed).toBe('NaN');\n // Number('NaN') is NaN, isNaN(NaN) is true → hashed\n expect(typeof result.state).toBe('number');\n expect(isNaN(result.state)).toBe(false);\n });\n\n test('floating point string is treated as numeric', () => {\n const result = SeededRandomSource.hashSeed('3.14');\n expect(result).toEqual({ seed: '3.14', state: 3.14 });\n });\n\n test('negative numeric string is treated as numeric', () => {\n const result = SeededRandomSource.hashSeed('-42');\n expect(result).toEqual({ seed: '-42', state: -42 });\n });\n });\n\n describe('hashStateAndLabel', () => {\n test('produces a seed string in \"state:label\" format', () => {\n const result = SeededRandomSource.hashStateAndLabel(100, 'test');\n expect(result.seed).toBe('100:test');\n });\n\n test('state is treated as unsigned 32-bit integer in seed string', () => {\n // -1 >>> 0 = 4294967295\n const result = SeededRandomSource.hashStateAndLabel(-1, 'label');\n expect(result.seed).toBe('4294967295:label');\n });\n\n test('same inputs produce same output', () => {\n const first = SeededRandomSource.hashStateAndLabel(42, 'branch');\n const second = SeededRandomSource.hashStateAndLabel(42, 'branch');\n expect(first).toEqual(second);\n });\n\n test('different states produce different results', () => {\n const a = SeededRandomSource.hashStateAndLabel(1, 'same');\n const b = SeededRandomSource.hashStateAndLabel(2, 'same');\n expect(a.state).not.toBe(b.state);\n });\n\n test('different labels produce different results', () => {\n const a = SeededRandomSource.hashStateAndLabel(42, 'alpha');\n const b = SeededRandomSource.hashStateAndLabel(42, 'beta');\n expect(a.state).not.toBe(b.state);\n });\n\n test('state value is a non-negative number from hash', () => {\n const result = SeededRandomSource.hashStateAndLabel(999, 'test');\n expect(result.state).toBeGreaterThanOrEqual(0);\n });\n });\n\n describe('mulberryStep', () => {\n test('returns value in [0, 1) range', () => {\n const result = SeededRandomSource.mulberryStep(42);\n expect(result.value).toBeGreaterThanOrEqual(0);\n expect(result.value).toBeLessThan(1);\n });\n\n test('advances state deterministically', () => {\n const first = SeededRandomSource.mulberryStep(42);\n const second = SeededRandomSource.mulberryStep(42);\n expect(first).toEqual(second);\n });\n\n test('different states produce different results', () => {\n const a = SeededRandomSource.mulberryStep(1);\n const b = SeededRandomSource.mulberryStep(2);\n expect(a.value).not.toBe(b.value);\n expect(a.nextState).not.toBe(b.nextState);\n });\n\n test('nextState is an unsigned 32-bit integer', () => {\n const result = SeededRandomSource.mulberryStep(0);\n expect(result.nextState).toBeGreaterThanOrEqual(0);\n expect(result.nextState).toBeLessThanOrEqual(0xffffffff);\n expect(Number.isInteger(result.nextState)).toBe(true);\n });\n\n test('state 0 produces valid output', () => {\n const result = SeededRandomSource.mulberryStep(0);\n expect(result.value).toBeGreaterThanOrEqual(0);\n expect(result.value).toBeLessThan(1);\n // nextState should be 0x6D2B79F5 (the constant added)\n expect(result.nextState).toBe(0x6d2b79f5);\n });\n\n test('produces [0,1) values across many states', () => {\n let state = 12345;\n for (let i = 0; i < 1000; i++) {\n const result = SeededRandomSource.mulberryStep(state);\n expect(result.value).toBeGreaterThanOrEqual(0);\n expect(result.value).toBeLessThan(1);\n state = result.nextState;\n }\n });\n });\n\n describe('seed edge cases', () => {\n test('seed 0 produces a valid source', () => {\n expect(SeededRandomSource.create(0)).toSucceedAndSatisfy((source) => {\n expect(source.seed).toBe('0');\n const value = source.next();\n expect(value).toBeGreaterThanOrEqual(0);\n expect(value).toBeLessThan(1);\n });\n });\n\n test('negative seed produces a valid source', () => {\n expect(SeededRandomSource.create(-1)).toSucceedAndSatisfy((source) => {\n expect(source.seed).toBe('-1');\n const value = source.next();\n expect(value).toBeGreaterThanOrEqual(0);\n expect(value).toBeLessThan(1);\n });\n });\n\n test('very large numeric seed produces a valid source', () => {\n expect(SeededRandomSource.create(Number.MAX_SAFE_INTEGER)).toSucceedAndSatisfy((source) => {\n const value = source.next();\n expect(value).toBeGreaterThanOrEqual(0);\n expect(value).toBeLessThan(1);\n });\n });\n\n test('empty string seed produces a valid source', () => {\n expect(SeededRandomSource.create('')).toSucceedAndSatisfy((source) => {\n expect(source.seed).toBe('');\n const value = source.next();\n expect(value).toBeGreaterThanOrEqual(0);\n expect(value).toBeLessThan(1);\n });\n });\n\n test('whitespace string seed produces a valid source', () => {\n expect(SeededRandomSource.create(' ')).toSucceedAndSatisfy((source) => {\n expect(source.seed).toBe(' ');\n const value = source.next();\n expect(value).toBeGreaterThanOrEqual(0);\n expect(value).toBeLessThan(1);\n });\n });\n\n test('unicode string seed produces a valid source', () => {\n expect(SeededRandomSource.create('🎲🎰')).toSucceedAndSatisfy((source) => {\n expect(source.seed).toBe('🎲🎰');\n const value = source.next();\n expect(value).toBeGreaterThanOrEqual(0);\n expect(value).toBeLessThan(1);\n });\n });\n });\n});\n"]}
@@ -1,152 +0,0 @@
1
- [Home](../README.md) > Chars
2
-
3
- # Namespace: Chars
4
-
5
- ## Variables
6
-
7
- <table><thead><tr><th>
8
-
9
- Name
10
-
11
- </th><th>
12
-
13
- Description
14
-
15
- </th></tr></thead>
16
- <tbody>
17
- <tr><td>
18
-
19
- [lowerCase](./variables/lowerCase.md)
20
-
21
- </td><td>
22
-
23
- Lowercase letters
24
-
25
- </td></tr>
26
- <tr><td>
27
-
28
- [upperCase](./variables/upperCase.md)
29
-
30
- </td><td>
31
-
32
- Uppercase letters
33
-
34
- </td></tr>
35
- <tr><td>
36
-
37
- [digits](./variables/digits.md)
38
-
39
- </td><td>
40
-
41
- Digits
42
-
43
- </td></tr>
44
- <tr><td>
45
-
46
- [letters](./variables/letters.md)
47
-
48
- </td><td>
49
-
50
- Letters
51
-
52
- </td></tr>
53
- <tr><td>
54
-
55
- [alphanumeric](./variables/alphanumeric.md)
56
-
57
- </td><td>
58
-
59
- Alphanumeric
60
-
61
- </td></tr>
62
- <tr><td>
63
-
64
- [symbols](./variables/symbols.md)
65
-
66
- </td><td>
67
-
68
- Symbols
69
-
70
- </td></tr>
71
- <tr><td>
72
-
73
- [whitespace](./variables/whitespace.md)
74
-
75
- </td><td>
76
-
77
- Whitespace
78
-
79
- </td></tr>
80
- <tr><td>
81
-
82
- [printable](./variables/printable.md)
83
-
84
- </td><td>
85
-
86
- Printable
87
-
88
- </td></tr>
89
- <tr><td>
90
-
91
- [all](./variables/all.md)
92
-
93
- </td><td>
94
-
95
- All
96
-
97
- </td></tr>
98
- <tr><td>
99
-
100
- [hexDigits](./variables/hexDigits.md)
101
-
102
- </td><td>
103
-
104
- Hex digits
105
-
106
- </td></tr>
107
- <tr><td>
108
-
109
- [hexDigitsUpper](./variables/hexDigitsUpper.md)
110
-
111
- </td><td>
112
-
113
- Hex digits upper
114
-
115
- </td></tr>
116
- <tr><td>
117
-
118
- [hex](./variables/hex.md)
119
-
120
- </td><td>
121
-
122
- Hex
123
-
124
- </td></tr>
125
- <tr><td>
126
-
127
- [base64](./variables/base64.md)
128
-
129
- </td><td>
130
-
131
- Base64
132
-
133
- </td></tr>
134
- <tr><td>
135
-
136
- [base64Url](./variables/base64Url.md)
137
-
138
- </td><td>
139
-
140
- Base64 URL
141
-
142
- </td></tr>
143
- <tr><td>
144
-
145
- [base64UrlNoPadding](./variables/base64UrlNoPadding.md)
146
-
147
- </td><td>
148
-
149
- Base64 URL no padding
150
-
151
- </td></tr>
152
- </tbody></table>
@@ -1,9 +0,0 @@
1
- [Home](../../README.md) > [Chars](../README.md) > all
2
-
3
- # Variable: all
4
-
5
- All
6
-
7
- ## Type
8
-
9
- `string`
@@ -1,9 +0,0 @@
1
- [Home](../../README.md) > [Chars](../README.md) > alphanumeric
2
-
3
- # Variable: alphanumeric
4
-
5
- Alphanumeric
6
-
7
- ## Type
8
-
9
- `string`
@@ -1,9 +0,0 @@
1
- [Home](../../README.md) > [Chars](../README.md) > base64
2
-
3
- # Variable: base64
4
-
5
- Base64
6
-
7
- ## Type
8
-
9
- `string`
@@ -1,9 +0,0 @@
1
- [Home](../../README.md) > [Chars](../README.md) > base64Url
2
-
3
- # Variable: base64Url
4
-
5
- Base64 URL
6
-
7
- ## Type
8
-
9
- `string`
@@ -1,9 +0,0 @@
1
- [Home](../../README.md) > [Chars](../README.md) > base64UrlNoPadding
2
-
3
- # Variable: base64UrlNoPadding
4
-
5
- Base64 URL no padding
6
-
7
- ## Type
8
-
9
- `string`
@@ -1,9 +0,0 @@
1
- [Home](../../README.md) > [Chars](../README.md) > digits
2
-
3
- # Variable: digits
4
-
5
- Digits
6
-
7
- ## Type
8
-
9
- `string`
@@ -1,9 +0,0 @@
1
- [Home](../../README.md) > [Chars](../README.md) > hex
2
-
3
- # Variable: hex
4
-
5
- Hex
6
-
7
- ## Type
8
-
9
- `string`
@@ -1,9 +0,0 @@
1
- [Home](../../README.md) > [Chars](../README.md) > hexDigits
2
-
3
- # Variable: hexDigits
4
-
5
- Hex digits
6
-
7
- ## Type
8
-
9
- `string`
@@ -1,9 +0,0 @@
1
- [Home](../../README.md) > [Chars](../README.md) > hexDigitsUpper
2
-
3
- # Variable: hexDigitsUpper
4
-
5
- Hex digits upper
6
-
7
- ## Type
8
-
9
- `string`
@@ -1,9 +0,0 @@
1
- [Home](../../README.md) > [Chars](../README.md) > letters
2
-
3
- # Variable: letters
4
-
5
- Letters
6
-
7
- ## Type
8
-
9
- `string`
@@ -1,9 +0,0 @@
1
- [Home](../../README.md) > [Chars](../README.md) > lowerCase
2
-
3
- # Variable: lowerCase
4
-
5
- Lowercase letters
6
-
7
- ## Type
8
-
9
- `string`
@@ -1,9 +0,0 @@
1
- [Home](../../README.md) > [Chars](../README.md) > printable
2
-
3
- # Variable: printable
4
-
5
- Printable
6
-
7
- ## Type
8
-
9
- `string`
@@ -1,9 +0,0 @@
1
- [Home](../../README.md) > [Chars](../README.md) > symbols
2
-
3
- # Variable: symbols
4
-
5
- Symbols
6
-
7
- ## Type
8
-
9
- `string`
@@ -1,9 +0,0 @@
1
- [Home](../../README.md) > [Chars](../README.md) > upperCase
2
-
3
- # Variable: upperCase
4
-
5
- Uppercase letters
6
-
7
- ## Type
8
-
9
- `string`
@@ -1,9 +0,0 @@
1
- [Home](../../README.md) > [Chars](../README.md) > whitespace
2
-
3
- # Variable: whitespace
4
-
5
- Whitespace
6
-
7
- ## Type
8
-
9
- `string`
@@ -1,144 +0,0 @@
1
- [Home](../README.md) > Generator
2
-
3
- # Namespace: Generator
4
-
5
- ## Classes
6
-
7
- <table><thead><tr><th>
8
-
9
- Name
10
-
11
- </th><th>
12
-
13
- Description
14
-
15
- </th></tr></thead>
16
- <tbody>
17
- <tr><td>
18
-
19
- [SeededRandomSource](./classes/SeededRandomSource.md)
20
-
21
- </td><td>
22
-
23
- Seeded random number generator that can be cloned and used for deterministic generation.
24
-
25
- </td></tr>
26
- <tr><td>
27
-
28
- [PseudoRandomGenerator](./classes/PseudoRandomGenerator.md)
29
-
30
- </td><td>
31
-
32
- A pseudo-random number generator that can be used to generate random values
33
-
34
- </td></tr>
35
- </tbody></table>
36
-
37
- ## Interfaces
38
-
39
- <table><thead><tr><th>
40
-
41
- Name
42
-
43
- </th><th>
44
-
45
- Description
46
-
47
- </th></tr></thead>
48
- <tbody>
49
- <tr><td>
50
-
51
- [ISeedPair](./interfaces/ISeedPair.md)
52
-
53
- </td><td>
54
-
55
- Represents a seed as both a string and a number.
56
-
57
- </td></tr>
58
- <tr><td>
59
-
60
- [INextResult](./interfaces/INextResult.md)
61
-
62
- </td><td>
63
-
64
- Result of an internal next() operation.
65
-
66
- </td></tr>
67
- <tr><td>
68
-
69
- [ISeededRandomSourceConstructorParams](./interfaces/ISeededRandomSourceConstructorParams.md)
70
-
71
- </td><td>
72
-
73
- Constructor params for a Generator.SeededRandomSource | SeededRandomSource.
74
-
75
- </td></tr>
76
- <tr><td>
77
-
78
- [ISeededRandomSourceCreateParams](./interfaces/ISeededRandomSourceCreateParams.md)
79
-
80
- </td><td>
81
-
82
- Static create parameters for a Generator.SeededRandomSource | SeededRandomSource.
83
-
84
- </td></tr>
85
- <tr><td>
86
-
87
- [IPseudoRandomGeneratorCreateParams](./interfaces/IPseudoRandomGeneratorCreateParams.md)
88
-
89
- </td><td>
90
-
91
- Parameters for creating a generator.
92
-
93
- </td></tr>
94
- <tr><td>
95
-
96
- [ISequentialPickParams](./interfaces/ISequentialPickParams.md)
97
-
98
- </td><td>
99
-
100
- Parameters for generating a sequence of values
101
-
102
- </td></tr>
103
- <tr><td>
104
-
105
- [IRandomSequencePickParams](./interfaces/IRandomSequencePickParams.md)
106
-
107
- </td><td>
108
-
109
- Parameters for generating a sequence of values
110
-
111
- </td></tr>
112
- </tbody></table>
113
-
114
- ## Type Aliases
115
-
116
- <table><thead><tr><th>
117
-
118
- Name
119
-
120
- </th><th>
121
-
122
- Description
123
-
124
- </th></tr></thead>
125
- <tbody>
126
- <tr><td>
127
-
128
- [RandomStepFunction](./type-aliases/RandomStepFunction.md)
129
-
130
- </td><td>
131
-
132
- Function that steps a random number generator state and returns the next value.
133
-
134
- </td></tr>
135
- <tr><td>
136
-
137
- [SequencePickParams](./type-aliases/SequencePickParams.md)
138
-
139
- </td><td>
140
-
141
- Type representing parameters for generating a sequence of values.
142
-
143
- </td></tr>
144
- </tbody></table>
@@ -1,17 +0,0 @@
1
- [Home](../../README.md) > [Generator](../README.md) > [PseudoRandomGenerator](./PseudoRandomGenerator.md) > clone
2
-
3
- ## PseudoRandomGenerator.clone() method
4
-
5
- Creates a clone of this generator.
6
-
7
- **Signature:**
8
-
9
- ```typescript
10
- clone(): PseudoRandomGenerator;
11
- ```
12
-
13
- **Returns:**
14
-
15
- [PseudoRandomGenerator](../../classes/PseudoRandomGenerator.md)
16
-
17
- A new generator with the same state.
@@ -1,24 +0,0 @@
1
- [Home](../../README.md) > [Generator](../README.md) > [PseudoRandomGenerator](./PseudoRandomGenerator.md) > create
2
-
3
- ## PseudoRandomGenerator.create() method
4
-
5
- Creates a new pseudo-random number generator.
6
-
7
- **Signature:**
8
-
9
- ```typescript
10
- static create(params: IPseudoRandomGeneratorCreateParams): Result<PseudoRandomGenerator>;
11
- ```
12
-
13
- **Parameters:**
14
-
15
- <table><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead>
16
- <tbody>
17
- <tr><td>params</td><td>IPseudoRandomGeneratorCreateParams</td><td>The parameters for creating the generator.</td></tr>
18
- </tbody></table>
19
-
20
- **Returns:**
21
-
22
- Result&lt;[PseudoRandomGenerator](../../classes/PseudoRandomGenerator.md)&gt;
23
-
24
- A result containing the new generator or an error.
@@ -1,24 +0,0 @@
1
- [Home](../../README.md) > [Generator](../README.md) > [PseudoRandomGenerator](./PseudoRandomGenerator.md) > createChild
2
-
3
- ## PseudoRandomGenerator.createChild() method
4
-
5
- Creates a child generator with the given label.
6
-
7
- **Signature:**
8
-
9
- ```typescript
10
- createChild(label: string): PseudoRandomGenerator;
11
- ```
12
-
13
- **Parameters:**
14
-
15
- <table><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead>
16
- <tbody>
17
- <tr><td>label</td><td>string</td><td>The label for the child generator.</td></tr>
18
- </tbody></table>
19
-
20
- **Returns:**
21
-
22
- [PseudoRandomGenerator](../../classes/PseudoRandomGenerator.md)
23
-
24
- A new generator with the given label.
@@ -1,25 +0,0 @@
1
- [Home](../../README.md) > [Generator](../README.md) > [PseudoRandomGenerator](./PseudoRandomGenerator.md) > ensureRng
2
-
3
- ## PseudoRandomGenerator.ensureRng() method
4
-
5
- Ensures a random number generator is available, using the global generator if available
6
- or creating a new one if not.
7
-
8
- **Signature:**
9
-
10
- ```typescript
11
- static ensureRng(rng?: PseudoRandomGenerator): Result<PseudoRandomGenerator>;
12
- ```
13
-
14
- **Parameters:**
15
-
16
- <table><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead>
17
- <tbody>
18
- <tr><td>rng</td><td>PseudoRandomGenerator</td><td>The random number generator to use, or undefined to use the global one.</td></tr>
19
- </tbody></table>
20
-
21
- **Returns:**
22
-
23
- Result&lt;[PseudoRandomGenerator](../../classes/PseudoRandomGenerator.md)&gt;
24
-
25
- A random number generator.
@@ -1,17 +0,0 @@
1
- [Home](../../README.md) > [Generator](../README.md) > [PseudoRandomGenerator](./PseudoRandomGenerator.md) > getGlobalRng
2
-
3
- ## PseudoRandomGenerator.getGlobalRng() method
4
-
5
- Gets the global random number generator.
6
-
7
- **Signature:**
8
-
9
- ```typescript
10
- static getGlobalRng(): PseudoRandomGenerator | undefined;
11
- ```
12
-
13
- **Returns:**
14
-
15
- [PseudoRandomGenerator](../../classes/PseudoRandomGenerator.md) | undefined
16
-
17
- The global random number generator or undefined if not set.