Jump to content

Module:User:Erutuon/he-translit-omit-nonconsonantal/testcases

From Wiktionary, the free dictionary

4 of 179 tests failed. (refresh)

TextExpectedActualDiffers atComments
test_translit:
Passedבַּיִתbayiṯbayiṯ
Passedבֵּיתbēṯbēṯ
Passedבָּֽתִּיםbāttīmbāttīm
Passedאָ֫תָּהʔā́ttāʔā́ttāstressed qamats always ā
Passedאָֽתָּהʔāttāʔāttāmeteg for unstressed qamats that is ā (normally would be o)
Passedאָכְלָהʔoḵlāʔoḵlā“food” - unstressed qamats before sheva normally o
Passedאָֽכְלָהʔāḵəlāʔāḵəlā“she ate”
Passedמַחֲנֶהmaḥănemaḥăne
Passedבָּרָאbārābārā
Passedרֶגֶלreḡelreḡel
Passedכֹּהֵןkōhēnkōhēn
Passedמֶלֶךְmeleḵmeleḵ
Passedמַמְלָכָהmamlāḵāmamlāḵā
Passedהַמַּמְלָכָהhammamlāḵāhammamlāḵā
Passedהַלְּלוּיָהּhalləlūyāhhalləlūyāh
Passedהַלְלוּיָהּhaləlūyāhhaləlūyāh
Passedיָדַעyāḏaʕyāḏaʕ
Passedשָׁבוּעַšāḇū́aʕšāḇū́aʕ
Passedרוּחַrū́aḥrū́aḥ
Passedגָּבֹהַּgāḇṓahgāḇṓah
Passedגָּבֹ֫הַּgāḇṓahgāḇṓahavoid adding two stress marks
Passedמָשִׁיחַmāšī́aḥmāšī́aḥ
Passedמָשִׁ֫יחַmāšī́aḥmāšī́aḥavoid adding two stress marks
Passedרֵיחַrḗaḥrḗaḥ
Passedשָׂדֶהśāḏeśāḏe
Passedשְׂדֵהśəḏēśəḏē
Passedבָּנַיbānaybānay
Passedבְּנֵיbənēbənē
Passedצָרְכִּיṣorkīṣorkī
Passedבֵּלְטְשַׁאצַּרbēlṭəšaṣṣarbēlṭəšaṣṣar
Passedחָכְמָהḥoḵmāḥoḵmāno sheva rules apply; have to go with a default
Passedשִׁפְרָהšip̄rāšip̄rā
Passedשָׁכְבְּךָšoḵbəḵāšoḵbəḵā
Passedהָפְכָּהhop̄kāhop̄kāmade-up word, but a particular potentially problematic Unicode situation
Passedקָטְבּוֹqoṭbōqoṭbōanother particular potentially problematic Unicode situation
Passedנִשְׂרְפָהniśrəp̄āniśrəp̄ā
Passedבָּנָיוbānāwbānāw
Passedבָּנֶיהָbānehābānehā
Passedמִצְוֹתmiṣwōṯmiṣwōṯ
Passedעָוֺןʕāwōnʕāwōn
Passedזִוּוּגziwwūḡziwwūḡ
Passedרֹאשׁrōšrōš
Passedרֵאשִׁיתrēšīṯrēšīṯ
Passedרִאשׁוֹןrīšōnrīšōn
Passedמְלָאכָהməlāḵāməlāḵā
Passedמְלֶאכֶתməleḵeṯməleḵeṯ
Passedחֵטְאḥēṭḥēṭ
Passedבָּרָאתָbārāṯābārāṯā
Passedחַטֹּאותḥaṭṭōṯḥaṭṭōṯ
Passedיְראוּyərūyərū
Passedוַיֶּאְסֹרwayyeʔsōrwayyeʔsōr
Passedהָחְלַטhoḥlaṭhoḥlaṭ
Passedוַיֵּבְךְּwayyēḇkwayyēḇk
Passedוַיֵּ֫בְךְּwayyēḇkwayyēḇkomit accent on final syllable before silent sheva
Passedאַרְאֶךָּʔarʔekkāʔarʔekkā
Passedוַיַּשְׁקְwayyašqwayyašq
Passedאַתְּʔattʔatt
Passedוּוָווֹūwāwōūwāwō
Passedוָוwāwwāw
Passedתָּוtāwtāw
Passedקַוqawqaw
Passedלָאוlāwlāw
Passedחַיḥayḥay
Passedחָיḥāyḥāypausal
Passedפִּיוpīwpīw
Passedכִּסְלֵוkislēwkislēw
Passedגּוֹיgōygōy
Passedגֹּיgōygōy
Passedגֹּיִיםgōyīmgōyīm
Passedרָאוּיrāʔūyrāʔūy
Passedקִיא
Passedיָבִיאוּyāḇīʔūyāḇīʔū
Passedיְבִיאוּןyəḇīʔūnyəḇīʔūn
Passedמֵאוּןmēʔūnmēʔūn
Passedמֵיאוּןmēʔūnmēʔūn
Passedבּוֹאוּbōʔūbōʔū
Passedבֹּאוּbōʔūbōʔū
Passedבּוּאוּbūʔūbūʔūmade-up word, but may help identify the issue
Passedאָבִיאָהʔāḇīʔāʔāḇīʔā
Passedמֵאָהmēʔāmēʔā
Passedגֵּיאָהּgēʔāhgēʔāh
Passedאָבוֹאָהʔāḇōʔāʔāḇōʔā
Passedאָבֹאָהʔāḇōʔāʔāḇōʔā
Passedנְשׂוּאָהnəśūʔānəśūʔā
Passedקִיאוֹqīʔōqīʔō
Passedגֵּאוֹgēʔōgēʔō
Passedגֵּיאוֹgēʔōgēʔō
Passedבּוֹאוֹbōʔōbōʔō
Passedבֹּאוֹbōʔōbōʔō
Passedמִלּוּאוֹmillūʔōmillūʔō
Passedמִי
Passedאִיִּיםʔiyyīmʔiyyīm
Passedאִיּוֹבʔiyyōḇʔiyyōḇ
Passedאִיּוּןʔiyyūnʔiyyūn
Passedאַיִןʔayinʔayin
Passedבּוֹא
Passedיְפֵהפֶהyəp̄ēp̄eyəp̄ēp̄e
Passedאֹהֶלʔōhelʔōhel
Passedהָאֹהֱלָהhāʔōhĕlāhāʔōhĕlā
Passedאָהֳלוֹʔohŏlōʔohŏlō
Failedאָהָלְךָʔoholəḵāʔāholḵā2qamats qamats sheva perhaps always ooə in segolate nouns with pronominal suffix; however, verbs follow the same pattern but have long ā, so this may be an impossible condition to use
PassedיִשָּׂשכָרyiśśāḵāryiśśāḵārStill undecided if this actually needs to be handled
Passedהוֹשִׁיעָה נָּאhōšīʕā nnāhōšīʕā nnā
Passedעַד בֹּאֲךָʕaḏ bōʔăḵāʕaḏ bōʔăḵā
Passedוַיַּשְׁקְ אֶת הַצֹּאןwayyašq ʔeṯ haṣṣōnwayyašq ʔeṯ haṣṣōn
Passedבְּנֵי בְרָקbənē ḇərāqbənē ḇərāq
Passedבְרָקḇərāqḇərāq
Passedאִישׁ יְהוּדִי הָיָה בְּשׁוּשַׁן הַבִּירָה וּשְׁמוֹ מָרְדֳּכַי בֶּן יָאִיר בֶּן־שִׁמְעִי בֶּן־קִישׁ אִישׁ יְמִינִי׃ʔīš yəhūḏī hāyā bəšūšan habbīrā ūšəmō mordŏḵay ben yāʔīr ben-šimʕī ben-qīš ʔīš yəmīnī.ʔīš yəhūḏī hāyā bəšūšan habbīrā ūšəmō mordŏḵay ben yāʔīr ben-šimʕī ben-qīš ʔīš yəmīnī.
Passedאִ֣ישׁ יְהוּדִ֔י הָיָ֖ה בְּשׁוּשַׁ֣ן הַבִּירָ֑ה וּשְׁמ֣וֹ מָרְדֳּכַ֗י בֶּ֣ן יָאִ֧יר בֶּן־שִׁמְעִ֛י בֶּן־קִ֖ישׁ אִ֥ישׁ יְמִינִֽי׃ʔīš yəhūḏī hāyā bəšūšan habbīrā ūšəmō mordŏḵay ben yāʔīr ben-šimʕī ben-qīš ʔīš yəmīnī.ʔīš yəhūḏī hāyā bəšūšan habbīrā ūšəmō mordŏḵay ben yāʔīr ben-šimʕī ben-qīš ʔīš yəmīnī.fully accented verse; stress should not be indicated in the final syllable
Failedוַיְהִי הַמַּבּוּל אַרְבָּעִים יוֹם עַל־הָאָרֶץ וַיִּרְבּוּ הַמַּיִם וַיִּשְׂאוּ אֶת־הַתֵּבָה וַתָּרָם מֵעַל הָאָרֶץ׃wayhī hammabbūl ʔarbāʕīm yōm ʕal-hāʔā́reṣ wayyirbū hammáyim wayyiśʔū ʔeṯ-hattēḇā wattā́rom mēʕal hāʔā́reṣ.wayhī hammabbūl ʔarbāʕīm yōm ʕal-hāʔāreṣ wayyirbū hammayim wayyiśʔū ʔeṯ-hattēḇā wattārām mēʕal hāʔāreṣ.38a reminder of why this is hard
Failedוַיְהִ֧י הַמַּבּ֛וּל אַרְבָּעִ֥ים י֖וֹם עַל־הָאָ֑רֶץ וַיִּרְבּ֣וּ הַמַּ֗יִם וַיִּשְׂאוּ֙ אֶת־הַתֵּבָ֔ה וַתָּ֖רָם מֵעַ֥ל הָאָֽרֶץ׃wayhī hammabbūl ʔarbāʕīm yōm ʕal-hāʔā́reṣ wayyirbū hammáyim wayyiśʔū ʔeṯ-hattēḇā wattā́rom mēʕal hāʔā́reṣ.wayhī hammabbūl ʔarbāʕīm yōm ʕal-hāʔā́reṣ wayyirbū hammáyim wayyiśʔū ʔeṯ-hattēḇā wattā́rām mēʕal hāʔāreṣ.89fully accented verse version of the above
Failedוַיַּ֤רְא אֱלֹהִים֙ אֶת־כָּל־אֲשֶׁ֣ר עָשָׂ֔ה וְהִנֵּה־ט֖וֹב מְאֹ֑ד וַֽיְהִי־עֶ֥רֶב וַֽיְהִי־בֹ֖קֶר י֥וֹם הַשִּׁשִּֽׁי׃wayyar ʔĕlōhīm ʔeṯ-kol-ʔăšer ʕāśā wəhinnē-ṭōḇ məʔōḏ wáyhī-ʕéreḇ wáyhī-ḇṓqer yōm haššiššī.wayyar ʔĕlōhīm ʔeṯ-kol-ʔăšer ʕāśā wəhinnē-ṭōḇ məʔōḏ wayəhī-ʕéreḇ wayəhī-ḇṓqer yōm haššiššī.54
implicit ktiv/qre that would be nice to have
Passedהִוא
Passedיְרוּשָׁלִַםyərūšāláyimyərūšāláyim
Passedיְר֣וּשָׁלִַ֔םyərūšāláyimyərūšāláyimwith accent: incorrect order with no combining grapheme joiner
Passedיְרוּשָׁלִָםyərūšālā́yimyərūšālā́yimpausal form
Passedיְרוּשָׁלָֽ͏ִםyərūšālā́yimyərūšālā́yimwith meteg and combining grapheme joiner (which keeps meteg between vowel points)
Passedיְרוּשָׁלֲמָהyərūšāláymāyərūšāláymā
Passedיְרוּשָׁלֳמָהyərūšālā́ymāyərūšālā́ymā
ktiv male tests
Passedחַיָּיבḥayyāḇḥayyāḇ
Passedחַוָּוהḥawwāḥawwā
Passedהֱוֵוהhĕwēhĕwē
Passedהַיְינוּhaynūhaynū
Passedהִתְכַּוְּונוּhiṯkawwənūhiṯkawwənū
Passedגַּוְונָאgawnāgawnā
Passedמְייוּחָדməyūḥāḏməyūḥāḏthere is no way to tell that it really should be məyuḥāḏ, but anyway this test is for the double yod
Passedכְּדַאיkəḏaykəḏay
Passedכּוּלָּםkullāmkullāmshuruk does not necessarily imply a long vowel
Passedקִידּוּשׁqiddūšqiddūšchiriq male does not necessarily imply a long vowel
כל
Passedכָּלkolkol
Passedכָּל כָּל כָּלkol kol kolkol kol kol
Passedכָּל הַכָּבוֹדkol hakkāḇōḏkol hakkāḇōḏ
Passedכָלḵolḵol
Passedבְּלִי כָל מְאוּםbəlī ḵol məʔūmbəlī ḵol məʔūm
Passedמִכָּלmikkolmikkol
Passedמִכָּל מָקוֹםmikkol māqōmmikkol māqōm
Passedבְּכָלbəḵolbəḵol
Passedבְּכָל מָקוֹםbəḵol māqōmbəḵol māqōm
Passedלְכָלləḵolləḵol
Passedלְכָל מָקוֹםləḵol māqōmləḵol māqōm
Passedכְּכָלkəḵolkəḵol
Passedכְּכָל הַנִּרְאֶהkəḵol hannirʔekəḵol hannirʔe
Passedשֶׁכָּלšekkolšekkol
Passedשֶׁכָּל מָקוֹםšekkol māqōmšekkol māqōm
Passedשֶׁמִּכָּלšemmikkolšemmikkol
Passedשֶׁמִּכָּל מָקוֹםšemmikkol māqōmšemmikkol māqōm
Passedשֶׁבְּכָלšebbəḵolšebbəḵol
Passedשֶׁבְּכָל מָקוֹםšebbəḵol māqōmšebbəḵol māqōm
Passedשֶׁלְּכָלšelləḵolšelləḵol
Passedשֶׁלְּכָל מָקוֹםšelləḵol māqōmšelləḵol māqōm
Passedוְכָלwəḵolwəḵol
Passedוְכָל מָקוֹםwəḵol māqōmwəḵol māqōm
Passedוּבְכָלūḇəḵolūḇəḵol
Passedוּבְכָל מָקוֹםūḇəḵol māqōmūḇəḵol māqōm
Passedוּכְכָלūḵəḵolūḵəḵol
Passedוּכְכָל מָקוֹםūḵəḵol māqōmūḵəḵol māqōm
Passedהַכָּלhakkolhakkol
Passedבַּכָּלbakkolbakkol
Passedלַכָּלlakkollakkol
Passedמֵהַכָּלmēhakkolmēhakkol
Passedשֶׁהַכָּלšehakkolšehakkol
Passedשֶׁבַּכָּלšebbakkolšebbakkol
Passedשֶׁלַּכָּלšellakkolšellakkol
Passedוְהַכָּלwəhakkolwəhakkol
Passedוּבַכָּלūḇakkolūḇakkol
Passedוְלַכָּלwəlakkolwəlakkol
Passedוְכַכָּלwəḵakkolwəḵakkol
Passedדְּכָלdəḵoldəḵol
Passedשַׁכָּלšakkolšakkol
not kol
Passedכָּלָהkālākālā
Passedהֵיכָלhēḵālhēḵāl
Passedמַאֲכָלmaʔăḵālmaʔăḵāl
Passedמִיכָלmīḵālmīḵāl
Passedמְכָלməḵālməḵāl
Passedשָׁכָלšāḵālšāḵāl
Passedשֻׁכָּלšukkālšukkāl
Passedמוּכָלmūḵālmūḵāl
rare word-internal he mater-lectionis (for fun)
Passedפְּדָהצוּרpəḏāṣūrpəḏāṣūr
Passedעֲשָׂהאֵלʕăśāʔēlʕăśāʔēl

