From ffebf04fb5535786758c2bbb4955134e745a09e5 Mon Sep 17 00:00:00 2001 From: xDivisionByZerox Date: Sun, 12 Jun 2022 09:49:22 +0200 Subject: [PATCH 01/10] refactor(address.latiture): return type --- src/modules/address/index.ts | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/modules/address/index.ts b/src/modules/address/index.ts index 695d8249169..46af6152912 100644 --- a/src/modules/address/index.ts +++ b/src/modules/address/index.ts @@ -384,19 +384,17 @@ export class AddressModule { * @param precision The number of decimal points of precision for the latitude. Defaults to `4`. * * @example - * faker.address.latitude() // '-30.9501' - * faker.address.latitude(10, -10, 5) // '2.68452' + * faker.address.latitude() // -30.9501 + * faker.address.latitude(10, -10, 5) // 2.68452 * * @since 2.0.1 */ - latitude(max: number = 90, min: number = -90, precision: number = 4): string { - return this.faker.datatype - .number({ - min, - max, - precision: parseFloat(`${(0.0).toPrecision(precision)}1`), - }) - .toFixed(precision); + latitude(max: number = 90, min: number = -90, precision: number = 4): number { + return this.faker.datatype.number({ + min, + max, + precision: parseFloat(`${(0.0).toPrecision(precision)}1`), + }); } /** @@ -520,7 +518,7 @@ export class AddressModule { ): [latitude: string, longitude: string] { // If there is no coordinate, the best we can do is return a random GPS coordinate. if (coordinate === undefined) { - return [this.latitude(), this.longitude()]; + return [this.latitude().toFixed(4), this.longitude()]; } const angleRadians = this.faker.datatype.float({ From b9aeb1788bd29ac3684da722e98d79588676be7d Mon Sep 17 00:00:00 2001 From: xDivisionByZerox Date: Sun, 12 Jun 2022 09:51:22 +0200 Subject: [PATCH 02/10] refactor(address.longiture): return type --- src/modules/address/index.ts | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/modules/address/index.ts b/src/modules/address/index.ts index 46af6152912..b77ab463ba6 100644 --- a/src/modules/address/index.ts +++ b/src/modules/address/index.ts @@ -405,8 +405,8 @@ export class AddressModule { * @param precision The number of decimal points of precision for the longitude. Defaults to `4`. * * @example - * faker.address.longitude() // '-154.0226' - * faker.address.longitude(10, -10, 5) // '-4.03620' + * faker.address.longitude() // -154.0226 + * faker.address.longitude(10, -10, 5) // -4.03620 * * @since 2.0.1 */ @@ -414,14 +414,12 @@ export class AddressModule { max: number = 180, min: number = -180, precision: number = 4 - ): string { - return this.faker.datatype - .number({ - max: max, - min: min, - precision: parseFloat(`${(0.0).toPrecision(precision)}1`), - }) - .toFixed(precision); + ): number { + return this.faker.datatype.number({ + max: max, + min: min, + precision: parseFloat(`${(0.0).toPrecision(precision)}1`), + }); } /** @@ -518,7 +516,7 @@ export class AddressModule { ): [latitude: string, longitude: string] { // If there is no coordinate, the best we can do is return a random GPS coordinate. if (coordinate === undefined) { - return [this.latitude().toFixed(4), this.longitude()]; + return [this.latitude().toFixed(4), this.longitude().toFixed(4)]; } const angleRadians = this.faker.datatype.float({ From 20c9ce9bcad9d8624ce3e2efb3c5b520991c71d0 Mon Sep 17 00:00:00 2001 From: xDivisionByZerox Date: Sun, 12 Jun 2022 10:11:29 +0200 Subject: [PATCH 03/10] test(address): add longiture type case --- test/address.spec.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/test/address.spec.ts b/test/address.spec.ts index 2c724806c02..40378beac4c 100644 --- a/test/address.spec.ts +++ b/test/address.spec.ts @@ -207,12 +207,16 @@ describe('address', () => { }); describe('longitude()', () => { + it('returns a number', () => { + const longitude = faker.address.longitude(); + + expect(longitude).toBeTypeOf('number'); + }); + it('returns random longitude', () => { for (let i = 0; i < 100; i++) { const longitude = faker.address.longitude(); - expect(longitude).toBeTypeOf('string'); - const longitude_float = parseFloat(longitude); expect(longitude_float).toBeGreaterThanOrEqual(-180); @@ -224,7 +228,6 @@ describe('address', () => { for (let i = 0; i < 100; i++) { const longitude = faker.address.longitude(100, -30); - expect(longitude).toBeTypeOf('string'); expect( longitude.split('.')[1].length, 'The precision of longitude should be 4 digits' @@ -241,7 +244,6 @@ describe('address', () => { for (let i = 0; i < 100; i++) { const longitude = faker.address.longitude(undefined, undefined, 7); - expect(longitude).toBeTypeOf('string'); expect( longitude.split('.')[1].length, 'The precision of longitude should be 7 digits' From b4d93676c5fad2fca091fd5819cc4e8604b6bb80 Mon Sep 17 00:00:00 2001 From: xDivisionByZerox Date: Sun, 12 Jun 2022 10:13:58 +0200 Subject: [PATCH 04/10] test(address): latitute type case --- test/address.spec.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/test/address.spec.ts b/test/address.spec.ts index 40378beac4c..427f54196c4 100644 --- a/test/address.spec.ts +++ b/test/address.spec.ts @@ -158,12 +158,16 @@ describe('address', () => { }); describe('latitude()', () => { + it('returns a number', () => { + const latitude = faker.address.latitude(); + + expect(latitude).toBeTypeOf('number'); + }); + it('returns random latitude', () => { for (let i = 0; i < 100; i++) { const latitude = faker.address.latitude(); - expect(latitude).toBeTypeOf('string'); - const latitude_float = parseFloat(latitude); expect(latitude_float).toBeGreaterThanOrEqual(-90.0); @@ -175,7 +179,6 @@ describe('address', () => { for (let i = 0; i < 100; i++) { const latitude = faker.address.latitude(5, -5); - expect(latitude).toBeTypeOf('string'); expect( latitude.split('.')[1].length, 'The precision of latitude should be 4 digits' @@ -192,7 +195,6 @@ describe('address', () => { for (let i = 0; i < 100; i++) { const latitude = faker.address.latitude(undefined, undefined, 7); - expect(latitude).toBeTypeOf('string'); expect( latitude.split('.')[1].length, 'The precision of latitude should be 7 digits' From da218ef525bfc81f019dc26df4c25ce9b317488b Mon Sep 17 00:00:00 2001 From: xDivisionByZerox Date: Sun, 12 Jun 2022 10:18:31 +0200 Subject: [PATCH 05/10] test(address): remove test rerun loops --- test/address.spec.ts | 92 +++++++++++++++++++------------------------- 1 file changed, 40 insertions(+), 52 deletions(-) diff --git a/test/address.spec.ts b/test/address.spec.ts index 427f54196c4..8b1836a2669 100644 --- a/test/address.spec.ts +++ b/test/address.spec.ts @@ -165,46 +165,40 @@ describe('address', () => { }); it('returns random latitude', () => { - for (let i = 0; i < 100; i++) { - const latitude = faker.address.latitude(); + const latitude = faker.address.latitude(); - const latitude_float = parseFloat(latitude); + const latitude_float = parseFloat(latitude); - expect(latitude_float).toBeGreaterThanOrEqual(-90.0); - expect(latitude_float).toBeLessThanOrEqual(90.0); - } + expect(latitude_float).toBeGreaterThanOrEqual(-90.0); + expect(latitude_float).toBeLessThanOrEqual(90.0); }); it('returns latitude with min and max and default precision', () => { - for (let i = 0; i < 100; i++) { - const latitude = faker.address.latitude(5, -5); + const latitude = faker.address.latitude(5, -5); - expect( - latitude.split('.')[1].length, - 'The precision of latitude should be 4 digits' - ).toBe(4); + expect( + latitude.split('.')[1].length, + 'The precision of latitude should be 4 digits' + ).toBe(4); - const latitude_float = parseFloat(latitude); + const latitude_float = parseFloat(latitude); - expect(latitude_float).toBeGreaterThanOrEqual(-5); - expect(latitude_float).toBeLessThanOrEqual(5); - } + expect(latitude_float).toBeGreaterThanOrEqual(-5); + expect(latitude_float).toBeLessThanOrEqual(5); }); it('returns random latitude with custom precision', () => { - for (let i = 0; i < 100; i++) { - const latitude = faker.address.latitude(undefined, undefined, 7); + const latitude = faker.address.latitude(undefined, undefined, 7); - expect( - latitude.split('.')[1].length, - 'The precision of latitude should be 7 digits' - ).toBe(7); + expect( + latitude.split('.')[1].length, + 'The precision of latitude should be 7 digits' + ).toBe(7); - const latitude_float = parseFloat(latitude); + const latitude_float = parseFloat(latitude); - expect(latitude_float).toBeGreaterThanOrEqual(-180); - expect(latitude_float).toBeLessThanOrEqual(180); - } + expect(latitude_float).toBeGreaterThanOrEqual(-180); + expect(latitude_float).toBeLessThanOrEqual(180); }); }); @@ -216,46 +210,40 @@ describe('address', () => { }); it('returns random longitude', () => { - for (let i = 0; i < 100; i++) { - const longitude = faker.address.longitude(); + const longitude = faker.address.longitude(); - const longitude_float = parseFloat(longitude); + const longitude_float = parseFloat(longitude); - expect(longitude_float).toBeGreaterThanOrEqual(-180); - expect(longitude_float).toBeLessThanOrEqual(180); - } + expect(longitude_float).toBeGreaterThanOrEqual(-180); + expect(longitude_float).toBeLessThanOrEqual(180); }); it('returns random longitude with min and max and default precision', () => { - for (let i = 0; i < 100; i++) { - const longitude = faker.address.longitude(100, -30); + const longitude = faker.address.longitude(100, -30); - expect( - longitude.split('.')[1].length, - 'The precision of longitude should be 4 digits' - ).toBe(4); + expect( + longitude.split('.')[1].length, + 'The precision of longitude should be 4 digits' + ).toBe(4); - const longitude_float = parseFloat(longitude); + const longitude_float = parseFloat(longitude); - expect(longitude_float).toBeGreaterThanOrEqual(-30); - expect(longitude_float).toBeLessThanOrEqual(100); - } + expect(longitude_float).toBeGreaterThanOrEqual(-30); + expect(longitude_float).toBeLessThanOrEqual(100); }); it('returns random longitude with custom precision', () => { - for (let i = 0; i < 100; i++) { - const longitude = faker.address.longitude(undefined, undefined, 7); + const longitude = faker.address.longitude(undefined, undefined, 7); - expect( - longitude.split('.')[1].length, - 'The precision of longitude should be 7 digits' - ).toBe(7); + expect( + longitude.split('.')[1].length, + 'The precision of longitude should be 7 digits' + ).toBe(7); - const longitude_float = parseFloat(longitude); + const longitude_float = parseFloat(longitude); - expect(longitude_float).toBeGreaterThanOrEqual(-180); - expect(longitude_float).toBeLessThanOrEqual(180); - } + expect(longitude_float).toBeGreaterThanOrEqual(-180); + expect(longitude_float).toBeLessThanOrEqual(180); }); }); From 4d1974a3a640b21d865b416fd3cfd9bed43009cb Mon Sep 17 00:00:00 2001 From: xDivisionByZerox Date: Sun, 12 Jun 2022 10:33:49 +0200 Subject: [PATCH 06/10] test(address): fix test cases according to types --- test/address.spec.ts | 44 ++++++++++++++++---------------------------- 1 file changed, 16 insertions(+), 28 deletions(-) diff --git a/test/address.spec.ts b/test/address.spec.ts index 8b1836a2669..3d2b14c3c17 100644 --- a/test/address.spec.ts +++ b/test/address.spec.ts @@ -167,38 +167,32 @@ describe('address', () => { it('returns random latitude', () => { const latitude = faker.address.latitude(); - const latitude_float = parseFloat(latitude); - - expect(latitude_float).toBeGreaterThanOrEqual(-90.0); - expect(latitude_float).toBeLessThanOrEqual(90.0); + expect(latitude).toBeGreaterThanOrEqual(-90.0); + expect(latitude).toBeLessThanOrEqual(90.0); }); it('returns latitude with min and max and default precision', () => { const latitude = faker.address.latitude(5, -5); expect( - latitude.split('.')[1].length, + latitude.toString().split('.')[1].length, 'The precision of latitude should be 4 digits' ).toBe(4); - const latitude_float = parseFloat(latitude); - - expect(latitude_float).toBeGreaterThanOrEqual(-5); - expect(latitude_float).toBeLessThanOrEqual(5); + expect(latitude).toBeGreaterThanOrEqual(-5); + expect(latitude).toBeLessThanOrEqual(5); }); it('returns random latitude with custom precision', () => { const latitude = faker.address.latitude(undefined, undefined, 7); expect( - latitude.split('.')[1].length, + latitude.toString().split('.')[1].length, 'The precision of latitude should be 7 digits' ).toBe(7); - const latitude_float = parseFloat(latitude); - - expect(latitude_float).toBeGreaterThanOrEqual(-180); - expect(latitude_float).toBeLessThanOrEqual(180); + expect(latitude).toBeGreaterThanOrEqual(-180); + expect(latitude).toBeLessThanOrEqual(180); }); }); @@ -212,38 +206,32 @@ describe('address', () => { it('returns random longitude', () => { const longitude = faker.address.longitude(); - const longitude_float = parseFloat(longitude); - - expect(longitude_float).toBeGreaterThanOrEqual(-180); - expect(longitude_float).toBeLessThanOrEqual(180); + expect(longitude).toBeGreaterThanOrEqual(-180); + expect(longitude).toBeLessThanOrEqual(180); }); it('returns random longitude with min and max and default precision', () => { const longitude = faker.address.longitude(100, -30); expect( - longitude.split('.')[1].length, + longitude.toString().split('.')[1].length, 'The precision of longitude should be 4 digits' ).toBe(4); - const longitude_float = parseFloat(longitude); - - expect(longitude_float).toBeGreaterThanOrEqual(-30); - expect(longitude_float).toBeLessThanOrEqual(100); + expect(longitude).toBeGreaterThanOrEqual(-30); + expect(longitude).toBeLessThanOrEqual(100); }); it('returns random longitude with custom precision', () => { const longitude = faker.address.longitude(undefined, undefined, 7); expect( - longitude.split('.')[1].length, + longitude.toString().split('.')[1].length, 'The precision of longitude should be 7 digits' ).toBe(7); - const longitude_float = parseFloat(longitude); - - expect(longitude_float).toBeGreaterThanOrEqual(-180); - expect(longitude_float).toBeLessThanOrEqual(180); + expect(longitude).toBeGreaterThanOrEqual(-180); + expect(longitude).toBeLessThanOrEqual(180); }); }); From f85e2b0d94e78dc7d727bc4e5bf25a258e17ff2c Mon Sep 17 00:00:00 2001 From: xDivisionByZerox Date: Sun, 12 Jun 2022 12:02:42 +0200 Subject: [PATCH 07/10] test(address): update precision cases --- test/address.spec.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/address.spec.ts b/test/address.spec.ts index 3d2b14c3c17..8348d43a305 100644 --- a/test/address.spec.ts +++ b/test/address.spec.ts @@ -177,7 +177,7 @@ describe('address', () => { expect( latitude.toString().split('.')[1].length, 'The precision of latitude should be 4 digits' - ).toBe(4); + ).lessThanOrEqual(4); expect(latitude).toBeGreaterThanOrEqual(-5); expect(latitude).toBeLessThanOrEqual(5); @@ -189,7 +189,7 @@ describe('address', () => { expect( latitude.toString().split('.')[1].length, 'The precision of latitude should be 7 digits' - ).toBe(7); + ).lessThanOrEqual(7); expect(latitude).toBeGreaterThanOrEqual(-180); expect(latitude).toBeLessThanOrEqual(180); @@ -216,7 +216,7 @@ describe('address', () => { expect( longitude.toString().split('.')[1].length, 'The precision of longitude should be 4 digits' - ).toBe(4); + ).lessThanOrEqual(4); expect(longitude).toBeGreaterThanOrEqual(-30); expect(longitude).toBeLessThanOrEqual(100); @@ -228,7 +228,7 @@ describe('address', () => { expect( longitude.toString().split('.')[1].length, 'The precision of longitude should be 7 digits' - ).toBe(7); + ).lessThanOrEqual(7); expect(longitude).toBeGreaterThanOrEqual(-180); expect(longitude).toBeLessThanOrEqual(180); From dc703e66f7c897ea977effb3499eaeb524635057 Mon Sep 17 00:00:00 2001 From: xDivisionByZerox Date: Sun, 12 Jun 2022 12:10:01 +0200 Subject: [PATCH 08/10] chore(address): add todo --- src/modules/address/index.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/modules/address/index.ts b/src/modules/address/index.ts index b77ab463ba6..132a0dc7198 100644 --- a/src/modules/address/index.ts +++ b/src/modules/address/index.ts @@ -389,6 +389,7 @@ export class AddressModule { * * @since 2.0.1 */ + // TODO @xDivisionByZerox 2022-06-12 this signature should probably be an object for easier maintainability latitude(max: number = 90, min: number = -90, precision: number = 4): number { return this.faker.datatype.number({ min, @@ -410,6 +411,7 @@ export class AddressModule { * * @since 2.0.1 */ + // TODO @xDivisionByZerox 2022-06-12 this signature should probably be an object for easier maintainability longitude( max: number = 180, min: number = -180, From 0ec99ab940b35abf7322cf404ca4e2e2bc2f81bf Mon Sep 17 00:00:00 2001 From: xDivisionByZerox Date: Thu, 13 Oct 2022 18:46:11 +0200 Subject: [PATCH 09/10] test(address): update snapshots --- test/__snapshots__/address.spec.ts.snap | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/test/__snapshots__/address.spec.ts.snap b/test/__snapshots__/address.spec.ts.snap index 705eeb979d0..451583dda52 100644 --- a/test/__snapshots__/address.spec.ts.snap +++ b/test/__snapshots__/address.spec.ts.snap @@ -34,9 +34,9 @@ exports[`address > 42 > direction > with abbr = false 1`] = `"South"`; exports[`address > 42 > direction > with abbr = true 1`] = `"S"`; -exports[`address > 42 > latitude > noArgs 1`] = `"-22.5828"`; +exports[`address > 42 > latitude > noArgs 1`] = `-22.5828`; -exports[`address > 42 > longitude > noArgs 1`] = `"-45.1656"`; +exports[`address > 42 > longitude > noArgs 1`] = `-45.1656`; exports[`address > 42 > nearbyGPSCoordinate > near origin 1`] = ` [ @@ -122,9 +122,9 @@ exports[`address > 1211 > direction > with abbr = false 1`] = `"Southwest"`; exports[`address > 1211 > direction > with abbr = true 1`] = `"SW"`; -exports[`address > 1211 > latitude > noArgs 1`] = `"77.1337"`; +exports[`address > 1211 > latitude > noArgs 1`] = `77.1337`; -exports[`address > 1211 > longitude > noArgs 1`] = `"154.2673"`; +exports[`address > 1211 > longitude > noArgs 1`] = `154.2673`; exports[`address > 1211 > nearbyGPSCoordinate > near origin 1`] = ` [ @@ -210,9 +210,9 @@ exports[`address > 1337 > direction > with abbr = false 1`] = `"South"`; exports[`address > 1337 > direction > with abbr = true 1`] = `"S"`; -exports[`address > 1337 > latitude > noArgs 1`] = `"-42.8356"`; +exports[`address > 1337 > latitude > noArgs 1`] = `-42.8356`; -exports[`address > 1337 > longitude > noArgs 1`] = `"-85.6711"`; +exports[`address > 1337 > longitude > noArgs 1`] = `-85.6711`; exports[`address > 1337 > nearbyGPSCoordinate > near origin 1`] = ` [ From dc05add6d2253bf11133be74af3c34f94eda05b7 Mon Sep 17 00:00:00 2001 From: Shinigami92 Date: Sun, 16 Oct 2022 23:12:34 +0200 Subject: [PATCH 10/10] chore: resolve merge conflict --- src/modules/address/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/address/index.ts b/src/modules/address/index.ts index 9344971183e..4d484651811 100644 --- a/src/modules/address/index.ts +++ b/src/modules/address/index.ts @@ -394,7 +394,7 @@ export class AddressModule { ): [latitude: number, longitude: number] { // If there is no coordinate, the best we can do is return a random GPS coordinate. if (coordinate === undefined) { - return [parseFloat(this.latitude()), parseFloat(this.longitude())]; + return [this.latitude(), this.longitude()]; } const angleRadians = this.faker.datatype.float({