| 1 | const assert = require("node:assert"); |
| 2 | const math = require("./math"); |
| 3 | assert.strictEqual(math.subtract(5, 3), 2); |
| 4 | |
| 5 | assert.strictEqual(math.add(2, 3), 5); |
| 6 | assert.strictEqual(math.multiply(4, 5), 20); |
| 7 | assert.strictEqual(math.power(2, 10), 1024); |
| 8 | assert.strictEqual(math.power(5, 0), 1); |
| 9 | assert.throws(() => math.power(2, -1), RangeError); |
| 10 | assert.strictEqual(math.mean([1, 2, 3]), 2); |
| 11 | assert.strictEqual(math.mean([1, 2, 3, 4]), 2.5); |
| 12 | assert.strictEqual(math.median([1, 2, 3]), 2); |
| 13 | assert.strictEqual(math.median([3, 1, 2]), 2); |
| 14 | assert.strictEqual(math.median([4, 1, 3, 2]), 2.5); |
| 15 | assert.strictEqual(math.standard_deviation([1, 2, 3]), Math.sqrt(2 / 3)); |
| 16 | assert.strictEqual(math.standard_deviation([2, 4, 4, 4, 5, 5, 7, 9]), 2); |
| 17 | for (const fn of [math.mean, math.median, math.standard_deviation]) { |
| 18 | assert.throws(() => fn([]), TypeError); |
| 19 | } |
| 20 | assert.strictEqual(math.clamp(5, 0, 10), 5); |
| 21 | assert.strictEqual(math.clamp(-5, 0, 10), 0); |
| 22 | assert.strictEqual(math.clamp(15, 0, 10), 10); |
| 23 | assert.strictEqual(math.clamp(3, 3, 3), 3); |
| 24 | assert.throws(() => math.clamp(1, 10, 0), RangeError); |
| 25 | console.log("all tests passed"); |