maguirebob-palindrome
Version:
Palindrome detector
44 lines (36 loc) • 1.42 kB
JavaScript
let assert = require("assert");
let Phrase = require("../index.js");
describe("Phrase", function() {
describe("#palindrome", function() {
it ("should return false for a non-palindrome", function() {
let nonPalindrome = new Phrase("apple");
assert(!nonPalindrome.palindrome());
});
it ("should return true for a plain palindrome", function() {
let palindrome = new Phrase("racecar");
assert(palindrome.palindrome());
});
it ("should return true for a mixed-case palindrome", function() {
let mixedCasePalindrom = new Phrase("Racecar");
assert(mixedCasePalindrom.palindrome());
});
it ("should return true for a palindrome with punctuation", function() {
let punctuatedPalindrome = new Phrase("Madam, I'm Adam.");
assert(punctuatedPalindrome.palindrome());
});
it ("should return false for an empty string", function() {
let emptyPhrase = new Phrase("");
assert(!emptyPhrase.palindrome());
});
});
describe("#letters", function() {
it("should return only letters", function() {
let punctuatedPalindrome = new Phrase("Madam, I'm Adam.");
assert.strictEqual(punctuatedPalindrome.letters(), "MadamImAdam");
});
it("should return the empty string on no match", function() {
let noLetters = new Phrase("1234.56");
assert.strictEqual(noLetters.letters(), "");
});
});
});