@fgv/ts-random 5.1.0-19 → 5.1.0-20
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.
- package/package.json +6 -6
- package/.rush/temp/chunked-rush-logs/ts-random.build.chunks.jsonl +0 -6
- package/.rush/temp/fba88d771243a88edd09f745ba7194831032f604.tar.log +0 -121
- package/.rush/temp/operation/build/all.log +0 -6
- package/.rush/temp/operation/build/log-chunks.jsonl +0 -6
- package/.rush/temp/operation/build/state.json +0 -3
- package/.rush/temp/shrinkwrap-deps.json +0 -614
- package/config/jest.config.json +0 -13
- package/config/rig.json +0 -4
- package/config/typedoc.json +0 -7
- package/dist/test/unit/generators.test.js +0 -596
- package/dist/test/unit/generators.test.js.map +0 -1
- package/dist/test/unit/randomSource.test.js +0 -452
- package/dist/test/unit/randomSource.test.js.map +0 -1
- package/docs/Chars/README.md +0 -152
- package/docs/Chars/variables/all.md +0 -9
- package/docs/Chars/variables/alphanumeric.md +0 -9
- package/docs/Chars/variables/base64.md +0 -9
- package/docs/Chars/variables/base64Url.md +0 -9
- package/docs/Chars/variables/base64UrlNoPadding.md +0 -9
- package/docs/Chars/variables/digits.md +0 -9
- package/docs/Chars/variables/hex.md +0 -9
- package/docs/Chars/variables/hexDigits.md +0 -9
- package/docs/Chars/variables/hexDigitsUpper.md +0 -9
- package/docs/Chars/variables/letters.md +0 -9
- package/docs/Chars/variables/lowerCase.md +0 -9
- package/docs/Chars/variables/printable.md +0 -9
- package/docs/Chars/variables/symbols.md +0 -9
- package/docs/Chars/variables/upperCase.md +0 -9
- package/docs/Chars/variables/whitespace.md +0 -9
- package/docs/Generator/README.md +0 -144
- package/docs/Generator/classes/PseudoRandomGenerator.clone.md +0 -17
- package/docs/Generator/classes/PseudoRandomGenerator.create.md +0 -24
- package/docs/Generator/classes/PseudoRandomGenerator.createChild.md +0 -24
- package/docs/Generator/classes/PseudoRandomGenerator.ensureRng.md +0 -25
- package/docs/Generator/classes/PseudoRandomGenerator.getGlobalRng.md +0 -17
- package/docs/Generator/classes/PseudoRandomGenerator.md +0 -258
- package/docs/Generator/classes/PseudoRandomGenerator.nextBoolean.md +0 -24
- package/docs/Generator/classes/PseudoRandomGenerator.nextFloat.md +0 -17
- package/docs/Generator/classes/PseudoRandomGenerator.nextInRange.md +0 -25
- package/docs/Generator/classes/PseudoRandomGenerator.nextInt.md +0 -24
- package/docs/Generator/classes/PseudoRandomGenerator.nextString.md +0 -25
- package/docs/Generator/classes/PseudoRandomGenerator.pickNext.md +0 -24
- package/docs/Generator/classes/PseudoRandomGenerator.pickRandom.md +0 -25
- package/docs/Generator/classes/PseudoRandomGenerator.pickSequence.md +0 -24
- package/docs/Generator/classes/PseudoRandomGenerator.pickSequential.md +0 -25
- package/docs/Generator/classes/PseudoRandomGenerator.rng.md +0 -11
- package/docs/Generator/classes/PseudoRandomGenerator.setGlobalRng.md +0 -24
- package/docs/Generator/classes/SeededRandomSource.clone.md +0 -17
- package/docs/Generator/classes/SeededRandomSource.counter.md +0 -11
- package/docs/Generator/classes/SeededRandomSource.create.md +0 -24
- package/docs/Generator/classes/SeededRandomSource.createChild.md +0 -24
- package/docs/Generator/classes/SeededRandomSource.hashSeed.md +0 -24
- package/docs/Generator/classes/SeededRandomSource.hashStateAndLabel.md +0 -25
- package/docs/Generator/classes/SeededRandomSource.lineage.md +0 -9
- package/docs/Generator/classes/SeededRandomSource.md +0 -187
- package/docs/Generator/classes/SeededRandomSource.mulberryStep.md +0 -24
- package/docs/Generator/classes/SeededRandomSource.next.md +0 -17
- package/docs/Generator/classes/SeededRandomSource.seed.md +0 -9
- package/docs/Generator/interfaces/INextResult.md +0 -61
- package/docs/Generator/interfaces/INextResult.nextState.md +0 -9
- package/docs/Generator/interfaces/INextResult.value.md +0 -9
- package/docs/Generator/interfaces/IPseudoRandomGeneratorCreateParams.global.md +0 -9
- package/docs/Generator/interfaces/IPseudoRandomGeneratorCreateParams.md +0 -78
- package/docs/Generator/interfaces/IPseudoRandomGeneratorCreateParams.seed.md +0 -9
- package/docs/Generator/interfaces/IPseudoRandomGeneratorCreateParams.step.md +0 -9
- package/docs/Generator/interfaces/IRandomSequencePickParams.candidates.md +0 -9
- package/docs/Generator/interfaces/IRandomSequencePickParams.count.md +0 -9
- package/docs/Generator/interfaces/IRandomSequencePickParams.how.md +0 -9
- package/docs/Generator/interfaces/IRandomSequencePickParams.md +0 -79
- package/docs/Generator/interfaces/ISeedPair.md +0 -61
- package/docs/Generator/interfaces/ISeedPair.seed.md +0 -9
- package/docs/Generator/interfaces/ISeedPair.state.md +0 -9
- package/docs/Generator/interfaces/ISeededRandomSourceConstructorParams.counter.md +0 -9
- package/docs/Generator/interfaces/ISeededRandomSourceConstructorParams.lineage.md +0 -9
- package/docs/Generator/interfaces/ISeededRandomSourceConstructorParams.md +0 -112
- package/docs/Generator/interfaces/ISeededRandomSourceConstructorParams.seed.md +0 -9
- package/docs/Generator/interfaces/ISeededRandomSourceConstructorParams.state.md +0 -9
- package/docs/Generator/interfaces/ISeededRandomSourceConstructorParams.step.md +0 -9
- package/docs/Generator/interfaces/ISeededRandomSourceCreateParams.md +0 -61
- package/docs/Generator/interfaces/ISeededRandomSourceCreateParams.seed.md +0 -9
- package/docs/Generator/interfaces/ISeededRandomSourceCreateParams.step.md +0 -9
- package/docs/Generator/interfaces/ISequentialPickParams.candidates.md +0 -9
- package/docs/Generator/interfaces/ISequentialPickParams.count.md +0 -9
- package/docs/Generator/interfaces/ISequentialPickParams.how.md +0 -9
- package/docs/Generator/interfaces/ISequentialPickParams.md +0 -79
- package/docs/Generator/type-aliases/RandomStepFunction.md +0 -11
- package/docs/Generator/type-aliases/SequencePickParams.md +0 -11
- package/docs/GeneratorData/Chars/README.md +0 -152
- package/docs/GeneratorData/Chars/variables/all.md +0 -9
- package/docs/GeneratorData/Chars/variables/alphanumeric.md +0 -9
- package/docs/GeneratorData/Chars/variables/base64.md +0 -9
- package/docs/GeneratorData/Chars/variables/base64Url.md +0 -9
- package/docs/GeneratorData/Chars/variables/base64UrlNoPadding.md +0 -9
- package/docs/GeneratorData/Chars/variables/digits.md +0 -9
- package/docs/GeneratorData/Chars/variables/hex.md +0 -9
- package/docs/GeneratorData/Chars/variables/hexDigits.md +0 -9
- package/docs/GeneratorData/Chars/variables/hexDigitsUpper.md +0 -9
- package/docs/GeneratorData/Chars/variables/letters.md +0 -9
- package/docs/GeneratorData/Chars/variables/lowerCase.md +0 -9
- package/docs/GeneratorData/Chars/variables/printable.md +0 -9
- package/docs/GeneratorData/Chars/variables/symbols.md +0 -9
- package/docs/GeneratorData/Chars/variables/upperCase.md +0 -9
- package/docs/GeneratorData/Chars/variables/whitespace.md +0 -9
- package/docs/GeneratorData/README.md +0 -35
- package/docs/GeneratorData/Words/README.md +0 -125
- package/docs/GeneratorData/Words/variables/Adjectives.md +0 -7
- package/docs/GeneratorData/Words/variables/Animals.md +0 -7
- package/docs/GeneratorData/Words/variables/Cities.md +0 -7
- package/docs/GeneratorData/Words/variables/Colors.md +0 -7
- package/docs/GeneratorData/Words/variables/Countries.md +0 -7
- package/docs/GeneratorData/Words/variables/Domains.md +0 -7
- package/docs/GeneratorData/Words/variables/FamilyNames.md +0 -9
- package/docs/GeneratorData/Words/variables/FirstNames.md +0 -9
- package/docs/GeneratorData/Words/variables/FirstNamesFemale.md +0 -9
- package/docs/GeneratorData/Words/variables/FirstNamesMale.md +0 -9
- package/docs/GeneratorData/Words/variables/Gerunds.md +0 -7
- package/docs/GeneratorData/Words/variables/jobs.md +0 -7
- package/docs/GeneratorData/variables/Adjectives.md +0 -7
- package/docs/GeneratorData/variables/Animals.md +0 -7
- package/docs/GeneratorData/variables/Cities.md +0 -7
- package/docs/GeneratorData/variables/Colors.md +0 -7
- package/docs/GeneratorData/variables/Countries.md +0 -7
- package/docs/GeneratorData/variables/Domains.md +0 -7
- package/docs/GeneratorData/variables/FamilyNames.md +0 -9
- package/docs/GeneratorData/variables/FirstNames.md +0 -9
- package/docs/GeneratorData/variables/FirstNamesFemale.md +0 -9
- package/docs/GeneratorData/variables/FirstNamesMale.md +0 -9
- package/docs/GeneratorData/variables/Gerunds.md +0 -7
- package/docs/GeneratorData/variables/all.md +0 -9
- package/docs/GeneratorData/variables/alphanumeric.md +0 -9
- package/docs/GeneratorData/variables/base64.md +0 -9
- package/docs/GeneratorData/variables/base64Url.md +0 -9
- package/docs/GeneratorData/variables/base64UrlNoPadding.md +0 -9
- package/docs/GeneratorData/variables/digits.md +0 -9
- package/docs/GeneratorData/variables/hex.md +0 -9
- package/docs/GeneratorData/variables/hexDigits.md +0 -9
- package/docs/GeneratorData/variables/hexDigitsUpper.md +0 -9
- package/docs/GeneratorData/variables/jobs.md +0 -7
- package/docs/GeneratorData/variables/letters.md +0 -9
- package/docs/GeneratorData/variables/lowerCase.md +0 -9
- package/docs/GeneratorData/variables/printable.md +0 -9
- package/docs/GeneratorData/variables/symbols.md +0 -9
- package/docs/GeneratorData/variables/upperCase.md +0 -9
- package/docs/GeneratorData/variables/whitespace.md +0 -9
- package/docs/README.md +0 -35
- package/docs/Words/README.md +0 -125
- package/docs/Words/variables/Adjectives.md +0 -7
- package/docs/Words/variables/Animals.md +0 -7
- package/docs/Words/variables/Cities.md +0 -7
- package/docs/Words/variables/Colors.md +0 -7
- package/docs/Words/variables/Countries.md +0 -7
- package/docs/Words/variables/Domains.md +0 -7
- package/docs/Words/variables/FamilyNames.md +0 -9
- package/docs/Words/variables/FirstNames.md +0 -9
- package/docs/Words/variables/FirstNamesFemale.md +0 -9
- package/docs/Words/variables/FirstNamesMale.md +0 -9
- package/docs/Words/variables/Gerunds.md +0 -7
- package/docs/Words/variables/jobs.md +0 -7
- package/docs/classes/PseudoRandomGenerator.clone.md +0 -17
- package/docs/classes/PseudoRandomGenerator.create.md +0 -24
- package/docs/classes/PseudoRandomGenerator.createChild.md +0 -24
- package/docs/classes/PseudoRandomGenerator.ensureRng.md +0 -25
- package/docs/classes/PseudoRandomGenerator.getGlobalRng.md +0 -17
- package/docs/classes/PseudoRandomGenerator.md +0 -258
- package/docs/classes/PseudoRandomGenerator.nextBoolean.md +0 -24
- package/docs/classes/PseudoRandomGenerator.nextFloat.md +0 -17
- package/docs/classes/PseudoRandomGenerator.nextInRange.md +0 -25
- package/docs/classes/PseudoRandomGenerator.nextInt.md +0 -24
- package/docs/classes/PseudoRandomGenerator.nextString.md +0 -25
- package/docs/classes/PseudoRandomGenerator.pickNext.md +0 -24
- package/docs/classes/PseudoRandomGenerator.pickRandom.md +0 -25
- package/docs/classes/PseudoRandomGenerator.pickSequence.md +0 -24
- package/docs/classes/PseudoRandomGenerator.pickSequential.md +0 -25
- package/docs/classes/PseudoRandomGenerator.rng.md +0 -11
- package/docs/classes/PseudoRandomGenerator.setGlobalRng.md +0 -24
- package/docs/classes/SeededRandomSource.clone.md +0 -17
- package/docs/classes/SeededRandomSource.counter.md +0 -11
- package/docs/classes/SeededRandomSource.create.md +0 -24
- package/docs/classes/SeededRandomSource.createChild.md +0 -24
- package/docs/classes/SeededRandomSource.hashSeed.md +0 -24
- package/docs/classes/SeededRandomSource.hashStateAndLabel.md +0 -25
- package/docs/classes/SeededRandomSource.lineage.md +0 -9
- package/docs/classes/SeededRandomSource.md +0 -187
- package/docs/classes/SeededRandomSource.mulberryStep.md +0 -24
- package/docs/classes/SeededRandomSource.next.md +0 -17
- package/docs/classes/SeededRandomSource.seed.md +0 -9
- package/docs/interfaces/INextResult.md +0 -61
- package/docs/interfaces/INextResult.nextState.md +0 -9
- package/docs/interfaces/INextResult.value.md +0 -9
- package/docs/interfaces/IPseudoRandomGeneratorCreateParams.global.md +0 -9
- package/docs/interfaces/IPseudoRandomGeneratorCreateParams.md +0 -78
- package/docs/interfaces/IPseudoRandomGeneratorCreateParams.seed.md +0 -9
- package/docs/interfaces/IPseudoRandomGeneratorCreateParams.step.md +0 -9
- package/docs/interfaces/IRandomSequencePickParams.candidates.md +0 -9
- package/docs/interfaces/IRandomSequencePickParams.count.md +0 -9
- package/docs/interfaces/IRandomSequencePickParams.how.md +0 -9
- package/docs/interfaces/IRandomSequencePickParams.md +0 -79
- package/docs/interfaces/ISeedPair.md +0 -61
- package/docs/interfaces/ISeedPair.seed.md +0 -9
- package/docs/interfaces/ISeedPair.state.md +0 -9
- package/docs/interfaces/ISeededRandomSourceConstructorParams.counter.md +0 -9
- package/docs/interfaces/ISeededRandomSourceConstructorParams.lineage.md +0 -9
- package/docs/interfaces/ISeededRandomSourceConstructorParams.md +0 -112
- package/docs/interfaces/ISeededRandomSourceConstructorParams.seed.md +0 -9
- package/docs/interfaces/ISeededRandomSourceConstructorParams.state.md +0 -9
- package/docs/interfaces/ISeededRandomSourceConstructorParams.step.md +0 -9
- package/docs/interfaces/ISeededRandomSourceCreateParams.md +0 -61
- package/docs/interfaces/ISeededRandomSourceCreateParams.seed.md +0 -9
- package/docs/interfaces/ISeededRandomSourceCreateParams.step.md +0 -9
- package/docs/interfaces/ISequentialPickParams.candidates.md +0 -9
- package/docs/interfaces/ISequentialPickParams.count.md +0 -9
- package/docs/interfaces/ISequentialPickParams.how.md +0 -9
- package/docs/interfaces/ISequentialPickParams.md +0 -79
- package/docs/type-aliases/RandomStepFunction.md +0 -11
- package/docs/type-aliases/SequencePickParams.md +0 -11
- package/docs/variables/Adjectives.md +0 -7
- package/docs/variables/Animals.md +0 -7
- package/docs/variables/Cities.md +0 -7
- package/docs/variables/Colors.md +0 -7
- package/docs/variables/Countries.md +0 -7
- package/docs/variables/Domains.md +0 -7
- package/docs/variables/FamilyNames.md +0 -9
- package/docs/variables/FirstNames.md +0 -9
- package/docs/variables/FirstNamesFemale.md +0 -9
- package/docs/variables/FirstNamesMale.md +0 -9
- package/docs/variables/Gerunds.md +0 -7
- package/docs/variables/all.md +0 -9
- package/docs/variables/alphanumeric.md +0 -9
- package/docs/variables/base64.md +0 -9
- package/docs/variables/base64Url.md +0 -9
- package/docs/variables/base64UrlNoPadding.md +0 -9
- package/docs/variables/digits.md +0 -9
- package/docs/variables/hex.md +0 -9
- package/docs/variables/hexDigits.md +0 -9
- package/docs/variables/hexDigitsUpper.md +0 -9
- package/docs/variables/jobs.md +0 -7
- package/docs/variables/letters.md +0 -9
- package/docs/variables/lowerCase.md +0 -9
- package/docs/variables/printable.md +0 -9
- package/docs/variables/symbols.md +0 -9
- package/docs/variables/upperCase.md +0 -9
- package/docs/variables/whitespace.md +0 -9
- package/lib/test/unit/generators.test.d.ts +0 -2
- package/lib/test/unit/generators.test.d.ts.map +0 -1
- package/lib/test/unit/generators.test.js +0 -598
- package/lib/test/unit/generators.test.js.map +0 -1
- package/lib/test/unit/randomSource.test.d.ts +0 -2
- package/lib/test/unit/randomSource.test.d.ts.map +0 -1
- package/lib/test/unit/randomSource.test.js +0 -454
- package/lib/test/unit/randomSource.test.js.map +0 -1
- package/rush-logs/ts-random.build.cache.log +0 -3
- package/rush-logs/ts-random.build.log +0 -6
- package/src/generator/generators.ts +0 -273
- package/src/generator/index.ts +0 -22
- package/src/generator/randomSource.ts +0 -224
- package/src/generator-data/charClasses.ts +0 -95
- package/src/generator-data/index.ts +0 -22
- package/src/generator-data/words/adjectives.ts +0 -247
- package/src/generator-data/words/animals.ts +0 -75
- package/src/generator-data/words/cities.ts +0 -229
- package/src/generator-data/words/colors.ts +0 -56
- package/src/generator-data/words/countries.ts +0 -217
- package/src/generator-data/words/domains.ts +0 -47
- package/src/generator-data/words/gerunds.ts +0 -126
- package/src/generator-data/words/index.ts +0 -29
- package/src/generator-data/words/jobs.ts +0 -175
- package/src/generator-data/words/names.ts +0 -717
- package/src/index.ts +0 -7
- package/src/test/unit/generators.test.ts +0 -697
- package/src/test/unit/randomSource.test.ts +0 -526
- package/temp/build/typescript/ts_8nwakTlr.json +0 -1
- 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":"AAAA,OAAO,oBAAoB,CAAC;AAE5B,OAAO,EAAsB,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEzE;;;GAGG;AACH,MAAM,eAAe,GAAuB,CAAC,KAAa,EAAE,EAAE;IAC5D,OAAO;QACL,KAAK,EAAE,KAAK;QACZ,SAAS,EAAE,KAAK,GAAG,CAAC;KACrB,CAAC;AACJ,CAAC,CAAC;AAEF,SAAS,YAAY,CAAC,IAAqB;IACzC,OAAO,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;AACnD,CAAC;AAED,SAAS,UAAU,CAAC,MAA0B,EAAE,KAAa;IAC3D,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACxC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,MAAM,EAAE,EAAE;gBACnE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACvC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,MAAM,EAAE,EAAE;gBACxE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAClC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,mBAAmB,CAAC,CAAC,MAAM,EAAE,EAAE;oBACjE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAChC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACjC,CAAC,CAAC,CAAC;YACL,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,yEAAyE,EAAE,GAAG,EAAE;YACnF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACvC,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAChC,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;gBACpD,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;gBACrD,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YAClE,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kEAAkE,EAAE,GAAG,EAAE;YAC5E,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;YACtC,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YACpE,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAChE,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,MAAM,EAAE,EAAE;gBACpG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iDAAiD,EAAE,GAAG,EAAE;YAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,MAAM,EAAE,EAAE;oBAC1F,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAChC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClC,CAAC,CAAC,CAAC;YACL,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACvC,IAAI,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACvD,MAAM,KAAK,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;YAC7C,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uEAAuE,EAAE,GAAG,EAAE;YACjF,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;YACpC,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;YACzC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACvD,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;YACpC,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;QACpB,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC7C,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC/D,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;YAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC5B,MAAM,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;gBACxC,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iDAAiD,EAAE,GAAG,EAAE;YAC3D,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;YAChC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACvC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;YAC/B,mEAAmE;YACnE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;QACrB,IAAI,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC9D,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,EAAE,CAAC;YAEd,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;YAC7B,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC/C,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,EAAE,CAAC;YAEd,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;YAC7B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAClD,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,IAAI,EAAE,CAAC;YAEd,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;YAC7B,KAAK,CAAC,IAAI,EAAE,CAAC;YACb,KAAK,CAAC,IAAI,EAAE,CAAC;YACb,KAAK,CAAC,IAAI,EAAE,CAAC;YAEb,qEAAqE;YACrE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAE9B,uEAAuE;YACvE,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,KAAK,CAAC,IAAI,EAAE,CAAC;YACb,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE;YACpD,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC3C,KAAK,CAAC,IAAI,EAAE,CAAC;YACb,KAAK,CAAC,IAAI,EAAE,CAAC;YAEb,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE;YAC1C,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,EAAE,CAAC;YAEd,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACzC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAClD,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,EAAE,CAAC;YAEd,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAC5C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE;YAC1C,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,EAAE,CAAC;YAEd,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC3C,KAAK,CAAC,IAAI,EAAE,CAAC;YAEb,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC7C,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC3D,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+DAA+D,EAAE,GAAG,EAAE;YACzE,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAChC,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,EAAE,CAAC;YAEf,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC3C,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,4DAA4D,EAAE,GAAG,EAAE;YACtE,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,EAAE,CAAC;YAEd,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC1C,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,sEAAsE,EAAE,GAAG,EAAE;YAChF,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC9B,KAAK,CAAC,IAAI,EAAE,CAAC;YACb,KAAK,CAAC,IAAI,EAAE,CAAC;YACb,KAAK,CAAC,IAAI,EAAE,CAAC;YAEb,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC/C,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAClD,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,EAAE,CAAC;YAEd,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACzC,KAAK,CAAC,IAAI,EAAE,CAAC;YACb,KAAK,CAAC,IAAI,EAAE,CAAC;YACb,KAAK,CAAC,IAAI,EAAE,CAAC;YAEb,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACnD,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YACxF,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,uBAAuB;YAEtC,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACtC,uFAAuF;YACvF,8DAA8D;YAC9D,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAC5B,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,kCAAkC;QACpE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gDAAgD,EAAE,GAAG,EAAE;YAC1D,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,IAAI,EAAE,CAAC;YAEd,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACtC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9B,qCAAqC;YACrC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAC3B,MAAM,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACxB,IAAI,CAAC,iEAAiE,EAAE,GAAG,EAAE;YAC3E,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC7C,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAChD,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iDAAiD,EAAE,GAAG,EAAE;YAC3D,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC7C,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACnD,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACpD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClC,MAAM,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC7D,MAAM,KAAK,GAAG,kBAAkB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACvD,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACxD,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,wDAAwD,EAAE,GAAG,EAAE;YAClE,MAAM,CAAC,GAAG,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC/C,MAAM,CAAC,GAAG,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC9C,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iDAAiD,EAAE,GAAG,EAAE;YAC3D,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC/C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7B,2EAA2E;YAC3E,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACtD,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACvD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACrC,uEAAuE;YACvE,MAAM,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;YACjD,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChC,oDAAoD;YACpD,MAAM,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACvD,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACzD,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,IAAI,CAAC,gDAAgD,EAAE,GAAG,EAAE;YAC1D,MAAM,MAAM,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACjE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,4DAA4D,EAAE,GAAG,EAAE;YACtE,wBAAwB;YACxB,MAAM,MAAM,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACjE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;YAC3C,MAAM,KAAK,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YACjE,MAAM,MAAM,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YAClE,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACtD,MAAM,CAAC,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAC1D,MAAM,CAAC,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAC1D,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACtD,MAAM,CAAC,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAC5D,MAAM,CAAC,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC3D,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gDAAgD,EAAE,GAAG,EAAE;YAC1D,MAAM,MAAM,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACjE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACzC,MAAM,MAAM,GAAG,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;YAC/C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC5C,MAAM,KAAK,GAAG,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YACnD,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACtD,MAAM,CAAC,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAClC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACnD,MAAM,MAAM,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;YACzD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACzC,MAAM,MAAM,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;YAC/C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACrC,sDAAsD;YACtD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE;YACpD,IAAI,KAAK,GAAG,KAAK,CAAC;YAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,kBAAkB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACtD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;gBAC/C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACrC,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE;YAC1C,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,MAAM,EAAE,EAAE;gBAClE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC5B,MAAM,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;gBACxC,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;YACjD,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,MAAM,EAAE,EAAE;gBACnE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC5B,MAAM,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;gBACxC,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iDAAiD,EAAE,GAAG,EAAE;YAC3D,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,MAAM,EAAE,EAAE;gBACxF,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC5B,MAAM,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;gBACxC,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACrD,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,MAAM,EAAE,EAAE;gBACnE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC5B,MAAM,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;gBACxC,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gDAAgD,EAAE,GAAG,EAAE;YAC1D,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,MAAM,EAAE,EAAE;gBACrE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC5B,MAAM,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;gBACxC,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACvD,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,MAAM,EAAE,EAAE;gBACvE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC5B,MAAM,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;gBACxC,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","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"]}
|
package/docs/Chars/README.md
DELETED
|
@@ -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>
|
package/docs/Generator/README.md
DELETED
|
@@ -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<[PseudoRandomGenerator](../../classes/PseudoRandomGenerator.md)>
|
|
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<[PseudoRandomGenerator](../../classes/PseudoRandomGenerator.md)>
|
|
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.
|