Jump to content

Module:sandbox/nan-pron/testcases

From Wiktionary, the free dictionary

This is the unit-testing module for Module:sandbox/nan-pron.

1 of 97 tests failed. (refresh)

TextExpectedActualDiffers at
test_daibuun:
Passedî-ái'ari'ar
Passedsian-siⁿ kóng ha̍k-seng tiām-tiām thiaⁿsiensvy korng hagsefng diaxmdiam tviafsiensvy korng hagsefng diaxmdiam tviaf
Passedkin-á-jit hit-ê cha-bó͘ gín-á lâi góan tau khòaⁿ góakin'afjid hit'ee za'bor gyn'ar laai goarn daw qvoax goarkin'afjid hit'ee za'bor gyn'ar laai goarn daw qvoax goar
Passedthài-khong pêng-iú lín-hó lín chia̍h-pá--bē êng to̍h lâi gún chia chē--ô͘tae'qofng peng'iuo lynhoir lien ciaqpaf~be eeng doih laai guon ciaf zex~otae'qofng peng'iuo lynhoir lien ciaqpaf~be eeng doih laai guon ciaf zex~o
Passedtē-it tiâudexid diaaudexid diaau
Passedlán-lâng seⁿ--lâi chū-iûlafnlaang sve~lai zuxiuulafnlaang sve~lai zuxiuu
Passedtī chun-giâm kah khoân-lī siōng it-lu̍t pêng-téngdi zun'giaam kaq qoanli siong itlut pengdeangdi zun'giaam kaq qoanli siong itlut pengdeang
Passedlán-lâng ū lí-sèng kah liông-simlafnlaang u lysexng kaq liongsymlafnlaang u lysexng kaq liongsym
Passedjî-chhiaⁿ èng-kai í hiaⁿ-tī koan-hē ê cheng-sîn lâi hō͘-siong tùi-thāijichviaf eangkay ie hvia'di koanhe ee zengsiin laai hoxsiofng duie'taijichviaf eangkay ie hvia'di koanhe ee zengsiin laai hoxsiofng duie'tai
Passedpe̍h-ōe-jīpeq'oexjipeq'oexji
Passedkáukaokao
Passedchúizuiezuie
Passedkhǹgqngxqngx
Passedhóehoeahoea
Passedhóe-chhiahoefchiafhoefchiaf
Passedhóe-chhia-chāmhoefchiazamhoefchiazam
Passedhóe-chhia-chām-tiúⁿhoefchiazaxmdviuohoefchiazaxmdviuo
Passedhóe-chhia-chām-tiúⁿ-sekhoefchiazaxmdviwseghoefchiazaxmdviwseg
Faileda ia oa o͘ o io e oe i ui u iu ai oai au iau aⁿ iaⁿ oaⁿ oⁿ eⁿ iⁿ iuⁿ aiⁿ oaiⁿ iauⁿ am iam om im an ian oan in un ang iang oang ong iong eng ah iah oah mo͘h oh ioh eh oeh bih uh chhauh hiauh hahⁿ hiahⁿ ohⁿ hehⁿ ap iap ip at iat oat it ut ak chhiak ok iok ek m ng hmh chhnghaf iaf oaf of oy ioy ef oef y uy w iw ay oay aw iaw vaf viaf voaf vof vef vy viw vay voay viaw afm iafm ofm ym afn iefn oafn yn wn afng iafng oafng ofng iofng efng aq iaq oaq moq oiq ioiq eq oeq biq uq zhauq hiauq hvaq hviaq voq hveq ab iab ib ad ied oad id ud ag chiag og iog eg mf ngf hmq zhngqaf iaf oaf of oy ioy ef oef y uy w iw ay oay aw iaw vaf viaf voaf vof vef vy viw vay voay viaw afm iafm ofm ym afn iefn oafn yn wn afng iafng oafng ofng iofng efng aq iaq oaq moq oiq ioiq eq oeq biq uq zhauq hiauq hvaq hviaq voq hveq ab iab ib ad iad oad id ud ag chiag og iog eg mf ngf hmq zhngq249
Passeda ba cha chha ga ha ka kha la ma na nga pa pha sa ta tha aⁿ chaⁿ chhaⁿ haⁿ kaⁿ khaⁿ phaⁿ saⁿ taⁿ thaⁿ ah bah chah chhah hah kah khah lah nah pah phah sah tah thah hahⁿ sahⁿ ai bai chai chhai gai hai kai khai lai mai nai ngai pai phai sai tai thai aiⁿ chaiⁿ haiⁿ kaiⁿ khaiⁿ phaiⁿ taiⁿ ak bak chak chhak gak hak kak khak lak pak phak sak tak thak am cham chham gam ham kam kham lam sam tam tham an ban chan chhan gan han kan khan lan pan phan san tan than ang bang chang chhang gang hang kang khang lang pang phang sang tang thang ap chap chhap hap kap khap lap sap tap thap at bat chat chhat hat kat khat lat pat sat tat that au bau chau chhau gau hau kau khau lau mau nau ngau pau phau sau tau thau chhauh kauh lauh mauh nauh phauh tauh e be che chhe ge he ke khe le me ne nge pe phe se te the eⁿ cheⁿ chheⁿ heⁿ keⁿ kheⁿ peⁿ pheⁿ seⁿ teⁿ theⁿ eh beh cheh chheh heh keh kheh leh meh neh ngeh peh seh teh theh hehⁿ khehⁿ ek bek chek chhek gek hek kek lek pek phek sek tek thek eng beng cheng chheng geng heng keng kheng leng peng pheng seng teng theng i bi chi chhi gi hi ji ki khi li mi ni pi phi si ti thi iⁿ chiⁿ chhiⁿ hiⁿ kiⁿ khiⁿ siⁿ tiⁿ thiⁿ ia chia chhia gia hia jia kia khia mia nia ngia sia tia iaⁿ chiaⁿ chhiaⁿ hiaⁿ kiaⁿ piaⁿ siaⁿ tiaⁿ thiaⁿ iah chiah chhiah giah hiah kiah khiah liah piah phiah siah tiah thiah hiahⁿ chhiak khiak piak phiak siak tiak iam chiam chhiam giam hiam jiam kiam khiam liam siam tiam thiam ian bian chian chhian gian hian jian kian khian lian pian phian sian tian thian iang chiang chhiang giang hiang jiang khiang liang piang phiang siang iap chiap chhiap giap hiap jiap kiap khiap liap siap tiap thiap iat biat chiat chhiat giat hiat jiat kiat khiat liat piat phiat siat tiat thiat iau biau chiau chhiau giau hiau jiau kiau khiau liau miau niau ngiau piau phiau siau tiau thiau iauⁿ hiauh khiauh ngiauh bih chih chhih khih mih nih pih phih sih tih thih im chim chhim gim him jim kim khim lim sim tim thim in bin chin chhin gin hin jin kin khin lin pin phin sin tin thin io bio chio chhio gio hio jio kio khio lio pio phio sio tio thio ioh chioh chhioh gioh hioh kioh khioh lioh sioh tioh iok chiok chhiok giok hiok jiok kiok khiok liok siok tiok thiok iong chiong chhiong giong hiong jiong kiong khiong liong siong tiong thiong ip chip chhip hip jip kip khip lip sip it bit chit chhit hit jit kit khit pit phit sit tit iu biu chiu chhiu giu hiu jiu kiu khiu liu niu piu siu tiu thiu iuⁿ chiuⁿ chhiuⁿ hiuⁿ kiuⁿ khiuⁿ siuⁿ tiuⁿ iuhⁿ hiuhⁿ m hm hmh ng chng chhng hng kng khng mng nng png sng tng thng chhngh hngh phngh sngh o bo cho chho go ho ko kho lo po pho so to tho oⁿ hoⁿ koⁿ o͘ bo͘ cho͘ chho͘ go͘ ho͘ ko͘ kho͘ lo͘ mo͘ no͘ ngo͘ po͘ pho͘ so͘ to͘ tho͘ oa boa choa chhoa goa hoa koa khoa loa moa noa poa phoa soa toa thoa oaⁿ chhoaⁿ hoaⁿ koaⁿ khoaⁿ poaⁿ phoaⁿ soaⁿ toaⁿ thoaⁿ oah boah choah chhoah hoah joah koah khoah loah poah phoah soah thoah oai hoai koai khoai soai oaiⁿ choaiⁿ hoaiⁿ koaiⁿ soaiⁿ oan boan choan chhoan goan hoan koan khoan loan poan phoan soan toan thoan oang chhoang oat boat choat goat hoat koat khoat loat poat phoat soat toat thoat oe boe choe chhoe goe hoe joe koe khoe loe poe phoe soe toe oeh boeh goeh hoeh koeh khoeh poeh phoeh soeh oh choh chhoh hoh koh loh poh phoh soh toh thoh mo͘h ohⁿ hohⁿ ok bok chok chhok gok hok kok khok lok pok phok sok tok thok om som tom ong bong chong chhong gong hong kong khong long pong phong song tong thong u bu chu chhu gu hu ju ku khu lu pu phu su tu thu uh chuh chhuh khuh puh phuh tuh thuh ui bui chui chhui gui hui kui khui lui mui pui phui sui tui thui un bun chun chhun gun hun jun kun khun lun pun phun sun tun thun ut but chut chhut hut kut khut lut put phut sut tut thutaf baf zaf zhaf gaf haf kaf qaf laf maf naf ngaf paf phaf saf daf taf vaf zvaf zhvaf hvaf kvaf qvaf phvaf svaf dvaf tvaf aq baq zaq zhaq haq kaq qaq laq naq paq phaq saq daq taq hvaq svaq ay bay zay zhay gay hay kay qay lay may nay ngay pay phay say day tay vay zvay hvay kvay qvay phvay dvay ag bag zag zhag gag hag kag qag lag pag phag sag dag tag afm zafm zhafm gafm hafm kafm qafm lafm safm dafm tafm afn bafn zafn zhafn gafn hafn kafn qafn lafn pafn phafn safn dafn tafn afng bafng zafng zhafng gafng hafng kafng qafng lafng pafng phafng safng dafng tafng ab zab zhab hab kab qab lab sab dab tab ad bad zad zhad had kad qad lad pad sad dad tad aw baw zaw zhaw gaw haw kaw qaw law maw naw ngaw paw phaw saw daw taw zhauq kauq lauq mauq nauq phauq dauq ef bef zef zhef gef hef kef qef lef mef nef ngef pef phef sef def tef vef zvef zhvef hvef kvef qvef pvef phvef svef dvef tvef eq beq zeq zheq heq keq qeq leq meq neq ngeq peq seq deq teq hveq qveq eg beg zeg zheg geg heg keg leg peg pheg seg deg teg efng befng zefng zhefng gefng hefng kefng qefng lefng pefng phefng sefng defng tefng y by cy chy gy hy jy ky qy ly my ny py phy sy dy ty vy cvy chvy hvy kvy qvy svy dvy tvy iaf ciaf chiaf giaf hiaf jiaf kiaf qiaf miaf niaf ngiaf siaf diaf viaf cviaf chviaf hviaf kviaf pviaf sviaf dviaf tviaf iaq ciaq chiaq giaq hiaq kiaq qiaq liaq piaq phiaq siaq diaq tiaq hviaq chiag qiag piag phiag siag diag iafm ciafm chiafm giafm hiafm jiafm kiafm qiafm liafm siafm diafm tiafm iefn biefn ciefn chiefn giefn hiefn jiefn kiefn qiefn liefn piefn phiefn siefn diefn tiefn iafng ciafng chiafng giafng hiafng jiafng qiafng liafng piafng phiafng siafng iab ciab chiab giab hiab jiab kiab qiab liab siab diab tiab iad biad ciad chiad giad hiad jiad kiad qiad liad piad phiad siad diad tiad iaw biaw ciaw chiaw giaw hiaw jiaw kiaw qiaw liaw miaw niaw ngiaw piaw phiaw siaw diaw tiaw viaw hiauq qiauq ngiauq biq ciq chiq qiq miq niq piq phiq siq diq tiq ym cym chym gym hym jym kym qym lym sym dym tym yn byn cyn chyn gyn hyn jyn kyn qyn lyn pyn phyn syn dyn tyn ioy bioy cioy chioy gioy hioy jioy kioy qioy lioy pioy phioy sioy dioy tioy ioiq cioiq chioiq gioiq hioiq kioiq qioiq lioiq sioiq dioiq iog ciog chiog giog hiog jiog kiog qiog liog siog diog tiog iofng ciofng chiofng giofng hiofng jiofng kiofng qiofng liofng siofng diofng tiofng ib cib chib hib jib kib qib lib sib id bid cid chid hid jid kid qid pid phid sid did iw biw ciw chiw giw hiw jiw kiw qiw liw niw piw siw diw tiw viw cviw chviw hviw kviw qviw sviw dviw viuq hviuq mf hmf hmq ngf zngf zhngf hngf kngf qngf mngf nngf pngf sngf dngf tngf zhngq hngq phngq sngq oy boy zoy zhoy goy hoy koy qoy loy poy phoy soy doy toy vof hvof kvof of bof zof zhof gof hof kof qof lof mof nof ngof pof phof sof dof tof oaf boaf zoaf zhoaf goaf hoaf koaf qoaf loaf moaf noaf poaf phoaf soaf doaf toaf voaf zhvoaf hvoaf kvoaf qvoaf pvoaf phvoaf svoaf dvoaf tvoaf oaq boaq zoaq zhoaq hoaq joaq koaq qoaq loaq poaq phoaq soaq toaq oay hoay koay qoay soay voay zvoay hvoay kvoay svoay oafn boafn zoafn zhoafn goafn hoafn koafn qoafn loafn poafn phoafn soafn doafn toafn oafng zhoafng oad boad zoad goad hoad koad qoad load poad phoad soad doad toad oef boef zoef zhoef goef hoef joef koef qoef loef poef phoef soef doef oeq boeq goeq hoeq koeq qoeq poeq phoeq soeq oiq zoiq zhoiq hoiq koiq loiq poiq phoiq soiq doiq toiq moq voq hvoq og bog zog zhog gog hog kog qog log pog phog sog dog tog ofm sofm dofm ofng bofng zofng zhofng gofng hofng kofng qofng lofng pofng phofng sofng dofng tofng w bw zw zhw gw hw jw kw qw lw pw phw sw dw tw uq zuq zhuq quq puq phuq duq tuq uy buy zuy zhuy guy huy kuy quy luy muy puy phuy suy duy tuy wn bwn zwn zhwn gwn hwn jwn kwn qwn lwn pwn phwn swn dwn twn ud bud zud zhud hud kud qud lud pud phud sud dud tudaf baf zaf zhaf gaf haf kaf qaf laf maf naf ngaf paf phaf saf daf taf vaf zvaf zhvaf hvaf kvaf qvaf phvaf svaf dvaf tvaf aq baq zaq zhaq haq kaq qaq laq naq paq phaq saq daq taq hvaq svaq ay bay zay zhay gay hay kay qay lay may nay ngay pay phay say day tay vay zvay hvay kvay qvay phvay dvay ag bag zag zhag gag hag kag qag lag pag phag sag dag tag afm zafm zhafm gafm hafm kafm qafm lafm safm dafm tafm afn bafn zafn zhafn gafn hafn kafn qafn lafn pafn phafn safn dafn tafn afng bafng zafng zhafng gafng hafng kafng qafng lafng pafng phafng safng dafng tafng ab zab zhab hab kab qab lab sab dab tab ad bad zad zhad had kad qad lad pad sad dad tad aw baw zaw zhaw gaw haw kaw qaw law maw naw ngaw paw phaw saw daw taw zhauq kauq lauq mauq nauq phauq dauq ef bef zef zhef gef hef kef qef lef mef nef ngef pef phef sef def tef vef zvef zhvef hvef kvef qvef pvef phvef svef dvef tvef eq beq zeq zheq heq keq qeq leq meq neq ngeq peq seq deq teq hveq qveq eg beg zeg zheg geg heg keg leg peg pheg seg deg teg efng befng zefng zhefng gefng hefng kefng qefng lefng pefng phefng sefng defng tefng y by cy chy gy hy jy ky qy ly my ny py phy sy dy ty vy cvy chvy hvy kvy qvy svy dvy tvy iaf ciaf chiaf giaf hiaf jiaf kiaf qiaf miaf niaf ngiaf siaf diaf viaf cviaf chviaf hviaf kviaf pviaf sviaf dviaf tviaf iaq ciaq chiaq giaq hiaq kiaq qiaq liaq piaq phiaq siaq diaq tiaq hviaq chiag qiag piag phiag siag diag iafm ciafm chiafm giafm hiafm jiafm kiafm qiafm liafm siafm diafm tiafm iefn biefn ciefn chiefn giefn hiefn jiefn kiefn qiefn liefn piefn phiefn siefn diefn tiefn iafng ciafng chiafng giafng hiafng jiafng qiafng liafng piafng phiafng siafng iab ciab chiab giab hiab jiab kiab qiab liab siab diab tiab iad biad ciad chiad giad hiad jiad kiad qiad liad piad phiad siad diad tiad iaw biaw ciaw chiaw giaw hiaw jiaw kiaw qiaw liaw miaw niaw ngiaw piaw phiaw siaw diaw tiaw viaw hiauq qiauq ngiauq biq ciq chiq qiq miq niq piq phiq siq diq tiq ym cym chym gym hym jym kym qym lym sym dym tym yn byn cyn chyn gyn hyn jyn kyn qyn lyn pyn phyn syn dyn tyn ioy bioy cioy chioy gioy hioy jioy kioy qioy lioy pioy phioy sioy dioy tioy ioiq cioiq chioiq gioiq hioiq kioiq qioiq lioiq sioiq dioiq iog ciog chiog giog hiog jiog kiog qiog liog siog diog tiog iofng ciofng chiofng giofng hiofng jiofng kiofng qiofng liofng siofng diofng tiofng ib cib chib hib jib kib qib lib sib id bid cid chid hid jid kid qid pid phid sid did iw biw ciw chiw giw hiw jiw kiw qiw liw niw piw siw diw tiw viw cviw chviw hviw kviw qviw sviw dviw viuq hviuq mf hmf hmq ngf zngf zhngf hngf kngf qngf mngf nngf pngf sngf dngf tngf zhngq hngq phngq sngq oy boy zoy zhoy goy hoy koy qoy loy poy phoy soy doy toy vof hvof kvof of bof zof zhof gof hof kof qof lof mof nof ngof pof phof sof dof tof oaf boaf zoaf zhoaf goaf hoaf koaf qoaf loaf moaf noaf poaf phoaf soaf doaf toaf voaf zhvoaf hvoaf kvoaf qvoaf pvoaf phvoaf svoaf dvoaf tvoaf oaq boaq zoaq zhoaq hoaq joaq koaq qoaq loaq poaq phoaq soaq toaq oay hoay koay qoay soay voay zvoay hvoay kvoay svoay oafn boafn zoafn zhoafn goafn hoafn koafn qoafn loafn poafn phoafn soafn doafn toafn oafng zhoafng oad boad zoad goad hoad koad qoad load poad phoad soad doad toad oef boef zoef zhoef goef hoef joef koef qoef loef poef phoef soef doef oeq boeq goeq hoeq koeq qoeq poeq phoeq soeq oiq zoiq zhoiq hoiq koiq loiq poiq phoiq soiq doiq toiq moq voq hvoq og bog zog zhog gog hog kog qog log pog phog sog dog tog ofm sofm dofm ofng bofng zofng zhofng gofng hofng kofng qofng lofng pofng phofng sofng dofng tofng w bw zw zhw gw hw jw kw qw lw pw phw sw dw tw uq zuq zhuq quq puq phuq duq tuq uy buy zuy zhuy guy huy kuy quy luy muy puy phuy suy duy tuy wn bwn zwn zhwn gwn hwn jwn kwn qwn lwn pwn phwn swn dwn twn ud bud zud zhud hud kud qud lud pud phud sud dud tud
TextExpectedActualDiffers at
test_encode_decode:
PassedTân^ta5n^ta5n
Passed^ta5nTânTân
Passedáàâãǎāa̍ăa̋a2a3a5a6a&a7a8a9a0a2a3a5a6a&a7a8a9a0
Passeda2a3a5a6a&a7a8a9a0áàâãǎāa̍ăa̋áàâãǎāa̍ăa̋
PassedAÁÀ^a^a2^a3^a^a2^a3
Passed^a^a2^a3AÁÀAÁÀ
Passedto͘ tó͘tO tO2tO tO2
PassedtO tO2to͘ tó͘to͘ tó͘
PassedO͘ Ó͘^O ^O2^O ^O2
Passed^O ^O2O͘ Ó͘O͘ Ó͘
Passedng ńg o̤ ó̤ ṳ ṳ́G G2 o_ o_2 u_ u_2G G2 o_ o_2 u_ u_2
PassedG G2 o_ o_2 u_ u_2ng ńg o̤ ó̤ ṳ ṳ́ng ńg o̤ ó̤ ṳ ṳ́
Passedphang theⁿ kha cha chha nga shaPaG TeN Ka ca Ca Ga SaPaG TeN Ka ca Ca Ga Sa
PassedPaG TeN Ka ca Ca Ga Saphang theⁿ kha cha chha nga shaphang theⁿ kha cha chha nga sha
TextExpectedActualDiffers at
test_internal_to_poj:
Passedcit8A ki1 Cau2, cit8A tiam2 lO7chi̍t ki chháu, chi̍t tiám lō͘chi̍t ki chháu, chi̍t tiám lō͘
Passedkiai7 ^ere7kiāi Ērekiāi Ēre
Passeda6 a9 a6T a9Tã ă ǎ a̋ã ă ǎ a̋
Passedu_2 o_2 E2 iE2 oE2 o_m2 u_n2 o_n2 EG2 u_h8B o_h8B Eh8B o_t8A o_k8A Ek8Aṳ́ ó̤ ɛ́ iɛ́ óɛ ó̤m ṳ́n ó̤n ɛ́ng ṳ̍h o̤̍h ɛ̍h o̤̍t o̤̍k ɛ̍kṳ́ ó̤ ɛ́ iɛ́ óɛ ó̤m ṳ́n ó̤n ɛ́ng ṳ̍h o̤̍h ɛ̍h o̤̍t o̤̍k ɛ̍k
Passedee7 iee7 oee7 ioa7 ioaN7 oiN7 erm7 eeG7 irh8B erh8B eeh8B ert8A erk8A eek8A ei7 eoi7 iG7 oi7 ou7 uk8A um7 uG7 y7 yn7ēe iēe ōee iōa iōaⁿ ōiⁿ ērm ēeng i̍rh e̍rh e̍eh e̍rt e̍rk e̍ek ēi eōi īng ōi ōu u̍k ūm ūng ȳ ȳnēe iēe ōee iōa iōaⁿ ōiⁿ ērm ēeng i̍rh e̍rh e̍eh e̍rt e̍rk e̍ek ēi eōi īng ōi ōu u̍k ūm ūng ȳ ȳn
Passeda7 O7 o7 e7 i7 u7 ir7 er7 ee7 ia7 iO7 io7 ie7 iu7 iee7 oa7 oe7 ui7 oee7 ioa7 ai7 oai7 au7 iau7 aN7 oN7 eN7 iN7 uN7 iaN7 ioN7 ieN7 iuN7 oaN7 oeN7 uiN7 ioaN7 aiN7 oiN7 oaiN7 auN7 iauN7 am7 om7 em7 im7 erm7 iam7 iom7 an7 en7 in7 un7 irn7 ern7 ian7 oan7 aG7 oG7 eG7 eeG7 iaG7 ioG7 oaG7 ah8B Oh8B oh8B eh8B ih8B uh8B irh8B erh8B eeh8B iah8B iOh8B ioh8B iuh8B oah8B oeh8B uih8B aih8B oaih8B auh8B iauh8B ahN7 ohN7 ehN7 ihN7 uhN7 iahN7 iuhN7 oahN7 oehN7 uihN7 aihN7 oaihN7 auhN7 iauhN7 ap8A op8A ep8A ip8A iap8A iop8A at8A ot8A et8A it8A ut8A ert8A iat8A oat8A ak8A ok8A ek8A erk8A eek8A iak8A iok8A oak8A m7 G7 mh8B Gh8B ei7 eoi7 iG7 oi7 ou7 uk8A um7 uG7 y7 yn7 eu7 euN7 iua7 iuaN7ā ō͘ ō ē ī ū īr ēr ēe iā iō͘ iō iē iū iēe ōa ōe ūi ōee iōa āi oāi āu iāu āⁿ ōⁿ ēⁿ īⁿ ūⁿ iāⁿ iōⁿ iēⁿ iūⁿ ōaⁿ ōeⁿ ūiⁿ iōaⁿ āiⁿ ōiⁿ oāiⁿ āuⁿ iāuⁿ ām ōm ēm īm ērm iām iōm ān ēn īn ūn īrn ērn iān oān āng ōng ēng ēeng iāng iōng oāng a̍h o̍͘h o̍h e̍h i̍h u̍h i̍rh e̍rh e̍eh ia̍h io̍͘h io̍h iu̍h oa̍h oe̍h u̍ih a̍ih oa̍ih a̍uh ia̍uh āhⁿ ōhⁿ ēhⁿ īhⁿ ūhⁿ iāhⁿ iūhⁿ oāhⁿ oēhⁿ ūihⁿ āihⁿ oāihⁿ āuhⁿ iāuhⁿ a̍p o̍p e̍p i̍p ia̍p io̍p a̍t o̍t e̍t i̍t u̍t e̍rt ia̍t oa̍t a̍k o̍k e̍k e̍rk e̍ek ia̍k io̍k oa̍k m̄ n̄g m̍h n̍gh ēi eōi īng ōi ōu u̍k ūm ūng ȳ ȳn ēu ēuⁿ iuā iuāⁿā ō͘ ō ē ī ū īr ēr ēe iā iō͘ iō iē iū iēe ōa ōe ūi ōee iōa āi oāi āu iāu āⁿ ōⁿ ēⁿ īⁿ ūⁿ iāⁿ iōⁿ iēⁿ iūⁿ ōaⁿ ōeⁿ ūiⁿ iōaⁿ āiⁿ ōiⁿ oāiⁿ āuⁿ iāuⁿ ām ōm ēm īm ērm iām iōm ān ēn īn ūn īrn ērn iān oān āng ōng ēng ēeng iāng iōng oāng a̍h o̍͘h o̍h e̍h i̍h u̍h i̍rh e̍rh e̍eh ia̍h io̍͘h io̍h iu̍h oa̍h oe̍h u̍ih a̍ih oa̍ih a̍uh ia̍uh āhⁿ ōhⁿ ēhⁿ īhⁿ ūhⁿ iāhⁿ iūhⁿ oāhⁿ oēhⁿ ūihⁿ āihⁿ oāihⁿ āuhⁿ iāuhⁿ a̍p o̍p e̍p i̍p ia̍p io̍p a̍t o̍t e̍t i̍t u̍t e̍rt ia̍t oa̍t a̍k o̍k e̍k e̍rk e̍ek ia̍k io̍k oa̍k m̄ n̄g m̍h n̍gh ēi eōi īng ōi ōu u̍k ūm ūng ȳ ȳn ēu ēuⁿ iuā iuāⁿ
TextExpectedActualDiffers at
test_pengim:
Passeddiên1/tĩẽ³³//tĩẽ³³/
TextExpectedActualDiffers at
test_poj_to_internal:
PassedKhóng-chú^KoG2-cu2^KoG2-cu2
PassedKhóng-chú^KoG2-cu2^KoG2-cu2
PassedKHóng-chúerrorerror
Passedkhóng-ChúKoG2-^cu2KoG2-^cu2
PassedtńgtG2tG2
PassedthahTah4BTah4B
Passedtha̍hTah8BTah8B
PassedthapTap4ATap4A
Passedtha̍pTap8ATap8A
Passedchi̍t ki chháu, chi̍t tiám lō͘cit8A ki1 Cau2, cit8A tiam2 lO7cit8A ki1 Cau2, cit8A tiam2 lO7
Passeda# aa1# a1a1# a1
Passedã ă ǎ a̋a6 a9 a6T a9Ta6 a9 a6T a9T
Passedṳ o̤ ɛ iɛ oɛ o̤m ṳn o̤n ɛng ṳh o̤h ɛh o̤t o̤k ɛku_1 o_1 E1 iE1 oE1 o_m1 u_n1 o_n1 EG1 u_h4B o_h4B Eh4B o_t4A o_k4A Ek4Au_1 o_1 E1 iE1 oE1 o_m1 u_n1 o_n1 EG1 u_h4B o_h4B Eh4B o_t4A o_k4A Ek4A
Passeda o͘ o e i u ir er ee ia io͘ io ie iu iee oa oe ui oee ioa ai oai au iau aⁿ oⁿ eⁿ iⁿ uⁿ iaⁿ ioⁿ ieⁿ iuⁿ oaⁿ oeⁿ uiⁿ ioaⁿ aiⁿ oiⁿ oaiⁿ auⁿ iauⁿ am om em im erm iam iom an en in un irn ern ian oan ang ong eng eeng iang iong oang ah o͘h oh eh ih uh irh erh eeh iah io͘h ioh iuh oah oeh uih aih oaih auh iauh ahⁿ ohⁿ ehⁿ ihⁿ uhⁿ iahⁿ iuhⁿ oahⁿ oehⁿ uihⁿ aihⁿ oaihⁿ auhⁿ iauhⁿ ap op ep ip iap iop at ot et it ut ert iat oat ak ok ek erk eek iak iok oak m ng mh ngh ei eoi ing oi ou uk um ung y yn eu euⁿ iua iuaⁿa1 O1 o1 e1 i1 u1 ir1 er1 ee1 ia1 iO1 io1 ie1 iu1 iee1 oa1 oe1 ui1 oee1 ioa1 ai1 oai1 au1 iau1 aN1 oN1 eN1 iN1 uN1 iaN1 ioN1 ieN1 iuN1 oaN1 oeN1 uiN1 ioaN1 aiN1 oiN1 oaiN1 auN1 iauN1 am1 om1 em1 im1 erm1 iam1 iom1 an1 en1 in1 un1 irn1 ern1 ian1 oan1 aG1 oG1 eG1 eeG1 iaG1 ioG1 oaG1 ah4B Oh4B oh4B eh4B ih4B uh4B irh4B erh4B eeh4B iah4B iOh4B ioh4B iuh4B oah4B oeh4B uih4B aih4B oaih4B auh4B iauh4B ahN1 ohN1 ehN1 ihN1 uhN1 iahN1 iuhN1 oahN1 oehN1 uihN1 aihN1 oaihN1 auhN1 iauhN1 ap4A op4A ep4A ip4A iap4A iop4A at4A ot4A et4A it4A ut4A ert4A iat4A oat4A ak4A ok4A ek4A erk4A eek4A iak4A iok4A oak4A m1 G1 mh4B Gh4B ei1 eoi1 iG1 oi1 ou1 uk4A um1 uG1 y1 yn1 eu1 euN1 iua1 iuaN1a1 O1 o1 e1 i1 u1 ir1 er1 ee1 ia1 iO1 io1 ie1 iu1 iee1 oa1 oe1 ui1 oee1 ioa1 ai1 oai1 au1 iau1 aN1 oN1 eN1 iN1 uN1 iaN1 ioN1 ieN1 iuN1 oaN1 oeN1 uiN1 ioaN1 aiN1 oiN1 oaiN1 auN1 iauN1 am1 om1 em1 im1 erm1 iam1 iom1 an1 en1 in1 un1 irn1 ern1 ian1 oan1 aG1 oG1 eG1 eeG1 iaG1 ioG1 oaG1 ah4B Oh4B oh4B eh4B ih4B uh4B irh4B erh4B eeh4B iah4B iOh4B ioh4B iuh4B oah4B oeh4B uih4B aih4B oaih4B auh4B iauh4B ahN1 ohN1 ehN1 ihN1 uhN1 iahN1 iuhN1 oahN1 oehN1 uihN1 aihN1 oaihN1 auhN1 iauhN1 ap4A op4A ep4A ip4A iap4A iop4A at4A ot4A et4A it4A ut4A ert4A iat4A oat4A ak4A ok4A ek4A erk4A eek4A iak4A iok4A oak4A m1 G1 mh4B Gh4B ei1 eoi1 iG1 oi1 ou1 uk4A um1 uG1 y1 yn1 eu1 euN1 iua1 iuaN1
TextExpectedActualDiffers at
test_teochew_poj:
Passedrig8 rib8ji̍k ji̍pji̍k ji̍p
Passedbeng2pṳ́ngpṳ́ng
Passedmêng5mêngmêng
Passedug8 ngh8 in6 inh8u̍k n̍gh ĭⁿ i̍hⁿu̍k n̍gh ĭⁿ i̍hⁿ
Passedsuain7suāiⁿsuāiⁿ
Passedsai2sáisái
Passedsia2siásiá
Passedgao3kàukàu
Passedghua7guāguā
Passedbhê2
Passeda3àà
Passedng5n̂gn̂g
Passedm6
TextExpectedActualDiffers at
test_tl:
Passedseksiksik
Passedse̍ksi̍ksi̍k
PassedEkIkIk
PassedE̍kI̍kI̍k
Passedha̍k-sengha̍k-singha̍k-sing
Passedhoán-sénghuán-sínghuán-síng
PassedEng-bûnIng-bûnIng-bûn
PassedÉng-hióngÍng-hióngÍng-hióng
Passedhoahuahua
Passedhóahuáhuá
Passedhoan-gênghuan-gînghuan-gîng
Passedhoán-khònghuán-khònghuán-khòng
PassedOanUanUan
PassedOa̍t-lâmUa̍t-lâmUa̍t-lâm
Passedto͘-ha̍ptoo-ha̍ptoo-ha̍p
Passedtô͘tôotôo
PassedOoOo
PassedÓ͘ÓoÓo
Passedit-poaⁿit-puannit-puann
Passedkóaⁿkuánnkuánn
Passedhohⁿhonnhhonnh
Passedchia̍htsia̍htsia̍h
PassedChia̍hTsia̍hTsia̍h
Passeděě
Passedsiăn-páisia̋n-páisia̋n-pái
Passediōa āⁿ ōⁿ ēⁿ īⁿ ūⁿ iāⁿ iōⁿ iēⁿ iūⁿ ōaⁿ ōeⁿ ūiⁿ iōaⁿ āiⁿ ōiⁿ oāiⁿ āuⁿ iāuⁿiuā ānn ōnn ēnn īnn ūnn iānn iōnn iēnn iūnn uānn uēnn uīnn iuānn āinn ōinn uāinn āunn iāunniuā ānn ōnn ēnn īnn ūnn iānn iōnn iēnn iūnn uānn uēnn uīnn iuānn āinn ōinn uāinn āunn iāunn
Passedāhⁿ ōhⁿ ēhⁿ īhⁿ ūhⁿ iāhⁿ iūhⁿ oāhⁿ oēhⁿ ūihⁿ āihⁿ oāihⁿ āuhⁿ iāuhⁿānnh ōnnh ēnnh īnnh ūnnh iānnh iūnnh uānnh uēnnh uīnnh āinnh uāinnh āunnh iāunnhānnh ōnnh ēnnh īnnh ūnnh iānnh iūnnh uānnh uēnnh uīnnh āinnh uāinnh āunnh iāunnh
Passedṳ́ ó̤ ɛ́ iɛ́ óɛ ó̤m ṳ́n ó̤n ɛ́ng ṳ̍h o̤̍h ɛ̍h o̤̍t o̤̍k ɛ̍kír ér ée iée uée érm írn érn éeng i̍rh e̍rh e̍eh e̍rt e̍rk e̍ekír ér ée iée uée érm írn érn éeng i̍rh e̍rh e̍eh e̍rt e̍rk e̍ek
Passedmā nō ngē pī phū biā tiō thiē liū jāi sāu kiāu khām gōm ēm īm iām iōm ān ēn īn ūn iān āng ōng iāng iōng a̍h o̍h e̍h i̍h u̍h ia̍h io̍h iu̍h a̍ih a̍uh ia̍uh a̍p o̍p e̍p i̍p ia̍p io̍p a̍t o̍t e̍t i̍t u̍t ia̍t a̍k o̍k ia̍k io̍k m̄ n̄g m̍h n̍ghmā nō ngē pī phū biā tiō thiē liū jāi sāu kiāu khām gōm ēm īm iām iōm ān ēn īn ūn iān āng ōng iāng iōng a̍h o̍h e̍h i̍h u̍h ia̍h io̍h iu̍h a̍ih a̍uh ia̍uh a̍p o̍p e̍p i̍p ia̍p io̍p a̍t o̍t e̍t i̍t u̍t ia̍t a̍k o̍k ia̍k io̍k m̄ n̄g m̍h n̍ghmā nō ngē pī phū biā tiō thiē liū jāi sāu kiāu khām gōm ēm īm iām iōm ān ēn īn ūn iān āng ōng iāng iōng a̍h o̍h e̍h i̍h u̍h ia̍h io̍h iu̍h a̍ih a̍uh ia̍uh a̍p o̍p e̍p i̍p ia̍p io̍p a̍t o̍t e̍t i̍t u̍t ia̍t a̍k o̍k ia̍k io̍k m̄ n̄g m̍h n̍gh

