Skip to content

Commit 54b3ff9

Browse files
committed
Lib.median(): reuse existing Lib.interp()
1 parent 7c8d52b commit 54b3ff9

File tree

2 files changed

+4
-11
lines changed

2 files changed

+4
-11
lines changed

src/lib/stats.js

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -78,16 +78,9 @@ exports.stdev = function(data, len, mean) {
7878
* median of a finite set of numbers
7979
* reference page: https://en.wikipedia.org/wiki/Median#Finite_set_of_numbers
8080
**/
81-
exports.median = function(data, len) {
82-
if(!len) len = exports.len(data);
81+
exports.median = function(data) {
8382
var b = data.slice().sort();
84-
if(len % 2 === 0) {
85-
// If even
86-
return (b[len / 2 - 1] + b[len / 2]) / 2;
87-
} else {
88-
// If odd
89-
return b[(len - 1) / 2];
90-
}
83+
return exports.interp(b, 0.5);
9184
};
9285

9386
/**

test/jasmine/tests/lib_test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,13 +178,13 @@ describe('Test lib.js:', function() {
178178

179179
describe('median() should', function() {
180180
it('return the middle value exactly for odd number of observations:', function() {
181-
var input = [1, 3, 3, 6, 7, 8, 9];
181+
var input = [1, 8, 9, 2, 7, 6, 3];
182182
var res = Lib.median(input);
183183
expect(res).toEqual(6);
184184
});
185185

186186
it('return the mean of the two middle values for even number of observations', function() {
187-
var input = [1, 2, 3, 4, 5, 6, 8, 9];
187+
var input = [4, 3, 2, 1, 5, 6, 8, 9];
188188
var res = Lib.median(input);
189189
expect(res).toEqual(4.5);
190190
});

0 commit comments

Comments
 (0)