Module:hi-translit/testcases

Revision as of 12:44, 21 April 2026 by Sware (talk | contribs) (1 revision imported)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Documentation for this module may be created at Module:hi-translit/testcases/doc

-- Unit tests for [[Module:hi-translit]]. Refresh page to run tests.
local tests = require('Module:UnitTests')
local hi_translit = require('Module:hi-translit')

function tests:do_test_translit(deva, roman, comment)
	self:equals('<span class="Deva" lang="hi">[[' .. mw.ustring.gsub(deva, "%+", "") .. '#Hindi|' .. mw.ustring.gsub(deva, "%+", "") .. ']]</span>', hi_translit.tr(deva, 'hi', 'Deva'), roman, { comment = comment })
end

local examples = {
    { 'सँस', 'sãs' },
    { 'संस्कार', 'sanskār' },
    { 'संविधान', 'samvidhān' },
    { 'उसाँस', 'usā̃s' },    
    { 'मैंने', 'ma͠ine' },
    { 'ऊँचाई', "ū̃cāī", "long vowel + nasalizer + unvoiced = nasalization" },
    { 'ऊंचाई', "ū̃cāī", "long vowel + nasalizer + unvoiced = nasalization" },
    { 'साँप', "sā̃p", "long vowel + nasalizer + unvoiced = nasalization" },
    { 'सूँघना', "sūṅghnā", "long vowel + nasalizer + voiced = nasal epenthesis" },
    { 'सूंघना', "sūṅghnā", "long vowel + nasalizer + voiced = nasal epenthesis" },
    { 'शंका', "śaṅkā", "short vowel + nasalizer = nasal epenthesis" },
    { 'अशांत', "aśānt", "long vowel + nasalizer + t = nasal epenthesis" },
    { 'सर्व', "sarv", "allowed final geminate" },
    { 'अन्न', "ann", "allowed final geminate" },
    { 'भिन्न', 'bhinn', 'allowed final geminate' },
    { 'बांह', "bā̃h", "nasalized long vowel before aspirate" },
    { 'बाँह', "bā̃h", "nasalized long vowel before aspire" },
    { 'साँझ', "sāñjh", "nasalized long vowel before palatal" },
    { 'बाँटना', "bā̃ṭnā", "nasalized long vowel before retroflex (uncertain if nasal consonant is present or not)" },
	{ 'चाँपना', 'cā̃pnā', "nasalized long vowel before retroflex (uncertain)" },
    { 'प्रमेय', 'pramey', 'final glide has no schwa' },
    { 'उपप्रमेय', 'upapramey', 'final glide has no schwa' }, --IPA /ʊp(ə̯)pɾəme(j)/
    { 'चायवाला', "cāyvālā", 'glide after long vowel has no schwa' },
	{ 'डायनासोर', 'ḍāynāsor', 'glide after long vowel has no schwa' },
	{ 'साँवला', 'sā̃vlā', 'glide after long vowel has no schwa' },
	{ 'कोयला', 'koylā', 'glide after long vowel has no schwa' },
	{ 'ज़िंदगी', 'zindagī' },
    { 'धड़कने', 'dhaṛakne' },
    { 'लपट', 'lapaṭ' },
    { 'लपटें', 'lapṭẽ' },
    --{ 'जिस्म', 'jism' }, loanword
    --{ 'ख़त्म', 'xatm' }, loanword
    { 'उपयोग', 'upyog' },
	{ 'आलप्पुष़ा', 'ālappuḻā' },
	{ 'कपड़ा', 'kapṛā' },
	{ 'नज़दीक', 'nazdīk' },
	{ 'जुड़वाँ', 'juṛvā̃' },
	{ 'कॉफ़ी', 'kŏfī' },
	{ 'फ़िल्म', 'film' },
	{ 'फ़ावड़ा', 'fāvṛā' },
	{ 'करना', 'karnā' },
	{ 'करन', 'karan' },
	{ 'वस्त्र', 'vastra' },
	{ 'भस्म', 'bhasma' },
	{ 'अस्पताल', 'aspatāl' },
	{ 'उत्तम', 'uttam' },
	{ 'क़लम', 'qalam' },
	{ 'देवनागरी', 'devnāgrī' },
	{ 'नमकीन', 'namkīn' },
	{ 'वेद', 'ved' },
	{ 'राम', 'rām' },
	{ 'रचना', 'racnā' },
	{ 'अंग्रेज़', 'aṅgrez' },
	{ 'अंगरेज़', 'aṅgrez' },	
	{ 'विमला', 'vimlā' },
	{ 'भारतीय', 'bhārtīya' },
	{ 'समझा', 'samjhā' },
	{ 'समझ', 'samajh' },
	{ 'लपटें', 'lapṭẽ' },
	{ 'लपट', 'lapaṭ' },
	{ 'सुलोचना', 'sulocnā' },
	{ 'भारत', 'bhārat' },
	{ 'दूःख', 'dūḥkh' },
	{ 'नहीं', 'nahī̃' },
	{ '।', '.' },
	{ 'प्लीज़', 'plīz' },
	{ 'कृपया', 'kŕpyā' },	
	{ 'मानहानि', 'mānhāni' },
	{ 'तिरस्कार', 'tiraskār' },
	{ 'प्रतिबिंब', 'pratibimb' },
	{ 'सुवर्ण', 'suvarṇ' },
	{ 'संपत्ति', 'sampatti' },
	{ 'प्रवेशमार्ग', 'praveśmārg' },
	{ 'अंतःस्राव', 'antaḥsrāv' },
	{ 'बहिष्कार', 'bahiṣkār' },
	{ 'व्यवच्छेद', 'vyavacched' },
	{ 'जलावतनी', 'jalāvatnī' },
	{ 'स्वत्व+हरण', 'svatvaharaṇ' },
	{ 'जब्ती', 'jabtī' },
	{ 'निस्सारण', 'nissāraṇ' },
	{ 'मैथमैटिक्स', 'maithmaiṭiks' },
	{ 'पिक्चर', 'pikcar' },
	{ 'संगमरमर', 'saṅgmarmar' },
	{ 'तलवार', 'talvār' },
	{ 'अलमारी', 'almārī' },
	{ 'उब्द्रशाला', 'ubdraśālā' },
	{ 'टमाटर', 'ṭamāṭar' },
	{ 'पेपरमिंट', 'peparmiṇṭ' },
	{ 'इंगलिश', 'iṅgliś' },
	{ 'अन्तर्राष्ट्रीय', 'antarrāṣṭrīya' },
	{ 'रेफ्रिजरेटर', 'rephrijreṭar' },
	{ 'रेफरिजरेटर', 'rephrijreṭar' },
	{ 'रेफ्रिज्रेटर', 'rephrijreṭar' },
	{ 'रेफरिज्रेटर', 'rephrijreṭar' },
	{ 'अधिकांश', 'adhikāñś' },
	{ 'अज़रबैजान', 'azarbaijān' },
	{ 'अज़र्बैजान', 'azarbaijān' },
	{ 'अफ्रीका', 'aphrīkā' },
	{ 'अफरीका', 'aphrīkā' },
	{ 'अफगानिस्तान', 'aphgānistān' },
	{ 'अफ्गानिस्तान', 'aphgānistān' },
	{ 'अफगानिसतान', 'aphgānistān' },
	{ 'अफ्गानिसतान', 'aphgānistān' },
	{ 'स्फिंकटर', 'sphiṅkṭar' },
	{ 'मांडवी', 'māṇḍvī' },
	{ 'लंपसम', 'lampsam' },
	{ 'मयराम', 'mayarām' },
	{ 'मैय्य', 'maiyya' },
	{ 'रंगद्रव्य', 'raṅgadravya' },
	{ 'रंगदार', 'raṅgdār' },
	--{ 'रंग+पटल', 'raṅgpaṭal' }, --additional functionalities required
	--{ 'संग+ठन', 'saṅgṭhan' },
	{ 'उमंगभर', 'umaṅgbhar' },
	{ 'उमंगहीन', 'umaṅghīn' },
	{ 'तंगहाल', 'taṅghāl' },
	{ 'तत्वमीमांसा', 'tatvamīmānsā' },
	{ 'तनहाई', 'tanhāī' },
	{ 'त्रिकोणमिति', 'trikoṇmiti' },
	{ 'दिसम्बर', 'disambar' },
	{ 'दिसंबर', 'disambar' },
	{ 'दिसमबर', 'disambar' },
	{ 'दिलचस्प', 'dilcasp' },
	{ 'दुरूपयोग', 'durūpyog' },
	{ 'पचहत्तर', 'pachattar' },
	{ 'ढ', 'ḍha' },
	{ 'किंमत', 'kimmat' },
	{ 'हैं', 'ha͠i' },
	{ 'डाउनलोड', "ḍāunloḍ" },
	{ 'इंद्र+धनुष', "indradhanuṣ" },
	{ 'आगमन', "āgman" },
	{ 'अनुमति', "anumati" },
	{ 'सम्मति', "sammati" },
	{ 'संमति', "sammati" },
    { 'मंज़ूर', "manzūr" },
    { 'भारतीय', "bhāratīy" },
    { 'प्रदेशीय', "pradeśīy" },
    { 'नाईं', "nāī̃" },
    { 'ख़ुशबुओं', "xuśbuõ" },
    { "'''रहस्य''' क्या", "'''rahasya''' kyā" },
}

function tests:test_translit_hindi()
	self:iterate(examples, "do_test_translit")
end
 
return tests