-- Unit tests for [[Module:sandbox/nan-pron]]. Refresh page to run tests.
local tests = require('Module:UnitTests')
local m_n = require('Module:sandbox/nan-pron')

function tests:check_encode(text,encoded)
	self:equals(text, m_n.do_encode(text), encoded)
end

function tests:check_decode(encoded,original)
	self:equals(encoded, m_n.do_decode(encoded), original)
end

function tests:check_poj_to_internal(text,internal)
	local success, result = pcall(m_n.poj_to_internal,text)
	self:equals(text, success and result or "error", internal)
end

function tests:check_internal_to_poj(text,poj)
	local success, result = pcall(m_n.internal_to_poj,text)
	self:equals(text, success and result or "error", poj)
end

function tests:check_daibuun(poj,psdb)
	self:equals(poj, m_n.poj_to_psdb_conv(poj), psdb)
end

function tests:check_tl(poj,tl)
	self:equals(poj, m_n.internal_to_tl(m_n.poj_to_internal(poj)), tl)
end

function tests:check_pengim(pengim,ipa)
	self:equals(pengim, m_n.pengim_to_ipa_conv(pengim), '/' .. ipa .. '/')
end

function tests:check_teochew_poj(pengim,poj)
	self:equals(pengim, m_n.pengim_to_pojlike_conv(pengim), poj)
