Jump to content

Module:ko-pron/testcases

From Wiktionary, the free dictionary

11 of 29 tests failed. (refresh)

TextExpectedActual
test_rom:
Passedrr: 신라sillasilla
Passedph: 옛한글예(ː)탄예(ː)탄
Failedph: 세 명(ː)(ː) 
Passedipa: [t͡ɕɥi] ~ [t͡ɕy][t͡ɕɥi] ~ [t͡ɕy]
Failedipa: 밤말은 쥐가 듣고 낮말은 새가 듣는다[pa̠mma̠ɾɯn t͡ɕɥiɡa̠ tɯt̚k͈o̞ na̠nma̠ɾɯn sʰɛɡa̠ tɯnnɯnda̠] ~ [pa̠mma̠ɾɯn t͡ɕɥiɡa̠ tɯt̚k͈o̞ na̠nma̠ɾɯn sʰe̞ɡa̠ tɯnnɯnda̠] ~ [pa̠mma̠ɾɯn t͡ɕyɡa̠ tɯt̚k͈o̞ na̠nma̠ɾɯn sʰɛɡa̠ tɯnnɯnda̠][pa̠mma̠ɾɯn t͡ɕɥiɡa̠ tɯt̚k͈o̞ na̠nma̠ɾɯn sʰɛɡa̠ tɯnnɯnda̠] ~ [pa̠mma̠ɾɯn t͡ɕɥiɡa̠ tɯt̚k͈o̞ na̠nma̠ɾɯn sʰe̞ɡa̠ tɯnnɯnda̠] ~ [pa̠mma̠ɾɯn t͡ɕyɡa̠ tɯt̚k͈o̞ na̠nma̠ɾɯn sʰɛɡa̠ tɯnnɯnda̠] ~ [pa̠mma̠ɾɯn t͡ɕyɡa̠ tɯt̚k͈o̞ na̠nma̠ɾɯn sʰe̞ɡa̠ tɯnnɯnda̠]
Passedrr: 학교-에 가다hakgyo-e gadahakgyo-e gada
Passedrr: 비-가 오다bi-ga odabi-ga oda
Passedrr: 밭-이 있다bach-i itdabach-i itda
Passedrr: 말-을 듣다mar-eul deutdamar-eul deutda
Passedrr: 빛-나다bin-nadabin-nada
Passedrr: 빛-이 나다bich-i nadabich-i nada
Failedrr: 병-이 나다byeong-i nadabyeong-'i nada
Passedrr: 밖-에bakk-ebakk-e
Passedrr: '''학교'''에 가다hakgyoe gadahakgyoe gada
Passedrr: '''비'''가 오다biga odabiga oda
Failedrr: '''밭'''이 있다bachi itdabac'hi itda
Passedrr: '''말'''을 듣다mareul deutdamareul deutda
Passedrr: '''빛'''나다binnadabinnada
Failedrr: '''빛'''이 나다bichi nadabic'hi nada
Failedrr: '''병'''이 나다byeong'i nadabyeon'g'i nada
Failedrr: '''밖'''에bakkebak'ke
Passedph: 개/개/
Passedph: 왜/왜/
Failedph: 걔//걔/
Failedipa: 일 녠[iʎ ʎje̞n] ~ [iɭ ɭe̞n][iɭ ɲe̞n] ~ [iɭ ne̞n]
Failedipa: 서울 날씨[sʰʌ̹uɭ ɭa̠ɭɕ͈i][sʰʌ̹uɭ na̠ɭɕ͈i]
Passedyr: 산보sānqposānqpo
Passedyr: 학교hak.kyohak.kyo
Failedyr: 감다kam.takamqta

local tests = require('Module:UnitTests')
local m = require('Module:ko-pron')

local corresp = {
	['ph'] = 1,
	['rr'] = 2,
	['rrr'] = 3,
	['mc'] = 4,
	['yr'] = 5,
	['ipa'] = 6,
}

