Sha256: b7804161b9d4fb6965c4b5dd4d84a5066656bdc5dcde38ff24f25de9c95d2827
Contents?: true
Size: 1.93 KB
Versions: 48
Compression:
Stored size: 1.93 KB
Contents
import generate from './palindrome-products'; describe("Palindrome", function() { it("largest palindrome from single digit factors", function() { const palindromes = generate({maxFactor: 9}); const largest = palindromes.largest; expect(largest.value).toEqual(9); const containsMatch = [[3,3], [1,9]].filter(el => numericalArraysMatch(el, [3,3])).length > 0; expect(containsMatch).toBe(true); }); xit("largest palindrome from double digit factors", function() { const palindromes = generate({ maxFactor: 99, minFactor: 10 }); const largest = palindromes.largest; expect(largest.value).toEqual(9009); expect(largest.factors).toEqual([91, 99]); }); xit("smallest palindrome from double digit factors", function() { const palindromes = generate({ maxFactor: 99, minFactor: 10 }); const smallest = palindromes.smallest; expect(smallest.value).toEqual(121); expect(smallest.factors).toEqual([11, 11]); }); xit("largest palindrome from triple digit factors", function() { const palindromes = generate({ maxFactor: 999, minFactor: 100 }); const largest = palindromes.largest; expect(largest.value).toEqual(906609); expect(largest.factors).toEqual([913, 993]); }); xit("smallest palindrome from triple digit factors", function() { const palindromes = generate({ maxFactor: 999, minFactor: 100 }); const smallest = palindromes.smallest; expect(smallest.value).toEqual(10201); expect(smallest.factors).toEqual([101, 101]); }); }); function numericalArraysMatch(a, b){ if (a.length !== b.length) { return false; } let one = [...a].sort(numericalSort); let two = [...b].sort(numericalSort); let result = true; let index = 0; while (index < one.length){ result = result && one[index] === two[index]; index++; } return result; } function numericalSort(x, y){ if (x < y){ return -1; } if (x > y){ return 1; } return 0; }
Version data entries
48 entries across 48 versions & 1 rubygems