end

function tests:test_encode_decode()
	local examples = {
		{"Tân", "^ta5n"},
		{"áàâãǎāa̍ăa̋",
			"a2a3a5a6a&a7a8a9a0"},
		{"AÁÀ","^a^a2^a3"},
		{"to͘ tó͘",
			"tO tO2"},
		{"O͘ Ó͘",
			"^O ^O2"},
		{"ng ńg o̤ ó̤ ṳ ṳ́",
			"G G2 o_ o_2 u_ u_2"},
		{"phang theⁿ kha cha chha nga sha", "PaG TeN Ka ca Ca Ga Sa"},
	}
	for _,case in ipairs(examples) do
		self:check_encode(case[1], case[2])
		self:check_decode(case[2], case[1])
	end
end

function tests:test_poj_to_internal()
	self:iterate({
		{"Khóng-chú","^KoG2-cu2"},
		{"Khóng-chú","^KoG2-cu2"},
		{"KHóng-chú","error"},
		{"khóng-Chú","KoG2-^cu2"},
		{"tńg","tG2"},
		{"thah","Tah4B"},
		{"tha̍h","Tah8B"},
		{"thap","Tap4A"},
		{"tha̍p","Tap8A"},
		{"chi̍t ki chháu, chi̍t tiám lō͘",
			"cit8A ki1 Cau2, cit8A tiam2 lO7"},
		{"a# a","a1# a1"},
		{"ã ă ǎ a̋",
			"a6 a9 a6T a9T"},
		{"ṳ o̤ ɛ iɛ oɛ o̤m ṳn o̤n ɛng ṳh o̤h ɛh o̤t o̤k ɛk",
			"u_1 o_1 E1 iE1 oE1 o_m1 u_n1 o_n1 EG1 u_h4B o_h4B Eh4B o_t4A o_k4A Ek4A"},
		{"a o͘ o e i u ir er ee ia io͘ io ie iu iee oa oe ui oee ioa ai oai au iau aⁿ oⁿ eⁿ iⁿ uⁿ iaⁿ ioⁿ ieⁿ iuⁿ oaⁿ oeⁿ uiⁿ ioaⁿ aiⁿ oiⁿ oaiⁿ auⁿ iauⁿ am om em im erm iam iom an en in un irn ern ian oan ang ong eng eeng iang iong oang ah o͘h oh eh ih uh irh erh eeh iah io͘h ioh iuh oah oeh uih aih oaih auh iauh ahⁿ ohⁿ ehⁿ ihⁿ uhⁿ iahⁿ iuhⁿ oahⁿ oehⁿ uihⁿ aihⁿ oaihⁿ auhⁿ iauhⁿ ap op ep ip iap iop at ot et it ut ert iat oat ak ok ek erk eek iak iok oak m ng mh ngh ei eoi ing oi ou uk um ung y yn eu euⁿ iua iuaⁿ",
			"a1 O1 o1 e1 i1 u1 ir1 er1 ee1 ia1 iO1 io1 ie1 iu1 iee1 oa1 oe1 ui1 oee1 ioa1 ai1 oai1 au1 iau1 aN1 oN1 eN1 iN1 uN1 iaN1 ioN1 ieN1 iuN1 oaN1 oeN1 uiN1 ioaN1 aiN1 oiN1 oaiN1 auN1 iauN1 am1 om1 em1 im1 erm1 iam1 iom1 an1 en1 in1 un1 irn1 ern1 ian1 oan1 aG1 oG1 eG1 eeG1 iaG1 ioG1 oaG1 ah4B Oh4B oh4B eh4B ih4B uh4B irh4B erh4B eeh4B iah4B iOh4B ioh4B iuh4B oah4B oeh4B uih4B aih4B oaih4B auh4B iauh4B ahN1 ohN1 ehN1 ihN1 uhN1 iahN1 iuhN1 oahN1 oehN1 uihN1 aihN1 oaihN1 auhN1 iauhN1 ap4A op4A ep4A ip4A iap4A iop4A at4A ot4A et4A it4A ut4A ert4A iat4A oat4A ak4A ok4A ek4A erk4A eek4A iak4A iok4A oak4A m1 G1 mh4B Gh4B ei1 eoi1 iG1 oi1 ou1 uk4A um1 uG1 y1 yn1 eu1 euN1 iua1 iuaN1"},
	}, "check_poj_to_internal")
