This is the unit testing module for Module:fa-cls-translit.

1 test failed. (refresh)

Text Expected Actual Differs at
test_translit_persian:
Passed سَرْاَنْجَام sar-anjām sar-anjām
Passed کُروز kurōz kurōz
Passed دَهْ dah dah
Passed دَه da da
Passed سُؤَال su'āl su'āl
Passed کُرُوز kurūz kurūz
Passed وَاوْ wāw wāw
Passed نَوْروز nawrōz nawrōz
Passed قَهْوَه‌اِی qahwa-ī qahwa-ī
Passed قَهْوَه‌یِی qahwa-yī qahwa-yī
Passed خْوَانْدَن xwāndan xwāndan
Passed خْویش xwēš xwēš
Passed خْوَد xwad xwad
Passed چَامَه‌سَرَایِی čāma-sarāyī čāma-sarāyī
Passed طَنِین tanīn tanīn
Passed لِهٰذَا lihāzā lihāzā
Passed عَصاً 'asan 'asan
Passed خَانَه xāna xāna
Passed کورِیَایِ شُمَالِی kōriyā-yi šumālī kōriyā-yi šumālī
Passed ضَمَّه zamma zamma
Passed ضَمِّهْ zammih zammih
Passed کِه ki ki
Passed کِهْ kih kih
Passed اَرْمَنِسْتَان armanistān armanistān
Passed بَاکُو bākū bākū
Passed کَسی kasē kasē
Passed بَرَادَرِ بُزُرْگ barādar-i buzurg barādar-i buzurg
Passed قُرُونِ وُسْطیٰ qurūn-i wustā qurūn-i wustā
Passed دَر-آمَد dar-āmad dar-āmad
Passed بَازِیِ شَطْرَنْج bāzī-yi šatranj bāzī-yi šatranj
Passed ایرَانِیَان ērāniyān ērāniyān
Passed سُؤَال su'āl su'āl
Passed صُبَاح subāh subāh
Passed صُبْح subh subh
Passed صُبْه subh subh
Passed دُروغ گویْ durōğ gōy durōğ gōy
Passed او ō ō
Passed وَ wa wa
Passed و u u
Passed بَه نَامِ خُدَا ba nām-i xudā ba nām-i xudā
Passed جَوَانِی jawānī jawānī
Passed شَاهْنَامَه šāhnāma šāhnāma
Passed زِنْدَگِی zindagī zindagī
Passed زِنْدَه‌گِی zinda-gī zinda-gī
Passed میوَهٔ جَاپَانِی mēwa-yi jāpānī mēwa-yi jāpānī
Passed نُوید nuwēd nuwēd
Passed دُخْتَرَْبَچَّه duxtar-bačča duxtar-bačča
Passed کِیَه kiya kiya
Passed کُرُوَاسِیَا kuruwāsiyā kuruwāsiyā
Passed مِیَایِین miyāyīn miyāyīn
Passed مْیَایین myāyēn myāyēn
Passed طِلَّا tillā tillā
Passed لیکِن lēkin lēkin
Passed بَچَّهٔ لَطِیفَه کَلَان اَسْت bačča-yi latīfa kalān ast bačča-yi latīfa kalān ast
Passed مَعْرُوف و مَجْهُول ma'rūf u majhūl ma'rūf u majhūl
Passed مَعْرُوف وَ مَجْهُول ma'rūf wa majhūl ma'rūf wa majhūl
Passed اَرمنستان (nil) (nil) N/A
Passed باکو (nil) (nil) N/A
Passed کسی (nil) (nil) N/A
Passed برادر بزرگ (nil) (nil) N/A
Passed قرون وسطی (nil) (nil) N/A
Passed وَٱللّٰه wallāh wallāh
Passed آیَةُ‌اللّٰه āyatu-llāh āyatu-llāh
Passed فِالْحَال fi-l-hāl fi-l-hāl
Passed کَسے kasē kasē
Passed کَٹَه kaṭa kaṭa
Passed بویِ تُو bō-yi tū bō-yi tū
Passed بِسْمِ اللّٰهِ الْرَّحْمٰنِ الْرَّحِیم bism-i llāh-i rrahmān-i rrahīm bism-i llāh-i rrahmān-i rrahīm
Failed اِیَالَاتِ مُتَّحِدَه iyālāti muttahida īālāt-i muttahida 1

-- Unit tests for [[Module:fa-cls-translit]]. Refresh page to run tests.
local tests = require('Module:UnitTests')
local fa_translit = require('Module:fa-cls-translit')
local m_links = require('Module:links')

local fa = require('Module:languages').getByCode('fa')
local function link(term)
	return m_links.full_link{term = term, lang = fa}
end

function tests:do_test_translit(Pers, roman, xlit)
	self:equals(link(Pers), fa_translit.tr(Pers, 'fa', 'fa-Arab'), roman)
end