Lua error in Module:module_categorization at line 298: Could not infer any languages or scripts from root pagename 'User:Erutuon'


-- Taken verbatim from [[Module:he-translit]]
local examples = [[
בַּיִת	bayiṯ
בֵּית	bēṯ
בָּֽתִּים	bāttīm
אָ֫תָּה	ʔā́ttā -- stressed qamats always ā
אָֽתָּה	ʔāttā -- meteg for unstressed qamats that is ā (normally would be o)
אָכְלָה	ʔoḵlā -- “food” - unstressed qamats before sheva normally o
אָֽכְלָה	ʔāḵəlā -- “she ate”
מַחֲנֶה	maḥăne
בָּרָא	bārā
רֶגֶל	reḡel
כֹּהֵן	kōhēn
מֶלֶךְ	meleḵ
מַמְלָכָה	mamlāḵā
הַמַּמְלָכָה	hammamlāḵā
הַלְּלוּיָהּ	halləlūyāh
הַלְלוּיָהּ	haləlūyāh
יָדַע	yāḏaʕ
שָׁבוּעַ	šāḇū́aʕ
רוּחַ	rū́aḥ
גָּבֹהַּ	gāḇṓah
גָּבֹ֫הַּ	gāḇṓah -- avoid adding two stress marks
מָשִׁיחַ	māšī́aḥ
מָשִׁ֫יחַ	māšī́aḥ -- avoid adding two stress marks
רֵיחַ	rḗaḥ
שָׂדֶה	śāḏe
שְׂדֵה	śəḏē
בָּנַי	bānay
בְּנֵי	bənē
צָרְכִּי	ṣorkī
בֵּלְטְשַׁאצַּר	bēlṭəšaṣṣar
חָכְמָה	ḥoḵmā -- no sheva rules apply; have to go with a default
שִׁפְרָה	šip̄rā
שָׁכְבְּךָ	šoḵbəḵā
הָפְכָּה	hop̄kā -- made-up word, but a particular potentially problematic Unicode situation
קָטְבּוֹ	qoṭbō -- another particular potentially problematic Unicode situation
נִשְׂרְפָה	niśrəp̄ā
בָּנָיו	bānāw
בָּנֶיהָ	bānehā
מִצְוֹת	miṣwōṯ
עָוֺן	ʕāwōn
זִוּוּג	ziwwūḡ
רֹאשׁ	rōš
רֵאשִׁית	rēšīṯ
רִאשׁוֹן	rīšōn
מְלָאכָה	məlāḵā
מְלֶאכֶת	məleḵeṯ
חֵטְא	ḥēṭ
בָּרָאתָ	bārāṯā
חַטֹּאות	ḥaṭṭōṯ
יְראוּ	yərū
וַיֶּאְסֹר	wayyeʔsōr
הָחְלַט	hoḥlaṭ
וַיֵּבְךְּ	wayyēḇk
וַיֵּ֫בְךְּ	wayyēḇk -- omit accent on final syllable before silent sheva
אַרְאֶךָּ	ʔarʔekkā
וַיַּשְׁקְ	wayyašq
אַתְּ	ʔatt
וּוָווֹ	ūwāwō
וָו	wāw
תָּו	tāw
קַו	qaw
לָאו	lāw
חַי	ḥay
חָי	ḥāy -- pausal
פִּיו	pīw
כִּסְלֵו	kislēw
גּוֹי	gōy
גֹּי	gōy
גֹּיִים	gōyīm
רָאוּי	rāʔūy
קִיא	qī
יָבִיאוּ	yāḇīʔū
יְבִיאוּן	yəḇīʔūn
מֵאוּן	mēʔūn
מֵיאוּן	mēʔūn
בּוֹאוּ	bōʔū
בֹּאוּ	bōʔū
בּוּאוּ	būʔū -- made-up word, but may help identify the issue
אָבִיאָה	ʔāḇīʔā
מֵאָה	mēʔā
גֵּיאָהּ	gēʔāh
אָבוֹאָה	ʔāḇōʔā
אָבֹאָה	ʔāḇōʔā
נְשׂוּאָה	nəśūʔā
קִיאוֹ	qīʔō
גֵּאוֹ	gēʔō
גֵּיאוֹ	gēʔō
בּוֹאוֹ	bōʔō
בֹּאוֹ	bōʔō
מִלּוּאוֹ	millūʔō
מִי	mī
אִיִּים	ʔiyyīm
אִיּוֹב	ʔiyyōḇ
אִיּוּן	ʔiyyūn
אַיִן	ʔayin
בּוֹא	bō
יְפֵהפֶה	yəp̄ēp̄e
אֹהֶל	ʔōhel
הָאֹהֱלָה	hāʔōhĕlā
אָהֳלוֹ	ʔohŏlō
אָהָלְךָ	ʔoholəḵā -- qamats qamats sheva perhaps always ooə in segolate nouns with pronominal suffix; however, verbs follow the same pattern but have long ā, so this may be an impossible condition to use
יִשָּׂשכָר	yiśśāḵār -- Still undecided if this actually needs to be handled
הוֹשִׁיעָה נָּא	hōšīʕā nnā
עַד בֹּאֲךָ	ʕaḏ bōʔăḵā
וַיַּשְׁקְ אֶת הַצֹּאן	wayyašq ʔeṯ haṣṣōn
בְּנֵי בְרָק	bənē ḇərāq
בְרָק	ḇərāq
אִישׁ יְהוּדִי הָיָה בְּשׁוּשַׁן הַבִּירָה וּשְׁמוֹ מָרְדֳּכַי בֶּן יָאִיר בֶּן־שִׁמְעִי בֶּן־קִישׁ אִישׁ יְמִינִי׃	ʔīš yəhūḏī hāyā bəšūšan habbīrā ūšəmō mordŏḵay ben yāʔīr ben-šimʕī ben-qīš ʔīš yəmīnī.
אִ֣ישׁ יְהוּדִ֔י הָיָ֖ה בְּשׁוּשַׁ֣ן הַבִּירָ֑ה וּשְׁמ֣וֹ מָרְדֳּכַ֗י בֶּ֣ן יָאִ֧יר בֶּן־שִׁמְעִ֛י בֶּן־קִ֖ישׁ אִ֥ישׁ יְמִינִֽי׃	ʔīš yəhūḏī hāyā bəšūšan habbīrā ūšəmō mordŏḵay ben yāʔīr ben-šimʕī ben-qīš ʔīš yəmīnī. -- fully accented verse; stress should not be indicated in the final syllable
וַיְהִי הַמַּבּוּל אַרְבָּעִים יוֹם עַל־הָאָרֶץ וַיִּרְבּוּ הַמַּיִם וַיִּשְׂאוּ אֶת־הַתֵּבָה וַתָּרָם מֵעַל הָאָרֶץ׃	wayhī hammabbūl ʔarbāʕīm yōm ʕal-hāʔā́reṣ wayyirbū hammáyim wayyiśʔū ʔeṯ-hattēḇā wattā́rom mēʕal hāʔā́reṣ. -- a reminder of why this is hard
וַיְהִ֧י הַמַּבּ֛וּל אַרְבָּעִ֥ים י֖וֹם עַל־הָאָ֑רֶץ וַיִּרְבּ֣וּ הַמַּ֗יִם וַיִּשְׂאוּ֙ אֶת־הַתֵּבָ֔ה וַתָּ֖רָם מֵעַ֥ל הָאָֽרֶץ׃	wayhī hammabbūl ʔarbāʕīm yōm ʕal-hāʔā́reṣ wayyirbū hammáyim wayyiśʔū ʔeṯ-hattēḇā wattā́rom mēʕal hāʔā́reṣ. -- fully accented verse version of the above
וַיַּ֤רְא אֱלֹהִים֙ אֶת־כָּל־אֲשֶׁ֣ר עָשָׂ֔ה וְהִנֵּה־ט֖וֹב מְאֹ֑ד וַֽיְהִי־עֶ֥רֶב וַֽיְהִי־בֹ֖קֶר י֥וֹם הַשִּׁשִּֽׁי׃	wayyar ʔĕlōhīm ʔeṯ-kol-ʔăšer ʕāśā wəhinnē-ṭōḇ məʔōḏ wáyhī-ʕéreḇ wáyhī-ḇṓqer yōm haššiššī.
-- implicit ktiv/qre that would be nice to have
הִוא	hī
יְרוּשָׁלִַם	yərūšāláyim
יְר֣וּשָׁלִַ֔ם	yərūšāláyim -- with accent: incorrect order with no combining grapheme joiner
יְרוּשָׁלִָם	yərūšālā́yim -- pausal form
יְרוּשָׁלָֽ͏ִם	yərūšālā́yim -- with meteg and combining grapheme joiner (which keeps meteg between vowel points)
יְרוּשָׁלְַמָה	yərūšāláymā
יְרוּשָׁלְָמָה	yərūšālā́ymā
-- ktiv male tests
חַיָּיב	ḥayyāḇ
חַוָּוה	ḥawwā
הֱוֵוה	hĕwē
הַיְינוּ	haynū
הִתְכַּוְּונוּ	hiṯkawwənū
גַּוְונָא	gawnā
מְייוּחָד	məyūḥāḏ -- there is no way to tell that it really should be məyuḥāḏ, but anyway this test is for the double yod
כְּדַאי	kəḏay
כּוּלָּם	kullām -- shuruk does not necessarily imply a long vowel
קִידּוּשׁ	qiddūš -- chiriq male does not necessarily imply a long vowel
-- כל
כָּל	kol
כָּל כָּל כָּל	kol kol kol
כָּל הַכָּבוֹד	kol hakkāḇōḏ
כָל	ḵol
בְּלִי כָל מְאוּם	bəlī ḵol məʔūm
מִכָּל	mikkol
מִכָּל מָקוֹם	mikkol māqōm
בְּכָל	bəḵol
בְּכָל מָקוֹם	bəḵol māqōm
לְכָל	ləḵol
לְכָל מָקוֹם	ləḵol māqōm
כְּכָל	kəḵol
כְּכָל הַנִּרְאֶה	kəḵol hannirʔe
שֶׁכָּל	šekkol
שֶׁכָּל מָקוֹם	šekkol māqōm
שֶׁמִּכָּל	šemmikkol
שֶׁמִּכָּל מָקוֹם	šemmikkol māqōm
שֶׁבְּכָל	šebbəḵol
שֶׁבְּכָל מָקוֹם	šebbəḵol māqōm
שֶׁלְּכָל	šelləḵol
שֶׁלְּכָל מָקוֹם	šelləḵol māqōm
וְכָל	wəḵol
וְכָל מָקוֹם	wəḵol māqōm
וּבְכָל	ūḇəḵol
וּבְכָל מָקוֹם	ūḇəḵol māqōm
וּכְכָל	ūḵəḵol
וּכְכָל מָקוֹם	ūḵəḵol māqōm
הַכָּל	hakkol
בַּכָּל	bakkol
לַכָּל	lakkol
מֵהַכָּל	mēhakkol
שֶׁהַכָּל	šehakkol
שֶׁבַּכָּל	šebbakkol
שֶׁלַּכָּל	šellakkol
וְהַכָּל	wəhakkol
וּבַכָּל	ūḇakkol
וְלַכָּל	wəlakkol
וְכַכָּל	wəḵakkol
דְּכָל	dəḵol
שַׁכָּל	šakkol
-- not kol
כָּלָה	kālā
הֵיכָל	hēḵāl
מַאֲכָל	maʔăḵāl
מִיכָל	mīḵāl
מְכָל	məḵāl
שָׁכָל	šāḵāl
שֻׁכָּל	šukkāl
מוּכָל	mūḵāl
-- rare word-internal he mater-lectionis (for fun)
פְּדָהצוּר	pəḏāṣūr
עֲשָׂהאֵל	ʕăśāʔēl
]]

