မဝ်ဂျူ:ja/testcases
မံက်ပြာကတ်
Documentation for this module may be created at မဝ်ဂျူ:ja/testcases/doc
-- Unit tests for [[Module:ja]]. Click talk page to run tests.
local p = require('Module:UnitTests')
local m = require('Module:ja')
function p:k2r(original, romaji)
self:equals(original, m.kana_to_romaji(original), romaji)
end
function p:k2r_no_diacritics(original, romaji)
self:equals(original, m.kana_to_romaji(original, {no_diacritics = true}), romaji)
end
function p:k2r_hist(original, romaji)
self:equals("historical: " .. original, m.kana_to_romaji(original, {hist = true}), romaji)
end
function p:r2k(original, katakana)
self:equals(original, m.romaji_to_kata(original), katakana)
end
function p:script_detection(original, script)
self:equals(original, m.script(original), script)
end
function p:k2h(original, hiragana)
self:equals(original, m.kata_to_hira(original), hiragana)
end
function p:h2k(original, katakana)
self:equals(original, m.hira_to_kata(original), katakana)
end
function p:other(fun, original, output)
local mf
if fun == 'jsort' then mf = m.jsort
elseif fun == 'count_morae' then mf = m.count_morae
elseif fun == 'rm_spaces_hyphens' then mf = m.rm_spaces_hyphens
elseif fun == 'kanji_grade' then mf = m.kanji_grade
end
self:equals(fun .. ': ' .. original, mf(original), output)
end
function p:test_all()
self:k2r("アイェキキェ ヴィェウィフエ", "ayekikye vyewifue")
self:k2r("しんい", "shin'i")
self:k2r_no_diacritics("かいしょないしぎょうしょで ひょうげんされる しゃくじとしての かんじを、きょくどに そうたいかした ものである", "kaishonaishigyoushode hyougensareru shakujitoshiteno kanjio, kyokudoni soutaikashita monodearu")
self:k2r("かいしょないしぎょうしょで ひょうげんされる しゃくじとしての かんじを、きょくどに そうたいかした ものである", "kaishonaishigyōshode hyōgensareru shakujitoshiteno kanjio, kyokudoni sōtaikashita monodearu")
self:k2r("しんかんせん", "shinkansen")
-- ====
self:k2r("こううん", "kōun")
self:k2r("これはテストです。", "korehatesutodesu.")
self:k2r("これ は テスト です。それ は。それ は", "kore wa tesuto desu. sore wa. sore wa")
self:k2r("'''^ウィキペディア''' へ ^ようこそ", "'''Wikipedia''' e Yōkoso")
self:k2r("^'''ウィキペディア''' へ ^ようこそ", "'''Wikipedia''' e Yōkoso")
-- ====
self:k2r("は うはう う は う は", "wa uhau u wa u wa")
self:k2r("へ うへう う へ う へ", "e uheu u e u e")
self:k2r(".は うはう う .は う .は", "ha uhau u ha u ha")
self:k2r("は. うはう う は. う は.", "ha uhau u ha u ha")
self:k2r("^これ ^は ^テスト ^です。^へ へ", "Kore Wa Tesuto Desu. E e") -- but what kind of sick monster capitalizes particles
self:k2r("^ちょ% ^はっ%かい", "Cho Hakkai")
self:k2r("てにをは", "tenioha")
self:k2r("ぎゃく-ハーレム", "gyaku-hāremu")
self:k2r("ねこ-は", "neko-ha")
self:k2r("ねこ-'''は'''", "neko-'''ha'''")
self:k2r("ねこ-は の", "neko-ha no")
self:k2r("ねこ-'''は''' の", "neko-'''ha''' no")
self:k2r("は", "ha")
self:k2r("'''は'''", "'''ha'''")
self:k2r("<u>は</u>", "<u>ha</u>")
self:k2r("それ は ね", "sore wa ne")
self:k2r("'''こんにち は'''", "'''konnichi wa'''")
self:k2r("それ '''は''' ね", "sore '''wa''' ne")
-- ====
--[[
self:k2r("^へ へ。", "E e.") -- doesn't work as of jan 2017 probably because the code detects へ + the two surrounding
self:k2r("^へ へ。", "E e.") -- characters, and if the first へ is processed the other does not have a preceding
self:k2r("^へ へ x", "E e x") -- character to allow it to be detected (can be easily fixed but has not proven
self:k2r("^へ へ x", "E e x") -- itself to need fixing yet)
]]
self:k2r("うぉ", "wo")
self:k2r("は は では ^はっけん はっけん 「はっけん」 '''はっけん'''", "wa wa deha Hakken hakken “hakken” '''hakken'''")
self:k2r("は は では ^はっけん はっけん 「はっけん」 '''はっけん'''", "wa wa deha Hakken hakken “hakken” '''hakken'''")
-- ====
self:k2r("ぎゃ ぎぃ ぎゅ ぎぇ ぎょ。くぁ くぃ くぅ くぇ くぉ", "gya gī gyu gye gyo. kwa kwi kū kwe kwo")
self:k2r("うぁ うぃ うぅ うぇ うぉ。ヴぁ ヴぃ ヴ ヴぇ ヴぉ", "wa wi ū we wo. va vi vu ve vo")
self:k2r("ふぁ ふぃ ふ ふぇ ふぉ", "fa fi fu fe fo")
self:k2r("てぃ でぃ とぅ どぅ すぁ すぃ しぃ しぇ しょ ちぃ ぢぃ つぉ てぇ てゅ とぁ とぃ ふょ てょ", "ti di tu du sa si shī she sho chī jī tso tē tyu twa twi fyo tyo")
self:k2r("ねぃ ぬゃ", "ni nya") -- ¯\_(ツ)_/¯
self:k2r("ねぇ、", "nē,")
self:k2r("シークヮーサー", "shīkwāsā")
-- ====
self:k2r("りゃくしょう じょうず つみき ツァーリ ちゅうか つづけて そっち がっしょう マッツァーリ", "ryakushō jōzu tsumiki tsāri chūka tsuzukete sotchi gasshō mattsāri")
self:k2r("こー やって。ばっさり", "kō yatte. bassari")
self:k2r("し を ぼっ.す", "shi o bossu")
self:k2r("がーー", "gāa")
self:k2r("が がー がーー がーーー がーーーー がーーーーー", "ga gā gāa gāā gāāa gāāā")
self:k2r("じと じっと じっっと じっっっと じっっっっと じっっっっっと", "jito jitto jittto jitttto jittttto jitttttto")
self:k2r("めっちゃ めっっちゃ めっっっちゃ", "metcha mettcha metttcha")
self:k2r("あっ あーっ あぁーっ あああっっっ", "a' ā' āa' āa'''")
self:k2r("はええ", "haē")
self:k2r("まてぇぇぇ", "matēē")
self:k2r("あっ と いう ま に", "at to iu ma ni")
self:k2r("あっ、まちがえた", "a', machigaeta")
--[[
self:k2r("あっ. まちがえた", "ah machigaeta") -- conflicts with the "し を ぼっ.す" test for now
]]
self:k2r("あっ と いう ま に", "at to iu ma ni")
self:k2r("'''だまっ'''て", "'''damat'''te")
self:k2r("いっ'''ぱつ''' の じゅうだん", "ip'''patsu''' no jūdan")
self:k2r("'''ノン'''アポ", "'''non''''apo")
-- ====
self:k2r("じゅうにヶげつ せきヶはら", "jūnikagetsu sekigahara")
self:k2r("じゅうに'''ヶ'''げつ せき'''ヶ'''はら", "jūni'''ka'''getsu seki'''ga'''hara")
self:k2r("いっヵげつ いっ'''ヵ'''げつ", "ikkagetsu ik'''ka'''getsu")
self:k2r("けんいち にちようび こんや", "ken'ichi nichiyōbi kon'ya")
self:k2r("すゞき あゝ", "suzuki ā")
self:k2r("<u>ほっ</u>する", "<u>hos</u>suru")
self:k2r("<u>みっ</u>つ", "<u>mit</u>tsu")
self:k2r("<u>ち</u>", "<u>chi</u>")
self:k2r("<u>めっ</u>ちゃ", "<u>met</u>cha")
-- ====
self:k2r("あ~ あ〜 あ〰", "a~ a~ a~")
self:k2r("あ!!!!", "a!!!!")
self:k2r("200%", "200%")
-- ====
self:k2r("jyouzu じょうず", "jyouzu jōzu")
self:k2r("^トゥットゥルー♪ ^まゆしぃ☆です", "Tutturū♪ Mayushī☆desu")
self:k2r("「^だって、すてき な まち です し、それ に なんと いって も この じょうひん な ふいんき!^'''ザ'''・お-じょう-さま!^くうき も バラ の かおり が する と いう かっ!」", "“Datte, suteki na machi desu shi, sore ni nanto itte mo kono jōhin na fuinki! '''Za''' o-jō-sama! Kūki mo bara no kaori ga suru to iu ka'!”")
-- ====
--[[
self:k2r("あっあ", "?")
self:k2r("ウッーウッーウマウマ", "?")
self:k2r("あ゙ あ゛", "?")
]]
self:k2r_hist("づ", "du")
self:k2r_hist("ず", "zu")
self:k2r_hist("ぢ", "di")
self:k2r_hist("じ", "zi")
self:k2r_hist("きやう", "kyau")
self:k2r_hist("くゑ", "kwe")
self:k2r_hist("きよ", "kyo")
self:k2r_hist("くゐよく", "kwyoku")
self:k2r_hist("きよう", "kyou")
-- ===
self:k2r_hist('すゐ', 'suwi')
-- ====
self:k2r_hist("おお", "oo") -- [[Talk:公]]
self:k2r_hist("おう", "ou")
self:k2r_hist("はん", "fan")
self:k2r_hist("しよう", "syou")
self:k2r_hist("し.よう", "siyou")
-- ====
self:k2r_hist("つ.ゑ", "tuwe")
self:k2r_hist("つ", "tu")
self:k2r_hist("ち", "ti")
self:k2r_hist("ちや", "tya")
self:r2k("ayekikye vyewifue", "アイェキキェ ヴィェウィフエ")
self:r2k("shinkansen", "シンカンセン")
self:r2k("shin'i", "シンイ")
self:r2k("shin'ya shinya", "シンヤ シニャ")
self:r2k("na ni nu ne no nya nyu nye nyo", "ナ ニ ヌ ネ ノ ニャ ニュ ニェ ニョ")
self:r2k("bakkurasshu", "バックラッシュ")
self:script_detection('あいこくしん愛国心メ', 'Hira+Kana+Hani')
self:script_detection('あいこくしん愛国心', 'Hira+Hani')
self:script_detection('ァー', 'Kana')
self:script_detection('あっぷるringo', 'Hira+Romaji')
self:script_detection('ニッポン11', 'Kana+Number')
self:script_detection('ニッポンnippon', 'Kana+Romaji')
self:script_detection('一つ', 'Hira+Hani')
self:script_detection('〆る', 'Hira+Abbreviation')
self:k2h('アメリカじん', 'あめりかじん')
self:h2k('うぃきぺでぃあ デス', 'ウィキペディア デス')
self:other('jsort', 'でーじ', 'てえじ\'')
self:other('count_morae', 'しゃっきんジャー', 6)
self:other('rm_spaces_hyphens', 'ishu kakutōgi sen', 'ishukakutōgisen')
self:other('kanji_grade', '立', 1)
self:other('kanji_grade', '尊立', 6)
self:other('kanji_grade', '藉尊立', 9)
end
return p