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

local tests = require('Module:UnitTests')
local m = require('Module:okm-translit')

local lang
local sc

function tests:rom(text, expected)
	local rom = m.tr(text, lang, sc)
	rom = mw.ustring.toNFC(rom)

	return self:equals(text, rom, expected, {
		show_difference = true,
	})
end

function tests:test_rom()
	self:rom(
		"달->g아〮 됴〯->ᄒᆞᆯᄊᆡ〮",
		"tàlG-á tywǒh-òlssóy"
	)
	self:rom(
		"아ᄅᆞᆷ다->오며 자->피-다",
		"alomtaw-omye cap-hi-ta"
	)
	self:rom(
		"->>>큰〮 구->데〮 가도〮-고〮 飮食(음〯식〮) 아니〮 주-더〮니〮",
		"khú-n kwùt-éy kàtwó-kwó ǓM.SÍK àní cwù-téní"
	)
	self:rom(
		"어듸 가->>져-->>간다?",
		"etuy kacy-e-ka-nta?"
	)
	self:rom(
		"->>>>ᄃᆞᇌ-ᄣᅢ 엄-->쏘리",
		"tolk-s-pstay em-s-swoli"
	)
	self:rom(
		"憔悴(쵸ᄎᆒ)",
		"CHYWO.CHYWEY"
	)
	self:rom(
		"나->>랏〮 말〯ᄊᆞ->미〮 中(듀ᇰ)國(귁〮)-에〮 달g아〮",
		"nàlá-s mǎlssòm-í TYWÙNG.KWÚYK-éy tàlGá"
	)
	self:rom(
		"正(져ᇰ〮)音(ᅙᅳᆷ)-은〮 百(ᄇᆡᆨ〮)姓(셔ᇰ〮) ᄀᆞᄅᆞ치〮시논〮 正(져ᇰ〮)ᄒᆞᆫ 소리〮-라〮",
		"CYÉNG.QÙM-ún PÓYK.SYÉNG kòlòchísìnwón CYÉNGhòn swòlí-lá"
	)
	self:rom(
		"나->>랏〮 어비〮ᄆᆞᆮ-내〮-ᄅᆞᆯ〮 모도〮아〮 니ᄅᆞ샤〮ᄃᆡ〮",
		"nàlá-s èpímòt-náy-lól mwòtwóá nìlòsyátóy"
	)
	self:rom(
		"ᄀᆞᇫg애〮",
		"kòzGáy"
	)
	self:rom(
		"가ᄫᆞᆫ〮ᄃᆡ〮",
		"kàWóntóy"
	)
	self:rom(
		"文(문)字(ᄍᆞᆼ〮) 文字(문ᄍᆞᆼ〮)",
		"MWÙN.CCÓ MWÙN.CCÓ"
	)
	self:rom(
		"遠(원)方(방) 遠方(원방)",
		"WEN.PANG WEN.PANG"
	)
	self:rom(
		"字(아아아아) 注乙(줄)",
		"A.A.A.A CWUL"
	)
	self:rom(
		"使(ᄉᆞᆼ〯)-ᄂᆞᆫ〮 ᄒᆡ〯ᅇᅧ〮-ᄒᆞ〮논 마〮->리라〮",
		"SǑ-nón hǒyOOyé-hónwòn mál-ìlá"
	)
	self:rom(
		"가-괙〮 가->괙〮 가->>괙〮 가->>>괙〮 가->>>>괙〮 가-->->>->>>->>>>괙〮",
		"kà-kwáyk kàk-wáyk kàkw-áyk kàkwá-yk kàkwáy-k kà-k-w-á-y-k"
	)
	self:rom(
		"->>내〮",
		"ná-y"
	)
	self:rom(
		"->>내",
		"na-y"
	)
	self:rom(
		"어〮마->>>니ᇝ〯",
		"émànǐm-s"
	)
	self:rom(
		"하->>>ᄂᆞᆳ〮 하->>>ᄂᆞᇙ〮",
		"hànól-s hànól-q"
	)
	self:rom(
		"시->>>긧",
		"sikuy-s"
	)
	self:rom(
		"시->>>긧 시->>>긧-벼ᇰ〯",
		"sìkùy-s sìkùy-s-pyěng"
	)
	self:rom(
		"子(ᄌᆞ)ㅣ 子(ᄌᆞ)ᅵ 子(ᄌᆞ)ᅟᅵ", -- standalone letter i; jungseong i; choseong filler + jungseong i
		"COy COy COy"
	)
	self:rom(
		"子(ᄌᆞ)-ㅣ 子(ᄌᆞ)-ᅵ 子(ᄌᆞ)ᅟ-ᅵ", -- standalone letter i; jungseong i; choseong filler + jungseong i
		"CO-y CO-y CO-y"
	)
	self:rom(
		"與(여)ᅟᅵᆫ", -- choseong filler + jungseong i + jongseong n
		"YEyn"
	)
	self:rom(
		"젹ᄃᆞᆯ '''長霾(쟝마)'''-ㅣ 젹ᄃᆞᆯ '''쟝마(長霾)'''-ㅣ",
		"cyektol '''CYANG.MA'''-y cyektol '''cyangma'''-y"
	)
	self:rom(
		"ᄂᆞᆷ-도 우리 ᄀᆞ티 서ᄅᆞ 에엿ᄲᅵ 녀겨 ᄉᆞ라ᇰ-ᄒᆞ리 ᄂᆞᆷ-도 우리 ᄀᆞᄐᆞᆫ가",
		"nom-two wuli kothi selo eyyesspi nyekye solang-holi nom-two wuli kothonka"
	)
