aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMatt Mayer <[email protected]>2023-01-30 20:28:53 +0700
committerGitHub <[email protected]>2023-01-30 14:28:53 +0100
commit1ebbead194a9583dbd0f21f136c9d2bf8f84a50f (patch)
tree94a75b885c01a6d16f0655a7fc74d3ffb969a609 /test
parent0663048932bb1b625fbd5c6988d70bf6b1c0bf61 (diff)
downloadfaker-1ebbead194a9583dbd0f21f136c9d2bf8f84a50f.tar.xz
faker-1ebbead194a9583dbd0f21f136c9d2bf8f84a50f.zip
feat(number)!: default to high precision float (#1675)
Diffstat (limited to 'test')
-rw-r--r--test/__snapshots__/datatype.spec.ts.snap6
-rw-r--r--test/__snapshots__/finance.spec.ts.snap4
-rw-r--r--test/__snapshots__/mersenne.spec.ts.snap36
-rw-r--r--test/__snapshots__/number.spec.ts.snap24
-rw-r--r--test/mersenne.spec.ts26
-rw-r--r--test/number.spec.ts17
6 files changed, 41 insertions, 72 deletions
diff --git a/test/__snapshots__/datatype.spec.ts.snap b/test/__snapshots__/datatype.spec.ts.snap
index b4dae898..eece8554 100644
--- a/test/__snapshots__/datatype.spec.ts.snap
+++ b/test/__snapshots__/datatype.spec.ts.snap
@@ -267,8 +267,8 @@ exports[`datatype > 1337 > array > noArgs 1`] = `
"e|/Jqjjj!B",
"GDWQgC2M;q",
3648103756333056,
- 3967686428065792,
- ".Gm3tRwnZ2",
+ "I1.Gm3tRwn",
+ 1668592164667392,
8623125245722624,
3831794621218816,
]
@@ -351,7 +351,7 @@ exports[`datatype > 1337 > hexadecimal > with length, prefix, and casing 1`] = `
exports[`datatype > 1337 > hexadecimal > with prefix 1`] = `"0x5"`;
-exports[`datatype > 1337 > json 1`] = `"{\\"foo\\":\\"U/4:SK$>6Q\\",\\"bar\\":2359372120326144,\\"bike\\":\\"{:e=+kD)[B\\",\\"a\\":\\"e|/Jqjjj!B\\",\\"b\\":\\"GDWQgC2M;q\\",\\"name\\":3648103756333056,\\"prop\\":3967686428065792}"`;
+exports[`datatype > 1337 > json 1`] = `"{\\"foo\\":\\"U/4:SK$>6Q\\",\\"bar\\":2359372120326144,\\"bike\\":\\"{:e=+kD)[B\\",\\"a\\":\\"e|/Jqjjj!B\\",\\"b\\":\\"GDWQgC2M;q\\",\\"name\\":3648103756333056,\\"prop\\":\\"I1.Gm3tRwn\\"}"`;
exports[`datatype > 1337 > number > noArgs 1`] = `26202`;
diff --git a/test/__snapshots__/finance.spec.ts.snap b/test/__snapshots__/finance.spec.ts.snap
index 95fa5c26..937b84ef 100644
--- a/test/__snapshots__/finance.spec.ts.snap
+++ b/test/__snapshots__/finance.spec.ts.snap
@@ -38,9 +38,9 @@ exports[`finance > 42 > currencySymbol 1`] = `"₱"`;
exports[`finance > 42 > ethereumAddress 1`] = `"0x8be4abdd39321ad7d3fe01ffce404f4d6db0906b"`;
-exports[`finance > 42 > iban > noArgs 1`] = `"GT30Y75110867098F1E3542612J4"`;
+exports[`finance > 42 > iban > noArgs 1`] = `"GT03975110867098F1E3542612J4"`;
-exports[`finance > 42 > iban > with formatted 1`] = `"GT30 Y751 1086 7098 F1E3 5426 12J4"`;
+exports[`finance > 42 > iban > with formatted 1`] = `"GT03 9751 1086 7098 F1E3 5426 12J4"`;
exports[`finance > 42 > iban > with formatted and countryCode 1`] = `"DE47 7175 0020 0086 0600 97"`;
diff --git a/test/__snapshots__/mersenne.spec.ts.snap b/test/__snapshots__/mersenne.spec.ts.snap
index 21d3e4cc..08002528 100644
--- a/test/__snapshots__/mersenne.spec.ts.snap
+++ b/test/__snapshots__/mersenne.spec.ts.snap
@@ -1,37 +1,13 @@
// Vitest Snapshot v1
-exports[`mersenne twister > seed: [42,1,2] > should return deterministic values for next({ min: -50, max: 60 }) 1`] = `44`;
+exports[`mersenne twister > seed: [42,1,2] > should return deterministic value for next() 1`] = `0.8562037434894592`;
-exports[`mersenne twister > seed: [42,1,2] > should return deterministic values for next({ min: -60, max: 0 }) 1`] = `-9`;
+exports[`mersenne twister > seed: [1211,1,2] > should return deterministic value for next() 1`] = `0.8916433283593506`;
-exports[`mersenne twister > seed: [42,1,2] > should return deterministic values for next({ min: 0, max: 100 }) 1`] = `85`;
+exports[`mersenne twister > seed: [1337,1,2] > should return deterministic value for next() 1`] = `0.17990487208589911`;
-exports[`mersenne twister > seed: [1211,1,2] > should return deterministic values for next({ min: -50, max: 60 }) 1`] = `48`;
+exports[`mersenne twister > seed: 42 > should return deterministic value for next() 1`] = `0.37454011430963874`;
-exports[`mersenne twister > seed: [1211,1,2] > should return deterministic values for next({ min: -60, max: 0 }) 1`] = `-7`;
+exports[`mersenne twister > seed: 1211 > should return deterministic value for next() 1`] = `0.9285201537422836`;
-exports[`mersenne twister > seed: [1211,1,2] > should return deterministic values for next({ min: 0, max: 100 }) 1`] = `89`;
-
-exports[`mersenne twister > seed: [1337,1,2] > should return deterministic values for next({ min: -50, max: 60 }) 1`] = `-31`;
-
-exports[`mersenne twister > seed: [1337,1,2] > should return deterministic values for next({ min: -60, max: 0 }) 1`] = `-50`;
-
-exports[`mersenne twister > seed: [1337,1,2] > should return deterministic values for next({ min: 0, max: 100 }) 1`] = `17`;
-
-exports[`mersenne twister > seed: 42 > should return deterministic values for next({ min: -50, max: 60 }) 1`] = `-9`;
-
-exports[`mersenne twister > seed: 42 > should return deterministic values for next({ min: -60, max: 0 }) 1`] = `-38`;
-
-exports[`mersenne twister > seed: 42 > should return deterministic values for next({ min: 0, max: 100 }) 1`] = `37`;
-
-exports[`mersenne twister > seed: 1211 > should return deterministic values for next({ min: -50, max: 60 }) 1`] = `52`;
-
-exports[`mersenne twister > seed: 1211 > should return deterministic values for next({ min: -60, max: 0 }) 1`] = `-5`;
-
-exports[`mersenne twister > seed: 1211 > should return deterministic values for next({ min: 0, max: 100 }) 1`] = `92`;
-
-exports[`mersenne twister > seed: 1337 > should return deterministic values for next({ min: -50, max: 60 }) 1`] = `-22`;
-
-exports[`mersenne twister > seed: 1337 > should return deterministic values for next({ min: -60, max: 0 }) 1`] = `-45`;
-
-exports[`mersenne twister > seed: 1337 > should return deterministic values for next({ min: 0, max: 100 }) 1`] = `26`;
+exports[`mersenne twister > seed: 1337 > should return deterministic value for next() 1`] = `0.2620246761944145`;
diff --git a/test/__snapshots__/number.spec.ts.snap b/test/__snapshots__/number.spec.ts.snap
index e699dc95..71523ecf 100644
--- a/test/__snapshots__/number.spec.ts.snap
+++ b/test/__snapshots__/number.spec.ts.snap
@@ -20,15 +20,15 @@ exports[`number > 42 > binary > with options 1`] = `"100"`;
exports[`number > 42 > binary > with value 1`] = `"0"`;
-exports[`number > 42 > float > with max 1`] = `25.84`;
+exports[`number > 42 > float > with max 1`] = `25.843267887365073`;
-exports[`number > 42 > float > with min 1`] = `-25.9`;
+exports[`number > 42 > float > with min 1`] = `-25.894775084685534`;
-exports[`number > 42 > float > with min and max 1`] = `-0.43`;
+exports[`number > 42 > float > with min and max 1`] = `-0.4260473116301`;
exports[`number > 42 > float > with min, max and precision 1`] = `-0.4261`;
-exports[`number > 42 > float > with plain number 1`] = `1.5`;
+exports[`number > 42 > float > with plain number 1`] = `1.498160457238555`;
exports[`number > 42 > hex > noArgs 1`] = `"5"`;
@@ -68,15 +68,15 @@ exports[`number > 1211 > binary > with options 1`] = `"1010"`;
exports[`number > 1211 > binary > with value 1`] = `"1"`;
-exports[`number > 1211 > float > with max 1`] = `64.07`;
+exports[`number > 1211 > float > with max 1`] = `64.06789060821757`;
-exports[`number > 1211 > float > with min 1`] = `-2.07`;
+exports[`number > 1211 > float > with min 1`] = `-2.073633389081806`;
-exports[`number > 1211 > float > with min and max 1`] = `61.07`;
+exports[`number > 1211 > float > with min and max 1`] = `61.06573706539348`;
exports[`number > 1211 > float > with min, max and precision 1`] = `61.0658`;
-exports[`number > 1211 > float > with plain number 1`] = `3.72`;
+exports[`number > 1211 > float > with plain number 1`] = `3.7140806149691343`;
exports[`number > 1211 > hex > noArgs 1`] = `"e"`;
@@ -116,15 +116,15 @@ exports[`number > 1337 > binary > with options 1`] = `"10"`;
exports[`number > 1337 > binary > with value 1`] = `"0"`;
-exports[`number > 1337 > float > with max 1`] = `18.08`;
+exports[`number > 1337 > float > with max 1`] = `18.0797026574146`;
-exports[`number > 1337 > float > with min 1`] = `-30.74`;
+exports[`number > 1337 > float > with min 1`] = `-30.732938923640177`;
-exports[`number > 1337 > float > with min and max 1`] = `-12.92`;
+exports[`number > 1337 > float > with min and max 1`] = `-12.915260942419991`;
exports[`number > 1337 > float > with min, max and precision 1`] = `-12.9153`;
-exports[`number > 1337 > float > with plain number 1`] = `1.05`;
+exports[`number > 1337 > float > with plain number 1`] = `1.048098704777658`;
exports[`number > 1337 > hex > noArgs 1`] = `"4"`;
diff --git a/test/mersenne.spec.ts b/test/mersenne.spec.ts
index f6585783..d495804c 100644
--- a/test/mersenne.spec.ts
+++ b/test/mersenne.spec.ts
@@ -3,12 +3,6 @@ import type { Mersenne } from '../src/internal/mersenne/mersenne';
import mersenneFn from '../src/internal/mersenne/mersenne';
import { seededRuns } from './support/seededRuns';
-const minMaxTestCases = [
- { min: 0, max: 100 },
- { min: -60, max: 0 },
- { min: -50, max: 60 },
-];
-
const NON_SEEDED_BASED_RUN = 25;
describe('mersenne twister', () => {
@@ -24,18 +18,10 @@ describe('mersenne twister', () => {
mersenne.seed(seed);
});
- for (const { min, max } of minMaxTestCases) {
- it(`should return deterministic values for next({ min: ${min}, max: ${max} })`, () => {
- const actual = mersenne.next({ min, max });
-
- expect(actual).toMatchSnapshot();
- });
- }
-
- it.todo(`should return 0 for next({ min: ${0}, max: ${1} })`, () => {
- const actual = mersenne.next({ min: 0, max: 1 });
+ it(`should return deterministic value for next()`, () => {
+ const actual = mersenne.next();
- expect(actual).toEqual(0);
+ expect(actual).toMatchSnapshot();
});
});
}
@@ -57,11 +43,11 @@ describe('mersenne twister', () => {
for (let i = 1; i <= NON_SEEDED_BASED_RUN; i++) {
describe('next', () => {
- it('should return random number from interval [min, max)', () => {
- const actual = mersenne.next({ min: 0, max: 2 });
+ it('should return random number from interval [0, 1)', () => {
+ const actual = mersenne.next();
expect(actual).toBeGreaterThanOrEqual(0);
- expect(actual).toBeLessThan(2);
+ expect(actual).toBeLessThan(1);
});
});
}
diff --git a/test/number.spec.ts b/test/number.spec.ts
index 91208e00..78a385b9 100644
--- a/test/number.spec.ts
+++ b/test/number.spec.ts
@@ -142,9 +142,10 @@ describe('number', () => {
});
describe('float', () => {
- it('should return a random float with a default precision of 2 digits after floating point', () => {
+ it('should return a random float', () => {
const actual = faker.number.float();
- expect(actual).toBe(Number(actual.toFixed(2)));
+ expect(actual).toBeGreaterThanOrEqual(0);
+ expect(actual).toBeLessThanOrEqual(1);
});
it('should return a random float with given max', () => {
@@ -220,10 +221,16 @@ describe('number', () => {
}
});
- it('provides number with a precision 0', () => {
- const actual = faker.number.float({ precision: 0 });
+ it('throws an error for precision 0', () => {
+ expect(() => faker.number.float({ precision: 0 })).toThrowError(
+ new FakerError('Precision should be greater than 0.')
+ );
+ });
- expect(actual).toBe(Math.floor(actual));
+ it('throws an error for negative precision', () => {
+ expect(() => faker.number.float({ precision: -0.01 })).toThrowError(
+ new FakerError('Precision should be greater than 0.')
+ );
});
it('should not modify the input object', () => {