end

function tests:test_internal_to_poj()
	self:iterate({
		{"cit8A ki1 Cau2, cit8A tiam2 lO7",
			"chi̍t ki chháu, chi̍t tiám lō͘"},
		{"kiai7 ^ere7", "kiāi Ēre"},
		{"a6 a9 a6T a9T", "ã ă ǎ a̋"},
		{"u_2 o_2 E2 iE2 oE2 o_m2 u_n2 o_n2 EG2 u_h8B o_h8B Eh8B o_t8A o_k8A Ek8A",
			"ṳ́ ó̤ ɛ́ iɛ́ óɛ ó̤m ṳ́n ó̤n ɛ́ng ṳ̍h o̤̍h ɛ̍h o̤̍t o̤̍k ɛ̍k"},
		{"ee7 iee7 oee7 ioa7 ioaN7 oiN7 erm7 eeG7 irh8B erh8B eeh8B ert8A erk8A eek8A ei7 eoi7 iG7 oi7 ou7 uk8A um7 uG7 y7 yn7",
			"ēe iēe ōee iōa iōaⁿ ōiⁿ ērm ēeng i̍rh e̍rh e̍eh e̍rt e̍rk e̍ek ēi eōi īng ōi ōu u̍k ūm ūng ȳ ȳn"},
		{"a7 O7 o7 e7 i7 u7 ir7 er7 ee7 ia7 iO7 io7 ie7 iu7 iee7 oa7 oe7 ui7 oee7 ioa7 ai7 oai7 au7 iau7 aN7 oN7 eN7 iN7 uN7 iaN7 ioN7 ieN7 iuN7 oaN7 oeN7 uiN7 ioaN7 aiN7 oiN7 oaiN7 auN7 iauN7 am7 om7 em7 im7 erm7 iam7 iom7 an7 en7 in7 un7 irn7 ern7 ian7 oan7 aG7 oG7 eG7 eeG7 iaG7 ioG7 oaG7 ah8B Oh8B oh8B eh8B ih8B uh8B irh8B erh8B eeh8B iah8B iOh8B ioh8B iuh8B oah8B oeh8B uih8B aih8B oaih8B auh8B iauh8B ahN7 ohN7 ehN7 ihN7 uhN7 iahN7 iuhN7 oahN7 oehN7 uihN7 aihN7 oaihN7 auhN7 iauhN7 ap8A op8A ep8A ip8A iap8A iop8A at8A ot8A et8A it8A ut8A ert8A iat8A oat8A ak8A ok8A ek8A erk8A eek8A iak8A iok8A oak8A m7 G7 mh8B Gh8B ei7 eoi7 iG7 oi7 ou7 uk8A um7 uG7 y7 yn7 eu7 euN7 iua7 iuaN7",
			"ā ō͘ ō ē ī ū īr ēr ēe iā iō͘ iō iē iū iēe ōa ōe ūi ōee iōa āi oāi āu iāu āⁿ ōⁿ ēⁿ īⁿ ūⁿ iāⁿ iōⁿ iēⁿ iūⁿ ōaⁿ ōeⁿ ūiⁿ iōaⁿ āiⁿ ōiⁿ oāiⁿ āuⁿ iāuⁿ ām ōm ēm īm ērm iām iōm ān ēn īn ūn īrn ērn iān oān āng ōng ēng ēeng iāng iōng oāng a̍h o̍͘h o̍h e̍h i̍h u̍h i̍rh e̍rh e̍eh ia̍h io̍͘h io̍h iu̍h oa̍h oe̍h u̍ih a̍ih oa̍ih a̍uh ia̍uh āhⁿ ōhⁿ ēhⁿ īhⁿ ūhⁿ iāhⁿ iūhⁿ oāhⁿ oēhⁿ ūihⁿ āihⁿ oāihⁿ āuhⁿ iāuhⁿ a̍p o̍p e̍p i̍p ia̍p io̍p a̍t o̍t e̍t i̍t u̍t e̍rt ia̍t oa̍t a̍k o̍k e̍k e̍rk e̍ek ia̍k io̍k oa̍k m̄ n̄g m̍h n̍gh ēi eōi īng ōi ōu u̍k ūm ūng ȳ ȳn ēu ēuⁿ iuā iuāⁿ"},
	}, "check_internal_to_poj")
