aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShinigami <[email protected]>2022-10-15 07:49:26 +0800
committerGitHub <[email protected]>2022-10-14 23:49:26 +0000
commit5aa747f7c0e6f4f67044d71139d2f2cf20256a32 (patch)
treeb27fe464550cf5786875bfcb86496b4648ebcd0e
parenta7cd422c6cbfe10f110e1fc53c88559198a97f08 (diff)
downloadfaker-5aa747f7c0e6f4f67044d71139d2f2cf20256a32.tar.xz
faker-5aa747f7c0e6f4f67044d71139d2f2cf20256a32.zip
refactor!: make mersenne internal (#1444)
-rw-r--r--src/faker.ts13
-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.ts7
-rw-r--r--test/all_functional.spec.ts2
-rw-r--r--test/mersenne.spec.ts2
-rw-r--r--test/scripts/apidoc/examplesAndDeprecations.spec.ts16
7 files changed, 23 insertions, 20 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
diff --git a/test/all_functional.spec.ts b/test/all_functional.spec.ts
index f857b84c..5ae065be 100644
--- a/test/all_functional.spec.ts
+++ b/test/all_functional.spec.ts
@@ -8,7 +8,7 @@ const IGNORED_MODULES = [
'definitions',
'fake',
'helpers',
- 'mersenne',
+ '_mersenne',
];
function isTestableModule(mod: string) {
diff --git a/test/mersenne.spec.ts b/test/mersenne.spec.ts
index 62b65a69..6b0a3125 100644
--- a/test/mersenne.spec.ts
+++ b/test/mersenne.spec.ts
@@ -1,6 +1,6 @@
import { beforeAll, beforeEach, describe, expect, it } from 'vitest';
import { FakerError } from '../src/errors/faker-error';
-import { MersenneModule } from '../src/modules/mersenne';
+import { MersenneModule } from '../src/internal/mersenne/mersenne';
import { seededRuns } from './support/seededRuns';
const minMaxTestCases = [
diff --git a/test/scripts/apidoc/examplesAndDeprecations.spec.ts b/test/scripts/apidoc/examplesAndDeprecations.spec.ts
index 37d61399..772307a9 100644
--- a/test/scripts/apidoc/examplesAndDeprecations.spec.ts
+++ b/test/scripts/apidoc/examplesAndDeprecations.spec.ts
@@ -32,15 +32,13 @@ describe('examples and deprecations', () => {
const modules: Record<string, DeclarationReflection[]> = selectApiModules(
project
- )
- .filter((module) => module.name !== 'MersenneModule')
- .reduce(
- (a, v) => ({
- ...a,
- [v.name]: v.getChildrenByKind(ReflectionKind.Method),
- }),
- {}
- );
+ ).reduce(
+ (a, v) => ({
+ ...a,
+ [v.name]: v.getChildrenByKind(ReflectionKind.Method),
+ }),
+ {}
+ );
const consoleSpies: Array<SpyInstance> = Object.keys(console)
.filter((key) => typeof console[key] === 'function')