Skip to content

Commit 0c356cf

Browse files
authoredSep 24, 2024··
🚚 Moving files around (#734)
* 🚚 Moving files around The target being to be closer to a 1 function per file so that we simplify tree-shakeability of the package and make users able to only pull the files they use and not all of them. * types
1 parent 144b0dc commit 0c356cf

27 files changed

+65
-52
lines changed
 

Diff for: ‎src/distribution/GenerateN.ts

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { RandomGenerator } from '../types/RandomGenerator';
2+
import { unsafeGenerateN } from './UnsafeGenerateN';
3+
4+
export function generateN(rng: RandomGenerator, num: number): [number[], RandomGenerator] {
5+
const nextRng = rng.clone();
6+
const out = unsafeGenerateN(nextRng, num);
7+
return [out, nextRng];
8+
}

Diff for: ‎src/distribution/SkipN.ts

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { RandomGenerator } from '../types/RandomGenerator';
2+
import { unsafeSkipN } from './UnsafeSkipN';
3+
4+
export function skipN(rng: RandomGenerator, num: number): RandomGenerator {
5+
const nextRng = rng.clone();
6+
unsafeSkipN(nextRng, num);
7+
return nextRng;
8+
}

Diff for: ‎src/distribution/UniformArrayIntDistribution.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { Distribution } from './Distribution';
2-
import { RandomGenerator } from '../generator/RandomGenerator';
1+
import { Distribution } from '../types/Distribution';
2+
import { RandomGenerator } from '../types/RandomGenerator';
33
import { ArrayInt } from './internals/ArrayInt';
44
import { unsafeUniformArrayIntDistribution } from './UnsafeUniformArrayIntDistribution';
55

Diff for: ‎src/distribution/UniformBigIntDistribution.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { Distribution } from './Distribution';
2-
import { RandomGenerator } from '../generator/RandomGenerator';
1+
import { Distribution } from '../types/Distribution';
2+
import { RandomGenerator } from '../types/RandomGenerator';
33
import { unsafeUniformBigIntDistribution } from './UnsafeUniformBigIntDistribution';
44

55
/**

Diff for: ‎src/distribution/UniformIntDistribution.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { Distribution } from './Distribution';
2-
import { RandomGenerator } from '../generator/RandomGenerator';
1+
import { Distribution } from '../types/Distribution';
2+
import { RandomGenerator } from '../types/RandomGenerator';
33
import { unsafeUniformIntDistribution } from './UnsafeUniformIntDistribution';
44

55
/**

Diff for: ‎src/distribution/UnsafeGenerateN.ts

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { RandomGenerator } from '../types/RandomGenerator';
2+
3+
export function unsafeGenerateN(rng: RandomGenerator, num: number): number[] {
4+
const out: number[] = [];
5+
for (let idx = 0; idx != num; ++idx) {
6+
out.push(rng.unsafeNext());
7+
}
8+
return out;
9+
}

Diff for: ‎src/distribution/UnsafeSkipN.ts

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { RandomGenerator } from '../types/RandomGenerator';
2+
3+
export function unsafeSkipN(rng: RandomGenerator, num: number): void {
4+
for (let idx = 0; idx != num; ++idx) {
5+
rng.unsafeNext();
6+
}
7+
}

Diff for: ‎src/distribution/UnsafeUniformArrayIntDistribution.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { RandomGenerator } from '../generator/RandomGenerator';
1+
import { RandomGenerator } from '../types/RandomGenerator';
22
import {
33
addArrayIntToNew,
44
addOneToPositiveArrayInt,

Diff for: ‎src/distribution/UnsafeUniformBigIntDistribution.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { RandomGenerator } from '../generator/RandomGenerator';
1+
import { RandomGenerator } from '../types/RandomGenerator';
22

33
// We are capturing the reference to BigInt so that it cannot be altered
44
// by any external code after that point.

Diff for: ‎src/distribution/UnsafeUniformIntDistribution.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { RandomGenerator } from '../generator/RandomGenerator';
1+
import { RandomGenerator } from '../types/RandomGenerator';
22
import { unsafeUniformIntDistributionInternal } from './internals/UnsafeUniformIntDistributionInternal';
33
import { ArrayInt64, fromNumberToArrayInt64, substractArrayInt64 } from './internals/ArrayInt';
44
import { unsafeUniformArrayIntDistributionInternal } from './internals/UnsafeUniformArrayIntDistributionInternal';

Diff for: ‎src/distribution/internals/UnsafeUniformArrayIntDistributionInternal.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { RandomGenerator } from '../../generator/RandomGenerator';
1+
import { RandomGenerator } from '../../types/RandomGenerator';
22
import { ArrayInt } from './ArrayInt';
33
import { unsafeUniformIntDistributionInternal } from './UnsafeUniformIntDistributionInternal';
44

Diff for: ‎src/distribution/internals/UnsafeUniformIntDistributionInternal.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { RandomGenerator } from '../../generator/RandomGenerator';
1+
import { RandomGenerator } from '../../types/RandomGenerator';
22

33
/**
44
* Uniformly generate number in range [0 ; rangeSize[

Diff for: ‎src/generator/LinearCongruential.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { RandomGenerator } from './RandomGenerator';
1+
import { RandomGenerator } from '../types/RandomGenerator';
22

33
// Inspired from java.util.Random implementation
44
// http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/Random.java#Random.next%28int%29

Diff for: ‎src/generator/MersenneTwister.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { RandomGenerator } from './RandomGenerator';
1+
import { RandomGenerator } from '../types/RandomGenerator';
22

33
class MersenneTwister implements RandomGenerator {
44
static readonly N = 624;

Diff for: ‎src/generator/XorShift.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { RandomGenerator } from './RandomGenerator';
1+
import { RandomGenerator } from '../types/RandomGenerator';
22

33
// XorShift128+ with a=23, b=18, c=5
44
// - http://vigna.di.unimi.it/ftp/papers/xorshiftplus.pdf

Diff for: ‎src/generator/XoroShiro.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { RandomGenerator } from './RandomGenerator';
1+
import { RandomGenerator } from '../types/RandomGenerator';
22

33
// XoroShiro128+ with a=24, b=16, c=37,
44
// - https://en.wikipedia.org/wiki/Xoroshiro128%2B

Diff for: ‎src/pure-rand-default.ts

+6-2
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
1-
import { RandomGenerator, generateN, skipN, unsafeGenerateN, unsafeSkipN } from './generator/RandomGenerator';
1+
import { RandomGenerator } from './types/RandomGenerator';
22
import { congruential32 } from './generator/LinearCongruential';
33
import mersenne from './generator/MersenneTwister';
44
import { xorshift128plus } from './generator/XorShift';
55
import { xoroshiro128plus } from './generator/XoroShiro';
66

7-
import { Distribution } from './distribution/Distribution';
7+
import { Distribution } from './types/Distribution';
88
import { uniformArrayIntDistribution } from './distribution/UniformArrayIntDistribution';
99
import { uniformBigIntDistribution } from './distribution/UniformBigIntDistribution';
1010
import { uniformIntDistribution } from './distribution/UniformIntDistribution';
1111
import { unsafeUniformArrayIntDistribution } from './distribution/UnsafeUniformArrayIntDistribution';
1212
import { unsafeUniformBigIntDistribution } from './distribution/UnsafeUniformBigIntDistribution';
1313
import { unsafeUniformIntDistribution } from './distribution/UnsafeUniformIntDistribution';
14+
import { skipN } from './distribution/SkipN';
15+
import { generateN } from './distribution/GenerateN';
16+
import { unsafeGenerateN } from './distribution/UnsafeGenerateN';
17+
import { unsafeSkipN } from './distribution/UnsafeSkipN';
1418

1519
// Explicit cast into string to avoid to have __type: "__PACKAGE_TYPE__"
1620
const __type = '__PACKAGE_TYPE__' as string;

Diff for: ‎src/distribution/Distribution.ts renamed to ‎src/types/Distribution.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { RandomGenerator } from '../generator/RandomGenerator';
1+
import { RandomGenerator } from './RandomGenerator';
22

33
/**
44
* Generate random value based on a given RandomGenerator.

Diff for: ‎src/generator/RandomGenerator.ts renamed to ‎src/types/RandomGenerator.ts

-26
Original file line numberDiff line numberDiff line change
@@ -18,29 +18,3 @@ export interface RandomGenerator {
1818
/** Access to the internal state of a RandomGenerator in a read-only fashion */
1919
getState(): readonly number[];
2020
}
21-
22-
export function unsafeGenerateN(rng: RandomGenerator, num: number): number[] {
23-
const out: number[] = [];
24-
for (let idx = 0; idx != num; ++idx) {
25-
out.push(rng.unsafeNext());
26-
}
27-
return out;
28-
}
29-
30-
export function generateN(rng: RandomGenerator, num: number): [number[], RandomGenerator] {
31-
const nextRng = rng.clone();
32-
const out = unsafeGenerateN(nextRng, num);
33-
return [out, nextRng];
34-
}
35-
36-
export function unsafeSkipN(rng: RandomGenerator, num: number): void {
37-
for (let idx = 0; idx != num; ++idx) {
38-
rng.unsafeNext();
39-
}
40-
}
41-
42-
export function skipN(rng: RandomGenerator, num: number): RandomGenerator {
43-
const nextRng = rng.clone();
44-
unsafeSkipN(nextRng, num);
45-
return nextRng;
46-
}