end

function tests:test_daibuun()
	self:check_daibuun('î-á', 'i\'ar') -- ?diff=38882162
	self:check_daibuun('sian-siⁿ kóng ha̍k-seng tiām-tiām thiaⁿ', 'siensvy korng hagsefng diaxmdiam tviaf')
	self:check_daibuun('kin-á-jit hit-ê cha-bó͘ gín-á lâi góan tau khòaⁿ góa', 'kin\'afjid hit\'ee za\'bor gyn\'ar laai goarn daw qvoax goar')
	self:check_daibuun('thài-khong pêng-iú lín-hó lín chia̍h-pá--bē êng to̍h lâi gún chia chē--ô͘', 'tae\'qofng peng\'iuo lynhoir lien ciaqpaf~be eeng doih laai guon ciaf zex~o')
	self:check_daibuun('tē-it tiâu', 'dexid diaau')
	self:check_daibuun('lán-lâng seⁿ--lâi chū-iû', 'lafnlaang sve~lai zuxiuu')
	self:check_daibuun('tī chun-giâm kah khoân-lī siōng it-lu̍t pêng-téng', 'di zun\'giaam kaq qoanli siong itlut pengdeang')
	self:check_daibuun('lán-lâng ū lí-sèng kah liông-sim', 'lafnlaang u lysexng kaq liongsym')
	self:check_daibuun('jî-chhiaⁿ èng-kai í hiaⁿ-tī koan-hē ê cheng-sîn lâi hō͘-siong tùi-thāi', 'jichviaf eangkay ie hvia\'di koanhe ee zengsiin laai hoxsiofng duie\'tai')
	self:check_daibuun('pe̍h-ōe-jī','peq\'oexji')
	self:check_daibuun('káu','kao')
	self:check_daibuun('chúi','zuie')
	self:check_daibuun('khǹg','qngx')
	self:check_daibuun('hóe','hoea')
	self:check_daibuun('hóe-chhia','hoefchiaf')
	self:check_daibuun('hóe-chhia-chām','hoefchiazam')
	self:check_daibuun('hóe-chhia-chām-tiúⁿ','hoefchiazaxmdviuo')
	self:check_daibuun('hóe-chhia-chām-tiúⁿ-sek','hoefchiazaxmdviwseg')
	
	self:check_daibuun('a ia oa o͘ o io e oe i ui u iu ai oai au iau aⁿ iaⁿ oaⁿ oⁿ eⁿ iⁿ iuⁿ aiⁿ oaiⁿ iauⁿ am iam om im an ian oan in un ang iang oang ong iong eng ah iah oah mo͘h oh ioh eh oeh bih uh chhauh hiauh hahⁿ hiahⁿ ohⁿ hehⁿ ap iap ip at iat oat it ut ak chhiak ok iok ek m ng hmh chhngh',
		'af iaf oaf of oy ioy ef oef y uy w iw ay oay aw iaw vaf viaf voaf vof vef vy viw vay voay viaw afm iafm ofm ym afn iefn oafn yn wn afng iafng oafng ofng iofng efng aq iaq oaq moq oiq ioiq eq oeq biq uq zhauq hiauq hvaq hviaq voq hveq ab iab ib ad ied oad id ud ag chiag og iog eg mf ngf hmq zhngq')
	self:check_daibuun('a ba cha chha ga ha ka kha la ma na nga pa pha sa ta tha aⁿ chaⁿ chhaⁿ haⁿ kaⁿ khaⁿ phaⁿ saⁿ taⁿ thaⁿ ah bah chah chhah hah kah khah lah nah pah phah sah tah thah hahⁿ sahⁿ ai bai chai chhai gai hai kai khai lai mai nai ngai pai phai sai tai thai aiⁿ chaiⁿ haiⁿ kaiⁿ khaiⁿ phaiⁿ taiⁿ ak bak chak chhak gak hak kak khak lak pak phak sak tak thak am cham chham gam ham kam kham lam sam tam tham an ban chan chhan gan han kan khan lan pan phan san tan than ang bang chang chhang gang hang kang khang lang pang phang sang tang thang ap chap chhap hap kap khap lap sap tap thap at bat chat chhat hat kat khat lat pat sat tat that au bau chau chhau gau hau kau khau lau mau nau ngau pau phau sau tau thau chhauh kauh lauh mauh nauh phauh tauh e be che chhe ge he ke khe le me ne nge pe phe se te the eⁿ cheⁿ chheⁿ heⁿ keⁿ kheⁿ peⁿ pheⁿ seⁿ teⁿ theⁿ eh beh cheh chheh heh keh kheh leh meh neh ngeh peh seh teh theh hehⁿ khehⁿ ek bek chek chhek gek hek kek lek pek phek sek tek thek eng beng cheng chheng geng heng keng kheng leng peng pheng seng teng theng i bi chi chhi gi hi ji ki khi li mi ni pi phi si ti thi iⁿ chiⁿ chhiⁿ hiⁿ kiⁿ khiⁿ siⁿ tiⁿ thiⁿ ia chia chhia gia hia jia kia khia mia nia ngia sia tia iaⁿ chiaⁿ chhiaⁿ hiaⁿ kiaⁿ piaⁿ siaⁿ tiaⁿ thiaⁿ iah chiah chhiah giah hiah kiah khiah liah piah phiah siah tiah thiah hiahⁿ chhiak khiak piak phiak siak tiak iam chiam chhiam giam hiam jiam kiam khiam liam siam tiam thiam ian bian chian chhian gian hian jian kian khian lian pian phian sian tian thian iang chiang chhiang giang hiang jiang khiang liang piang phiang siang iap chiap chhiap giap hiap jiap kiap khiap liap siap tiap thiap iat biat chiat chhiat giat hiat jiat kiat khiat liat piat phiat siat tiat thiat iau biau chiau chhiau giau hiau jiau kiau khiau liau miau niau ngiau piau phiau siau tiau thiau iauⁿ hiauh khiauh ngiauh bih chih chhih khih mih nih pih phih sih tih thih im chim chhim gim him jim kim khim lim sim tim thim in bin chin chhin gin hin jin kin khin lin pin phin sin tin thin io bio chio chhio gio hio jio kio khio lio pio phio sio tio thio ioh chioh chhioh gioh hioh kioh khioh lioh sioh tioh iok chiok chhiok giok hiok jiok kiok khiok liok siok tiok thiok iong chiong chhiong giong hiong jiong kiong khiong liong siong tiong thiong ip chip chhip hip jip kip khip lip sip it bit chit chhit hit jit kit khit pit phit sit tit iu biu chiu chhiu giu hiu jiu kiu khiu liu niu piu siu tiu thiu iuⁿ chiuⁿ chhiuⁿ hiuⁿ kiuⁿ khiuⁿ siuⁿ tiuⁿ iuhⁿ hiuhⁿ m hm hmh ng chng chhng hng kng khng mng nng png sng tng thng chhngh hngh phngh sngh o bo cho chho go ho ko kho lo po pho so to tho oⁿ hoⁿ koⁿ o͘ bo͘ cho͘ chho͘ go͘ ho͘ ko͘ kho͘ lo͘ mo͘ no͘ ngo͘ po͘ pho͘ so͘ to͘ tho͘ oa boa choa chhoa goa hoa koa khoa loa moa noa poa phoa soa toa thoa oaⁿ chhoaⁿ hoaⁿ koaⁿ khoaⁿ poaⁿ phoaⁿ soaⁿ toaⁿ thoaⁿ oah boah choah chhoah hoah joah koah khoah loah poah phoah soah thoah oai hoai koai khoai soai oaiⁿ choaiⁿ hoaiⁿ koaiⁿ soaiⁿ oan boan choan chhoan goan hoan koan khoan loan poan phoan soan toan thoan oang chhoang oat boat choat goat hoat koat khoat loat poat phoat soat toat thoat oe boe choe chhoe goe hoe joe koe khoe loe poe phoe soe toe oeh boeh goeh hoeh koeh khoeh poeh phoeh soeh oh choh chhoh hoh koh loh poh phoh soh toh thoh mo͘h ohⁿ hohⁿ ok bok chok chhok gok hok kok khok lok pok phok sok tok thok om som tom ong bong chong chhong gong hong kong khong long pong phong song tong thong u bu chu chhu gu hu ju ku khu lu pu phu su tu thu uh chuh chhuh khuh puh phuh tuh thuh ui bui chui chhui gui hui kui khui lui mui pui phui sui tui thui un bun chun chhun gun hun jun kun khun lun pun phun sun tun thun ut but chut chhut hut kut khut lut put phut sut tut thut',
		'af baf zaf zhaf gaf haf kaf qaf laf maf naf ngaf paf phaf saf daf taf vaf zvaf zhvaf hvaf kvaf qvaf phvaf svaf dvaf tvaf aq baq zaq zhaq haq kaq qaq laq naq paq phaq saq daq taq hvaq svaq ay bay zay zhay gay hay kay qay lay may nay ngay pay phay say day tay vay zvay hvay kvay qvay phvay dvay ag bag zag zhag gag hag kag qag lag pag phag sag dag tag afm zafm zhafm gafm hafm kafm qafm lafm safm dafm tafm afn bafn zafn zhafn gafn hafn kafn qafn lafn pafn phafn safn dafn tafn afng bafng zafng zhafng gafng hafng kafng qafng lafng pafng phafng safng dafng tafng ab zab zhab hab kab qab lab sab dab tab ad bad zad zhad had kad qad lad pad sad dad tad aw baw zaw zhaw gaw haw kaw qaw law maw naw ngaw paw phaw saw daw taw zhauq kauq lauq mauq nauq phauq dauq ef bef zef zhef gef hef kef qef lef mef nef ngef pef phef sef def tef vef zvef zhvef hvef kvef qvef pvef phvef svef dvef tvef eq beq zeq zheq heq keq qeq leq meq neq ngeq peq seq deq teq hveq qveq eg beg zeg zheg geg heg keg leg peg pheg seg deg teg efng befng zefng zhefng gefng hefng kefng qefng lefng pefng phefng sefng defng tefng y by cy chy gy hy jy ky qy ly my ny py phy sy dy ty vy cvy chvy hvy kvy qvy svy dvy tvy iaf ciaf chiaf giaf hiaf jiaf kiaf qiaf miaf niaf ngiaf siaf diaf viaf cviaf chviaf hviaf kviaf pviaf sviaf dviaf tviaf iaq ciaq chiaq giaq hiaq kiaq qiaq liaq piaq phiaq siaq diaq tiaq hviaq chiag qiag piag phiag siag diag iafm ciafm chiafm giafm hiafm jiafm kiafm qiafm liafm siafm diafm tiafm iefn biefn ciefn chiefn giefn hiefn jiefn kiefn qiefn liefn piefn phiefn siefn diefn tiefn iafng ciafng chiafng giafng hiafng jiafng qiafng liafng piafng phiafng siafng iab ciab chiab giab hiab jiab kiab qiab liab siab diab tiab iad biad ciad chiad giad hiad jiad kiad qiad liad piad phiad siad diad tiad iaw biaw ciaw chiaw giaw hiaw jiaw kiaw qiaw liaw miaw niaw ngiaw piaw phiaw siaw diaw tiaw viaw hiauq qiauq ngiauq biq ciq chiq qiq miq niq piq phiq siq diq tiq ym cym chym gym hym jym kym qym lym sym dym tym yn byn cyn chyn gyn hyn jyn kyn qyn lyn pyn phyn syn dyn tyn ioy bioy cioy chioy gioy hioy jioy kioy qioy lioy pioy phioy sioy dioy tioy ioiq cioiq chioiq gioiq hioiq kioiq qioiq lioiq sioiq dioiq iog ciog chiog giog hiog jiog kiog qiog liog siog diog tiog iofng ciofng chiofng giofng hiofng jiofng kiofng qiofng liofng siofng diofng tiofng ib cib chib hib jib kib qib lib sib id bid cid chid hid jid kid qid pid phid sid did iw biw ciw chiw giw hiw jiw kiw qiw liw niw piw siw diw tiw viw cviw chviw hviw kviw qviw sviw dviw viuq hviuq mf hmf hmq ngf zngf zhngf hngf kngf qngf mngf nngf pngf sngf dngf tngf zhngq hngq phngq sngq oy boy zoy zhoy goy hoy koy qoy loy poy phoy soy doy toy vof hvof kvof of bof zof zhof gof hof kof qof lof mof nof ngof pof phof sof dof tof oaf boaf zoaf zhoaf goaf hoaf koaf qoaf loaf moaf noaf poaf phoaf soaf doaf toaf voaf zhvoaf hvoaf kvoaf qvoaf pvoaf phvoaf svoaf dvoaf tvoaf oaq boaq zoaq zhoaq hoaq joaq koaq qoaq loaq poaq phoaq soaq toaq oay hoay koay qoay soay voay zvoay hvoay kvoay svoay oafn boafn zoafn zhoafn goafn hoafn koafn qoafn loafn poafn phoafn soafn doafn toafn oafng zhoafng oad boad zoad goad hoad koad qoad load poad phoad soad doad toad oef boef zoef zhoef goef hoef joef koef qoef loef poef phoef soef doef oeq boeq goeq hoeq koeq qoeq poeq phoeq soeq oiq zoiq zhoiq hoiq koiq loiq poiq phoiq soiq doiq toiq moq voq hvoq og bog zog zhog gog hog kog qog log pog phog sog dog tog ofm sofm dofm ofng bofng zofng zhofng gofng hofng kofng qofng lofng pofng phofng sofng dofng tofng w bw zw zhw gw hw jw kw qw lw pw phw sw dw tw uq zuq zhuq quq puq phuq duq tuq uy buy zuy zhuy guy huy kuy quy luy muy puy phuy suy duy tuy wn bwn zwn zhwn gwn hwn jwn kwn qwn lwn pwn phwn swn dwn twn ud bud zud zhud hud kud qud lud pud phud sud dud tud')
