Added Midpoint.js
This commit is contained in:
24
snippets/midpoint.md
Normal file
24
snippets/midpoint.md
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
### midpoint
|
||||||
|
|
||||||
|
Calculates the midpoint between two pairs of x and y points.
|
||||||
|
|
||||||
|
Takes in two pairs of (x,y) points, calculates the midpoint between the x's, the midpoint between the y's, and returns the coordinates in an array.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const midpoint = (x1, y1, x2, y2) => {
|
||||||
|
let points = new Array(2);
|
||||||
|
let first_point = (x1 + x2) / 2;
|
||||||
|
let second_point = (y1 + y2) / 2;
|
||||||
|
|
||||||
|
points[0] = first_point;
|
||||||
|
points[1] = second_point;
|
||||||
|
return points;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
```js
|
||||||
|
midpoint(2, 2, 4, 4); // [3, 3]
|
||||||
|
midpoint(4, 4, 6, 6); // [5, 5]
|
||||||
|
midpoint(1, 3, 2, 4); // [1.5, 3.5]
|
||||||
|
```
|
||||||
|
|
||||||
@ -186,6 +186,7 @@ maxN:array,math,beginner
|
|||||||
median:math,array,intermediate
|
median:math,array,intermediate
|
||||||
memoize:function,advanced
|
memoize:function,advanced
|
||||||
merge:object,array,intermediate
|
merge:object,array,intermediate
|
||||||
|
midpoint:math,array,beginner
|
||||||
minBy:math,array,function,beginner
|
minBy:math,array,function,beginner
|
||||||
minDate:date,math,beginner
|
minDate:date,math,beginner
|
||||||
minN:array,math,beginner
|
minN:array,math,beginner
|
||||||
|
|||||||
35
test/midpoint.test.js
Normal file
35
test/midpoint.test.js
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
const expect = require('expect');
|
||||||
|
const {midpoint} = require('./_30s.js');
|
||||||
|
|
||||||
|
test('midpoint is a Function', () => {
|
||||||
|
expect(midpoint).toBeInstanceOf(Function);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('midpoint(2, 2, 4, 4) = [3, 3]', () => {
|
||||||
|
expect(midpoint(2, 2, 4, 4)).toEqual([3, 3])
|
||||||
|
});
|
||||||
|
|
||||||
|
test('midpoint(4, 4, 6, 6) = [5,5]', () => {
|
||||||
|
expect(midpoint(4, 4, 6, 6)).toEqual([5, 5])
|
||||||
|
});
|
||||||
|
|
||||||
|
test('midpoint(1, 3, 2, 4) = [3,3]', () => {
|
||||||
|
expect(midpoint(1, 3, 2, 4)).toEqual([1.5, 3.5])
|
||||||
|
});
|
||||||
|
|
||||||
|
test('midpoint(-2, 0, -2, 4) = [-2,2]', () => {
|
||||||
|
expect(midpoint(-2, 0, -2, 4)).toEqual([-2, 2])
|
||||||
|
});
|
||||||
|
|
||||||
|
test('midpoint(0, 0, 0, 0) = [0,0]', () => {
|
||||||
|
expect(midpoint(0, 0, 0, 0)).toEqual([0, 0])
|
||||||
|
});
|
||||||
|
|
||||||
|
test('midpoint(10, -10, 20, 30) = [15, 10]', () => {
|
||||||
|
expect(midpoint(10, -10, 20, 30)).toEqual([15, 10])
|
||||||
|
});
|
||||||
|
|
||||||
|
test('midpoint(7.5, -1.3, 2.7, 11.1) = [5.1, 4.8999999999999995]', () => {
|
||||||
|
expect(midpoint(7.5, -1.3, 2.7, 11.1)).toEqual([5.1, 4.8999999999999995])
|
||||||
|
});
|
||||||
|
|
||||||
Reference in New Issue
Block a user