Module:Hrkt-translit/testcases

local m = require("Module:Hrkt-translit") local t = require("Module:UnitTests")

local options local function e(k, r, lang) return t:equals(k, m.tr(k, lang or "ja", nil, options), r) end

function t:test_transliterate_kana options = nil e("あ", "a") e("あぁ", "ā") e("ああ", "ā") e("あー", "ā") e("い", "i") e("いぃ", "yi") e("いい", "ī") e("いー", "ī") e("いぇ", "ye") e("う", "u") e("ゔ", "vu") e("うぁ", "wa") e("ゔぁ", "va") e("うぃ", "wi") e("ゔぃ", "vi") e("うぃぇ", "wye") e("ゔぃぇ", "vye") e("うぅ", "wu") e("うう", "ū") e("うー", "ū") e("うぇ", "we") e("ゔぇ", "ve") e("うぉ", "wo") e("ゔぉ", "vo") e("うゃ", "wya") e("ゔゃ", "vya") e("うゅ", "wyu") e("ゔゅ", "vyu") e("うょ", "wyo") e("ゔょ", "vyo") e("え", "e") e("えぃ", "ei") e("えい", "ei") e("えぇ", "ē") e("ええ", "ē") e("えー", "ē") e("お", "o") e("おぅ", "ou") e("おう", "ō") e("おぉ", "ō") e("おお", "ō") e("おー", "ō") e("か", "ka") e("が", "ga") e("かぁ", "kā") e("かあ", "kā") e("かー", "kā") e("がぁ", "gā") e("があ", "gā") e("がー", "gā") e("き", "ki") e("ぎ", "gi") e("きぃ", "kyi") e("きい", "kī") e("きー", "kī") e("ぎぃ", "gyi") e("ぎい", "gī") e("ぎー", "gī") e("きゃ", "kya") e("ぎゃ", "gya") e("きゃぁ", "kyā") e("きゃー", "kyā") e("きゃあ", "kyā") e("ぎゃぁ", "gyā") e("ぎゃー", "gyā") e("ぎゃあ", "gyā") e("きゅ", "kyu") e("ぎゅ", "gyu") e("きゅぅ", "kyū") e("きゅー", "kyū") e("きゅう", "kyū") e("ぎゅぅ", "gyū") e("ぎゅー", "gyū") e("ぎゅう", "gyū") e("きょ", "kyo") e("ぎょ", "gyo") e("きょぅ", "kyō") e("きょう", "kyō") e("ぎょぅ", "gyō") e("ぎょう", "gyō") e("きょぉ", "kyō") e("きょー", "kyō") e("きょお", "kyō") e("ぎょぉ", "gyō") e("ぎょー", "gyō") e("ぎょお", "gyō") e("く", "ku") e("ぐ", "gu") e("くぁ", "kwa") e("ぐぁ", "gwa") e("くぃ", "kwi") e("ぐぃ", "gwi") e("くぅ", "kwu") e("くう", "kū") e("くー", "kū") e("ぐぅ", "gwu") e("ぐう", "gū") e("ぐー", "gū") e("くぇ", "kwe") e("ぐぇ", "gwe") e("くぉ", "kwo") e("ぐぉ", "gwo") e("くゎ", "kwa") e("ぐゎ", "gwa") e("け", "ke") e("げ", "ge") e("けぃ", "kei") e("けい", "kei") e("げぃ", "gei") e("げい", "gei") e("けぇ", "kē") e("けえ", "kē") e("けー", "kē") e("げぇ", "gē") e("げえ", "gē") e("げー", "gē") e("こ", "ko") e("ご", "go") e("こぅ", "kō") e("こう", "kō") e("ごぅ", "gō") e("ごう", "gō") e("こぉ", "kō") e("こお", "kō") e("こー", "kō") e("ごぉ", "gō") e("ごお", "gō") e("ごー", "gō") e("さ", "sa") e("ざ", "za") e("さぁ", "sā") e("さあ", "sā") e("さー", "sā") e("ざぁ", "zā") e("ざあ", "zā") e("ざー", "zā") e("し", "shi") e("じ", "ji") e("しぃ", "shyi") e("しい", "shī") e("しー", "shī") e("じぃ", "jyi") e("じい", "jī") e("じー", "jī") e("しゃ", "sha") e("じゃ", "ja") e("しゃぁ", "shā") e("しゃー", "shā") e("しゃあ", "shā") e("じゃぁ", "jā") e("じゃー", "jā") e("じゃあ", "jā") e("しゅ", "shu") e("じゅ", "ju") e("しゅぅ", "shwu") e("しゅー", "shū") e("しゅう", "shū") e("じゅぅ", "jwu") e("じゅー", "jū") e("じゅう", "jū") e("しょ", "sho") e("じょ", "jo") e("しょぅ", "shō") e("しょう", "shō") e("じょぅ", "jō") e("じょう", "jō") e("しょぉ", "shō") e("しょー", "shō") e("しょお", "shō") e("じょぉ", "jō") e("じょー", "jō") e("じょお", "jō") e("す", "su") e("ず", "zu") e("すぁ", "swa") e("ずぁ", "zwa") e("すぃ", "si") e("ずぃ", "zi") e("すぃぇ", "sye") e("ずぃぇ", "zye") e("すぅ", "swu") e("すう", "sū") e("すー", "sū") e("ずぅ", "zwu") e("ずう", "zū") e("ずー", "zū") e("すぇ", "swe") e("ずぇ", "zwe") e("すぉ", "swo") e("ずぉ", "zwo") e("すゃ", "sya") e("ずゃ", "zya") e("すゅ", "syu") e("ずゅ", "zyu") e("すょ", "syo") e("ずょ", "zyo") e("すゎ", "swa") e("ずゎ", "zwa") e("せ", "se") e("ぜ", "ze") e("せぃ", "sei") e("せい", "sei") e("ぜぃ", "zei") e("ぜい", "zei") e("せぇ", "sē") e("せえ", "sē") e("せー", "sē") e("ぜぇ", "zē") e("ぜえ", "zē") e("ぜー", "zē") e("そ", "so") e("ぞ", "zo") e("そぅ", "sō") e("そう", "sō") e("ぞぅ", "zō") e("ぞう", "zō") e("そぉ", "sō") e("そお", "sō") e("そー", "sō") e("ぞぉ", "zō") e("ぞお", "zō") e("ぞー", "zō") e("た", "ta") e("だ", "da") e("たぁ", "tā") e("たあ", "tā") e("たー", "tā") e("だぁ", "dā") e("だあ", "dā") e("だー", "dā") e("ち", "chi") e("ぢ", "ji") e("ちぃ", "chyi") e("ちい", "chī") e("ちー", "chī") e("ぢぃ", "jyi") e("ぢい", "jī") e("ぢー", "jī") e("ちゃ", "cha") e("ぢゃ", "ja") e("ちゃぁ", "chā") e("ちゃー", "chā") e("ちゃあ", "chā") e("ぢゃぁ", "jā") e("ぢゃー", "jā") e("ぢゃあ", "jā") e("ちゅ", "chu") e("ぢゅ", "ju") e("ちゅぅ", "chwu") e("ちゅー", "chū") e("ちゅう", "chū") e("ぢゅぅ", "jwu") e("ぢゅー", "jū") e("ぢゅう", "jū") e("ちょ", "cho") e("ぢょ", "jo") e("ちょぅ", "chō") e("ちょう", "chō") e("ぢょぅ", "jō") e("ぢょう", "jō") e("ちょぉ", "chō") e("ちょー", "chō") e("ちょお", "chō") e("ぢょぉ", "jō") e("ぢょー", "jō") e("ぢょお", "jō") e("て", "te") e("で", "de") e("てぃ", "ti") e("てい", "tei") e("でぃ", "di") e("でい", "dei") e("てぃぇ", "tye") e("でぃぇ", "dye") e("てぇ", "tē") e("てえ", "tē") e("てー", "tē") e("でぇ", "dē") e("でえ", "dē") e("でー", "dē") e("てゃ", "tya") e("でゃ", "dya") e("てゅ", "tyu") e("でゅ", "dyu") e("てょ", "tyo") e("でょ", "dyo") e("と", "to") e("ど", "do") e("とぁ", "twa") e("どぁ", "dwa") e("とぃ", "twi") e("どぃ", "dwi") e("とぅ", "tu") e("とう", "tō") e("どぅ", "du") e("どう", "dō") e("とぅぉ", "two") e("どぅぉ", "dwo") e("とぇ", "twe") e("どぇ", "dwe") e("とぉ", "tō") e("とお", "tō") e("とー", "tō") e("どぉ", "dō") e("どお", "dō") e("どー", "dō") e("とゎ", "twa") e("どゎ", "dwa") e("と゚", "tu") e("ト゚ゥ", "twu") e("ト゚ー", "tū") end

function t:test_transliterate_normal options = nil e("アイェキキェ ヴィェウィフエ", "ayekikye vyewifue") e("かいしょないしぎょうしょで ひょうげんされる しゃくじとしての かんじを、きょくどに そうたいかした ものである", "kaishonaishigyōshode hyōgensareru shakujitoshiteno kanjio, kyokudoni sōtaikashita monodearu") e("しんかんせん", "shinkansen") e("ぴなーるん", "phinārun", "xug") -- ====	e("こううん", "kōun") e("きんえん", "kin'en") e("きんねん", "kinnen") e("きねん", "kinen") e("きんゆう", "kin'yū") e("きにゅう", "kinyū") e("おんわ", "onwa") e("^コンウィ", "Konwi") e("^コーンウォール", "Kōnwōru") e("^ルブヌィ", "Rubu'nwi") e("^ヴィーンヌィツャ", "Vīnnwitsya") e("^ロヴァニエミ", "Rovaniemi") e("オヴム", "ovumu") e("クヴァルク", "kuvaruku") e("^リッヴィ", "Rivvi") e("^プロッヴィデンティ", "Purovvidenti") e("ウヌカㇻアン", "unukar'an", "ain") e("アㇺアㇺ", "am'am", "ain") e("ばーㇲ゙ア", "bādz'a", "mvi") e("わ ゐ 𛄟 ゑ を ワ ヰ 𛄢 ヱ ヲ", "wa i wu e o wa i wu e o") e("わ゙ ゐ゙ ゔ ゑ゙ を゙ ヷ ヸ ヴ ヹ ヺ", "va vi vu ve vo va vi vu ve vo") e("これはテストです. ", "korehatesutodesu.") e("これ　は　テスト　です. それ　は. それ　は", "kore wa tesuto desu. sore wa. sore wa") e("^ウィキペディア　へ　^ようこそ", "Wikipedia e Yōkoso") e("^ウィキペディア　へ　^ようこそ", "Wikipedia e Yōkoso") -- ====	e("は　うはう　う　は　う　は", "wa uhau u wa u wa") e("へ　うへう　う　へ　う　へ", "e uheu u e u e") e(".は　うはう　う　.は　う　.は", "ha uhau u ha u ha") e("は.　うはう　う　は.　う　は.", "ha uhau u ha u ha") e("^これ ^は ^テスト ^です. ^へ　へ", "Kore Wa Tesuto Desu. E e") -- but what kind of sick monster capitalizes particles e("^ちょ% ^はっ%かい", "Cho Hakkai") e("てにをは", "tenioha") e("をぅとーてぃ", "wutōti", "ryu") e("ぎゃく-ハーレム", "gyaku-hāremu") e("ねこ-は", "neko-ha") e("ねこ-は", "neko-ha") e("ねこ-は の", "neko-ha no") e("ねこ-は の", "neko-ha no") e("は", "ha") e("は", "ha") e(" は ", " ha ") e("それ は ね", "sore wa ne") e("こんにち は", "konnichi wa") e("それ は ね", "sore wa ne") e("^へ　へ. ", "E e.") e("^へ へ. ", "E e.") e("^へ　へ　x", "E e x") e("^へ へ　x", "E e x") e("うぉ", "wo") e("は は", "wa wa") e("では", "deha") e("はー", "hā") e("は〜", "ha~") e("は〰", "ha~") e("は゠は", "ha-ha") e("ハッ", "ha'") e("はっけん", "hakken") e("^はっけん", "Hakken") e("「はっけん」", "“hakken”") e("はっけん", "hakken") -- ====	e("ぎゃ　ぎぃ　ぎゅ　ぎぇ　ぎょ. くぁ　くぃ　くぅ　くぇ　くぉ", "gya gī gyu gye gyo. kwa kwi kū kwe kwo") e("うぁ　うぃ　うぅ　うぇ　うぉ. ヴぁ　ヴぃ　ヴ　ヴぇ　ヴぉ", "wa wi wu we wo. va vi vu ve vo") e("ふぁ　ふぃ　ふ　ふぇ　ふぉ", "fa fi fu fe fo") e("てぃ　でぃ　とぅ　どぅ　すぁ　すぃ　しぃ　しぇ　しょ　ちぃ ぢぃ　つぉ　てぇ　てゅ　とぁ　とぃ　ふょ　てょ", "ti di tu du sa si shī she sho chī jī tso tē tyu twa twi fyo tyo") e("ねぃ　ぬゃ", "ni nya") -- ¯\_(ツ)_/¯ e("ねぇ、", "nē,") e("シークヮーサー", "shīkwāsā") -- ====	e("りゃくしょう　じょうず　つみき　ツァーリ　ちゅうか　つづけて そっち　がっしょう　マッツァーリ", "ryakushō jōzu tsumiki tsāri chūka tsuzukete sotchi gasshō mattsāri") e("こー　やって. ばっさり", "kō yatte. bassari") e("し を ぼっ.す", "shi o bo'su") e("が　がー　がーー　がーーー　がーーーー　がーーーーー", "ga gā gaaa gaaaa gaaaaa gaaaaaa") e("じと　じっと　じっっと　じっっっと　じっっっっと　じっっっっっと", "jito jitto jittto jitttto jittttto jitttttto") e("めっちゃ　めっっちゃ　めっっっちゃ", "metcha mettcha metttcha") e("あっ　あーっ　あぁーっ　あああっっっ", "a' ā' aaa' āa'''") e("はええ", "haē") e("まてぇぇぇ", "mateeee") e("あっ と いう ま に", "a' to iu ma ni") e("あっ、まちがえた", "a', machigaeta") e("あっ. まちがえた", "a' machigaeta") e("あっ と いう ま に", "a' to iu ma ni") e("ボン・キュッ・ボン", "bon kyub bon") e("アッ・^シャルキーヤ", "as Sharukīya") e("アッ゠^リヤード", "ar-Riyādo") e("アッ.゠^リヤード", "a'-Riyādo") e("アッ゠.^リヤード", "a'-Riyādo") e("アッ.^リヤード", "a'Riyādo") e("^ハガッニャ", "Haga'nya") e("トッモ", "to'mo") e("だまって", "damatte") e("いっぱつ の じゅうだん", "ippatsu no jūdan") e("ノンアポ", "non'apo") e("んんと", "nnto") e("んーと", "nnto") e("っんーと", "'nnto") -- ====	e("せきヶはら", "sekigahara") e("せきヶはら", "sekigahara") e("けんいち　にちようび　こんや", "ken'ichi nichiyōbi kon'ya") e("すゞき　あゝ", "suzuki ā") e("ところゞゝゝ", "tokorodokoro") e("じゝ", "jishi") e("バナヽ", "banana") e("イタベイトホヾニタリ", "itabeitohobonitari") e("ボヽ゚モフォ", "bopomofo") e("しゅゞ", "shuju") e("キ^ュンヽ^ヽ", "kYunkyuN") e("フィヽ", "fifi") e(" ほっ する", " hos suru") e(" みっ つ", " mit tsu") e(" ち ", " chi ") e(" めっ ちゃ", " met cha") -- ====	e("あ～ あ〜 あ〰", "a~ a~ a~") e("あ！！！！", "a!!!!") e("200％", "200%") -- ====	e("jyouzu　じょうず", "jyouzu jōzu") e("^トゥットゥルー♪　^まゆしぃ☆です", "Tutturū♪ Mayushī☆desu") e("「^だって、すてき な まち です し、それ に なんと いって も この じょうひん な ふいんき！^ザ・お-じょう-さま！^くうき も バラ の かおり が する と いう かっ！」", "“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'!”") e("あっあ", "a'a") e("ウッーウッーウマウマ", "u'uu'uumauma") e("あ゙ あ゛", "'a 'a") e("さあ゙", "sa'a") e("ウ゚", "ũ") e("ん゙ ん゛", "'n 'n") e("よって", "yotte") e("^って なんで おまえ が ここ に！", "Tte nande omae ga koko ni!") -- e("あいうえお おえういあ", "aiueo oeuia") -- e("あいうえお おえういあ", "aiueo oeuia") -- e("これ は テスト です", "kore wa tesuto desu") -- e("はこ%おし", "hakooshi") -- e("ごん%べ%え", "gonbee") -- e("っっ^っって", "ttTtte") e("しんい", "shin'i") e("し.んい", "shin'i") e("しん.い", "shin'i") e("し・んい", "shi n'i") e("しん・い", "shin i") e("し.ん.い", "shin'i") e("し.ん・い", "shin i") e("し・ん.い", "shi n'i") e("し・ん・い", "shi n i") e("しんうぃ", "shinwi") e("し.んうぃ", "shinwi") e("しん.うぃ", "shinwi") e("し・んうぃ", "shi nwi") e("しん・うぃ", "shin wi") e("し.ん.うぃ", "shinwi") e("し.ん・うぃ", "shin wi") e("し・ん.うぃ", "shi nwi") e("し・ん・うぃ", "shi n wi") e("しぬぃん", "shi'nwin") e("し.ぬぃん", "shi'nwin") e("しぬぃ.ん", "shi'nwin") e("し・ぬぃん", "shi nwin") e("しぬぃ・ん", "shi'nwi n") e("し.ぬぃ.ん", "shi'nwin") e("し.ぬぃ・ん", "shi'nwi n") e("し・ぬぃ.ん", "shi nwin") e("し・ぬぃ・ん", "shi nwi n") e("しぬ𛅐ん", "shi'nwin") e("し.ぬ𛅐ん", "shi'nwin") e("しぬ𛅐.ん", "shi'nwin") e("し・ぬ𛅐ん", "shi nwin") e("しぬ𛅐・ん", "shi'nwi n") e("し.ぬ𛅐.ん", "shi'nwin") e("し.ぬ𛅐・ん", "shi'nwi n") e("し・ぬ𛅐.ん", "shi nwin") e("し・ぬ𛅐・ん", "shi nwi n") e("うんぐ", "ungu") e("う.んぐ", "ungu") e("うん.ぐ", "ungu") e("う・んぐ", "u ngu") e("うん・ぐ", "un gu") e("う.ん.ぐ", "ungu") e("う.ん・ぐ", "un gu") e("う・ん.ぐ", "u ngu") e("う・ん・ぐ", "u n gu") e("うく゚ん", "u'ngun") e("う.く゚ん", "u'ngun") e("うく゚.ん", "u'ngun") e("う・く゚ん", "u ngun") e("うく゚・ん", "u'ngu n") e("う.く゚.ん", "u'ngun") e("う.く゚・ん", "u'ngu n") e("う・く゚.ん", "u ngun") e("う・く゚・ん", "u ngu n") e("んく゚", "n'ngu") e("ん.く゚", "n'ngu") e("ん・く゚", "n ngu") e("っな゙", "'nna", "ryn") e("っん゙", "'nn", "ryu") e("エック゚", "e'nngu") e("んぬ", "nnu") e("んぬぁ", "nnwa") e("ん゙ぬ", "'nnu") e("ん゙ぬぁ", "'nnwa") e("ふづぁ", "fuza", "mvi") end

function t:test_transliterate_historical options = {hist = true} e("づ", "du") e("ず", "zu") e("ぢ", "di") e("じ", "zi") e("つ", "tu") e("ち", "ti") e("おお", "oo") -- Talk:公 e("おう", "ou") e("はん", "fan") -- ===	e("しよう", "syou") e("きやう", "kyau") e("し.よう", "siyou") e("いゆ", "iyu") e("きよ", "kyo") e("きよう", "kyou") e("ちや", "tya") e("くわ", "kwa") -- only before く / ぐ e("くゑ", "kwe") e("く.わ", "kuwa") e("すゑ", "suwe") e("にうわ", "niuwa") e("つ.ゑ", "tuwe") e("くゐよく", "kwyoku") e("かんわ", "kan'wa") e("くわんゐん", "kwan'win") end

function t:test_transliterate_no_diacritics options = {no_diacritics = true} e("かいしょないしぎょうしょで ひょうげんされる しゃくじとしての かんじを、きょくどに そうたいかした ものである", "kaishonaishigyoushode hyougensareru shakujitoshiteno kanjio, kyokudoni soutaikashita monodearu") end return t