end

function tests:test_tl()
	--ek/ik
	self:check_tl('sek', 'sik')
	self:check_tl('se̍k', 'si̍k')
	self:check_tl('Ek', 'Ik')
	self:check_tl('E̍k', 'I̍k')

	--eng/ing
	self:check_tl('ha̍k-seng', 'ha̍k-sing')
	self:check_tl('hoán-séng', 'huán-síng')
	self:check_tl('Eng-bûn', 'Ing-bûn')
	self:check_tl('Éng-hióng', 'Íng-hióng')

	--oa/ua
	self:check_tl('hoa', 'hua')
	self:check_tl('hóa', 'huá')
	self:check_tl('hoan-gêng', 'huan-gîng')
	self:check_tl('hoán-khòng', 'huán-khòng')
	self:check_tl('Oan', 'Uan')
	self:check_tl('Oa̍t-lâm', 'Ua̍t-lâm')

	--o͘/oo
	self:check_tl('to͘-ha̍p', 'too-ha̍p')
	self:check_tl('tô͘', 'tôo')
	self:check_tl('O͘', 'Oo')
	self:check_tl('Ó͘', 'Óo')

	--ⁿ/nn
	self:check_tl('it-poaⁿ', 'it-puann')
	self:check_tl('kóaⁿ', 'kuánn')
	self:check_tl('hohⁿ', 'honnh')

	--ch/ts
	self:check_tl('chia̍h', 'tsia̍h')
	self:check_tl('Chia̍h', 'Tsia̍h')
	
	--T6/T9
	self:check_tl('ẽ', 'ě')
	self:check_tl('siăn-pái', 'sia̋n-pái')
	
	--systematic tests
	self:check_tl("iōa āⁿ ōⁿ ēⁿ īⁿ ūⁿ iāⁿ iōⁿ iēⁿ iūⁿ ōaⁿ ōeⁿ ūiⁿ iōaⁿ āiⁿ ōiⁿ oāiⁿ āuⁿ iāuⁿ",
		"iuā ānn ōnn ēnn īnn ūnn iānn iōnn iēnn iūnn uānn uēnn uīnn iuānn āinn ōinn uāinn āunn iāunn")
	self:check_tl("āhⁿ ōhⁿ ēhⁿ īhⁿ ūhⁿ iāhⁿ iūhⁿ oāhⁿ oēhⁿ ūihⁿ āihⁿ oāihⁿ āuhⁿ iāuhⁿ",
		"ānnh ōnnh ēnnh īnnh ūnnh iānnh iūnnh uānnh uēnnh uīnnh āinnh uāinnh āunnh iāunnh")
	self:check_tl("ṳ́ ó̤ ɛ́ iɛ́ óɛ ó̤m ṳ́n ó̤n ɛ́ng ṳ̍h o̤̍h ɛ̍h o̤̍t o̤̍k ɛ̍k",
		"ír ér ée iée uée érm írn érn éeng i̍rh e̍rh e̍eh e̍rt e̍rk e̍ek")
	local invariant = "mā nō ngē pī phū biā tiō thiē liū jāi sāu kiāu khām gōm ēm īm iām iōm ān ēn īn ūn iān āng ōng iāng iōng a̍h o̍h e̍h i̍h u̍h ia̍h io̍h iu̍h a̍ih a̍uh ia̍uh a̍p o̍p e̍p i̍p ia̍p io̍p a̍t o̍t e̍t i̍t u̍t ia̍t a̍k o̍k ia̍k io̍k m̄ n̄g m̍h n̍gh"
	self:check_tl(invariant, invariant)
end

function tests:test_pengim()
	self:check_pengim('diên1', 'tĩẽ³³')
end

function tests:test_teochew_poj()
	self:check_teochew_poj('rig8 rib8', 'ji̍k ji̍p')
	self:check_teochew_poj('beng2', 'pṳ́ng')
	self:check_teochew_poj('mêng5', 'mêng')

	self:check_teochew_poj('ug8 ngh8 in6 inh8', 'u̍k n̍gh ĭⁿ i̍hⁿ')

	self:check_teochew_poj('suain7', 'suāiⁿ')
	self:check_teochew_poj('sai2', 'sái')
	self:check_teochew_poj('sia2', 'siá')
	self:check_teochew_poj('gao3', 'kàu')
	self:check_teochew_poj('ghua7', 'guā')
	self:check_teochew_poj('bhê2', 'bé')
	self:check_teochew_poj('a3', 'à')
	self:check_teochew_poj('ng5', 'n̂g')
	self:check_teochew_poj('m6', 'm̆')
end
 
return tests