UNPKG

transliteration-with-spice

Version:

This is a tool that allows to generate all common used transliterations.

125 lines (111 loc) 4.94 kB
//packages const transliterate = require('../'); const characterMap = require('../characterMap'); //tests describe('integrity check', () => { it('case mismatch check', function (done) { for (let language in characterMap) { const {map: data} = characterMap[language]; for (let key in data) { const values = data[key]; const isKeyUpperCase = key[0] === key[0].toUpperCase(); let isAllValuesUpperCase = true; let isAllValuesLowerCase = true; for (let value of values) { if (value === '') continue; if (!/^\D$/.test(values)) continue; const isValueUpperCase = value[0] === value[0].toUpperCase(); if (isValueUpperCase) { isAllValuesLowerCase = false; } else { isAllValuesUpperCase = false; } } if (values[0] && ((isKeyUpperCase && !isAllValuesUpperCase) || (!isKeyUpperCase && !isAllValuesLowerCase))) { return done(new Error(`Case mismatch detected, language: ${language}, key: ${key}, values: ${values}`)); } } } done(); }); it('missing letter check', function (done) { for (let language in characterMap) { const {map: data} = characterMap[language]; for (let key in data) { const isKeyUpperCase = key[0] === key[0].toUpperCase(); const keyAlter1 = `${isKeyUpperCase ? key[0].toLowerCase() : key[0].toUpperCase()}${key.substr(1)}`; const keyAlter2 = isKeyUpperCase ? key.toLowerCase() : key.toUpperCase(); if (!data[keyAlter1] && !data[keyAlter2]) { return done(new Error(`Missing alter value for ${key}`)); } } } done(); }); }); describe('samples', () => { describe('to en', () => { it('hy: բարեւ', function (done) { const textOrigin = 'բարեւ'; const textResult = 'barev'; const translits = transliterate(textOrigin, ); console.log(translits); if (!translits.includes(textResult)) { return done(new Error(`Text result for "${textResult}" have not been generated: "${translits.join(', ')}".`)); } done(); }); it('ru: привет', function (done) { const textOrigin = 'привет'; const textResult = 'privet'; const translits = transliterate(textOrigin, ); console.log(translits); if (!translits.includes(textResult)) { return done(new Error(`Text result for "${textResult}" have not been generated: "${translits.join(', ')}".`)); } done(); }); it('hy: բարե՛ւ աշխարհ', function (done) { const textOrigin = 'բարե՛ւ աշխարհ'; const textResult = 'barev ashkharh'; const translits = transliterate(textOrigin, ); console.log(translits); if (!translits.includes(textResult)) { return done(new Error(`Text result for "${textResult}" have not been generated: "${translits.join(', ')}".`)); } done(); }); it('ru: привет мир!', function (done) { const textOrigin = 'привет мир!'; const textResult = 'privet mir!'; const translits = transliterate(textOrigin, ); console.log(translits); if (!translits.includes(textResult)) { return done(new Error(`Text result for "${textResult}" have not been generated: "${translits.join(', ')}".`)); } done(); }); }); describe('to ru', () => { it('hy: բարեւ', function (done) { const textOrigin = 'բարեւ'; const textResult = 'барев'; const translits = transliterate(textOrigin, 'ru'); console.log(translits); if (!translits.includes(textResult)) { return done(new Error(`Text result for "${textResult}" have not been generated: "${translits.join(', ')}".`)); } done(); }); it('hy: բարե՛ւ աշխարհ', function (done) { const textOrigin = 'բարե՛ւ աշխարհ'; const textResult = 'барев ашхар'; const translits = transliterate(textOrigin, 'ru'); console.log(translits); if (!translits.includes(textResult)) { return done(new Error(`Text result for "${textResult}" have not been generated: "${translits.join(', ')}".`)); } done(); }); }); });