diff options
| author | Matt Mayer <[email protected]> | 2023-01-30 20:28:53 +0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-01-30 14:28:53 +0100 |
| commit | 1ebbead194a9583dbd0f21f136c9d2bf8f84a50f (patch) | |
| tree | 94a75b885c01a6d16f0655a7fc74d3ffb969a609 /test | |
| parent | 0663048932bb1b625fbd5c6988d70bf6b1c0bf61 (diff) | |
| download | faker-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.snap | 6 | ||||
| -rw-r--r-- | test/__snapshots__/finance.spec.ts.snap | 4 | ||||
| -rw-r--r-- | test/__snapshots__/mersenne.spec.ts.snap | 36 | ||||
| -rw-r--r-- | test/__snapshots__/number.spec.ts.snap | 24 | ||||
| -rw-r--r-- | test/mersenne.spec.ts | 26 | ||||
| -rw-r--r-- | test/number.spec.ts | 17 |
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', () => { |
