Scratch repository for testing automations.
Add tests for statistics functions in test.js #21
Approved by g1t
2 files+3−340/2 viewed
| 1 | 1 | # automation lab | |
| 2 | − | ||
| 3 | − | ## Functions | |
| 4 | − | ||
| 5 | − | All functions are exported from `math.js`. | |
| 6 | − | ||
| 7 | − | ```js | |
| 8 | − | const { add, multiply, power, mean, median, standard_deviation } = require("./math"); | |
| 9 | − | ``` | |
| 10 | − | ||
| 11 | − | - `add(a, b)`: returns the sum of `a` and `b`. | |
| 12 | − | ```js | |
| 13 | − | add(2, 3); // 5 | |
| 14 | − | ``` | |
| 15 | − | - `multiply(a, b)`: returns the product of `a` and `b`. | |
| 16 | − | ```js | |
| 17 | − | multiply(4, 5); // 20 | |
| 18 | − | ``` | |
| 19 | − | - `power(base, exponent)`: returns `base` raised to a whole-number `exponent`; throws a `RangeError` if `exponent` is negative. | |
| 20 | − | ```js | |
| 21 | − | power(2, 3); // 8 | |
| 22 | − | ``` | |
| 23 | − | - `mean(numbers)`: returns the average of an array of numbers; throws a `TypeError` if the array is empty. | |
| 24 | − | ```js | |
| 25 | − | mean([1, 2, 3, 4]); // 2.5 | |
| 26 | − | ``` | |
| 27 | − | - `median(numbers)`: returns the middle value (the average of the two middle values when the length is even); throws a `TypeError` if the array is empty. | |
| 28 | − | ```js | |
| 29 | − | median([3, 1, 2]); // 2 | |
| 30 | − | median([1, 2, 3, 4]); // 2.5 | |
| 31 | − | ``` | |
| 32 | − | - `standard_deviation(numbers)`: returns the population standard deviation; throws a `TypeError` if the array is empty. | |
| 33 | − | ```js | |
| 34 | − | standard_deviation([2, 4, 4, 4, 5, 5, 7, 9]); // 2 | |
| 35 | − | ``` |
| 6 | 6 | assert.strictEqual(math.power(2, 10), 1024); | |
| 7 | 7 | assert.strictEqual(math.power(5, 0), 1); | |
| 8 | 8 | assert.throws(() => math.power(2, -1), RangeError); | |
| 9 | + | assert.strictEqual(math.mean([1, 2, 3]), 2); | |
| 9 | 10 | assert.strictEqual(math.mean([1, 2, 3, 4]), 2.5); | |
| 11 | + | assert.strictEqual(math.median([1, 2, 3]), 2); | |
| 10 | 12 | assert.strictEqual(math.median([3, 1, 2]), 2); | |
| 11 | 13 | assert.strictEqual(math.median([4, 1, 3, 2]), 2.5); | |
| 14 | + | assert.strictEqual(math.standard_deviation([1, 2, 3]), Math.sqrt(2 / 3)); | |
| 12 | 15 | assert.strictEqual(math.standard_deviation([2, 4, 4, 4, 5, 5, 7, 9]), 2); | |
| 13 | 16 | for (const fn of [math.mean, math.median, math.standard_deviation]) { | |
| 14 | 17 | assert.throws(() => fn([]), TypeError); |