function tests:test_translit_persian()
	local examples = {
		
		{ 'سَرْاَنْجَام', "sar-anjām" },
		{ 'کُروز', "kurōz" },
		{ 'دَهْ', "dah"}, --always "h" near a vowel
		{ 'دَه', "da"}, --always a when theres no vowel
		{ 'سُؤَال', "su'āl" },
		{ 'کُرُوز', "kurūz" }, -- this word is intentionally incorrect
		{ 'وَاوْ', "wāw" },
		{'نَوْروز', "nawrōz"},
		{ 'قَهْوَه‌اِی', "qahwa-ī" }, -- case for ه‌َای as a-'ī can be changed to yī
		{ 'قَهْوَه‌یِی', "qahwa-yī" }, -- case for ه‌یِی as a-'ī
		{'خْوَانْدَن', "xwāndan"}, -- case for خوَا as xwā
		{'خْویش', "xwēš"}, 
		{'خْوَد', "xwad"}, -- case for خو as xo (Iranian Persian) and xwad (Classical Persian)
		{ 'چَامَه‌سَرَایِی', "čāma-sarāyī" },
		{ 'طَنِین', "tanīn" },
		{ 'لِهٰذَا', "lihāzā" }, -- can be lehāzā if majhul diacritics are shown
		{ 'عَصاً', "'asan" },
		{ 'خَانَه', "xāna" },	
		{ 'کورِیَایِ شُمَالِی', "kōriyā-yi šumālī" },	
		{ 'ضَمَّه', "zamma" },
		{ 'ضَمِّهْ', "zammih" }, -- force include final -h with diacritics
		{ 'کِه', "ki"},
		{ 'کِهْ', "kih" }, -- another example of forcing the h
		{ 'اَرْمَنِسْتَان', "armanistān" }, 
		{ 'بَاکُو', "bākū" },
		{ 'کَسی', "kasē"}, --word final -ē
		{"بَرَادَرِ بُزُرْگ", "barādar-i buzurg"}, -- izafa/ezafe marked with a dash -
		{'قُرُونِ وُسْطیٰ', "qurūn-i wustā" }, -- a dagger alif case
		{'دَر-آمَد', "dar-āmad" }, -- alif madda test
		{ 'بَازِیِ شَطْرَنْج', "bāzī-yi šatranj" },
		{ 'ایرَانِیَان', "ērāniyān"},
		{ 'سُؤَال', "su'āl"}, --if majhul diacritics are used then so'āl
		{ 'صُبَاح', "subāh" },
		{ 'صُبْح', "subh"},
		{ 'صُبْه', "subh"}, --purposefully mispelt
		{ "دُروغ گویْ", "durōğ gōy"}, --have semivowels become consonts with jazm
		{ 'او', "ō" }, -- transliteration of wa, beginning of sentence
		{ 'وَ', "wa" },	--transliteration of wa, elsewhere (requires two spaces on both sides)
		{ ' و ', " u " },
		{ 'بَه نَامِ خُدَا', "ba nām-i xudā"},
		{ 'جَوَانِی', "jawānī"},
		{ 'شَاهْنَامَه', "šāhnāma"},
		{ 'زِنْدَگِی', "zindagī"},
		{ 'زِنْدَه‌گِی', "zinda-gī"},
		{ 'میوَهٔ جَاپَانِی', "mēwa-yi jāpānī" },
		{ 'نُوید', "nuwēd"}, -- nawīd/navid in modern Persian
		{ 'دُخْتَرَْبَچَّه',"duxtar-bačča"},
		{ 'کِیَه', "kiya" },
		{ 'کُرُوَاسِیَا', "kuruwāsiyā" }, --moderate vowel test
		{ 'مِیَایِین', "miyāyīn"}, -- more complex vowel test
		{ 'مْیَایین', "myāyēn"}, -- more complex vowel test
		{ 'طِلَّا', "tillā" },
		{ 'لیکِن', "lēkin" },
		{ 'بَچَّهٔ لَطِیفَه کَلَان اَسْت', "bačča-yi latīfa kalān ast" },
		{ 'مَعْرُوف و مَجْهُول', "ma'rūf u majhūl"},
		{ 'مَعْرُوف وَ مَجْهُول', "ma'rūf wa majhūl"},
		{ 'اَرمنستان', nil }, 
		{ 'باکو', nil },
		{ 'کسی', nil }, --word final -ē
		{"برادر بزرگ", nil }, -- izafa/ezafe marked with a dash -
		{'قرون وسطی', nil }, -- a dagger alif 
		{'وَٱللّٰه', "wallāh"}, --alef_wasla 
		-- uncommon characters
		{'آیَةُ‌اللّٰه',
			'āyatu-llāh'},
		{'فِالْحَال',
			'fi-l-hāl'},
		{'کَسے',
			'kasē'},
		{'کَٹَه',
			'kaṭa'},--hazaragi
		{'بویِ تُو',
			'bō-yi tū'},
		{'بِسْمِ اللّٰهِ الْرَّحْمٰنِ الْرَّحِیم',
			'bism-i llāh-i rrahmān-i rrahīm'},
		{'اِیَالَاتِ مُتَّحِدَه',
			'iyālāti muttahida'}
	}
	self:iterate(examples, "do_test_translit")
end	

return tests