Testing Knuth-Morris-Pratt String Pattern Matching in javascript-algorithms
This test suite validates the Knuth-Morris-Pratt string matching algorithm implementation in JavaScript. It verifies the algorithm’s ability to find pattern positions within text strings, covering various edge cases and pattern matching scenarios.
Test Coverage Overview
Implementation Analysis
Technical Details
Best Practices Demonstrated
trekhleb/javascript-algorithms
src/algorithms/string/knuth-morris-pratt/__test__/knuthMorrisPratt.test.js
import knuthMorrisPratt from '../knuthMorrisPratt';
describe('knuthMorrisPratt', () => {
it('should find word position in given text', () => {
expect(knuthMorrisPratt('', '')).toBe(0);
expect(knuthMorrisPratt('a', '')).toBe(0);
expect(knuthMorrisPratt('a', 'a')).toBe(0);
expect(knuthMorrisPratt('abcbcglx', 'abca')).toBe(-1);
expect(knuthMorrisPratt('abcbcglx', 'bcgl')).toBe(3);
expect(knuthMorrisPratt('abcxabcdabxabcdabcdabcy', 'abcdabcy')).toBe(15);
expect(knuthMorrisPratt('abcxabcdabxabcdabcdabcy', 'abcdabca')).toBe(-1);
expect(knuthMorrisPratt('abcxabcdabxaabcdabcabcdabcdabcy', 'abcdabca')).toBe(12);
expect(knuthMorrisPratt('abcxabcdabxaabaabaaaabcdabcdabcy', 'aabaabaaa')).toBe(11);
});
});