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>
This commit is contained in:
Dhana D
2021-10-25 10:56:53 +07:00
committed by GitHub
parent 32f1e3351c
commit e8d862ca94
2 changed files with 42 additions and 15 deletions

View File

@ -4,10 +4,16 @@
Example: coorDistance(2,2,14,11) will return 15
Wikipedia reference: https://en.wikipedia.org/wiki/Geographical_distance#Flat-surface_formulae
*/
const distance2points = (longitude1, latitude1, longitude2, latitude2) => {
const euclideanDistance = (longitude1, latitude1, longitude2, latitude2) => {
const width = longitude2 - longitude1
const height = latitude2 - latitude1
return (Math.sqrt(width * width + height * height))
}
export { distance2points }
const manhattanDistance = (longitude1, latitude1, longitude2, latitude2) => {
const width = Math.abs(longitude2 - longitude1)
const height = Math.abs(latitude2 - latitude1)
return width + height
}
export { euclideanDistance, manhattanDistance }

View File

@ -1,22 +1,43 @@
import * as coordinate from '../Coordinate'
describe('Testing distance2points calculations', () => {
describe('Testing euclideanDistance calculations', () => {
it('Should give a numeric output (distance between 2 points) with 4 numeric arguments', () => {
const distance2points = coordinate.distance2points(2, 2, -10, -7)
expect(distance2points).toBe(15)
const euclideanDistance = coordinate.euclideanDistance(2, 2, -10, -7)
expect(euclideanDistance).toBe(15)
})
it('Should not give any output given non-numeric argument', () => {
const distance2points = coordinate.distance2points('ABC', '123', '', '###')
expect(distance2points).toBeNaN()
const euclideanDistance = coordinate.euclideanDistance('ABC', '123', '', '###')
expect(euclideanDistance).toBeNaN()
})
it('Should not give any output given any number of numeric arguments less than 4', () => {
const distance2points3arg = coordinate.distance2points(2, 2, -10)
const distance2points2arg = coordinate.distance2points(2, 2)
const distance2points1arg = coordinate.distance2points(2)
const distance2points0arg = coordinate.distance2points()
expect(distance2points3arg).toBeNaN()
expect(distance2points2arg).toBeNaN()
expect(distance2points1arg).toBeNaN()
expect(distance2points0arg).toBeNaN()
const euclideanDistance3arg = coordinate.euclideanDistance(2, 2, -10)
const euclideanDistance2arg = coordinate.euclideanDistance(2, 2)
const euclideanDistance1arg = coordinate.euclideanDistance(2)
const euclideanDistance0arg = coordinate.euclideanDistance()
expect(euclideanDistance3arg).toBeNaN()
expect(euclideanDistance2arg).toBeNaN()
expect(euclideanDistance1arg).toBeNaN()
expect(euclideanDistance0arg).toBeNaN()
})
})
describe('Testing manhattanDistance calculations', () => {
it('Should give a numeric output (distance between 2 points) with 4 numeric arguments', () => {
const manhattanDistance = coordinate.manhattanDistance(2, 2, -10, -7)
expect(manhattanDistance).toBe(21)
})
it('Should not give any output given non-numeric argument', () => {
const manhattanDistance = coordinate.manhattanDistance('ABC', '123', '', '###')
expect(manhattanDistance).toBeNaN()
})
it('Should not give any output given any number of numeric arguments less than 4', () => {
const manhattanDistance3arg = coordinate.manhattanDistance(2, 2, -10)
const manhattanDistance2arg = coordinate.manhattanDistance(2, 2)
const manhattanDistance1arg = coordinate.manhattanDistance(2)
const manhattanDistance0arg = coordinate.manhattanDistance()
expect(manhattanDistance3arg).toBeNaN()
expect(manhattanDistance2arg).toBeNaN()
expect(manhattanDistance1arg).toBeNaN()
expect(manhattanDistance0arg).toBeNaN()
})
})