diff --git a/.gitignore b/.gitignore index 47037ee..c0ea9fb 100644 --- a/.gitignore +++ b/.gitignore @@ -11,4 +11,7 @@ coverage # Logs pnpm-debug.log* -*.log \ No newline at end of file +*.log + +# IDE +.idea \ No newline at end of file diff --git a/src/transformer/resolve-leetspeak/dictionary.ts b/src/transformer/resolve-leetspeak/dictionary.ts index d7ec9d1..248ba3e 100644 --- a/src/transformer/resolve-leetspeak/dictionary.ts +++ b/src/transformer/resolve-leetspeak/dictionary.ts @@ -2,7 +2,10 @@ export const dictionary = new Map([ ['a', '@4'], ['c', '('], ['e', '3'], - ['i', '1|'], + ['i', '1|!'], + ['g', '6'], ['o', '0'], - ['s', '$'], + ['s', '$5'], + ['t', '7'], + ['z', '2'], ]); diff --git a/test/transformer/resolve-leetspeak/index.test.ts b/test/transformer/resolve-leetspeak/index.test.ts index 349c128..beb4095 100644 --- a/test/transformer/resolve-leetspeak/index.test.ts +++ b/test/transformer/resolve-leetspeak/index.test.ts @@ -15,12 +15,23 @@ describe('resolveLeetSpeakTransformer()', () => { it('should remap relevant characters to their normalized equivalent', () => { const transformer = resolveLeetSpeakTransformer(); expect(transformer.transform('@'.charCodeAt(0))).toBe(CharacterCode.LowerA); + expect(transformer.transform('4'.charCodeAt(0))).toBe(CharacterCode.LowerA); + expect(transformer.transform('('.charCodeAt(0))).toBe('c'.charCodeAt(0)); + expect(transformer.transform('3'.charCodeAt(0))).toBe('e'.charCodeAt(0)); + expect(transformer.transform('1'.charCodeAt(0))).toBe('i'.charCodeAt(0)); + expect(transformer.transform('!'.charCodeAt(0))).toBe('i'.charCodeAt(0)); + expect(transformer.transform('|'.charCodeAt(0))).toBe('i'.charCodeAt(0)); + expect(transformer.transform('6'.charCodeAt(0))).toBe('g'.charCodeAt(0)); + expect(transformer.transform('0'.charCodeAt(0))).toBe('o'.charCodeAt(0)); expect(transformer.transform('$'.charCodeAt(0))).toBe('s'.charCodeAt(0)); + expect(transformer.transform('5'.charCodeAt(0))).toBe('s'.charCodeAt(0)); + expect(transformer.transform('7'.charCodeAt(0))).toBe('t'.charCodeAt(0)); + expect(transformer.transform('2'.charCodeAt(0))).toBe(CharacterCode.LowerZ); }); it('should leave other characters as is', () => { const transformer = resolveLeetSpeakTransformer(); - expect(transformer.transform('e'.charCodeAt(0))).toBe('e'.charCodeAt(0)); + expect(transformer.transform('f'.charCodeAt(0))).toBe('f'.charCodeAt(0)); expect(transformer.transform(CharacterCode.Backslash)).toBe(CharacterCode.Backslash); }); });