/* * Copyright (C) 2013-2017 NTT DATA Corporation * * Licensed 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.terasoluna.gfw.common.fullhalf; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.nullValue; import static org.junit.Assert.assertThat; import org.junit.Test; public class ToHalfwidthTest { @Test public void testToFull() throws Exception { assertThat(DefaultFullHalf.INSTANCE.toFullwidth("!"), is("!")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("\""), is("”")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("#"), is("#")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("$"), is("$")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("%"), is("%")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("&"), is("&")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("'"), is("’")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("("), is("(")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth(")"), is(")")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("*"), is("*")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("+"), is("+")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth(","), is(",")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("-"), is("-")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("."), is(".")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("/"), is("/")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("0"), is("0")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("1"), is("1")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("2"), is("2")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("3"), is("3")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("4"), is("4")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("5"), is("5")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("6"), is("6")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("7"), is("7")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("8"), is("8")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("9"), is("9")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth(":"), is(":")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth(";"), is(";")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("<"), is("<")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("="), is("=")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth(">"), is(">")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("?"), is("?")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("@"), is("@")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("A"), is("A")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("B"), is("B")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("C"), is("C")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("D"), is("D")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("E"), is("E")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("F"), is("F")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("G"), is("G")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("H"), is("H")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("I"), is("I")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("J"), is("J")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("K"), is("K")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("L"), is("L")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("M"), is("M")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("N"), is("N")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("O"), is("O")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("P"), is("P")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("Q"), is("Q")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("R"), is("R")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("S"), is("S")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("T"), is("T")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("U"), is("U")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("V"), is("V")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("W"), is("W")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("X"), is("X")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("Y"), is("Y")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("Z"), is("Z")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("["), is("[")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("\\"), is("¥")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("]"), is("]")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("^"), is("^")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("_"), is("_")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("`"), is("`")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("a"), is("a")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("b"), is("b")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("c"), is("c")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("d"), is("d")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("e"), is("e")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("f"), is("f")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("g"), is("g")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("h"), is("h")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("i"), is("i")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("j"), is("j")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("k"), is("k")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("l"), is("l")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("m"), is("m")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("n"), is("n")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("o"), is("o")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("p"), is("p")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("q"), is("q")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("r"), is("r")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("s"), is("s")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("t"), is("t")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("u"), is("u")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("v"), is("v")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("w"), is("w")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("x"), is("x")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("y"), is("y")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("z"), is("z")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("{"), is("{")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("|"), is("|")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("}"), is("}")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("~"), is(String .valueOf('\uff5e'))); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("。"), is("。")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("「"), is("「")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("」"), is("」")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("、"), is("、")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("・"), is("・")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ァ"), is("ァ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ィ"), is("ィ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ゥ"), is("ゥ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ェ"), is("ェ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ォ"), is("ォ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ャ"), is("ャ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ュ"), is("ュ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ョ"), is("ョ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ッ"), is("ッ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ー"), is("ー")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ア"), is("ア")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("イ"), is("イ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ウ"), is("ウ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("エ"), is("エ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("オ"), is("オ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("カ"), is("カ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("キ"), is("キ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ク"), is("ク")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ケ"), is("ケ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("コ"), is("コ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("サ"), is("サ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("シ"), is("シ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ス"), is("ス")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("セ"), is("セ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ソ"), is("ソ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("タ"), is("タ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("チ"), is("チ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ツ"), is("ツ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("テ"), is("テ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ト"), is("ト")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ナ"), is("ナ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ニ"), is("ニ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ヌ"), is("ヌ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ネ"), is("ネ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ノ"), is("ノ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ハ"), is("ハ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ヒ"), is("ヒ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("フ"), is("フ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ヘ"), is("ヘ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ホ"), is("ホ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("マ"), is("マ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ミ"), is("ミ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ム"), is("ム")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("メ"), is("メ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("モ"), is("モ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ヤ"), is("ヤ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ユ"), is("ユ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ヨ"), is("ヨ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ラ"), is("ラ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("リ"), is("リ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ル"), is("ル")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("レ"), is("レ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ロ"), is("ロ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ン"), is("ン")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ガ"), is("ガ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ギ"), is("ギ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("グ"), is("グ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ゲ"), is("ゲ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ゴ"), is("ゴ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ザ"), is("ザ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ジ"), is("ジ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ズ"), is("ズ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ゼ"), is("ゼ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ゾ"), is("ゾ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ダ"), is("ダ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ヂ"), is("ヂ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ヅ"), is("ヅ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("デ"), is("デ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ド"), is("ド")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("バ"), is("バ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ビ"), is("ビ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ブ"), is("ブ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ベ"), is("べ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ボ"), is("ボ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("パ"), is("パ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ピ"), is("ピ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("プ"), is("プ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ペ"), is("ペ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ポ"), is("ポ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ヴ"), is("ヴ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ヷ"), is(String .valueOf('\u30f7'))); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ヺ"), is(String .valueOf('\u30fa'))); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("゙"), is("゛")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("゚"), is("゜")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth(" "), is(" ")); } @Test public void testToFull_NotMapped() throws Exception { assertThat(DefaultFullHalf.INSTANCE.toFullwidth("あ"), is("あ")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("一"), is("一")); } @Test public void testToFull_String() throws Exception { assertThat(DefaultFullHalf.INSTANCE.toFullwidth("メロン"), is("メロン")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("Hello World!"), is("Hello World!")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ハローワールド!"), is("ハローワールド!")); } @Test public void testToFull_NotMappedAndMappedString() throws Exception { assertThat(DefaultFullHalf.INSTANCE.toFullwidth("完熟メロンパン"), is("完熟メロンパン")); assertThat(DefaultFullHalf.INSTANCE.toFullwidth("マチュピチュ遺跡"), is("マチュピチュ遺跡")); } @Test public void testToFull_String_NotMapped() throws Exception { assertThat(DefaultFullHalf.INSTANCE.toFullwidth("あいうえお"), is("あいうえお")); } @Test public void testToFull_String_Mixed() throws Exception { assertThat(DefaultFullHalf.INSTANCE.toFullwidth("あいうえおカキクケコ"), is("あいうえおカキクケコ")); } @Test public void testToFull01_半角普通英数字一文字が全角普通英数字に変換されること() throws Exception { assertThat(DefaultFullHalf.INSTANCE.toFullwidth("A"), is("A")); } @Test public void testToFull02_半角普通文字が複数全角普通文字に変換されること() throws Exception { assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ア゙!A8"), is("ア゛!A8")); } @Test public void testToFull03_半角サ一文字が全角サに変換されること() throws Exception { assertThat(DefaultFullHalf.INSTANCE.toFullwidth("サ"), is("サ")); } @Test public void testToFull04_半角カサタハウが複数全角カサタハウに変換されること() throws Exception { assertThat(DefaultFullHalf.INSTANCE.toFullwidth("カサタハウ"), is("カサタハウ")); } @Test public void testToFull05_半角濁点一文字が全角濁点に変換されること() throws Exception { assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ガ"), is("ガ")); } @Test public void testToFull06_半角濁点が複数文字全角濁点に変換されること() throws Exception { assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ガザダバヴ"), is("ガザダバヴ")); } @Test public void testToFull07_半角半濁点一文字が全角半濁点に変換されること() throws Exception { assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ポ"), is("ポ")); } @Test public void testToFull08_半角半濁点が複数文字全角半濁点に変換されること() throws Exception { assertThat(DefaultFullHalf.INSTANCE.toFullwidth("パピプペポ"), is("パピプペポ")); } @Test public void testToFull09_半角ワが全角ワに変換されること() throws Exception { assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ワ"), is("ワ")); } @Test public void testToFull10_半角ヲが全角ヲに変換されること() throws Exception { assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ヲ"), is("ヲ")); } @Test public void testToFull11_半角濁点ワが全角濁点ワに変換されること() throws Exception { assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ヷ"), is("\u30f7")); } @Test public void testToFull12_半角濁点ヲが全角濁点ヲに変換されること() throws Exception { assertThat(DefaultFullHalf.INSTANCE.toFullwidth("ヺ"), is("\u30fa")); } @Test public void testToFull13_半角ワが文字列の途中にある時全角ワに変換されること() throws Exception { assertThat(DefaultFullHalf.INSTANCE.toFullwidth("Aワ1"), is("Aワ1")); } @Test public void testToFull14_半角ヲが文字列の途中にある時全角ヲに変換されること() throws Exception { assertThat(DefaultFullHalf.INSTANCE.toFullwidth("Bヲ8"), is("Bヲ8")); } @Test public void testToFull15_半角濁点ワが文字列の途中にある時全角濁点ワに変換されること() throws Exception { assertThat(DefaultFullHalf.INSTANCE.toFullwidth("Bヷ8"), is("B\u30f78")); } @Test public void testToFull16_半角濁点ワが文字列の途中にある時全角濁点ワに変換されること() throws Exception { assertThat(DefaultFullHalf.INSTANCE.toFullwidth("Bヺ8"), is("B\u30fa8")); } @Test public void testToFull17_半角ワが文字列の末尾にある時全角ワに変換されること() throws Exception { assertThat(DefaultFullHalf.INSTANCE.toFullwidth("アAワ"), is("アAワ")); } @Test public void testToFull18_半角ヲが文字列の末尾にある時全角ヲに変換されること() throws Exception { assertThat(DefaultFullHalf.INSTANCE.toFullwidth("tBヲ"), is("tBヲ")); } @Test public void testToFull19_半角濁点ワが文字列の末尾にある時全角濁点ワに変換されること() throws Exception { assertThat(DefaultFullHalf.INSTANCE.toFullwidth("サBヷ"), is("サB\u30f7")); } @Test public void testToFull20_半角濁点ヲが文字列の末尾にある時全角濁点ヲに変換されること() throws Exception { assertThat(DefaultFullHalf.INSTANCE.toFullwidth("アBヺ"), is("アB\u30fa")); } @Test public void testToFull21_入力値に全角文字と半角文字を混合させたものを設定し全て全角文字に変換されること() throws Exception { assertThat(DefaultFullHalf.INSTANCE.toFullwidth("サシズゼソ"), is("サシズゼソ")); } @Test public void testToFull22_置換対象文字列がnullの時nullを戻り値とし処理を終了すること() throws Exception { assertThat(DefaultFullHalf.INSTANCE.toFullwidth(null), is(nullValue())); } @Test public void testToFull23_置換対象文字列が空文字の時空文字を戻り値とし処理を終了すること() throws Exception { assertThat(DefaultFullHalf.INSTANCE.toFullwidth(""), is("")); } @Test public void testToFull24_半角半濁点文字が全角半濁点文字に変換されること() throws Exception { assertThat(DefaultFullHalf.INSTANCE.toFullwidth("カ゚キ゚"), is("カ゜キ゜")); } }