test/isPerfectSquare.test.js
zzmq.dev@gmail.com/mathkit / test / isPerfectSquare.test.js
@ 9271926f
Download
Ladder Summary
- file Defines node:test based unit tests for isPerfectSquare, confirming true results for known perfect squares and false results for non‑perfect squares, negative numbers, non‑integer values, and other invalid inputs such as NaN and infinities.
import { test } from "node:test";
import assert from "node:assert/strict";
import { isPerfectSquare } from "../src/isPerfectSquare.js";
test("isPerfectSquare identifies perfect squares", () => {
assert.strictEqual(isPerfectSquare(0), true);
assert.strictEqual(isPerfectSquare(1), true);
assert.strictEqual(isPerfectSquare(4), true);
assert.strictEqual(isPerfectSquare(9), true);
assert.strictEqual(isPerfectSquare(16), true);
assert.strictEqual(isPerfectSquare(25), true);
assert.strictEqual(isPerfectSquare(100), true);
});
test("isPerfectSquare rejects non‑perfect squares and invalid inputs", () => {
assert.strictEqual(isPerfectSquare(-1), false);
assert.strictEqual(isPerfectSquare(2), false);
assert.strictEqual(isPerfectSquare(3), false);
assert.strictEqual(isPerfectSquare(5), false);
assert.strictEqual(isPerfectSquare(7), false);
assert.strictEqual(isPerfectSquare(10), false);
assert.strictEqual(isPerfectSquare(2.5), false);
assert.strictEqual(isPerfectSquare(NaN), false);
assert.strictEqual(isPerfectSquare(Infinity), false);
assert.strictEqual(isPerfectSquare(-Infinity), false);
});