Module:sa-utilities/translit/testcases

local tests = require('Module:UnitTests') local m_links = require('Module:links') local lang = require('Module:languages').getByCode('sa') local sa_utils_translit = require('Module:sa-utilities/translit') local Deva_to_IAST = require('Module:sa-utilities/translit/Deva-to-IAST') local Deva_to_SLP = require('Module:sa-utilities/translit/Deva-to-SLP1') local IAST_to_SLP = require('Module:sa-utilities/translit/IAST-to-SLP1') local SLP_to_IAST = require('Module:sa-utilities/translit/SLP1-to-IAST') local SLP_to_Deva = require('Module:sa-utilities/translit/SLP1-to-Deva')

local function link(term) return m_links.full_link { lang = lang, term = term, tr = '-' } end

function tests:check_Deva_conversion(input, expected) input = input[1] local slp = Deva_to_SLP.tr(input) table.insert(expected, input) self:equals(link(input),		table.concat({ Deva_to_IAST.tr(input), slp, SLP_to_Deva.tr(slp) }, ', '),		table.concat(expected, ', ')) end

function tests:test_Deva_conversion local examples = { { { 'संस्कृत' }, { 'saṃskṛta', 'saMskfta' } }, { { 'तन्त्र' }, { 'tantra', 'tantra' } }, { { 'चन्द्र' }, { 'candra', 'candra' } }, { { 'स्वतंत्र' }, { 'svataṃtra', 'svataMtra' } }, { { 'त्रैंश' }, { 'traiṃśa', 'trEMSa' } }, { { 'कार्त्स्न्य' }, { 'kārtsnya', 'kArtsnya' } }, { { 'उक्त्वा' }, { 'uktvā', 'uktvA' } }, { { 'औपद्रष्ट्र्य' }, { 'aupadraṣṭrya', 'Opadrazwrya' } }, { { 'मार्त्स्न' }, { 'mārtsna', 'mArtsna' } }, { { 'निकुञ्जिकाम्ला' }, { 'nikuñjikāmlā', 'nikuYjikAmlA' } }, { { 'महत्' }, { 'mahat', 'mahat' } }, }	self:iterate(examples, 'check_Deva_conversion') end

function tests:check_IAST_conversion(input, expected) input = input[1] local slp = IAST_to_SLP.tr(input) if #expected < 3 then table.insert(expected, input) end self:equals(input,		table.concat({ slp, SLP_to_Deva.tr(slp), SLP_to_IAST.tr(slp) }, ', '),		table.concat(expected, ', ')) end

function tests:test_IAST_conversion local examples = { { { 'saṃskṛtá' }, { 'saMskfta/', 'संस्कृत', } }, { { 'tántra' }, { 'ta/ntra', 'तन्त्र' } }, { { 'candrá' }, { 'candra/', 'चन्द्र' } }, { { 'svátaṃtra' }, { 'sva/taMtra', 'स्वतंत्र' } }, { { 'traiṃśa' }, { 'trEMSa', 'त्रैंश' } }, { { 'kārtsnya' }, { 'kArtsnya', 'कार्त्स्न्य' } }, { { 'uktvā' }, { 'uktvA', 'उक्त्वा' } }, { { 'aúpadraṣṭrya' }, { 'O/padrazwrya', 'औपद्रष्ट्र्य' } }, { { 'áupadraṣṭrya' }, { 'O/padrazwrya', 'औपद्रष्ट्र्य', 'aúpadraṣṭrya' } }, { { 'mā́rtsna' }, { 'mA/rtsna', 'मार्त्स्न' } }, { { 'nikuñjikāmlā' }, { 'nikuYjikAmlA', 'निकुञ्जिकाम्ला' } }, { { 'mahát' }, { 'maha/t', 'महत्' } }, { { 'kanyā̀' }, { 'kanyA\\', 'कन्या' } }, { { 'mūrdhán' }, { 'mUrDa/n', 'मूर्धन्' } }, { { 'átharvan' }, { 'a/Tarvan', 'अथर्वन्' } }, { { 'mūrkhá' }, { 'mUrKa/', 'मूर्ख' } }, }	self:iterate(examples, 'check_IAST_conversion') end

function tests:check_detect_to_SLP(input, expected) input = input[1] local slp = IAST_to_SLP.tr(input) self:equals(input,		sa_utils_translit.detect_to_SLP(input),		expected[1]) end

function tests:test_detect_to_SLP local examples = { { { 'saṃskṛtá' }, { 'saMskfta/' } }, { { 'tántra' }, { 'ta/ntra' } }, { { 'candrá' }, { 'candra/' } }, { { 'स्वतंत्र' }, { 'svataMtra' } }, { { 'traiṃśa' }, { 'trEMSa' } }, { { 'कार्त्स्न्य' }, { 'kArtsnya' } }, { { 'uktvā' }, { 'uktvA' } }, { { 'औपद्रष्ट्र्य' }, { 'Opadrazwrya' } }, { { 'áupadraṣṭrya' }, { 'O/padrazwrya' } }, { { 'mā́rtsna' }, { 'mA/rtsna' } }, { { 'निकुञ्जिकाम्ला' }, { 'nikuYjikAmlA' } }, { { 'महत्' }, { 'mahat' } }, }	self:iterate(examples, 'check_detect_to_SLP') end

return tests