From 94310078b3695325570efe5ff55711d5242d0d27 Mon Sep 17 00:00:00 2001 From: xDivisionByZerox Date: Sat, 11 Jun 2022 18:27:53 +0200 Subject: [PATCH 1/5] refactor(address.nearbyGPSCoordinate): return type --- src/modules/address/index.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/modules/address/index.ts b/src/modules/address/index.ts index 695d8249169..12f17c224ab 100644 --- a/src/modules/address/index.ts +++ b/src/modules/address/index.ts @@ -517,10 +517,10 @@ export class AddressModule { coordinate?: [latitude: number, longitude: number], radius: number = 10, isMetric: boolean = false - ): [latitude: string, longitude: string] { + ): [latitude: number, longitude: number] { // 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 [parseFloat(this.latitude()), parseFloat(this.longitude())]; } const angleRadians = this.faker.datatype.float({ @@ -560,7 +560,7 @@ export class AddressModule { // Box longitude [-180°, 180°] newCoordinate[1] = (((newCoordinate[1] % 360) + 540) % 360) - 180; - return [newCoordinate[0].toFixed(4), newCoordinate[1].toFixed(4)]; + return [newCoordinate[0], newCoordinate[1]]; } /** From 1d33b40353d4c59d4a58fa53a31aa19b870391fb Mon Sep 17 00:00:00 2001 From: xDivisionByZerox Date: Sat, 11 Jun 2022 19:10:52 +0200 Subject: [PATCH 2/5] docs(address.nearbyGPSCoordinate): example types --- src/modules/address/index.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/modules/address/index.ts b/src/modules/address/index.ts index 12f17c224ab..f725c8e5eab 100644 --- a/src/modules/address/index.ts +++ b/src/modules/address/index.ts @@ -507,9 +507,9 @@ export class AddressModule { * @param isMetric If `true` assume the radius to be in kilometers. If `false` for miles. Defaults to `false`. * * @example - * faker.address.nearbyGPSCoordinate() // [ '33.8475', '-170.5953' ] - * faker.address.nearbyGPSCoordinate([33, -170]) // [ '33.0165', '-170.0636' ] - * faker.address.nearbyGPSCoordinate([33, -170], 1000, true) // [ '37.9163', '-179.2408' ] + * faker.address.nearbyGPSCoordinate() // [ 33.8475, -170.5953 ] + * faker.address.nearbyGPSCoordinate([33, -170]) // [ 33.0165, -170.0636 ] + * faker.address.nearbyGPSCoordinate([33, -170], 1000, true) // [ 37.9163, -179.2408 ] * * @since 5.0.0 */ From 0652f0963374560fdf49d923b2ebe529d34d6581 Mon Sep 17 00:00:00 2001 From: xDivisionByZerox Date: Sat, 11 Jun 2022 21:09:27 +0200 Subject: [PATCH 3/5] test(address.nearbyGPSCoordinate): change expected type --- 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 2c724806c02..ce44be49394 100644 --- a/test/address.spec.ts +++ b/test/address.spec.ts @@ -320,14 +320,14 @@ describe('address', () => { ); expect(coordinate.length).toBe(2); - expect(coordinate[0]).toBeTypeOf('string'); - expect(coordinate[1]).toBeTypeOf('string'); + expect(coordinate[0]).toBeTypeOf('number'); + expect(coordinate[1]).toBeTypeOf('number'); - const latitude2 = +coordinate[0]; + const latitude2 = coordinate[0]; expect(latitude2).toBeGreaterThanOrEqual(-90.0); expect(latitude2).toBeLessThanOrEqual(90.0); - const longitude2 = +coordinate[1]; + const longitude2 = coordinate[1]; expect(longitude2).toBeGreaterThanOrEqual(-180.0); expect(longitude2).toBeLessThanOrEqual(180.0); From 4410291de5680e752b102716a6eca6ee9ebb54c5 Mon Sep 17 00:00:00 2001 From: xDivisionByZerox Date: Sat, 11 Jun 2022 21:12:34 +0200 Subject: [PATCH 4/5] test(address.nearbyGPSCoordinate): remove same test interations --- test/address.spec.ts | 69 +++++++++++++++++++++----------------------- 1 file changed, 33 insertions(+), 36 deletions(-) diff --git a/test/address.spec.ts b/test/address.spec.ts index ce44be49394..b092abd7eaf 100644 --- a/test/address.spec.ts +++ b/test/address.spec.ts @@ -305,42 +305,39 @@ describe('address', () => { describe('nearbyGPSCoordinate()', () => { for (const isMetric of [true, false]) { for (const radius of times(100)) { - it.each(times(5))( - `should return random gps coordinate within a distance of another one (${JSON.stringify( - { isMetric, radius } - )}) (iter: %s)`, - () => { - const latitude1 = +faker.address.latitude(); - const longitude1 = +faker.address.longitude(); - - const coordinate = faker.address.nearbyGPSCoordinate( - [latitude1, longitude1], - radius, - isMetric - ); - - expect(coordinate.length).toBe(2); - expect(coordinate[0]).toBeTypeOf('number'); - expect(coordinate[1]).toBeTypeOf('number'); - - const latitude2 = coordinate[0]; - expect(latitude2).toBeGreaterThanOrEqual(-90.0); - expect(latitude2).toBeLessThanOrEqual(90.0); - - const longitude2 = coordinate[1]; - expect(longitude2).toBeGreaterThanOrEqual(-180.0); - expect(longitude2).toBeLessThanOrEqual(180.0); - - const actualDistance = haversine( - latitude1, - longitude1, - latitude2, - longitude2, - isMetric - ); - expect(actualDistance).toBeLessThanOrEqual(radius); - } - ); + it(`should return random gps coordinate within a distance of another one (${JSON.stringify( + { isMetric, radius } + )})`, () => { + const latitude1 = +faker.address.latitude(); + const longitude1 = +faker.address.longitude(); + + const coordinate = faker.address.nearbyGPSCoordinate( + [latitude1, longitude1], + radius, + isMetric + ); + + expect(coordinate.length).toBe(2); + expect(coordinate[0]).toBeTypeOf('number'); + expect(coordinate[1]).toBeTypeOf('number'); + + const latitude2 = coordinate[0]; + expect(latitude2).toBeGreaterThanOrEqual(-90.0); + expect(latitude2).toBeLessThanOrEqual(90.0); + + const longitude2 = coordinate[1]; + expect(longitude2).toBeGreaterThanOrEqual(-180.0); + expect(longitude2).toBeLessThanOrEqual(180.0); + + const actualDistance = haversine( + latitude1, + longitude1, + latitude2, + longitude2, + isMetric + ); + expect(actualDistance).toBeLessThanOrEqual(radius); + }); } } }); From 0ec6d0101b6d8d46dbcf2a146dc9e586a23084f3 Mon Sep 17 00:00:00 2001 From: xDivisionByZerox Date: Fri, 1 Jul 2022 15:09:45 +0200 Subject: [PATCH 5/5] test(address): update snapshot --- test/__snapshots__/address.spec.ts.snap | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/test/__snapshots__/address.spec.ts.snap b/test/__snapshots__/address.spec.ts.snap index 705eeb979d0..6e437aff56e 100644 --- a/test/__snapshots__/address.spec.ts.snap +++ b/test/__snapshots__/address.spec.ts.snap @@ -40,15 +40,15 @@ exports[`address > 42 > longitude > noArgs 1`] = `"-45.1656"`; exports[`address > 42 > nearbyGPSCoordinate > near origin 1`] = ` [ - "0.0814", - "-0.0809", + 0.08140632875358443, + -0.08093642792425726, ] `; exports[`address > 42 > nearbyGPSCoordinate > noArgs 1`] = ` [ - "-22.5828", - "106.7555", + -22.5828, + 106.7555, ] `; @@ -128,15 +128,15 @@ exports[`address > 1211 > longitude > noArgs 1`] = `"154.2673"`; exports[`address > 1211 > nearbyGPSCoordinate > near origin 1`] = ` [ - "-0.0287", - "0.0596", + -0.02872051646443488, + 0.05959053473372933, ] `; exports[`address > 1211 > nearbyGPSCoordinate > noArgs 1`] = ` [ - "77.1337", - "-14.7545", + 77.1337, + -14.7545, ] `; @@ -216,15 +216,15 @@ exports[`address > 1337 > longitude > noArgs 1`] = `"-85.6711"`; exports[`address > 1337 > nearbyGPSCoordinate > near origin 1`] = ` [ - "0.0806", - "-0.0061", + 0.08055259537977688, + -0.006097651409731952, ] `; exports[`address > 1337 > nearbyGPSCoordinate > noArgs 1`] = ` [ - "-42.8356", - "21.7907", + -42.8356, + 21.7907, ] `;