Diff for: ‎test/unit/distribution/UniformArrayIntDistribution.noreg.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import fc from 'fast-check';
33
import { ArrayInt } from '../../../src/distribution/internals/ArrayInt';
44
import { uniformArrayIntDistribution } from '../../../src/distribution/UniformArrayIntDistribution';
55
import mersenne from '../../../src/generator/MersenneTwister';
6-
import { RandomGenerator } from '../../../src/generator/RandomGenerator';
6+
import { RandomGenerator } from '../../../src/types/RandomGenerator';
77

88
describe('uniformArrayIntDistribution [non regression]', () => {
99
it.each`

Diff for: ‎test/unit/distribution/UniformArrayIntDistribution.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import * as fc from 'fast-check';
22
import { mocked } from '../../__test-helpers__/mocked';
33

44
import { uniformArrayIntDistribution } from '../../../src/distribution/UniformArrayIntDistribution';
5-
import { RandomGenerator } from '../../../src/generator/RandomGenerator';
5+
import { RandomGenerator } from '../../../src/types/RandomGenerator';
66

77
import * as UnsafeUniformArrayIntDistributionInternalMock from '../../../src/distribution/internals/UnsafeUniformArrayIntDistributionInternal';
88
import { ArrayInt } from '../../../src/distribution/internals/ArrayInt';

Diff for: ‎test/unit/distribution/UniformBigIntDistribution.noreg.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { uniformBigIntDistribution } from '../../../src/distribution/UniformBigIntDistribution';
22
import mersenne from '../../../src/generator/MersenneTwister';
3-
import { RandomGenerator } from '../../../src/generator/RandomGenerator';
3+
import { RandomGenerator } from '../../../src/types/RandomGenerator';
44

55
describe('uniformBigIntDistribution [non regression]', () => {
66
if (typeof BigInt === 'undefined') {

Diff for: ‎test/unit/distribution/UniformIntDistribution.noreg.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import fc from 'fast-check';
22

33
import { uniformIntDistribution } from '../../../src/distribution/UniformIntDistribution';
44
import mersenne from '../../../src/generator/MersenneTwister';
5-
import { RandomGenerator } from '../../../src/generator/RandomGenerator';
5+
import { RandomGenerator } from '../../../src/types/RandomGenerator';
66

77
describe('uniformIntDistribution [non regression]', () => {
88
it.each`

Diff for: ‎test/unit/distribution/UniformIntDistribution.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import * as fc from 'fast-check';
22
import { mocked } from '../../__test-helpers__/mocked';
33

44
import { uniformIntDistribution } from '../../../src/distribution/UniformIntDistribution';
5-
import { RandomGenerator } from '../../../src/generator/RandomGenerator';
5+
import { RandomGenerator } from '../../../src/types/RandomGenerator';
66

77
import * as UnsafeUniformIntDistributionInternalMock from '../../../src/distribution/internals/UnsafeUniformIntDistributionInternal';
88
import * as UnsafeUniformArrayIntDistributionInternalMock from '../../../src/distribution/internals/UnsafeUniformArrayIntDistributionInternal';

Diff for: ‎test/unit/distribution/internals/UnsafeUniformArrayIntDistributionInternal.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { mocked } from '../../../__test-helpers__/mocked';
33

44
import { unsafeUniformArrayIntDistributionInternal } from '../../../../src/distribution/internals/UnsafeUniformArrayIntDistributionInternal';
55
import { ArrayInt } from '../../../../src/distribution/internals/ArrayInt';
6-
import { RandomGenerator } from '../../../../src/generator/RandomGenerator';
6+
import { RandomGenerator } from '../../../../src/types/RandomGenerator';
77

88
import * as UnsafeUniformIntDistributionInternalMock from '../../../../src/distribution/internals/UnsafeUniformIntDistributionInternal';
99
jest.mock('../../../../src/distribution/internals/UnsafeUniformIntDistributionInternal');

Diff for: ‎test/unit/distribution/internals/UnsafeUniformIntDistributionInternal.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import * as fc from 'fast-check';
22

33
import { unsafeUniformIntDistributionInternal } from '../../../../src/distribution/internals/UnsafeUniformIntDistributionInternal';
4-
import { RandomGenerator } from '../../../../src/generator/RandomGenerator';
4+
import { RandomGenerator } from '../../../../src/types/RandomGenerator';
55

66
class NatGenerator implements RandomGenerator {
77
constructor(private current: number) {

Diff for: ‎test/unit/generator/RandomGenerator.properties.ts

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
import * as assert from 'assert';
22
import * as fc from 'fast-check';
33

4-
import { RandomGenerator, skipN, generateN, unsafeSkipN } from '../../../src/generator/RandomGenerator';
4+
import { RandomGenerator } from '../../../src/types/RandomGenerator';
5+
import { skipN } from '../../../src/distribution/SkipN';
6+
import { generateN } from '../../../src/distribution/GenerateN';
7+
import { unsafeSkipN } from '../../../src/distribution/UnsafeSkipN';
58

69
const MAX_SIZE: number = 2048;
710

0 commit comments

Comments
 (0)
Please sign in to comment.