diff options
| author | Shinigami <[email protected]> | 2022-10-15 07:49:26 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-10-14 23:49:26 +0000 |
| commit | 5aa747f7c0e6f4f67044d71139d2f2cf20256a32 (patch) | |
| tree | b27fe464550cf5786875bfcb86496b4648ebcd0e /src | |
| parent | a7cd422c6cbfe10f110e1fc53c88559198a97f08 (diff) | |
| download | faker-5aa747f7c0e6f4f67044d71139d2f2cf20256a32.tar.xz faker-5aa747f7c0e6f4f67044d71139d2f2cf20256a32.zip | |
refactor!: make mersenne internal (#1444)
Diffstat (limited to 'src')
| -rw-r--r-- | src/faker.ts | 13 | ||||
| -rw-r--r-- | src/internal/mersenne/mersenne.ts (renamed from src/modules/mersenne/index.ts) | 0 | ||||
| -rw-r--r-- | src/internal/mersenne/twister.ts (renamed from src/modules/mersenne/twister.ts) | 3 | ||||
| -rw-r--r-- | src/modules/datatype/index.ts | 7 |
4 files changed, 14 insertions, 9 deletions
diff --git a/src/faker.ts b/src/faker.ts index c42c313e..62a3bf6f 100644 --- a/src/faker.ts +++ b/src/faker.ts @@ -1,5 +1,6 @@ import type { LocaleDefinition } from './definitions'; import { FakerError } from './errors/faker-error'; +import { MersenneModule } from './internal/mersenne/mersenne'; import type { KnownLocale } from './locales'; import { AddressModule } from './modules/address'; import { AnimalModule } from './modules/animal'; @@ -16,7 +17,6 @@ import { HelpersModule } from './modules/helpers'; import { ImageModule } from './modules/image'; import { InternetModule } from './modules/internet'; import { LoremModule } from './modules/lorem'; -import { MersenneModule } from './modules/mersenne'; import { MusicModule } from './modules/music'; import { NameModule } from './modules/name'; import { PhoneModule } from './modules/phone'; @@ -74,10 +74,9 @@ export class Faker { readonly definitions: LocaleDefinition = this.initDefinitions(); - /** - * @internal - */ - readonly mersenne: MersenneModule = new MersenneModule(); + /** @internal */ + private readonly _mersenne: MersenneModule = new MersenneModule(); + readonly random: RandomModule = new RandomModule(this); readonly helpers: HelpersModule = new HelpersModule(this); @@ -241,9 +240,9 @@ export class Faker { seed: number | number[] = Math.ceil(Math.random() * Number.MAX_SAFE_INTEGER) ): number | number[] { if (Array.isArray(seed) && seed.length) { - this.mersenne.seed_array(seed); + this._mersenne.seed_array(seed); } else if (!Array.isArray(seed) && !isNaN(seed)) { - this.mersenne.seed(seed); + this._mersenne.seed(seed); } return seed; diff --git a/src/modules/mersenne/index.ts b/src/internal/mersenne/mersenne.ts index 16019e29..16019e29 100644 --- a/src/modules/mersenne/index.ts +++ b/src/internal/mersenne/mersenne.ts diff --git a/src/modules/mersenne/twister.ts b/src/internal/mersenne/twister.ts index 5859f3ae..f7757842 100644 --- a/src/modules/mersenne/twister.ts +++ b/src/internal/mersenne/twister.ts @@ -68,8 +68,9 @@ * Any feedback is very welcome. * http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html * email: m-mat @ math.sci.hiroshima-u.ac.jp (remove space) + * + * @internal */ - export default class MersenneTwister19937 { private readonly N = 624; private readonly M = 397; diff --git a/src/modules/datatype/index.ts b/src/modules/datatype/index.ts index 336f8f9f..4c522d53 100644 --- a/src/modules/datatype/index.ts +++ b/src/modules/datatype/index.ts @@ -1,5 +1,6 @@ import type { Faker } from '../..'; import { FakerError } from '../../errors/faker-error'; +import type { MersenneModule } from '../../internal/mersenne/mersenne'; /** * Module to generate various primitive values and data types. @@ -54,8 +55,12 @@ export class DatatypeModule { throw new FakerError(`Max ${max} should be greater than min ${min}.`); } + const mersenne: MersenneModule = + // @ts-expect-error: access private member field + this.faker._mersenne; + const randomNumber = Math.floor( - this.faker.mersenne.rand(max / precision + 1, min / precision) + mersenne.rand(max / precision + 1, min / precision) ); // Workaround problem in float point arithmetics for e.g. 6681493 / 0.01 |