-- The above can be regenerated with this code in [[Module:he-translit]]:
--[[
local examples = {} -- paste examples table here

function tests:run_tests()
	local output = require "Module:array"()
	for _, row in ipairs(examples) do
		if type(row) == "string" then
			output:insert("-- " .. row)
		else
			if row[3] then
				output:insert(row[1] .. "\t" .. row[2] .. " -- " .. row[3])
			else
				output:insert(row[1] .. "\t" .. row[2])
			end
		end
	end
	return require "Module:debug".highlight(output:concat("\n"), { lang = "text" })
end
--]]

local tests = require('Module:UnitTests')

local he_translit = require('Module:User:Erutuon/he-translit-omit-nonconsonantal')

local full_link = require('Module:links').full_link
local lang = require('Module:languages').getByCode('he')
local sc = require('Module:scripts').getByCode('Hebr')
local function link(term)
	return full_link{lang = lang, sc = sc, term = term}
end

local function parse_examples(example_string)
	local examples = {}
	for line in mw.text.gsplit(example_string, "\n") do
		local rest, comment = line:match("^(.-)%-%-%s*([^\n]+)%s*$")
		if not rest then
			rest = line
		end
		rest = mw.text.trim(rest)
		if rest == "" then
			table.insert(examples, comment)
		else
			local example = mw.text.split(rest, "\t")
			assert(#example == 2, #example .. "\t" .. mw.text.jsonEncode(rest))
			table.insert(example, comment)
			table.insert(examples, example)
		end
	end
	return examples
end

local function add_qamats_qatan_comments(examples)
	local qamats_qatan = mw.ustring.char(0x05C7)
	for _, example in ipairs(examples) do
		if type(example) == "table" and example[1]:find(qamats_qatan, 1, true) then
			example[3] = (example[3] and example[3] .. "; " or "") .. "with qamats qatan code point"
		end
	end
	return examples
end

function tests:test_translit()
	self:iterate(
		add_qamats_qatan_comments(parse_examples(examples)),
		function(self, Hebrew, translit, comment)
			assert(type(Hebrew) == "string", type(Hebrew))
			assert(type(translit) == "string", type(translit))
			return self:equals(link(Hebrew), mw.ustring.toNFC(he_translit.transliterate(Hebrew)), translit, {comment = comment})
		end)
end

return tests