stringzy
Version:
A versatile string manipulation library providing a range of text utilities for JavaScript and Node.js applications.
45 lines (44 loc) • 2.79 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const node_test_1 = require("node:test");
const node_assert_1 = __importDefault(require("node:assert"));
const isAnagram_1 = require("../../validations/isAnagram");
(0, node_test_1.describe)('isAnagram', () => {
(0, node_test_1.it)('returns true for valid anagrams (simple lowercase words)', () => {
node_assert_1.default.strictEqual((0, isAnagram_1.isAnagram)('listen', 'silent'), true);
node_assert_1.default.strictEqual((0, isAnagram_1.isAnagram)('evil', 'vile'), true);
});
(0, node_test_1.it)('returns true for case-insensitive matches', () => {
node_assert_1.default.strictEqual((0, isAnagram_1.isAnagram)('Listen', 'Silent'), true);
node_assert_1.default.strictEqual((0, isAnagram_1.isAnagram)('Debit Card', 'Bad Credit'), true);
});
(0, node_test_1.it)('returns true when ignoring spaces and punctuation', () => {
node_assert_1.default.strictEqual((0, isAnagram_1.isAnagram)('Astronomer', 'Moon starer'), true);
node_assert_1.default.strictEqual((0, isAnagram_1.isAnagram)('The eyes!!', 'They see'), true);
});
(0, node_test_1.it)('returns false for non-anagrams', () => {
node_assert_1.default.strictEqual((0, isAnagram_1.isAnagram)('hello', 'world'), false);
node_assert_1.default.strictEqual((0, isAnagram_1.isAnagram)('abc', 'abcd'), false);
});
(0, node_test_1.it)('returns true for single character anagrams', () => {
node_assert_1.default.strictEqual((0, isAnagram_1.isAnagram)('a', 'a'), true);
});
(0, node_test_1.it)('returns false for different single characters', () => {
node_assert_1.default.strictEqual((0, isAnagram_1.isAnagram)('a', 'b'), false);
});
(0, node_test_1.it)('returns true for empty strings (both empty)', () => {
node_assert_1.default.strictEqual((0, isAnagram_1.isAnagram)('', ''), true);
});
(0, node_test_1.it)('returns false when only one string is empty', () => {
node_assert_1.default.strictEqual((0, isAnagram_1.isAnagram)('', 'a'), false);
node_assert_1.default.strictEqual((0, isAnagram_1.isAnagram)('a', ''), false);
});
(0, node_test_1.it)('throws an error if inputs are not strings', () => {
node_assert_1.default.throws(() => (0, isAnagram_1.isAnagram)(123, 'abc'), /Both inputs must be strings/);
node_assert_1.default.throws(() => (0, isAnagram_1.isAnagram)(null, 'abc'), /Both inputs must be strings/);
node_assert_1.default.throws(() => (0, isAnagram_1.isAnagram)(undefined, 'abc'), /Both inputs must be strings/);
});
});