function tests:rom(system, text, expected, args)
	local rom = m.romanise(text, corresp[system], args or {})
	rom = mw.ustring.toNFC(rom)

	if system == 'ph' then
		-- simplify HTML for sanity
		rom = rom:gsub('</b><b>', '')
		rom = rom:gsub('</?span>', '')
	end

	return self:equals(system .. ': [[' .. text .. ']]', rom, expected, {
		show_difference = true,
	})
end

function tests:test_rom()
	-- SEE ALSO: [[Module:ko-translit/testcases]]
	self:rom('rr', '신라', 'silla')

	self:rom('ph', '옛한글', '<b>예(ː)탄</b>글', {
		['l'] = "y",
	})
	self:rom('ph', '세 명', '세<b>(ː)</b> 명', {
		['l'] = "y",
	})
	self:rom('ipa', '쥐', '[t͡ɕɥi] ~ [t͡ɕy]')
	self:rom('ipa', '밤말은 쥐가 듣고 낮말은 새가 듣는다', '[pa̠mma̠ɾɯn t͡ɕɥiɡa̠ tɯt̚k͈o̞ na̠nma̠ɾɯn sʰɛɡa̠ tɯnnɯnda̠] ~ [pa̠mma̠ɾɯn t͡ɕɥiɡa̠ tɯt̚k͈o̞ na̠nma̠ɾɯn sʰe̞ɡa̠ tɯnnɯnda̠] ~ [pa̠mma̠ɾɯn t͡ɕyɡa̠ tɯt̚k͈o̞ na̠nma̠ɾɯn sʰɛɡa̠ tɯnnɯnda̠]')

	-- preserve hyphens and preserve pronunciation
	self:rom('rr', '학교-에 가다', 'hakgyo-e gada')
	self:rom('rr', '비-가 오다', 'bi-ga oda')
	self:rom('rr', '밭-이 있다', 'bach-i itda')
	self:rom('rr', '말-을 듣다', 'mar-eul deutda')
	self:rom('rr', '빛-나다', 'bin-nada')
	self:rom('rr', '빛-이 나다', 'bich-i nada')
	self:rom('rr', '병-이 나다', 'byeong-i nada')
	self:rom('rr', '밖-에', 'bakk-e')
	self:rom('rr', "'''학교'''에 가다", "'''hakgyo'''e gada")
	self:rom('rr', "'''비'''가 오다", "'''bi'''ga oda")
	self:rom('rr', "'''밭'''이 있다", "'''bach'''i itda")
	self:rom('rr', "'''말'''을 듣다", "'''mar'''eul deutda")
	self:rom('rr', "'''빛'''나다", "'''bin'''nada")
	self:rom('rr', "'''빛'''이 나다", "'''bich'''i nada")
	self:rom('rr', "'''병'''이 나다", "'''byeong''''i nada")
	self:rom('rr', "'''밖'''에", "'''bakk'''e")

	-- [[Module_talk:ko-pron#<ㅔ>_~_<ㅐ>_merger]]
	self:rom('ph', '개', '개/<b>게</b>')
	self:rom('ph', '왜', '왜/<b>웨</b>')
	self:rom('ph', '걔', '걔/<b>계</b>/<b>게</b>')

	-- [[Module_talk:ko-pron#Assimilation_(n->l)_and_others_over_a_space]]
	self:rom('ipa', '일 녠', '[iʎ ʎje̞n] ~ [iɭ ɭe̞n]')
	self:rom('ipa', '서울 날씨', '[sʰʌ̹uɭ ɭa̠ɭɕ͈i]')

	-- [[Module_talk:ko-pron#q_in_Yale_romanization]]
	self:rom('yr', '산보', 'sānqpo', {
		['l'] = "y",
		['com'] = "1",
	})
	self:rom('yr', '학교', 'hak.kyo')
	self:rom('yr', '감다', 'kam.ta', {
		['com'] = "1",
		-- dependent on part-of-speech
	})
end

return tests