diff --git a/is.js b/is.js index 42f641be..45fd364f 100644 --- a/is.js +++ b/is.js @@ -116,7 +116,13 @@ var is = function is(x) { }, canSpell: { thirteen: function(){ - return x.toLowerCase().includes("t","h","i","r","t","e","e","n"); + if (x === 13) { return true; } + for (let [key, value] of Object.entries({"t": 2, "h": 1, "i": 1, "r": 1, "e": 2, "n": 1})) { + if ((x.match(new RegExp(key, "g")) || []).length < value) { + return false; + } + } + return true; } }, anagramOf:{ diff --git a/test.js b/test.js index 9aa834a7..f5d8dba8 100644 --- a/test.js +++ b/test.js @@ -184,6 +184,11 @@ tap.equal(is(10).minus(1).plus(32).dividedby(4).times(3).thirteen(), false) // ( tap.equal(is(5.3).plus(0.5).times(5).minus(4).dividedby(2).roughly.thirteen(), true) // (((12.5 * 2) + 4) / 5) - .5 +tap.equal(is("thirtee").canSpell.thirteen(), false); +tap.equal(is("truck").canSpell.thirteen(), false); +tap.equal(is("thirteen").canSpell.thirteen(), true); +tap.equal(is("thirsty and a teen").canSpell.thirteen(), true); + tap.equal(is(13).base(10).thirteen(), true); tap.equal(is(14).base(10).thirteen(), false); tap.equal(is("1101").base(2).thirteen(), true);