zz_

test/median.test.js

zzmq.dev@gmail.com/mathkit / test / median.test.js @ 9271926f Download
Ladder Summary
  • file Contains a Node.js test suite that verifies the median function works for odd and even sized arrays, handles unsorted inputs correctly, and returns undefined for empty arrays or invalid inputs such as non‑arrays, non‑numeric elements, NaN, or Infinity.
import { test } from "node:test";
import assert from "node:assert/strict";
import { median } from "../src/median.js";

test("median with odd number of elements", () => {
  assert.strictEqual(median([3, 1, 2]), 2);
  assert.strictEqual(median([10, -5, 7, 3, 2]), 3);
});

test("median with even number of elements", () => {
  assert.strictEqual(median([1, 2, 3, 4]), 2.5);
  assert.strictEqual(median([7, 3, 5, 1]), 4);
});

test("median works on unsorted arrays", () => {
  assert.strictEqual(median([9, 2, 7, 4, 5]), 5);
  assert.strictEqual(median([8, 1, 6, 3]), 4.5);
});

test("median returns undefined for empty array or invalid inputs", () => {
  assert.strictEqual(median([]), undefined);
  assert.strictEqual(median(null), undefined);
  assert.strictEqual(median("not an array"), undefined);
  assert.strictEqual(median([1, 2, "three"]), undefined);
  assert.strictEqual(median([1, NaN, 3]), undefined);
  assert.strictEqual(median([Infinity, 1, 2]), undefined);
});