end

function tests:test_rom_legacy()
	self:rom(
		"나---랏〮 말〯ᄊᆞ--미〮 中(듀ᇰ)國(귁〮)-에〮 달g아〮",
		"nàlá-s mǎlssòm-í TYÙNG.KWÚYK-éy tàlGá"
	)
	self:rom(
		"正(져ᇰ〮)音(ᅙᅳᆷ)-은〮 百(ᄇᆡᆨ〮)姓(셔ᇰ〮) ᄀᆞᄅᆞ치〮시논〮 正(져ᇰ〮)ᄒᆞᆫ 소리〮-라〮",
		"CYÉNG.QÙM-ún PÓYK.SYÉNG kòlòchísìnwón CYÉNGhòn swòlí-lá"
	)
	self:rom(
		"나---랏〮 어비〮ᄆᆞᆮ-내〮-ᄅᆞᆯ〮 모도〮아〮 니ᄅᆞ샤〮ᄃᆡ〮",
		"nàlá-s èpímòt-náy-lól mwòtwóá nìlòsyátóy"
	)
	self:rom(
		"ᄀᆞᇫg애〮",
		"kòzGáy"
	)
	self:rom(
		"가ᄫᆞᆫ〮ᄃᆡ〮",
		"kàWóntóy"
	)
	self:rom(
		"文(문)字(ᄍᆞᆼ〮) 文字(문ᄍᆞᆼ〮)",
		"MWÙN.CCÓ MWÙN.CCÓ"
	)
	self:rom(
		"遠(원)方(방) 遠方(원방)",
		"WEN.PANG WEN.PANG"
	)
	self:rom(
		"字(아아아아) 注乙(줄)",
		"A.A.A.A CWUL"
	)
	self:rom(
		"使(ᄉᆞᆼ〯)-ᄂᆞᆫ〮 ᄒᆡ〯ᅇᅧ〮-ᄒᆞ〮논 마〮--리라〮",
		"SǑ-nón hǒyOOyé-hónwòn mál-ìlá"
	)
	self:rom(
		"가-괙〮 가--괙〮 가---괙〮",
		"kà-kwáyk kàk-wáyk kàkwáy-k"
	)
	self:rom(
		"----내〮",
		"ná-y"
	)
	self:rom(
		"----내",
		"na-y"
	)
	self:rom(
		"어〮마---니ᇝ〯",
		"émànǐm-s"
	)
	self:rom(
		"하---ᄂᆞᆳ〮 하---ᄂᆞᇙ〮",
		"hànól-s hànól-q"
	)
	self:rom(
		"시---긧",
		"sikuy-s"
	)
	self:rom(
		"시---긧 시---긧-벼ᇰ〯",
		"sìkùy-s sìkùy-s-pyěng"
	)
	self:rom(
		"子(ᄌᆞ)ㅣ 子(ᄌᆞ)ᅵ 子(ᄌᆞ)ᅟᅵ", -- standalone letter i; jungseong i; choseong filler + jungseong i
		"COy COy COy"
	)
	self:rom(
		"子(ᄌᆞ)-ㅣ 子(ᄌᆞ)-ᅵ 子(ᄌᆞ)ᅟ-ᅵ", -- standalone letter i; jungseong i; choseong filler + jungseong i
		"CO-y CO-y CO-y"
	)
	self:rom(
		"與(여)ᅟᅵᆫ", -- choseong filler + jungseong i + jongseong n
		"YEyn"
	)
	self:rom(
		"젹ᄃᆞᆯ '''長霾(쟝마)'''-ㅣ 젹ᄃᆞᆯ '''쟝마(長霾)'''-ㅣ",
		"cyektol '''CYANG.MA'''-y cyektol '''cyangma'''-y"
	)
	self:rom(
		"ᄂᆞᆷ-도 우리 ᄀᆞ티 서ᄅᆞ 에엿ᄲᅵ 녀겨 ᄉᆞ라ᇰ-ᄒᆞ리 ᄂᆞᆷ-도 우리 ᄀᆞᄐᆞᆫ가",
		"nom-two wuli kothi selo eyyesspi nyekye solang-holi nom-two wuli kothonka"
	)
	self:rom(
		"藥(약) 든 가ᄉᆞᆷ-을 맛초ᄋᆞᆸ사이다",
		"YAK tun kasom-ul maschwoopsa[ng]ita"
	)
end

return tests