zz_

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);
});