Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit e8d862c

Browse files
ddhira123raklaptudirm
andauthored
merge: Added manhattan distance and euclidean distance for distance 2 points task (#809)
* Added Hex to Binary conversion * Update Conversions/HexToBinary.js Co-authored-by: Rak Laptudirm <raklaptudirm@gmail.com> * Update Conversions/HexToBinary.js Co-authored-by: Rak Laptudirm <raklaptudirm@gmail.com> * Update Conversions/HexToBinary.js Co-authored-by: Rak Laptudirm <raklaptudirm@gmail.com> * Update Conversions/HexToBinary.js Co-authored-by: Rak Laptudirm <raklaptudirm@gmail.com> * Fix errors * fix: typo * Added Manhattan Distance Algorithm Co-authored-by: Rak Laptudirm <raklaptudirm@gmail.com>
1 parent 32f1e33 commit e8d862c

File tree

2 files changed

+42
-15
lines changed

2 files changed

+42
-15
lines changed

‎Maths/Coordinate.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,16 @@
44
Example: coorDistance(2,2,14,11) will return 15
55
Wikipedia reference: https://en.wikipedia.org/wiki/Geographical_distance#Flat-surface_formulae
66
*/
7-
const distance2points = (longitude1, latitude1, longitude2, latitude2) => {
7+
const euclideanDistance = (longitude1, latitude1, longitude2, latitude2) => {
88
const width = longitude2 - longitude1
99
const height = latitude2 - latitude1
1010
return (Math.sqrt(width * width + height * height))
1111
}
1212

13-
export { distance2points }
13+
const manhattanDistance = (longitude1, latitude1, longitude2, latitude2) => {
14+
const width = Math.abs(longitude2 - longitude1)
15+
const height = Math.abs(latitude2 - latitude1)
16+
return width + height
17+
}
18+
19+
export { euclideanDistance, manhattanDistance }

‎Maths/test/Coordinate.test.js

Lines changed: 34 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,43 @@
11
import * as coordinate from '../Coordinate'
22

3-
describe('Testing distance2points calculations', () => {
3+
describe('Testing euclideanDistance calculations', () => {
44
it('Should give a numeric output (distance between 2 points) with 4 numeric arguments', () => {
5-
const distance2points = coordinate.distance2points(2, 2, -10, -7)
6-
expect(distance2points).toBe(15)
5+
const euclideanDistance = coordinate.euclideanDistance(2, 2, -10, -7)
6+
expect(euclideanDistance).toBe(15)
77
})
88
it('Should not give any output given non-numeric argument', () => {
9-
const distance2points = coordinate.distance2points('ABC', '123', '', '###')
10-
expect(distance2points).toBeNaN()
9+
const euclideanDistance = coordinate.euclideanDistance('ABC', '123', '', '###')
10+
expect(euclideanDistance).toBeNaN()
1111
})
1212
it('Should not give any output given any number of numeric arguments less than 4', () => {
13-
const distance2points3arg = coordinate.distance2points(2, 2, -10)
14-
const distance2points2arg = coordinate.distance2points(2, 2)
15-
const distance2points1arg = coordinate.distance2points(2)
16-
const distance2points0arg = coordinate.distance2points()
17-
expect(distance2points3arg).toBeNaN()
18-
expect(distance2points2arg).toBeNaN()
19-
expect(distance2points1arg).toBeNaN()
20-
expect(distance2points0arg).toBeNaN()
13+
const euclideanDistance3arg = coordinate.euclideanDistance(2, 2, -10)
14+
const euclideanDistance2arg = coordinate.euclideanDistance(2, 2)
15+
const euclideanDistance1arg = coordinate.euclideanDistance(2)
16+
const euclideanDistance0arg = coordinate.euclideanDistance()
17+
expect(euclideanDistance3arg).toBeNaN()
18+
expect(euclideanDistance2arg).toBeNaN()
19+
expect(euclideanDistance1arg).toBeNaN()
20+
expect(euclideanDistance0arg).toBeNaN()
21+
})
22+
})
23+
24+
describe('Testing manhattanDistance calculations', () => {
25+
it('Should give a numeric output (distance between 2 points) with 4 numeric arguments', () => {
26+
const manhattanDistance = coordinate.manhattanDistance(2, 2, -10, -7)
27+
expect(manhattanDistance).toBe(21)
28+
})
29+
it('Should not give any output given non-numeric argument', () => {
30+
const manhattanDistance = coordinate.manhattanDistance('ABC', '123', '', '###')
31+
expect(manhattanDistance).toBeNaN()
32+
})
33+
it('Should not give any output given any number of numeric arguments less than 4', () => {
34+
const manhattanDistance3arg = coordinate.manhattanDistance(2, 2, -10)
35+
const manhattanDistance2arg = coordinate.manhattanDistance(2, 2)
36+
const manhattanDistance1arg = coordinate.manhattanDistance(2)
37+
const manhattanDistance0arg = coordinate.manhattanDistance()
38+
expect(manhattanDistance3arg).toBeNaN()
39+
expect(manhattanDistance2arg).toBeNaN()
40+
expect(manhattanDistance1arg).toBeNaN()
41+
expect(manhattanDistance0arg).toBeNaN()
2142
})
2243
})

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /