blob: 59e972f0d5e767a66f28daa9e88d0f7ddbbc972f [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.lucene.analysis.ja.util;
import java.util.HashMap;
import java.util.Map;
import org.apache.lucene.util.LuceneTestCase;
public class TestToStringUtil extends LuceneTestCase {
public void testPOS() {
assertEquals("noun-suffix-verbal", ToStringUtil.getPOSTranslation("名詞-接尾-サ変接続"));
}
public void testHepburn() {
assertEquals("majan", ToStringUtil.getRomanization("マージャン"));
assertEquals("uroncha", ToStringUtil.getRomanization("ウーロンチャ"));
assertEquals("chahan", ToStringUtil.getRomanization("チャーハン"));
assertEquals("chashu", ToStringUtil.getRomanization("チャーシュー"));
assertEquals("shumai", ToStringUtil.getRomanization("シューマイ"));
}
// see http://en.wikipedia.org/wiki/Hepburn_romanization,
// but this isnt even thorough or really probably what we want!
public void testHepburnTable() {
Map<String,String> table = new HashMap<String,String>() {{
put("ア", "a"); put("イ", "i"); put("ウ", "u"); put("エ", "e"); put("オ", "o");
put("カ", "ka"); put("キ", "ki"); put("ク", "ku"); put("ケ", "ke"); put("コ", "ko");
put("サ", "sa"); put("シ", "shi"); put("ス", "su"); put("セ", "se"); put("ソ", "so");
put("タ", "ta"); put("チ", "chi"); put("ツ", "tsu"); put("テ", "te"); put("ト", "to");
put("ナ", "na"); put("ニ", "ni"); put("ヌ", "nu"); put("ネ", "ne"); put("ノ", "no");
put("ハ", "ha"); put("ヒ", "hi"); put("フ", "fu"); put("ヘ", "he"); put("ホ", "ho");
put("マ", "ma"); put("ミ", "mi"); put("ム", "mu"); put("メ", "me"); put("モ", "mo");
put("ヤ", "ya"); put("ユ", "yu"); put("ヨ", "yo");
put("ラ", "ra"); put("リ", "ri"); put("ル", "ru"); put("レ", "re"); put("ロ", "ro");
put("ワ", "wa"); put("ヰ", "i"); put("ヱ", "e"); put("ヲ", "o");
put("ン", "n");
put("ガ", "ga"); put("ギ", "gi"); put("グ", "gu"); put("ゲ", "ge"); put("ゴ", "go");
put("ザ", "za"); put("ジ", "ji"); put("ズ", "zu"); put("ゼ", "ze"); put("ゾ", "zo");
put("ダ", "da"); put("ヂ", "ji"); put("ヅ", "zu"); put("デ", "de"); put("ド", "do");
put("バ", "ba"); put("ビ", "bi"); put("ブ", "bu"); put("ベ", "be"); put("ボ", "bo");
put("パ", "pa"); put("ピ", "pi"); put("プ", "pu"); put("ペ", "pe"); put("ポ", "po");
put("キャ", "kya"); put("キュ", "kyu"); put("キョ", "kyo");
put("シャ", "sha"); put("シュ", "shu"); put("ショ", "sho");
put("チャ", "cha"); put("チュ", "chu"); put("チョ", "cho");
put("ニャ", "nya"); put("ニュ", "nyu"); put("ニョ", "nyo");
put("ヒャ", "hya"); put("ヒュ", "hyu"); put("ヒョ", "hyo");
put("ミャ", "mya"); put("ミュ", "myu"); put("ミョ", "myo");
put("リャ", "rya"); put("リュ", "ryu"); put("リョ", "ryo");
put("ギャ", "gya"); put("ギュ", "gyu"); put("ギョ", "gyo");
put("ジャ", "ja"); put("ジュ", "ju"); put("ジョ", "jo");
put("ヂャ", "ja"); put("ヂュ", "ju"); put("ヂョ", "jo");
put("ビャ", "bya"); put("ビュ", "byu"); put("ビョ", "byo");
put("ピャ", "pya"); put("ピュ", "pyu"); put("ピョ", "pyo");
put("イィ", "yi"); put("イェ", "ye");
put("ウァ", "wa"); put("ウィ", "wi"); put("ウゥ", "wu"); put("ウェ", "we"); put("ウォ", "wo");
put("ウュ", "wyu");
// TODO: really should be vu
put("ヴァ", "va"); put("ヴィ", "vi"); put("ヴ", "v"); put("ヴェ", "ve"); put("ヴォ", "vo");
put("ヴャ", "vya"); put("ヴュ", "vyu"); put("ヴィェ", "vye"); put("ヴョ", "vyo");
put("キェ", "kye");
put("ギェ", "gye");
put("クァ", "kwa"); put("クィ", "kwi"); put("クェ", "kwe"); put("クォ", "kwo");
put("クヮ", "kwa");
put("グァ", "gwa"); put("グィ", "gwi"); put("グェ", "gwe"); put("グォ", "gwo");
put("グヮ", "gwa");
put("シェ", "she");
put("ジェ", "je");
put("スィ", "si");
put("ズィ", "zi");
put("チェ", "che");
put("ツァ", "tsa"); put("ツィ", "tsi"); put("ツェ", "tse"); put("ツォ", "tso");
put("ツュ", "tsyu");
put("ティ", "ti"); put("トゥ", "tu");
put("テュ", "tyu");
put("ディ", "di"); put("ドゥ", "du");
put("デュ", "dyu");
put("ニェ", "nye");
put("ヒェ", "hye");
put("ビェ", "bye");
put("ピェ", "pye");
put("ファ", "fa"); put("フィ", "fi"); put("フェ", "fe"); put("フォ", "fo");
put("フャ", "fya"); put("フュ", "fyu"); put("フィェ", "fye"); put("フョ", "fyo");
put("ホゥ", "hu");
put("ミェ", "mye");
put("リェ", "rye");
put("ラ゜", "la"); put("リ゜", "li"); put("ル゜", "lu"); put("レ゜", "le"); put("ロ゜", "lo");
put("ヷ", "va"); put("ヸ", "vi"); put("ヹ", "ve"); put("ヺ", "vo");
}};
for (String s : table.keySet()) {
assertEquals(s, table.get(s), ToStringUtil.getRomanization(s));
}
}
}