Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
針對小麥 2.3 內建的 OVMandarin 的倚天26與許氏鍵盤的單元測試。

該測試為窮極測試,測試盡可能所有的在理論上能用倚天26與許氏鍵盤輸入的注音組合。

在執行此測試之前,請在 Mandarin.h 的接近檔案末尾的位置新增如下圖選中區域的內容:

image

也就是在 BopomofoReadingBuffer 的 public 段新增:

  std::string cnvSequence(std::string givenSequence) {
    clear();
    for (char key : givenSequence) {
      combineKey(key);
    }
    return composedString();
  };

咱們用 Mandarin 隨贈的 Google Test、可以讓測試得以正常進行。相關檔案在此。Cpp 結尾的測試檔案是給 Google Test 用的;以「.mm」結尾的檔案是給 Xcode Test 用的。所有檔案必須得是 UTF8 無 BOM 的格式,否則測試會出錯。

可以的話,最好還是用 Xcode Test,畢竟可以一次性告訴你全部的出錯的地方。Google Test 測試結果只要有一處出錯,之後的測試點的內容就沒再測試了,不太方便就所有測試條目的的錯誤結果進行綜合分析。鐵恨注拼引擎正是受益於 Xcode Test 的這個特性、才能迅速完成與許氏鍵盤和倚天26鍵有關的處理函式的排障工作。

測試結果:OVMandarin 除了無法讓倚天26與許氏鍵盤處理「ㄑ˙」這個讀音以外,其餘一切正常。

// This test file is written by Shiki Suen (MIT License).
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the "Software"), to deal in the Software without
// restriction, including without limitation the rights to use,
// copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following
// conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
// OTHER DEALINGS IN THE SOFTWARE.
#include "Mandarin.h"
#include "gtest/gtest.h"
namespace Formosa {
namespace Mandarin {
// ====== ADVANCED TESTS ======
TEST(MandarinTestAdvanced, DachenTraditional) {
BopomofoReadingBuffer composer(BopomofoKeyboardLayout::StandardLayout());
ASSERT_EQ(composer.cnvSequence("18"), "ㄅㄚ");
ASSERT_EQ(composer.cnvSequence("m,4"), "ㄩㄝˋ");
ASSERT_EQ(composer.cnvSequence("5j/"), "ㄓㄨㄥ");
ASSERT_EQ(composer.cnvSequence("fu."), "ㄑㄧㄡ");
ASSERT_EQ(composer.cnvSequence("g0"), "ㄕㄢ");
ASSERT_EQ(composer.cnvSequence("xup6"), "ㄌㄧㄣˊ");
ASSERT_EQ(composer.cnvSequence("xu;6"), "ㄌㄧㄤˊ");
ASSERT_EQ(composer.cnvSequence("z/"), "ㄈㄥ");
ASSERT_EQ(composer.cnvSequence("tjo"), "ㄔㄨㄟ");
ASSERT_EQ(composer.cnvSequence("284"), "ㄉㄚˋ");
ASSERT_EQ(composer.cnvSequence("2u4"), "ㄉㄧˋ");
ASSERT_EQ(composer.cnvSequence("hl3"), "ㄘㄠˇ");
ASSERT_EQ(composer.cnvSequence("5"), "");
ASSERT_EQ(composer.cnvSequence("193"), "ㄅㄞˇ");
}
TEST(MandarinTestAdvanced, Eten26) {
// 倚天26窮極測試;
BopomofoReadingBuffer composer(BopomofoKeyboardLayout::ETen26Layout());
ASSERT_EQ(composer.cnvSequence("ket"), "ㄎㄧㄤ");
// AreEqual(Composer.cnvSequence("vezf"), "ㄍㄧㄠˊ");
// AreEqual(Composer.cnvSequence("ven"), "ㄍㄧㄣ");
ASSERT_EQ(composer.cnvSequence("betf"), "ㄅㄧㄤˊ");
ASSERT_EQ(composer.cnvSequence("betk"), "ㄅㄧㄤˋ");
ASSERT_EQ(composer.cnvSequence("dxt"), "ㄉㄨㄤ");
ASSERT_EQ(composer.cnvSequence("ba"), "ㄅㄚ");
ASSERT_EQ(composer.cnvSequence("baf"), "ㄅㄚˊ");
ASSERT_EQ(composer.cnvSequence("baj"), "ㄅㄚˇ");
ASSERT_EQ(composer.cnvSequence("bak"), "ㄅㄚˋ");
ASSERT_EQ(composer.cnvSequence("bad"), "ㄅㄚ˙");
ASSERT_EQ(composer.cnvSequence("bo"), "ㄅㄛ");
ASSERT_EQ(composer.cnvSequence("bof"), "ㄅㄛˊ");
ASSERT_EQ(composer.cnvSequence("boj"), "ㄅㄛˇ");
ASSERT_EQ(composer.cnvSequence("bok"), "ㄅㄛˋ");
ASSERT_EQ(composer.cnvSequence("bod"), "ㄅㄛ˙");
ASSERT_EQ(composer.cnvSequence("bi"), "ㄅㄞ");
ASSERT_EQ(composer.cnvSequence("bif"), "ㄅㄞˊ");
ASSERT_EQ(composer.cnvSequence("bij"), "ㄅㄞˇ");
ASSERT_EQ(composer.cnvSequence("bik"), "ㄅㄞˋ");
ASSERT_EQ(composer.cnvSequence("bid"), "ㄅㄞ˙");
ASSERT_EQ(composer.cnvSequence("bq"), "ㄅㄟ");
ASSERT_EQ(composer.cnvSequence("bqj"), "ㄅㄟˇ");
ASSERT_EQ(composer.cnvSequence("bqk"), "ㄅㄟˋ");
ASSERT_EQ(composer.cnvSequence("bqd"), "ㄅㄟ˙");
ASSERT_EQ(composer.cnvSequence("bz"), "ㄅㄠ");
ASSERT_EQ(composer.cnvSequence("bzf"), "ㄅㄠˊ");
ASSERT_EQ(composer.cnvSequence("bzj"), "ㄅㄠˇ");
ASSERT_EQ(composer.cnvSequence("bzk"), "ㄅㄠˋ");
ASSERT_EQ(composer.cnvSequence("bm"), "ㄅㄢ");
ASSERT_EQ(composer.cnvSequence("bmj"), "ㄅㄢˇ");
ASSERT_EQ(composer.cnvSequence("bmk"), "ㄅㄢˋ");
ASSERT_EQ(composer.cnvSequence("bn"), "ㄅㄣ");
ASSERT_EQ(composer.cnvSequence("bnj"), "ㄅㄣˇ");
ASSERT_EQ(composer.cnvSequence("bnk"), "ㄅㄣˋ");
ASSERT_EQ(composer.cnvSequence("bt"), "ㄅㄤ");
ASSERT_EQ(composer.cnvSequence("btj"), "ㄅㄤˇ");
ASSERT_EQ(composer.cnvSequence("btk"), "ㄅㄤˋ");
ASSERT_EQ(composer.cnvSequence("bl"), "ㄅㄥ");
ASSERT_EQ(composer.cnvSequence("blf"), "ㄅㄥˊ");
ASSERT_EQ(composer.cnvSequence("blj"), "ㄅㄥˇ");
ASSERT_EQ(composer.cnvSequence("blk"), "ㄅㄥˋ");
ASSERT_EQ(composer.cnvSequence("be"), "ㄅㄧ");
ASSERT_EQ(composer.cnvSequence("bef"), "ㄅㄧˊ");
ASSERT_EQ(composer.cnvSequence("bej"), "ㄅㄧˇ");
ASSERT_EQ(composer.cnvSequence("bek"), "ㄅㄧˋ");
ASSERT_EQ(composer.cnvSequence("bew"), "ㄅㄧㄝ");
ASSERT_EQ(composer.cnvSequence("bewf"), "ㄅㄧㄝˊ");
ASSERT_EQ(composer.cnvSequence("bewj"), "ㄅㄧㄝˇ");
ASSERT_EQ(composer.cnvSequence("bewk"), "ㄅㄧㄝˋ");
ASSERT_EQ(composer.cnvSequence("bez"), "ㄅㄧㄠ");
ASSERT_EQ(composer.cnvSequence("bezj"), "ㄅㄧㄠˇ");
ASSERT_EQ(composer.cnvSequence("bezk"), "ㄅㄧㄠˋ");
ASSERT_EQ(composer.cnvSequence("bem"), "ㄅㄧㄢ");
ASSERT_EQ(composer.cnvSequence("bemf"), "ㄅㄧㄢˊ");
ASSERT_EQ(composer.cnvSequence("bemj"), "ㄅㄧㄢˇ");
ASSERT_EQ(composer.cnvSequence("bemk"), "ㄅㄧㄢˋ");
ASSERT_EQ(composer.cnvSequence("ben"), "ㄅㄧㄣ");
ASSERT_EQ(composer.cnvSequence("benj"), "ㄅㄧㄣˇ");
ASSERT_EQ(composer.cnvSequence("benk"), "ㄅㄧㄣˋ");
ASSERT_EQ(composer.cnvSequence("bel"), "ㄅㄧㄥ");
ASSERT_EQ(composer.cnvSequence("belj"), "ㄅㄧㄥˇ");
ASSERT_EQ(composer.cnvSequence("belk"), "ㄅㄧㄥˋ");
ASSERT_EQ(composer.cnvSequence("bx"), "ㄅㄨ");
ASSERT_EQ(composer.cnvSequence("bxf"), "ㄅㄨˊ");
ASSERT_EQ(composer.cnvSequence("bxj"), "ㄅㄨˇ");
ASSERT_EQ(composer.cnvSequence("bxk"), "ㄅㄨˋ");
ASSERT_EQ(composer.cnvSequence("pa"), "ㄆㄚ");
ASSERT_EQ(composer.cnvSequence("paf"), "ㄆㄚˊ");
ASSERT_EQ(composer.cnvSequence("paj"), "ㄆㄚˇ");
ASSERT_EQ(composer.cnvSequence("pak"), "ㄆㄚˋ");
ASSERT_EQ(composer.cnvSequence("pad"), "ㄆㄚ˙");
ASSERT_EQ(composer.cnvSequence("po"), "ㄆㄛ");
ASSERT_EQ(composer.cnvSequence("pof"), "ㄆㄛˊ");
ASSERT_EQ(composer.cnvSequence("poj"), "ㄆㄛˇ");
ASSERT_EQ(composer.cnvSequence("pok"), "ㄆㄛˋ");
ASSERT_EQ(composer.cnvSequence("pi"), "ㄆㄞ");
ASSERT_EQ(composer.cnvSequence("pif"), "ㄆㄞˊ");
ASSERT_EQ(composer.cnvSequence("pij"), "ㄆㄞˇ");
ASSERT_EQ(composer.cnvSequence("pik"), "ㄆㄞˋ");
ASSERT_EQ(composer.cnvSequence("pq"), "ㄆㄟ");
ASSERT_EQ(composer.cnvSequence("pqf"), "ㄆㄟˊ");
ASSERT_EQ(composer.cnvSequence("pqj"), "ㄆㄟˇ");
ASSERT_EQ(composer.cnvSequence("pqk"), "ㄆㄟˋ");
ASSERT_EQ(composer.cnvSequence("pz"), "ㄆㄠ");
ASSERT_EQ(composer.cnvSequence("pzf"), "ㄆㄠˊ");
ASSERT_EQ(composer.cnvSequence("pzj"), "ㄆㄠˇ");
ASSERT_EQ(composer.cnvSequence("pzk"), "ㄆㄠˋ");
ASSERT_EQ(composer.cnvSequence("pp"), "ㄆㄡ");
ASSERT_EQ(composer.cnvSequence("ppf"), "ㄆㄡˊ");
ASSERT_EQ(composer.cnvSequence("ppj"), "ㄆㄡˇ");
ASSERT_EQ(composer.cnvSequence("ppk"), "ㄆㄡˋ");
ASSERT_EQ(composer.cnvSequence("pm"), "ㄆㄢ");
ASSERT_EQ(composer.cnvSequence("pmf"), "ㄆㄢˊ");
ASSERT_EQ(composer.cnvSequence("pmj"), "ㄆㄢˇ");
ASSERT_EQ(composer.cnvSequence("pmk"), "ㄆㄢˋ");
ASSERT_EQ(composer.cnvSequence("pn"), "ㄆㄣ");
ASSERT_EQ(composer.cnvSequence("pnf"), "ㄆㄣˊ");
ASSERT_EQ(composer.cnvSequence("pnj"), "ㄆㄣˇ");
ASSERT_EQ(composer.cnvSequence("pnk"), "ㄆㄣˋ");
ASSERT_EQ(composer.cnvSequence("pt"), "ㄆㄤ");
ASSERT_EQ(composer.cnvSequence("ptf"), "ㄆㄤˊ");
ASSERT_EQ(composer.cnvSequence("ptj"), "ㄆㄤˇ");
ASSERT_EQ(composer.cnvSequence("ptk"), "ㄆㄤˋ");
ASSERT_EQ(composer.cnvSequence("pl"), "ㄆㄥ");
ASSERT_EQ(composer.cnvSequence("plf"), "ㄆㄥˊ");
ASSERT_EQ(composer.cnvSequence("plj"), "ㄆㄥˇ");
ASSERT_EQ(composer.cnvSequence("plk"), "ㄆㄥˋ");
ASSERT_EQ(composer.cnvSequence("pe"), "ㄆㄧ");
ASSERT_EQ(composer.cnvSequence("pef"), "ㄆㄧˊ");
ASSERT_EQ(composer.cnvSequence("pej"), "ㄆㄧˇ");
ASSERT_EQ(composer.cnvSequence("pek"), "ㄆㄧˋ");
ASSERT_EQ(composer.cnvSequence("pea"), "ㄆㄧㄚ");
ASSERT_EQ(composer.cnvSequence("pew"), "ㄆㄧㄝ");
ASSERT_EQ(composer.cnvSequence("pewj"), "ㄆㄧㄝˇ");
ASSERT_EQ(composer.cnvSequence("pewk"), "ㄆㄧㄝˋ");
ASSERT_EQ(composer.cnvSequence("pez"), "ㄆㄧㄠ");
ASSERT_EQ(composer.cnvSequence("pezf"), "ㄆㄧㄠˊ");
ASSERT_EQ(composer.cnvSequence("pezj"), "ㄆㄧㄠˇ");
ASSERT_EQ(composer.cnvSequence("pezk"), "ㄆㄧㄠˋ");
ASSERT_EQ(composer.cnvSequence("pem"), "ㄆㄧㄢ");
ASSERT_EQ(composer.cnvSequence("pemf"), "ㄆㄧㄢˊ");
ASSERT_EQ(composer.cnvSequence("pemj"), "ㄆㄧㄢˇ");
ASSERT_EQ(composer.cnvSequence("pemk"), "ㄆㄧㄢˋ");
ASSERT_EQ(composer.cnvSequence("pen"), "ㄆㄧㄣ");
ASSERT_EQ(composer.cnvSequence("penf"), "ㄆㄧㄣˊ");
ASSERT_EQ(composer.cnvSequence("penj"), "ㄆㄧㄣˇ");
ASSERT_EQ(composer.cnvSequence("penk"), "ㄆㄧㄣˋ");
ASSERT_EQ(composer.cnvSequence("pel"), "ㄆㄧㄥ");
ASSERT_EQ(composer.cnvSequence("pelf"), "ㄆㄧㄥˊ");
ASSERT_EQ(composer.cnvSequence("pelj"), "ㄆㄧㄥˇ");
ASSERT_EQ(composer.cnvSequence("pelk"), "ㄆㄧㄥˋ");
ASSERT_EQ(composer.cnvSequence("px"), "ㄆㄨ");
ASSERT_EQ(composer.cnvSequence("pxf"), "ㄆㄨˊ");
ASSERT_EQ(composer.cnvSequence("pxj"), "ㄆㄨˇ");
ASSERT_EQ(composer.cnvSequence("pxk"), "ㄆㄨˋ");
ASSERT_EQ(composer.cnvSequence("ma"), "ㄇㄚ");
ASSERT_EQ(composer.cnvSequence("maf"), "ㄇㄚˊ");
ASSERT_EQ(composer.cnvSequence("maj"), "ㄇㄚˇ");
ASSERT_EQ(composer.cnvSequence("mak"), "ㄇㄚˋ");
ASSERT_EQ(composer.cnvSequence("mad"), "ㄇㄚ˙");
ASSERT_EQ(composer.cnvSequence("mo"), "ㄇㄛ");
ASSERT_EQ(composer.cnvSequence("mof"), "ㄇㄛˊ");
ASSERT_EQ(composer.cnvSequence("moj"), "ㄇㄛˇ");
ASSERT_EQ(composer.cnvSequence("mok"), "ㄇㄛˋ");
ASSERT_EQ(composer.cnvSequence("mod"), "ㄇㄛ˙");
ASSERT_EQ(composer.cnvSequence("mr"), "ㄇㄜ");
ASSERT_EQ(composer.cnvSequence("mrk"), "ㄇㄜˋ");
ASSERT_EQ(composer.cnvSequence("mrd"), "ㄇㄜ˙");
ASSERT_EQ(composer.cnvSequence("mi"), "ㄇㄞ");
ASSERT_EQ(composer.cnvSequence("mif"), "ㄇㄞˊ");
ASSERT_EQ(composer.cnvSequence("mij"), "ㄇㄞˇ");
ASSERT_EQ(composer.cnvSequence("mik"), "ㄇㄞˋ");
ASSERT_EQ(composer.cnvSequence("mqf"), "ㄇㄟˊ");
ASSERT_EQ(composer.cnvSequence("mqj"), "ㄇㄟˇ");
ASSERT_EQ(composer.cnvSequence("mqk"), "ㄇㄟˋ");
ASSERT_EQ(composer.cnvSequence("mz"), "ㄇㄠ");
ASSERT_EQ(composer.cnvSequence("mzf"), "ㄇㄠˊ");
ASSERT_EQ(composer.cnvSequence("mzj"), "ㄇㄠˇ");
ASSERT_EQ(composer.cnvSequence("mzk"), "ㄇㄠˋ");
ASSERT_EQ(composer.cnvSequence("mpf"), "ㄇㄡˊ");
ASSERT_EQ(composer.cnvSequence("mpj"), "ㄇㄡˇ");
ASSERT_EQ(composer.cnvSequence("mpk"), "ㄇㄡˋ");
ASSERT_EQ(composer.cnvSequence("mm"), "ㄇㄢ");
ASSERT_EQ(composer.cnvSequence("mmf"), "ㄇㄢˊ");
ASSERT_EQ(composer.cnvSequence("mmj"), "ㄇㄢˇ");
ASSERT_EQ(composer.cnvSequence("mmk"), "ㄇㄢˋ");
ASSERT_EQ(composer.cnvSequence("mn"), "ㄇㄣ");
ASSERT_EQ(composer.cnvSequence("mnf"), "ㄇㄣˊ");
ASSERT_EQ(composer.cnvSequence("mnj"), "ㄇㄣˇ");
ASSERT_EQ(composer.cnvSequence("mnk"), "ㄇㄣˋ");
ASSERT_EQ(composer.cnvSequence("mnd"), "ㄇㄣ˙");
ASSERT_EQ(composer.cnvSequence("mt"), "ㄇㄤ");
ASSERT_EQ(composer.cnvSequence("mtf"), "ㄇㄤˊ");
ASSERT_EQ(composer.cnvSequence("mtj"), "ㄇㄤˇ");
ASSERT_EQ(composer.cnvSequence("mtk"), "ㄇㄤˋ");
ASSERT_EQ(composer.cnvSequence("ml"), "ㄇㄥ");
ASSERT_EQ(composer.cnvSequence("mlf"), "ㄇㄥˊ");
ASSERT_EQ(composer.cnvSequence("mlj"), "ㄇㄥˇ");
ASSERT_EQ(composer.cnvSequence("mlk"), "ㄇㄥˋ");
ASSERT_EQ(composer.cnvSequence("me"), "ㄇㄧ");
ASSERT_EQ(composer.cnvSequence("mef"), "ㄇㄧˊ");
ASSERT_EQ(composer.cnvSequence("mej"), "ㄇㄧˇ");
ASSERT_EQ(composer.cnvSequence("mek"), "ㄇㄧˋ");
ASSERT_EQ(composer.cnvSequence("mew"), "ㄇㄧㄝ");
ASSERT_EQ(composer.cnvSequence("mewf"), "ㄇㄧㄝˊ");
ASSERT_EQ(composer.cnvSequence("mewk"), "ㄇㄧㄝˋ");
ASSERT_EQ(composer.cnvSequence("mez"), "ㄇㄧㄠ");
ASSERT_EQ(composer.cnvSequence("mezf"), "ㄇㄧㄠˊ");
ASSERT_EQ(composer.cnvSequence("mezj"), "ㄇㄧㄠˇ");
ASSERT_EQ(composer.cnvSequence("mezk"), "ㄇㄧㄠˋ");
ASSERT_EQ(composer.cnvSequence("mepf"), "ㄇㄧㄡˊ");
ASSERT_EQ(composer.cnvSequence("mepj"), "ㄇㄧㄡˇ");
ASSERT_EQ(composer.cnvSequence("mepk"), "ㄇㄧㄡˋ");
ASSERT_EQ(composer.cnvSequence("mem"), "ㄇㄧㄢ");
ASSERT_EQ(composer.cnvSequence("memf"), "ㄇㄧㄢˊ");
ASSERT_EQ(composer.cnvSequence("memj"), "ㄇㄧㄢˇ");
ASSERT_EQ(composer.cnvSequence("memk"), "ㄇㄧㄢˋ");
ASSERT_EQ(composer.cnvSequence("men"), "ㄇㄧㄣ");
ASSERT_EQ(composer.cnvSequence("menf"), "ㄇㄧㄣˊ");
ASSERT_EQ(composer.cnvSequence("menj"), "ㄇㄧㄣˇ");
ASSERT_EQ(composer.cnvSequence("melf"), "ㄇㄧㄥˊ");
ASSERT_EQ(composer.cnvSequence("melj"), "ㄇㄧㄥˇ");
ASSERT_EQ(composer.cnvSequence("melk"), "ㄇㄧㄥˋ");
ASSERT_EQ(composer.cnvSequence("mxf"), "ㄇㄨˊ");
ASSERT_EQ(composer.cnvSequence("mxj"), "ㄇㄨˇ");
ASSERT_EQ(composer.cnvSequence("mxk"), "ㄇㄨˋ");
ASSERT_EQ(composer.cnvSequence("fa"), "ㄈㄚ");
ASSERT_EQ(composer.cnvSequence("faf"), "ㄈㄚˊ");
ASSERT_EQ(composer.cnvSequence("faj"), "ㄈㄚˇ");
ASSERT_EQ(composer.cnvSequence("fak"), "ㄈㄚˋ");
ASSERT_EQ(composer.cnvSequence("fof"), "ㄈㄛˊ");
ASSERT_EQ(composer.cnvSequence("fq"), "ㄈㄟ");
ASSERT_EQ(composer.cnvSequence("fqf"), "ㄈㄟˊ");
ASSERT_EQ(composer.cnvSequence("fqj"), "ㄈㄟˇ");
ASSERT_EQ(composer.cnvSequence("fqk"), "ㄈㄟˋ");
ASSERT_EQ(composer.cnvSequence("fp"), "ㄈㄡ");
ASSERT_EQ(composer.cnvSequence("fpf"), "ㄈㄡˊ");
ASSERT_EQ(composer.cnvSequence("fpj"), "ㄈㄡˇ");
ASSERT_EQ(composer.cnvSequence("fpk"), "ㄈㄡˋ");
ASSERT_EQ(composer.cnvSequence("fm"), "ㄈㄢ");
ASSERT_EQ(composer.cnvSequence("fmf"), "ㄈㄢˊ");
ASSERT_EQ(composer.cnvSequence("fmj"), "ㄈㄢˇ");
ASSERT_EQ(composer.cnvSequence("fmk"), "ㄈㄢˋ");
ASSERT_EQ(composer.cnvSequence("fn"), "ㄈㄣ");
ASSERT_EQ(composer.cnvSequence("fnf"), "ㄈㄣˊ");
ASSERT_EQ(composer.cnvSequence("fnj"), "ㄈㄣˇ");
ASSERT_EQ(composer.cnvSequence("fnk"), "ㄈㄣˋ");
ASSERT_EQ(composer.cnvSequence("fnd"), "ㄈㄣ˙");
ASSERT_EQ(composer.cnvSequence("ft"), "ㄈㄤ");
ASSERT_EQ(composer.cnvSequence("ftf"), "ㄈㄤˊ");
ASSERT_EQ(composer.cnvSequence("ftj"), "ㄈㄤˇ");
ASSERT_EQ(composer.cnvSequence("ftk"), "ㄈㄤˋ");
ASSERT_EQ(composer.cnvSequence("fl"), "ㄈㄥ");
ASSERT_EQ(composer.cnvSequence("flf"), "ㄈㄥˊ");
ASSERT_EQ(composer.cnvSequence("flj"), "ㄈㄥˇ");
ASSERT_EQ(composer.cnvSequence("flk"), "ㄈㄥˋ");
ASSERT_EQ(composer.cnvSequence("fezk"), "ㄈㄧㄠˋ");
ASSERT_EQ(composer.cnvSequence("fx"), "ㄈㄨ");
ASSERT_EQ(composer.cnvSequence("fxf"), "ㄈㄨˊ");
ASSERT_EQ(composer.cnvSequence("fxj"), "ㄈㄨˇ");
ASSERT_EQ(composer.cnvSequence("fxk"), "ㄈㄨˋ");
ASSERT_EQ(composer.cnvSequence("da"), "ㄉㄚ");
ASSERT_EQ(composer.cnvSequence("daf"), "ㄉㄚˊ");
ASSERT_EQ(composer.cnvSequence("daj"), "ㄉㄚˇ");
ASSERT_EQ(composer.cnvSequence("dak"), "ㄉㄚˋ");
ASSERT_EQ(composer.cnvSequence("dad"), "ㄉㄚ˙");
ASSERT_EQ(composer.cnvSequence("dr"), "ㄉㄜ");
ASSERT_EQ(composer.cnvSequence("drf"), "ㄉㄜˊ");
ASSERT_EQ(composer.cnvSequence("drd"), "ㄉㄜ˙");
ASSERT_EQ(composer.cnvSequence("di"), "ㄉㄞ");
ASSERT_EQ(composer.cnvSequence("dij"), "ㄉㄞˇ");
ASSERT_EQ(composer.cnvSequence("dik"), "ㄉㄞˋ");
ASSERT_EQ(composer.cnvSequence("dqj"), "ㄉㄟˇ");
ASSERT_EQ(composer.cnvSequence("dz"), "ㄉㄠ");
ASSERT_EQ(composer.cnvSequence("dzf"), "ㄉㄠˊ");
ASSERT_EQ(composer.cnvSequence("dzj"), "ㄉㄠˇ");
ASSERT_EQ(composer.cnvSequence("dzk"), "ㄉㄠˋ");
ASSERT_EQ(composer.cnvSequence("dp"), "ㄉㄡ");
ASSERT_EQ(composer.cnvSequence("dpf"), "ㄉㄡˊ");
ASSERT_EQ(composer.cnvSequence("dpj"), "ㄉㄡˇ");
ASSERT_EQ(composer.cnvSequence("dpk"), "ㄉㄡˋ");
ASSERT_EQ(composer.cnvSequence("dm"), "ㄉㄢ");
ASSERT_EQ(composer.cnvSequence("dmj"), "ㄉㄢˇ");
ASSERT_EQ(composer.cnvSequence("dmk"), "ㄉㄢˋ");
ASSERT_EQ(composer.cnvSequence("dnk"), "ㄉㄣˋ");
ASSERT_EQ(composer.cnvSequence("dt"), "ㄉㄤ");
ASSERT_EQ(composer.cnvSequence("dtj"), "ㄉㄤˇ");
ASSERT_EQ(composer.cnvSequence("dtk"), "ㄉㄤˋ");
ASSERT_EQ(composer.cnvSequence("dl"), "ㄉㄥ");
ASSERT_EQ(composer.cnvSequence("dlj"), "ㄉㄥˇ");
ASSERT_EQ(composer.cnvSequence("dlk"), "ㄉㄥˋ");
ASSERT_EQ(composer.cnvSequence("de"), "ㄉㄧ");
ASSERT_EQ(composer.cnvSequence("def"), "ㄉㄧˊ");
ASSERT_EQ(composer.cnvSequence("dej"), "ㄉㄧˇ");
ASSERT_EQ(composer.cnvSequence("dek"), "ㄉㄧˋ");
ASSERT_EQ(composer.cnvSequence("deaj"), "ㄉㄧㄚˇ");
ASSERT_EQ(composer.cnvSequence("dew"), "ㄉㄧㄝ");
ASSERT_EQ(composer.cnvSequence("dewf"), "ㄉㄧㄝˊ");
ASSERT_EQ(composer.cnvSequence("dewj"), "ㄉㄧㄝˇ");
ASSERT_EQ(composer.cnvSequence("dewk"), "ㄉㄧㄝˋ");
ASSERT_EQ(composer.cnvSequence("dez"), "ㄉㄧㄠ");
ASSERT_EQ(composer.cnvSequence("dezj"), "ㄉㄧㄠˇ");
ASSERT_EQ(composer.cnvSequence("dezk"), "ㄉㄧㄠˋ");
ASSERT_EQ(composer.cnvSequence("dep"), "ㄉㄧㄡ");
ASSERT_EQ(composer.cnvSequence("dem"), "ㄉㄧㄢ");
ASSERT_EQ(composer.cnvSequence("demf"), "ㄉㄧㄢˊ");
ASSERT_EQ(composer.cnvSequence("demj"), "ㄉㄧㄢˇ");
ASSERT_EQ(composer.cnvSequence("demk"), "ㄉㄧㄢˋ");
ASSERT_EQ(composer.cnvSequence("del"), "ㄉㄧㄥ");
ASSERT_EQ(composer.cnvSequence("delf"), "ㄉㄧㄥˊ");
ASSERT_EQ(composer.cnvSequence("delj"), "ㄉㄧㄥˇ");
ASSERT_EQ(composer.cnvSequence("delk"), "ㄉㄧㄥˋ");
ASSERT_EQ(composer.cnvSequence("dx"), "ㄉㄨ");
ASSERT_EQ(composer.cnvSequence("dxf"), "ㄉㄨˊ");
ASSERT_EQ(composer.cnvSequence("dxj"), "ㄉㄨˇ");
ASSERT_EQ(composer.cnvSequence("dxk"), "ㄉㄨˋ");
ASSERT_EQ(composer.cnvSequence("dxo"), "ㄉㄨㄛ");
ASSERT_EQ(composer.cnvSequence("dxof"), "ㄉㄨㄛˊ");
ASSERT_EQ(composer.cnvSequence("dxoj"), "ㄉㄨㄛˇ");
ASSERT_EQ(composer.cnvSequence("dxok"), "ㄉㄨㄛˋ");
ASSERT_EQ(composer.cnvSequence("dxod"), "ㄉㄨㄛ˙");
ASSERT_EQ(composer.cnvSequence("dxq"), "ㄉㄨㄟ");
ASSERT_EQ(composer.cnvSequence("dxqj"), "ㄉㄨㄟˇ");
ASSERT_EQ(composer.cnvSequence("dxqk"), "ㄉㄨㄟˋ");
ASSERT_EQ(composer.cnvSequence("dxm"), "ㄉㄨㄢ");
ASSERT_EQ(composer.cnvSequence("dxmj"), "ㄉㄨㄢˇ");
ASSERT_EQ(composer.cnvSequence("dxmk"), "ㄉㄨㄢˋ");
ASSERT_EQ(composer.cnvSequence("dxn"), "ㄉㄨㄣ");
ASSERT_EQ(composer.cnvSequence("dxnj"), "ㄉㄨㄣˇ");
ASSERT_EQ(composer.cnvSequence("dxnk"), "ㄉㄨㄣˋ");
ASSERT_EQ(composer.cnvSequence("dxl"), "ㄉㄨㄥ");
ASSERT_EQ(composer.cnvSequence("dxlj"), "ㄉㄨㄥˇ");
ASSERT_EQ(composer.cnvSequence("dxlk"), "ㄉㄨㄥˋ");
ASSERT_EQ(composer.cnvSequence("ta"), "ㄊㄚ");
ASSERT_EQ(composer.cnvSequence("taj"), "ㄊㄚˇ");
ASSERT_EQ(composer.cnvSequence("tak"), "ㄊㄚˋ");
ASSERT_EQ(composer.cnvSequence("trk"), "ㄊㄜˋ");
ASSERT_EQ(composer.cnvSequence("ti"), "ㄊㄞ");
ASSERT_EQ(composer.cnvSequence("tif"), "ㄊㄞˊ");
ASSERT_EQ(composer.cnvSequence("tij"), "ㄊㄞˇ");
ASSERT_EQ(composer.cnvSequence("tik"), "ㄊㄞˋ");
ASSERT_EQ(composer.cnvSequence("tid"), "ㄊㄞ˙");
ASSERT_EQ(composer.cnvSequence("tz"), "ㄊㄠ");
ASSERT_EQ(composer.cnvSequence("tzf"), "ㄊㄠˊ");
ASSERT_EQ(composer.cnvSequence("tzj"), "ㄊㄠˇ");
ASSERT_EQ(composer.cnvSequence("tzk"), "ㄊㄠˋ");
ASSERT_EQ(composer.cnvSequence("tzd"), "ㄊㄠ˙");
ASSERT_EQ(composer.cnvSequence("tp"), "ㄊㄡ");
ASSERT_EQ(composer.cnvSequence("tpf"), "ㄊㄡˊ");
ASSERT_EQ(composer.cnvSequence("tpj"), "ㄊㄡˇ");
ASSERT_EQ(composer.cnvSequence("tpk"), "ㄊㄡˋ");
ASSERT_EQ(composer.cnvSequence("tpd"), "ㄊㄡ˙");
ASSERT_EQ(composer.cnvSequence("tm"), "ㄊㄢ");
ASSERT_EQ(composer.cnvSequence("tmf"), "ㄊㄢˊ");
ASSERT_EQ(composer.cnvSequence("tmj"), "ㄊㄢˇ");
ASSERT_EQ(composer.cnvSequence("tmk"), "ㄊㄢˋ");
ASSERT_EQ(composer.cnvSequence("tt"), "ㄊㄤ");
ASSERT_EQ(composer.cnvSequence("ttf"), "ㄊㄤˊ");
ASSERT_EQ(composer.cnvSequence("ttj"), "ㄊㄤˇ");
ASSERT_EQ(composer.cnvSequence("ttk"), "ㄊㄤˋ");
ASSERT_EQ(composer.cnvSequence("tl"), "ㄊㄥ");
ASSERT_EQ(composer.cnvSequence("tlf"), "ㄊㄥˊ");
ASSERT_EQ(composer.cnvSequence("tlk"), "ㄊㄥˋ");
ASSERT_EQ(composer.cnvSequence("te"), "ㄊㄧ");
ASSERT_EQ(composer.cnvSequence("tef"), "ㄊㄧˊ");
ASSERT_EQ(composer.cnvSequence("tej"), "ㄊㄧˇ");
ASSERT_EQ(composer.cnvSequence("tek"), "ㄊㄧˋ");
ASSERT_EQ(composer.cnvSequence("tew"), "ㄊㄧㄝ");
ASSERT_EQ(composer.cnvSequence("tewf"), "ㄊㄧㄝˊ");
ASSERT_EQ(composer.cnvSequence("tewj"), "ㄊㄧㄝˇ");
ASSERT_EQ(composer.cnvSequence("tewk"), "ㄊㄧㄝˋ");
ASSERT_EQ(composer.cnvSequence("tez"), "ㄊㄧㄠ");
ASSERT_EQ(composer.cnvSequence("tezf"), "ㄊㄧㄠˊ");
ASSERT_EQ(composer.cnvSequence("tezj"), "ㄊㄧㄠˇ");
ASSERT_EQ(composer.cnvSequence("tezk"), "ㄊㄧㄠˋ");
ASSERT_EQ(composer.cnvSequence("tem"), "ㄊㄧㄢ");
ASSERT_EQ(composer.cnvSequence("temf"), "ㄊㄧㄢˊ");
ASSERT_EQ(composer.cnvSequence("temj"), "ㄊㄧㄢˇ");
ASSERT_EQ(composer.cnvSequence("temk"), "ㄊㄧㄢˋ");
ASSERT_EQ(composer.cnvSequence("tel"), "ㄊㄧㄥ");
ASSERT_EQ(composer.cnvSequence("telf"), "ㄊㄧㄥˊ");
ASSERT_EQ(composer.cnvSequence("telj"), "ㄊㄧㄥˇ");
ASSERT_EQ(composer.cnvSequence("telk"), "ㄊㄧㄥˋ");
ASSERT_EQ(composer.cnvSequence("tx"), "ㄊㄨ");
ASSERT_EQ(composer.cnvSequence("txf"), "ㄊㄨˊ");
ASSERT_EQ(composer.cnvSequence("txj"), "ㄊㄨˇ");
ASSERT_EQ(composer.cnvSequence("txk"), "ㄊㄨˋ");
ASSERT_EQ(composer.cnvSequence("txo"), "ㄊㄨㄛ");
ASSERT_EQ(composer.cnvSequence("txof"), "ㄊㄨㄛˊ");
ASSERT_EQ(composer.cnvSequence("txoj"), "ㄊㄨㄛˇ");
ASSERT_EQ(composer.cnvSequence("txok"), "ㄊㄨㄛˋ");
ASSERT_EQ(composer.cnvSequence("txq"), "ㄊㄨㄟ");
ASSERT_EQ(composer.cnvSequence("txqf"), "ㄊㄨㄟˊ");
ASSERT_EQ(composer.cnvSequence("txqj"), "ㄊㄨㄟˇ");
ASSERT_EQ(composer.cnvSequence("txqk"), "ㄊㄨㄟˋ");
ASSERT_EQ(composer.cnvSequence("txm"), "ㄊㄨㄢ");
ASSERT_EQ(composer.cnvSequence("txmf"), "ㄊㄨㄢˊ");
ASSERT_EQ(composer.cnvSequence("txmj"), "ㄊㄨㄢˇ");
ASSERT_EQ(composer.cnvSequence("txmk"), "ㄊㄨㄢˋ");
ASSERT_EQ(composer.cnvSequence("txn"), "ㄊㄨㄣ");
ASSERT_EQ(composer.cnvSequence("txnf"), "ㄊㄨㄣˊ");
ASSERT_EQ(composer.cnvSequence("txnj"), "ㄊㄨㄣˇ");
ASSERT_EQ(composer.cnvSequence("txnk"), "ㄊㄨㄣˋ");
ASSERT_EQ(composer.cnvSequence("txl"), "ㄊㄨㄥ");
ASSERT_EQ(composer.cnvSequence("txlf"), "ㄊㄨㄥˊ");
ASSERT_EQ(composer.cnvSequence("txlj"), "ㄊㄨㄥˇ");
ASSERT_EQ(composer.cnvSequence("txlk"), "ㄊㄨㄥˋ");
ASSERT_EQ(composer.cnvSequence("na"), "ㄋㄚ");
ASSERT_EQ(composer.cnvSequence("naf"), "ㄋㄚˊ");
ASSERT_EQ(composer.cnvSequence("naj"), "ㄋㄚˇ");
ASSERT_EQ(composer.cnvSequence("nak"), "ㄋㄚˋ");
ASSERT_EQ(composer.cnvSequence("nad"), "ㄋㄚ˙");
ASSERT_EQ(composer.cnvSequence("nrk"), "ㄋㄜˋ");
ASSERT_EQ(composer.cnvSequence("nrd"), "ㄋㄜ˙");
ASSERT_EQ(composer.cnvSequence("nif"), "ㄋㄞˊ");
ASSERT_EQ(composer.cnvSequence("nij"), "ㄋㄞˇ");
ASSERT_EQ(composer.cnvSequence("nik"), "ㄋㄞˋ");
ASSERT_EQ(composer.cnvSequence("nqf"), "ㄋㄟˊ");
ASSERT_EQ(composer.cnvSequence("nqj"), "ㄋㄟˇ");
ASSERT_EQ(composer.cnvSequence("nqk"), "ㄋㄟˋ");
ASSERT_EQ(composer.cnvSequence("nz"), "ㄋㄠ");
ASSERT_EQ(composer.cnvSequence("nzf"), "ㄋㄠˊ");
ASSERT_EQ(composer.cnvSequence("nzj"), "ㄋㄠˇ");
ASSERT_EQ(composer.cnvSequence("nzk"), "ㄋㄠˋ");
ASSERT_EQ(composer.cnvSequence("npf"), "ㄋㄡˊ");
ASSERT_EQ(composer.cnvSequence("npj"), "ㄋㄡˇ");
ASSERT_EQ(composer.cnvSequence("npk"), "ㄋㄡˋ");
ASSERT_EQ(composer.cnvSequence("nm"), "ㄋㄢ");
ASSERT_EQ(composer.cnvSequence("nmf"), "ㄋㄢˊ");
ASSERT_EQ(composer.cnvSequence("nmj"), "ㄋㄢˇ");
ASSERT_EQ(composer.cnvSequence("nmk"), "ㄋㄢˋ");
ASSERT_EQ(composer.cnvSequence("nnj"), "ㄋㄣˇ");
ASSERT_EQ(composer.cnvSequence("nnk"), "ㄋㄣˋ");
ASSERT_EQ(composer.cnvSequence("nt"), "ㄋㄤ");
ASSERT_EQ(composer.cnvSequence("ntf"), "ㄋㄤˊ");
ASSERT_EQ(composer.cnvSequence("ntj"), "ㄋㄤˇ");
ASSERT_EQ(composer.cnvSequence("ntk"), "ㄋㄤˋ");
ASSERT_EQ(composer.cnvSequence("ntd"), "ㄋㄤ˙");
ASSERT_EQ(composer.cnvSequence("nlf"), "ㄋㄥˊ");
ASSERT_EQ(composer.cnvSequence("nlj"), "ㄋㄥˇ");
ASSERT_EQ(composer.cnvSequence("ne"), "ㄋㄧ");
ASSERT_EQ(composer.cnvSequence("nef"), "ㄋㄧˊ");
ASSERT_EQ(composer.cnvSequence("nej"), "ㄋㄧˇ");
ASSERT_EQ(composer.cnvSequence("nek"), "ㄋㄧˋ");
ASSERT_EQ(composer.cnvSequence("new"), "ㄋㄧㄝ");
ASSERT_EQ(composer.cnvSequence("newf"), "ㄋㄧㄝˊ");
ASSERT_EQ(composer.cnvSequence("newk"), "ㄋㄧㄝˋ");
ASSERT_EQ(composer.cnvSequence("nezj"), "ㄋㄧㄠˇ");
ASSERT_EQ(composer.cnvSequence("nezk"), "ㄋㄧㄠˋ");
ASSERT_EQ(composer.cnvSequence("nep"), "ㄋㄧㄡ");
ASSERT_EQ(composer.cnvSequence("nepf"), "ㄋㄧㄡˊ");
ASSERT_EQ(composer.cnvSequence("nepj"), "ㄋㄧㄡˇ");
ASSERT_EQ(composer.cnvSequence("nepk"), "ㄋㄧㄡˋ");
ASSERT_EQ(composer.cnvSequence("nem"), "ㄋㄧㄢ");
ASSERT_EQ(composer.cnvSequence("nemf"), "ㄋㄧㄢˊ");
ASSERT_EQ(composer.cnvSequence("nemj"), "ㄋㄧㄢˇ");
ASSERT_EQ(composer.cnvSequence("nemk"), "ㄋㄧㄢˋ");
ASSERT_EQ(composer.cnvSequence("nen"), "ㄋㄧㄣ");
ASSERT_EQ(composer.cnvSequence("nenf"), "ㄋㄧㄣˊ");
ASSERT_EQ(composer.cnvSequence("nenj"), "ㄋㄧㄣˇ");
ASSERT_EQ(composer.cnvSequence("nenk"), "ㄋㄧㄣˋ");
ASSERT_EQ(composer.cnvSequence("netf"), "ㄋㄧㄤˊ");
ASSERT_EQ(composer.cnvSequence("netj"), "ㄋㄧㄤˇ");
ASSERT_EQ(composer.cnvSequence("netk"), "ㄋㄧㄤˋ");
ASSERT_EQ(composer.cnvSequence("nelf"), "ㄋㄧㄥˊ");
ASSERT_EQ(composer.cnvSequence("nelj"), "ㄋㄧㄥˇ");
ASSERT_EQ(composer.cnvSequence("nelk"), "ㄋㄧㄥˋ");
ASSERT_EQ(composer.cnvSequence("nxf"), "ㄋㄨˊ");
ASSERT_EQ(composer.cnvSequence("nxj"), "ㄋㄨˇ");
ASSERT_EQ(composer.cnvSequence("nxk"), "ㄋㄨˋ");
ASSERT_EQ(composer.cnvSequence("nxof"), "ㄋㄨㄛˊ");
ASSERT_EQ(composer.cnvSequence("nxoj"), "ㄋㄨㄛˇ");
ASSERT_EQ(composer.cnvSequence("nxok"), "ㄋㄨㄛˋ");
ASSERT_EQ(composer.cnvSequence("nxqf"), "ㄋㄨㄟˊ");
ASSERT_EQ(composer.cnvSequence("nxmf"), "ㄋㄨㄢˊ");
ASSERT_EQ(composer.cnvSequence("nxmj"), "ㄋㄨㄢˇ");
ASSERT_EQ(composer.cnvSequence("nxmk"), "ㄋㄨㄢˋ");
ASSERT_EQ(composer.cnvSequence("nxnf"), "ㄋㄨㄣˊ");
ASSERT_EQ(composer.cnvSequence("nxlf"), "ㄋㄨㄥˊ");
ASSERT_EQ(composer.cnvSequence("nxlj"), "ㄋㄨㄥˇ");
ASSERT_EQ(composer.cnvSequence("nxlk"), "ㄋㄨㄥˋ");
ASSERT_EQ(composer.cnvSequence("nuf"), "ㄋㄩˊ");
ASSERT_EQ(composer.cnvSequence("nuj"), "ㄋㄩˇ");
ASSERT_EQ(composer.cnvSequence("nuk"), "ㄋㄩˋ");
ASSERT_EQ(composer.cnvSequence("nuwk"), "ㄋㄩㄝˋ");
ASSERT_EQ(composer.cnvSequence("la"), "ㄌㄚ");
ASSERT_EQ(composer.cnvSequence("laf"), "ㄌㄚˊ");
ASSERT_EQ(composer.cnvSequence("laj"), "ㄌㄚˇ");
ASSERT_EQ(composer.cnvSequence("lak"), "ㄌㄚˋ");
ASSERT_EQ(composer.cnvSequence("lad"), "ㄌㄚ˙");
ASSERT_EQ(composer.cnvSequence("lo"), "ㄌㄛ");
ASSERT_EQ(composer.cnvSequence("lod"), "ㄌㄛ˙");
ASSERT_EQ(composer.cnvSequence("lr"), "ㄌㄜ");
ASSERT_EQ(composer.cnvSequence("lrf"), "ㄌㄜˊ");
ASSERT_EQ(composer.cnvSequence("lrk"), "ㄌㄜˋ");
ASSERT_EQ(composer.cnvSequence("lrd"), "ㄌㄜ˙");
ASSERT_EQ(composer.cnvSequence("lif"), "ㄌㄞˊ");
ASSERT_EQ(composer.cnvSequence("lij"), "ㄌㄞˇ");
ASSERT_EQ(composer.cnvSequence("lik"), "ㄌㄞˋ");
ASSERT_EQ(composer.cnvSequence("lq"), "ㄌㄟ");
ASSERT_EQ(composer.cnvSequence("lqf"), "ㄌㄟˊ");
ASSERT_EQ(composer.cnvSequence("lqj"), "ㄌㄟˇ");
ASSERT_EQ(composer.cnvSequence("lqk"), "ㄌㄟˋ");
ASSERT_EQ(composer.cnvSequence("lqd"), "ㄌㄟ˙");
ASSERT_EQ(composer.cnvSequence("lz"), "ㄌㄠ");
ASSERT_EQ(composer.cnvSequence("lzf"), "ㄌㄠˊ");
ASSERT_EQ(composer.cnvSequence("lzj"), "ㄌㄠˇ");
ASSERT_EQ(composer.cnvSequence("lzk"), "ㄌㄠˋ");
ASSERT_EQ(composer.cnvSequence("lp"), "ㄌㄡ");
ASSERT_EQ(composer.cnvSequence("lpf"), "ㄌㄡˊ");
ASSERT_EQ(composer.cnvSequence("lpj"), "ㄌㄡˇ");
ASSERT_EQ(composer.cnvSequence("lpk"), "ㄌㄡˋ");
ASSERT_EQ(composer.cnvSequence("lpd"), "ㄌㄡ˙");
ASSERT_EQ(composer.cnvSequence("lmf"), "ㄌㄢˊ");
ASSERT_EQ(composer.cnvSequence("lmj"), "ㄌㄢˇ");
ASSERT_EQ(composer.cnvSequence("lmk"), "ㄌㄢˋ");
ASSERT_EQ(composer.cnvSequence("lt"), "ㄌㄤ");
ASSERT_EQ(composer.cnvSequence("ltf"), "ㄌㄤˊ");
ASSERT_EQ(composer.cnvSequence("ltj"), "ㄌㄤˇ");
ASSERT_EQ(composer.cnvSequence("ltk"), "ㄌㄤˋ");
ASSERT_EQ(composer.cnvSequence("ll"), "ㄌㄥ");
ASSERT_EQ(composer.cnvSequence("llf"), "ㄌㄥˊ");
ASSERT_EQ(composer.cnvSequence("llj"), "ㄌㄥˇ");
ASSERT_EQ(composer.cnvSequence("llk"), "ㄌㄥˋ");
ASSERT_EQ(composer.cnvSequence("le"), "ㄌㄧ");
ASSERT_EQ(composer.cnvSequence("lef"), "ㄌㄧˊ");
ASSERT_EQ(composer.cnvSequence("lej"), "ㄌㄧˇ");
ASSERT_EQ(composer.cnvSequence("lek"), "ㄌㄧˋ");
ASSERT_EQ(composer.cnvSequence("led"), "ㄌㄧ˙");
ASSERT_EQ(composer.cnvSequence("leaj"), "ㄌㄧㄚˇ");
ASSERT_EQ(composer.cnvSequence("lew"), "ㄌㄧㄝ");
ASSERT_EQ(composer.cnvSequence("lewf"), "ㄌㄧㄝˊ");
ASSERT_EQ(composer.cnvSequence("lewj"), "ㄌㄧㄝˇ");
ASSERT_EQ(composer.cnvSequence("lewk"), "ㄌㄧㄝˋ");
ASSERT_EQ(composer.cnvSequence("lez"), "ㄌㄧㄠ");
ASSERT_EQ(composer.cnvSequence("lezf"), "ㄌㄧㄠˊ");
ASSERT_EQ(composer.cnvSequence("lezj"), "ㄌㄧㄠˇ");
ASSERT_EQ(composer.cnvSequence("lezk"), "ㄌㄧㄠˋ");
ASSERT_EQ(composer.cnvSequence("lep"), "ㄌㄧㄡ");
ASSERT_EQ(composer.cnvSequence("lepf"), "ㄌㄧㄡˊ");
ASSERT_EQ(composer.cnvSequence("lepj"), "ㄌㄧㄡˇ");
ASSERT_EQ(composer.cnvSequence("lepk"), "ㄌㄧㄡˋ");
ASSERT_EQ(composer.cnvSequence("lem"), "ㄌㄧㄢ");
ASSERT_EQ(composer.cnvSequence("lemf"), "ㄌㄧㄢˊ");
ASSERT_EQ(composer.cnvSequence("lemj"), "ㄌㄧㄢˇ");
ASSERT_EQ(composer.cnvSequence("lemk"), "ㄌㄧㄢˋ");
ASSERT_EQ(composer.cnvSequence("lenf"), "ㄌㄧㄣˊ");
ASSERT_EQ(composer.cnvSequence("lenj"), "ㄌㄧㄣˇ");
ASSERT_EQ(composer.cnvSequence("lenk"), "ㄌㄧㄣˋ");
ASSERT_EQ(composer.cnvSequence("letf"), "ㄌㄧㄤˊ");
ASSERT_EQ(composer.cnvSequence("letj"), "ㄌㄧㄤˇ");
ASSERT_EQ(composer.cnvSequence("letk"), "ㄌㄧㄤˋ");
ASSERT_EQ(composer.cnvSequence("lel"), "ㄌㄧㄥ");
ASSERT_EQ(composer.cnvSequence("lelf"), "ㄌㄧㄥˊ");
ASSERT_EQ(composer.cnvSequence("lelj"), "ㄌㄧㄥˇ");
ASSERT_EQ(composer.cnvSequence("lelk"), "ㄌㄧㄥˋ");
ASSERT_EQ(composer.cnvSequence("lx"), "ㄌㄨ");
ASSERT_EQ(composer.cnvSequence("lxf"), "ㄌㄨˊ");
ASSERT_EQ(composer.cnvSequence("lxj"), "ㄌㄨˇ");
ASSERT_EQ(composer.cnvSequence("lxk"), "ㄌㄨˋ");
ASSERT_EQ(composer.cnvSequence("lxo"), "ㄌㄨㄛ");
ASSERT_EQ(composer.cnvSequence("lxof"), "ㄌㄨㄛˊ");
ASSERT_EQ(composer.cnvSequence("lxoj"), "ㄌㄨㄛˇ");
ASSERT_EQ(composer.cnvSequence("lxok"), "ㄌㄨㄛˋ");
ASSERT_EQ(composer.cnvSequence("lxod"), "ㄌㄨㄛ˙");
ASSERT_EQ(composer.cnvSequence("lxmf"), "ㄌㄨㄢˊ");
ASSERT_EQ(composer.cnvSequence("lxmj"), "ㄌㄨㄢˇ");
ASSERT_EQ(composer.cnvSequence("lxmk"), "ㄌㄨㄢˋ");
ASSERT_EQ(composer.cnvSequence("lxn"), "ㄌㄨㄣ");
ASSERT_EQ(composer.cnvSequence("lxnf"), "ㄌㄨㄣˊ");
ASSERT_EQ(composer.cnvSequence("lxnj"), "ㄌㄨㄣˇ");
ASSERT_EQ(composer.cnvSequence("lxnk"), "ㄌㄨㄣˋ");
ASSERT_EQ(composer.cnvSequence("lxl"), "ㄌㄨㄥ");
ASSERT_EQ(composer.cnvSequence("lxlf"), "ㄌㄨㄥˊ");
ASSERT_EQ(composer.cnvSequence("lxlj"), "ㄌㄨㄥˇ");
ASSERT_EQ(composer.cnvSequence("lxlk"), "ㄌㄨㄥˋ");
ASSERT_EQ(composer.cnvSequence("lu"), "ㄌㄩ");
ASSERT_EQ(composer.cnvSequence("luf"), "ㄌㄩˊ");
ASSERT_EQ(composer.cnvSequence("luj"), "ㄌㄩˇ");
ASSERT_EQ(composer.cnvSequence("luk"), "ㄌㄩˋ");
ASSERT_EQ(composer.cnvSequence("luw"), "ㄌㄩㄝ");
ASSERT_EQ(composer.cnvSequence("luwj"), "ㄌㄩㄝˇ");
ASSERT_EQ(composer.cnvSequence("luwk"), "ㄌㄩㄝˋ");
ASSERT_EQ(composer.cnvSequence("lumf"), "ㄌㄩㄢˊ");
ASSERT_EQ(composer.cnvSequence("lumj"), "ㄌㄩㄢˇ");
ASSERT_EQ(composer.cnvSequence("va"), "ㄍㄚ");
ASSERT_EQ(composer.cnvSequence("vaf"), "ㄍㄚˊ");
ASSERT_EQ(composer.cnvSequence("vaj"), "ㄍㄚˇ");
ASSERT_EQ(composer.cnvSequence("vak"), "ㄍㄚˋ");
ASSERT_EQ(composer.cnvSequence("vad"), "ㄍㄚ˙");
ASSERT_EQ(composer.cnvSequence("vr"), "ㄍㄜ");
ASSERT_EQ(composer.cnvSequence("vrf"), "ㄍㄜˊ");
ASSERT_EQ(composer.cnvSequence("vrj"), "ㄍㄜˇ");
ASSERT_EQ(composer.cnvSequence("vrk"), "ㄍㄜˋ");
ASSERT_EQ(composer.cnvSequence("vrd"), "ㄍㄜ˙");
ASSERT_EQ(composer.cnvSequence("vi"), "ㄍㄞ");
ASSERT_EQ(composer.cnvSequence("vij"), "ㄍㄞˇ");
ASSERT_EQ(composer.cnvSequence("vik"), "ㄍㄞˋ");
ASSERT_EQ(composer.cnvSequence("vqj"), "ㄍㄟˇ");
ASSERT_EQ(composer.cnvSequence("vz"), "ㄍㄠ");
ASSERT_EQ(composer.cnvSequence("vzj"), "ㄍㄠˇ");
ASSERT_EQ(composer.cnvSequence("vzk"), "ㄍㄠˋ");
ASSERT_EQ(composer.cnvSequence("vp"), "ㄍㄡ");
ASSERT_EQ(composer.cnvSequence("vpj"), "ㄍㄡˇ");
ASSERT_EQ(composer.cnvSequence("vpk"), "ㄍㄡˋ");
ASSERT_EQ(composer.cnvSequence("vm"), "ㄍㄢ");
ASSERT_EQ(composer.cnvSequence("vmj"), "ㄍㄢˇ");
ASSERT_EQ(composer.cnvSequence("vmk"), "ㄍㄢˋ");
ASSERT_EQ(composer.cnvSequence("vn"), "ㄍㄣ");
ASSERT_EQ(composer.cnvSequence("vnf"), "ㄍㄣˊ");
ASSERT_EQ(composer.cnvSequence("vnj"), "ㄍㄣˇ");
ASSERT_EQ(composer.cnvSequence("vnk"), "ㄍㄣˋ");
ASSERT_EQ(composer.cnvSequence("vt"), "ㄍㄤ");
ASSERT_EQ(composer.cnvSequence("vtj"), "ㄍㄤˇ");
ASSERT_EQ(composer.cnvSequence("vtk"), "ㄍㄤˋ");
ASSERT_EQ(composer.cnvSequence("vl"), "ㄍㄥ");
ASSERT_EQ(composer.cnvSequence("vlj"), "ㄍㄥˇ");
ASSERT_EQ(composer.cnvSequence("vlk"), "ㄍㄥˋ");
ASSERT_EQ(composer.cnvSequence("vx"), "ㄍㄨ");
ASSERT_EQ(composer.cnvSequence("vxf"), "ㄍㄨˊ");
ASSERT_EQ(composer.cnvSequence("vxj"), "ㄍㄨˇ");
ASSERT_EQ(composer.cnvSequence("vxk"), "ㄍㄨˋ");
ASSERT_EQ(composer.cnvSequence("vxa"), "ㄍㄨㄚ");
ASSERT_EQ(composer.cnvSequence("vxaf"), "ㄍㄨㄚˊ");
ASSERT_EQ(composer.cnvSequence("vxaj"), "ㄍㄨㄚˇ");
ASSERT_EQ(composer.cnvSequence("vxak"), "ㄍㄨㄚˋ");
ASSERT_EQ(composer.cnvSequence("vxo"), "ㄍㄨㄛ");
ASSERT_EQ(composer.cnvSequence("vxof"), "ㄍㄨㄛˊ");
ASSERT_EQ(composer.cnvSequence("vxoj"), "ㄍㄨㄛˇ");
ASSERT_EQ(composer.cnvSequence("vxok"), "ㄍㄨㄛˋ");
ASSERT_EQ(composer.cnvSequence("vxrf"), "ㄍㄨㄜˊ");
ASSERT_EQ(composer.cnvSequence("vxi"), "ㄍㄨㄞ");
ASSERT_EQ(composer.cnvSequence("vxij"), "ㄍㄨㄞˇ");
ASSERT_EQ(composer.cnvSequence("vxik"), "ㄍㄨㄞˋ");
ASSERT_EQ(composer.cnvSequence("vxq"), "ㄍㄨㄟ");
ASSERT_EQ(composer.cnvSequence("vxqj"), "ㄍㄨㄟˇ");
ASSERT_EQ(composer.cnvSequence("vxqk"), "ㄍㄨㄟˋ");
ASSERT_EQ(composer.cnvSequence("vxm"), "ㄍㄨㄢ");
ASSERT_EQ(composer.cnvSequence("vxmj"), "ㄍㄨㄢˇ");
ASSERT_EQ(composer.cnvSequence("vxmk"), "ㄍㄨㄢˋ");
ASSERT_EQ(composer.cnvSequence("vxn"), "ㄍㄨㄣ");
ASSERT_EQ(composer.cnvSequence("vxnj"), "ㄍㄨㄣˇ");
ASSERT_EQ(composer.cnvSequence("vxnk"), "ㄍㄨㄣˋ");
ASSERT_EQ(composer.cnvSequence("vxt"), "ㄍㄨㄤ");
ASSERT_EQ(composer.cnvSequence("vxtj"), "ㄍㄨㄤˇ");
ASSERT_EQ(composer.cnvSequence("vxtk"), "ㄍㄨㄤˋ");
ASSERT_EQ(composer.cnvSequence("vxl"), "ㄍㄨㄥ");
ASSERT_EQ(composer.cnvSequence("vxlf"), "ㄍㄨㄥˊ");
ASSERT_EQ(composer.cnvSequence("vxlj"), "ㄍㄨㄥˇ");
ASSERT_EQ(composer.cnvSequence("vxlk"), "ㄍㄨㄥˋ");
ASSERT_EQ(composer.cnvSequence("ka"), "ㄎㄚ");
ASSERT_EQ(composer.cnvSequence("kaj"), "ㄎㄚˇ");
ASSERT_EQ(composer.cnvSequence("kak"), "ㄎㄚˋ");
ASSERT_EQ(composer.cnvSequence("kr"), "ㄎㄜ");
ASSERT_EQ(composer.cnvSequence("krf"), "ㄎㄜˊ");
ASSERT_EQ(composer.cnvSequence("krj"), "ㄎㄜˇ");
ASSERT_EQ(composer.cnvSequence("krk"), "ㄎㄜˋ");
ASSERT_EQ(composer.cnvSequence("ki"), "ㄎㄞ");
ASSERT_EQ(composer.cnvSequence("kij"), "ㄎㄞˇ");
ASSERT_EQ(composer.cnvSequence("kik"), "ㄎㄞˋ");
ASSERT_EQ(composer.cnvSequence("kz"), "ㄎㄠ");
ASSERT_EQ(composer.cnvSequence("kzj"), "ㄎㄠˇ");
ASSERT_EQ(composer.cnvSequence("kzk"), "ㄎㄠˋ");
ASSERT_EQ(composer.cnvSequence("kp"), "ㄎㄡ");
ASSERT_EQ(composer.cnvSequence("kpj"), "ㄎㄡˇ");
ASSERT_EQ(composer.cnvSequence("kpk"), "ㄎㄡˋ");
ASSERT_EQ(composer.cnvSequence("km"), "ㄎㄢ");
ASSERT_EQ(composer.cnvSequence("kmj"), "ㄎㄢˇ");
ASSERT_EQ(composer.cnvSequence("kmk"), "ㄎㄢˋ");
ASSERT_EQ(composer.cnvSequence("kn"), "ㄎㄣ");
ASSERT_EQ(composer.cnvSequence("knj"), "ㄎㄣˇ");
ASSERT_EQ(composer.cnvSequence("knk"), "ㄎㄣˋ");
ASSERT_EQ(composer.cnvSequence("kt"), "ㄎㄤ");
ASSERT_EQ(composer.cnvSequence("ktf"), "ㄎㄤˊ");
ASSERT_EQ(composer.cnvSequence("ktj"), "ㄎㄤˇ");
ASSERT_EQ(composer.cnvSequence("ktk"), "ㄎㄤˋ");
ASSERT_EQ(composer.cnvSequence("kl"), "ㄎㄥ");
ASSERT_EQ(composer.cnvSequence("klj"), "ㄎㄥˇ");
ASSERT_EQ(composer.cnvSequence("kx"), "ㄎㄨ");
ASSERT_EQ(composer.cnvSequence("kxf"), "ㄎㄨˊ");
ASSERT_EQ(composer.cnvSequence("kxj"), "ㄎㄨˇ");
ASSERT_EQ(composer.cnvSequence("kxk"), "ㄎㄨˋ");
ASSERT_EQ(composer.cnvSequence("kxa"), "ㄎㄨㄚ");
ASSERT_EQ(composer.cnvSequence("kxaj"), "ㄎㄨㄚˇ");
ASSERT_EQ(composer.cnvSequence("kxak"), "ㄎㄨㄚˋ");
ASSERT_EQ(composer.cnvSequence("kxok"), "ㄎㄨㄛˋ");
ASSERT_EQ(composer.cnvSequence("kxi"), "ㄎㄨㄞ");
ASSERT_EQ(composer.cnvSequence("kxij"), "ㄎㄨㄞˇ");
ASSERT_EQ(composer.cnvSequence("kxik"), "ㄎㄨㄞˋ");
ASSERT_EQ(composer.cnvSequence("kxq"), "ㄎㄨㄟ");
ASSERT_EQ(composer.cnvSequence("kxqf"), "ㄎㄨㄟˊ");
ASSERT_EQ(composer.cnvSequence("kxqj"), "ㄎㄨㄟˇ");
ASSERT_EQ(composer.cnvSequence("kxqk"), "ㄎㄨㄟˋ");
ASSERT_EQ(composer.cnvSequence("kxm"), "ㄎㄨㄢ");
ASSERT_EQ(composer.cnvSequence("kxmj"), "ㄎㄨㄢˇ");
ASSERT_EQ(composer.cnvSequence("kxmk"), "ㄎㄨㄢˋ");
ASSERT_EQ(composer.cnvSequence("kxn"), "ㄎㄨㄣ");
ASSERT_EQ(composer.cnvSequence("kxnj"), "ㄎㄨㄣˇ");
ASSERT_EQ(composer.cnvSequence("kxnk"), "ㄎㄨㄣˋ");
ASSERT_EQ(composer.cnvSequence("kxt"), "ㄎㄨㄤ");
ASSERT_EQ(composer.cnvSequence("kxtf"), "ㄎㄨㄤˊ");
ASSERT_EQ(composer.cnvSequence("kxtj"), "ㄎㄨㄤˇ");
ASSERT_EQ(composer.cnvSequence("kxtk"), "ㄎㄨㄤˋ");
ASSERT_EQ(composer.cnvSequence("kxl"), "ㄎㄨㄥ");
ASSERT_EQ(composer.cnvSequence("kxlj"), "ㄎㄨㄥˇ");
ASSERT_EQ(composer.cnvSequence("kxlk"), "ㄎㄨㄥˋ");
ASSERT_EQ(composer.cnvSequence("ha"), "ㄏㄚ");
ASSERT_EQ(composer.cnvSequence("haf"), "ㄏㄚˊ");
ASSERT_EQ(composer.cnvSequence("haj"), "ㄏㄚˇ");
ASSERT_EQ(composer.cnvSequence("hr"), "ㄏㄜ");
ASSERT_EQ(composer.cnvSequence("hrf"), "ㄏㄜˊ");
ASSERT_EQ(composer.cnvSequence("hrj"), "ㄏㄜˇ");
ASSERT_EQ(composer.cnvSequence("hrk"), "ㄏㄜˋ");
ASSERT_EQ(composer.cnvSequence("hi"), "ㄏㄞ");
ASSERT_EQ(composer.cnvSequence("hif"), "ㄏㄞˊ");
ASSERT_EQ(composer.cnvSequence("hij"), "ㄏㄞˇ");
ASSERT_EQ(composer.cnvSequence("hik"), "ㄏㄞˋ");
ASSERT_EQ(composer.cnvSequence("hq"), "ㄏㄟ");
ASSERT_EQ(composer.cnvSequence("hqj"), "ㄏㄟˇ");
ASSERT_EQ(composer.cnvSequence("hz"), "ㄏㄠ");
ASSERT_EQ(composer.cnvSequence("hzf"), "ㄏㄠˊ");
ASSERT_EQ(composer.cnvSequence("hzj"), "ㄏㄠˇ");
ASSERT_EQ(composer.cnvSequence("hzk"), "ㄏㄠˋ");
ASSERT_EQ(composer.cnvSequence("hp"), "ㄏㄡ");
ASSERT_EQ(composer.cnvSequence("hpf"), "ㄏㄡˊ");
ASSERT_EQ(composer.cnvSequence("hpj"), "ㄏㄡˇ");
ASSERT_EQ(composer.cnvSequence("hpk"), "ㄏㄡˋ");
ASSERT_EQ(composer.cnvSequence("hm"), "ㄏㄢ");
ASSERT_EQ(composer.cnvSequence("hmf"), "ㄏㄢˊ");
ASSERT_EQ(composer.cnvSequence("hmj"), "ㄏㄢˇ");
ASSERT_EQ(composer.cnvSequence("hmk"), "ㄏㄢˋ");
ASSERT_EQ(composer.cnvSequence("hn"), "ㄏㄣ");
ASSERT_EQ(composer.cnvSequence("hnf"), "ㄏㄣˊ");
ASSERT_EQ(composer.cnvSequence("hnj"), "ㄏㄣˇ");
ASSERT_EQ(composer.cnvSequence("hnk"), "ㄏㄣˋ");
ASSERT_EQ(composer.cnvSequence("ht"), "ㄏㄤ");
ASSERT_EQ(composer.cnvSequence("htf"), "ㄏㄤˊ");
ASSERT_EQ(composer.cnvSequence("htj"), "ㄏㄤˇ");
ASSERT_EQ(composer.cnvSequence("htk"), "ㄏㄤˋ");
ASSERT_EQ(composer.cnvSequence("hl"), "ㄏㄥ");
ASSERT_EQ(composer.cnvSequence("hlf"), "ㄏㄥˊ");
ASSERT_EQ(composer.cnvSequence("hlk"), "ㄏㄥˋ");
ASSERT_EQ(composer.cnvSequence("hx"), "ㄏㄨ");
ASSERT_EQ(composer.cnvSequence("hxf"), "ㄏㄨˊ");
ASSERT_EQ(composer.cnvSequence("hxj"), "ㄏㄨˇ");
ASSERT_EQ(composer.cnvSequence("hxk"), "ㄏㄨˋ");
ASSERT_EQ(composer.cnvSequence("hxa"), "ㄏㄨㄚ");
ASSERT_EQ(composer.cnvSequence("hxaf"), "ㄏㄨㄚˊ");
ASSERT_EQ(composer.cnvSequence("hxaj"), "ㄏㄨㄚˇ");
ASSERT_EQ(composer.cnvSequence("hxak"), "ㄏㄨㄚˋ");
ASSERT_EQ(composer.cnvSequence("hxo"), "ㄏㄨㄛ");
ASSERT_EQ(composer.cnvSequence("hxof"), "ㄏㄨㄛˊ");
ASSERT_EQ(composer.cnvSequence("hxoj"), "ㄏㄨㄛˇ");
ASSERT_EQ(composer.cnvSequence("hxok"), "ㄏㄨㄛˋ");
ASSERT_EQ(composer.cnvSequence("hxod"), "ㄏㄨㄛ˙");
ASSERT_EQ(composer.cnvSequence("hxif"), "ㄏㄨㄞˊ");
ASSERT_EQ(composer.cnvSequence("hxik"), "ㄏㄨㄞˋ");
ASSERT_EQ(composer.cnvSequence("hxq"), "ㄏㄨㄟ");
ASSERT_EQ(composer.cnvSequence("hxqf"), "ㄏㄨㄟˊ");
ASSERT_EQ(composer.cnvSequence("hxqj"), "ㄏㄨㄟˇ");
ASSERT_EQ(composer.cnvSequence("hxqk"), "ㄏㄨㄟˋ");
ASSERT_EQ(composer.cnvSequence("hxm"), "ㄏㄨㄢ");
ASSERT_EQ(composer.cnvSequence("hxmf"), "ㄏㄨㄢˊ");
ASSERT_EQ(composer.cnvSequence("hxmj"), "ㄏㄨㄢˇ");
ASSERT_EQ(composer.cnvSequence("hxmk"), "ㄏㄨㄢˋ");
ASSERT_EQ(composer.cnvSequence("hxn"), "ㄏㄨㄣ");
ASSERT_EQ(composer.cnvSequence("hxnf"), "ㄏㄨㄣˊ");
ASSERT_EQ(composer.cnvSequence("hxnj"), "ㄏㄨㄣˇ");
ASSERT_EQ(composer.cnvSequence("hxnk"), "ㄏㄨㄣˋ");
ASSERT_EQ(composer.cnvSequence("hxt"), "ㄏㄨㄤ");
ASSERT_EQ(composer.cnvSequence("hxtf"), "ㄏㄨㄤˊ");
ASSERT_EQ(composer.cnvSequence("hxtj"), "ㄏㄨㄤˇ");
ASSERT_EQ(composer.cnvSequence("hxtk"), "ㄏㄨㄤˋ");
ASSERT_EQ(composer.cnvSequence("hxtd"), "ㄏㄨㄤ˙");
ASSERT_EQ(composer.cnvSequence("hxl"), "ㄏㄨㄥ");
ASSERT_EQ(composer.cnvSequence("hxlf"), "ㄏㄨㄥˊ");
ASSERT_EQ(composer.cnvSequence("hxlj"), "ㄏㄨㄥˇ");
ASSERT_EQ(composer.cnvSequence("hxlk"), "ㄏㄨㄥˋ");
ASSERT_EQ(composer.cnvSequence("ge"), "ㄐㄧ");
ASSERT_EQ(composer.cnvSequence("gef"), "ㄐㄧˊ");
ASSERT_EQ(composer.cnvSequence("gej"), "ㄐㄧˇ");
ASSERT_EQ(composer.cnvSequence("gek"), "ㄐㄧˋ");
ASSERT_EQ(composer.cnvSequence("gea"), "ㄐㄧㄚ");
ASSERT_EQ(composer.cnvSequence("geaf"), "ㄐㄧㄚˊ");
ASSERT_EQ(composer.cnvSequence("geaj"), "ㄐㄧㄚˇ");
ASSERT_EQ(composer.cnvSequence("geak"), "ㄐㄧㄚˋ");
ASSERT_EQ(composer.cnvSequence("gew"), "ㄐㄧㄝ");
ASSERT_EQ(composer.cnvSequence("gewf"), "ㄐㄧㄝˊ");
ASSERT_EQ(composer.cnvSequence("gewj"), "ㄐㄧㄝˇ");
ASSERT_EQ(composer.cnvSequence("gewk"), "ㄐㄧㄝˋ");
ASSERT_EQ(composer.cnvSequence("gewd"), "ㄐㄧㄝ˙");
ASSERT_EQ(composer.cnvSequence("gez"), "ㄐㄧㄠ");
ASSERT_EQ(composer.cnvSequence("gezf"), "ㄐㄧㄠˊ");
ASSERT_EQ(composer.cnvSequence("gezj"), "ㄐㄧㄠˇ");
ASSERT_EQ(composer.cnvSequence("gezk"), "ㄐㄧㄠˋ");
ASSERT_EQ(composer.cnvSequence("gep"), "ㄐㄧㄡ");
ASSERT_EQ(composer.cnvSequence("gepj"), "ㄐㄧㄡˇ");
ASSERT_EQ(composer.cnvSequence("gepk"), "ㄐㄧㄡˋ");
ASSERT_EQ(composer.cnvSequence("gem"), "ㄐㄧㄢ");
ASSERT_EQ(composer.cnvSequence("gemj"), "ㄐㄧㄢˇ");
ASSERT_EQ(composer.cnvSequence("gemk"), "ㄐㄧㄢˋ");
ASSERT_EQ(composer.cnvSequence("gen"), "ㄐㄧㄣ");
ASSERT_EQ(composer.cnvSequence("genj"), "ㄐㄧㄣˇ");
ASSERT_EQ(composer.cnvSequence("genk"), "ㄐㄧㄣˋ");
ASSERT_EQ(composer.cnvSequence("get"), "ㄐㄧㄤ");
ASSERT_EQ(composer.cnvSequence("getf"), "ㄐㄧㄤˊ");
ASSERT_EQ(composer.cnvSequence("getj"), "ㄐㄧㄤˇ");
ASSERT_EQ(composer.cnvSequence("getk"), "ㄐㄧㄤˋ");
ASSERT_EQ(composer.cnvSequence("gel"), "ㄐㄧㄥ");
ASSERT_EQ(composer.cnvSequence("gelj"), "ㄐㄧㄥˇ");
ASSERT_EQ(composer.cnvSequence("gelk"), "ㄐㄧㄥˋ");
ASSERT_EQ(composer.cnvSequence("gu"), "ㄐㄩ");
ASSERT_EQ(composer.cnvSequence("guf"), "ㄐㄩˊ");
ASSERT_EQ(composer.cnvSequence("guj"), "ㄐㄩˇ");
ASSERT_EQ(composer.cnvSequence("guk"), "ㄐㄩˋ");
ASSERT_EQ(composer.cnvSequence("guw"), "ㄐㄩㄝ");
ASSERT_EQ(composer.cnvSequence("guwf"), "ㄐㄩㄝˊ");
ASSERT_EQ(composer.cnvSequence("guwj"), "ㄐㄩㄝˇ");
ASSERT_EQ(composer.cnvSequence("guwk"), "ㄐㄩㄝˋ");
ASSERT_EQ(composer.cnvSequence("gum"), "ㄐㄩㄢ");
ASSERT_EQ(composer.cnvSequence("gumj"), "ㄐㄩㄢˇ");
ASSERT_EQ(composer.cnvSequence("gumk"), "ㄐㄩㄢˋ");
ASSERT_EQ(composer.cnvSequence("gun"), "ㄐㄩㄣ");
ASSERT_EQ(composer.cnvSequence("gunf"), "ㄐㄩㄣˊ");
ASSERT_EQ(composer.cnvSequence("gunj"), "ㄐㄩㄣˇ");
ASSERT_EQ(composer.cnvSequence("gunk"), "ㄐㄩㄣˋ");
ASSERT_EQ(composer.cnvSequence("gul"), "ㄐㄩㄥ");
ASSERT_EQ(composer.cnvSequence("gulj"), "ㄐㄩㄥˇ");
ASSERT_EQ(composer.cnvSequence("gulk"), "ㄐㄩㄥˋ");
// ASSERT_EQ(composer.cnvSequence("vd"), "ㄑ˙");
ASSERT_EQ(composer.cnvSequence("ve"), "ㄑㄧ");
ASSERT_EQ(composer.cnvSequence("vef"), "ㄑㄧˊ");
ASSERT_EQ(composer.cnvSequence("vej"), "ㄑㄧˇ");
ASSERT_EQ(composer.cnvSequence("vek"), "ㄑㄧˋ");
ASSERT_EQ(composer.cnvSequence("vea"), "ㄑㄧㄚ");
ASSERT_EQ(composer.cnvSequence("veaf"), "ㄑㄧㄚˊ");
ASSERT_EQ(composer.cnvSequence("veaj"), "ㄑㄧㄚˇ");
ASSERT_EQ(composer.cnvSequence("veak"), "ㄑㄧㄚˋ");
ASSERT_EQ(composer.cnvSequence("vew"), "ㄑㄧㄝ");
ASSERT_EQ(composer.cnvSequence("vewf"), "ㄑㄧㄝˊ");
ASSERT_EQ(composer.cnvSequence("vewj"), "ㄑㄧㄝˇ");
ASSERT_EQ(composer.cnvSequence("vewk"), "ㄑㄧㄝˋ");
ASSERT_EQ(composer.cnvSequence("vez"), "ㄑㄧㄠ");
ASSERT_EQ(composer.cnvSequence("vezf"), "ㄑㄧㄠˊ");
ASSERT_EQ(composer.cnvSequence("vezj"), "ㄑㄧㄠˇ");
ASSERT_EQ(composer.cnvSequence("vezk"), "ㄑㄧㄠˋ");
ASSERT_EQ(composer.cnvSequence("vep"), "ㄑㄧㄡ");
ASSERT_EQ(composer.cnvSequence("vepf"), "ㄑㄧㄡˊ");
ASSERT_EQ(composer.cnvSequence("vepj"), "ㄑㄧㄡˇ");
ASSERT_EQ(composer.cnvSequence("vepk"), "ㄑㄧㄡˋ");
ASSERT_EQ(composer.cnvSequence("vem"), "ㄑㄧㄢ");
ASSERT_EQ(composer.cnvSequence("vemf"), "ㄑㄧㄢˊ");
ASSERT_EQ(composer.cnvSequence("vemj"), "ㄑㄧㄢˇ");
ASSERT_EQ(composer.cnvSequence("vemk"), "ㄑㄧㄢˋ");
ASSERT_EQ(composer.cnvSequence("ven"), "ㄑㄧㄣ");
ASSERT_EQ(composer.cnvSequence("venf"), "ㄑㄧㄣˊ");
ASSERT_EQ(composer.cnvSequence("venj"), "ㄑㄧㄣˇ");
ASSERT_EQ(composer.cnvSequence("venk"), "ㄑㄧㄣˋ");
ASSERT_EQ(composer.cnvSequence("vet"), "ㄑㄧㄤ");
ASSERT_EQ(composer.cnvSequence("vetf"), "ㄑㄧㄤˊ");
ASSERT_EQ(composer.cnvSequence("vetj"), "ㄑㄧㄤˇ");
ASSERT_EQ(composer.cnvSequence("vetk"), "ㄑㄧㄤˋ");
ASSERT_EQ(composer.cnvSequence("vel"), "ㄑㄧㄥ");
ASSERT_EQ(composer.cnvSequence("velf"), "ㄑㄧㄥˊ");
ASSERT_EQ(composer.cnvSequence("velj"), "ㄑㄧㄥˇ");
ASSERT_EQ(composer.cnvSequence("velk"), "ㄑㄧㄥˋ");
ASSERT_EQ(composer.cnvSequence("vu"), "ㄑㄩ");
ASSERT_EQ(composer.cnvSequence("vuf"), "ㄑㄩˊ");
ASSERT_EQ(composer.cnvSequence("vuj"), "ㄑㄩˇ");
ASSERT_EQ(composer.cnvSequence("vuk"), "ㄑㄩˋ");
ASSERT_EQ(composer.cnvSequence("vuw"), "ㄑㄩㄝ");
ASSERT_EQ(composer.cnvSequence("vuwf"), "ㄑㄩㄝˊ");
ASSERT_EQ(composer.cnvSequence("vuwk"), "ㄑㄩㄝˋ");
ASSERT_EQ(composer.cnvSequence("vum"), "ㄑㄩㄢ");
ASSERT_EQ(composer.cnvSequence("vumf"), "ㄑㄩㄢˊ");
ASSERT_EQ(composer.cnvSequence("vumj"), "ㄑㄩㄢˇ");
ASSERT_EQ(composer.cnvSequence("vumk"), "ㄑㄩㄢˋ");
ASSERT_EQ(composer.cnvSequence("vun"), "ㄑㄩㄣ");
ASSERT_EQ(composer.cnvSequence("vunf"), "ㄑㄩㄣˊ");
ASSERT_EQ(composer.cnvSequence("vunj"), "ㄑㄩㄣˇ");
ASSERT_EQ(composer.cnvSequence("vunk"), "ㄑㄩㄣˋ");
ASSERT_EQ(composer.cnvSequence("vul"), "ㄑㄩㄥ");
ASSERT_EQ(composer.cnvSequence("vulf"), "ㄑㄩㄥˊ");
ASSERT_EQ(composer.cnvSequence("vulj"), "ㄑㄩㄥˇ");
ASSERT_EQ(composer.cnvSequence("vulk"), "ㄑㄩㄥˋ");
ASSERT_EQ(composer.cnvSequence("ce"), "ㄒㄧ");
ASSERT_EQ(composer.cnvSequence("cef"), "ㄒㄧˊ");
ASSERT_EQ(composer.cnvSequence("cej"), "ㄒㄧˇ");
ASSERT_EQ(composer.cnvSequence("cek"), "ㄒㄧˋ");
ASSERT_EQ(composer.cnvSequence("cea"), "ㄒㄧㄚ");
ASSERT_EQ(composer.cnvSequence("ceaf"), "ㄒㄧㄚˊ");
ASSERT_EQ(composer.cnvSequence("ceaj"), "ㄒㄧㄚˇ");
ASSERT_EQ(composer.cnvSequence("ceak"), "ㄒㄧㄚˋ");
ASSERT_EQ(composer.cnvSequence("cew"), "ㄒㄧㄝ");
ASSERT_EQ(composer.cnvSequence("cewf"), "ㄒㄧㄝˊ");
ASSERT_EQ(composer.cnvSequence("cewj"), "ㄒㄧㄝˇ");
ASSERT_EQ(composer.cnvSequence("cewk"), "ㄒㄧㄝˋ");
ASSERT_EQ(composer.cnvSequence("cez"), "ㄒㄧㄠ");
ASSERT_EQ(composer.cnvSequence("cezf"), "ㄒㄧㄠˊ");
ASSERT_EQ(composer.cnvSequence("cezj"), "ㄒㄧㄠˇ");
ASSERT_EQ(composer.cnvSequence("cezk"), "ㄒㄧㄠˋ");
ASSERT_EQ(composer.cnvSequence("cep"), "ㄒㄧㄡ");
ASSERT_EQ(composer.cnvSequence("cepf"), "ㄒㄧㄡˊ");
ASSERT_EQ(composer.cnvSequence("cepj"), "ㄒㄧㄡˇ");
ASSERT_EQ(composer.cnvSequence("cepk"), "ㄒㄧㄡˋ");
ASSERT_EQ(composer.cnvSequence("cem"), "ㄒㄧㄢ");
ASSERT_EQ(composer.cnvSequence("cemf"), "ㄒㄧㄢˊ");
ASSERT_EQ(composer.cnvSequence("cemj"), "ㄒㄧㄢˇ");
ASSERT_EQ(composer.cnvSequence("cemk"), "ㄒㄧㄢˋ");
ASSERT_EQ(composer.cnvSequence("cen"), "ㄒㄧㄣ");
ASSERT_EQ(composer.cnvSequence("cenf"), "ㄒㄧㄣˊ");
ASSERT_EQ(composer.cnvSequence("cenj"), "ㄒㄧㄣˇ");
ASSERT_EQ(composer.cnvSequence("cenk"), "ㄒㄧㄣˋ");
ASSERT_EQ(composer.cnvSequence("cet"), "ㄒㄧㄤ");
ASSERT_EQ(composer.cnvSequence("cetf"), "ㄒㄧㄤˊ");
ASSERT_EQ(composer.cnvSequence("cetj"), "ㄒㄧㄤˇ");
ASSERT_EQ(composer.cnvSequence("cetk"), "ㄒㄧㄤˋ");
ASSERT_EQ(composer.cnvSequence("cel"), "ㄒㄧㄥ");
ASSERT_EQ(composer.cnvSequence("celf"), "ㄒㄧㄥˊ");
ASSERT_EQ(composer.cnvSequence("celj"), "ㄒㄧㄥˇ");
ASSERT_EQ(composer.cnvSequence("celk"), "ㄒㄧㄥˋ");
ASSERT_EQ(composer.cnvSequence("cu"), "ㄒㄩ");
ASSERT_EQ(composer.cnvSequence("cuf"), "ㄒㄩˊ");
ASSERT_EQ(composer.cnvSequence("cuj"), "ㄒㄩˇ");
ASSERT_EQ(composer.cnvSequence("cuk"), "ㄒㄩˋ");
ASSERT_EQ(composer.cnvSequence("cuw"), "ㄒㄩㄝ");
ASSERT_EQ(composer.cnvSequence("cuwf"), "ㄒㄩㄝˊ");
ASSERT_EQ(composer.cnvSequence("cuwj"), "ㄒㄩㄝˇ");
ASSERT_EQ(composer.cnvSequence("cuwk"), "ㄒㄩㄝˋ");
ASSERT_EQ(composer.cnvSequence("cum"), "ㄒㄩㄢ");
ASSERT_EQ(composer.cnvSequence("cumf"), "ㄒㄩㄢˊ");
ASSERT_EQ(composer.cnvSequence("cumj"), "ㄒㄩㄢˇ");
ASSERT_EQ(composer.cnvSequence("cumk"), "ㄒㄩㄢˋ");
ASSERT_EQ(composer.cnvSequence("cun"), "ㄒㄩㄣ");
ASSERT_EQ(composer.cnvSequence("cunf"), "ㄒㄩㄣˊ");
ASSERT_EQ(composer.cnvSequence("cunk"), "ㄒㄩㄣˋ");
ASSERT_EQ(composer.cnvSequence("cul"), "ㄒㄩㄥ");
ASSERT_EQ(composer.cnvSequence("culf"), "ㄒㄩㄥˊ");
ASSERT_EQ(composer.cnvSequence("culj"), "ㄒㄩㄥˇ");
ASSERT_EQ(composer.cnvSequence("culk"), "ㄒㄩㄥˋ");
ASSERT_EQ(composer.cnvSequence("g"), "");
ASSERT_EQ(composer.cnvSequence("gf"), "ㄓˊ");
ASSERT_EQ(composer.cnvSequence("gj"), "ㄓˇ");
ASSERT_EQ(composer.cnvSequence("gk"), "ㄓˋ");
ASSERT_EQ(composer.cnvSequence("ga"), "ㄓㄚ");
ASSERT_EQ(composer.cnvSequence("gaf"), "ㄓㄚˊ");
ASSERT_EQ(composer.cnvSequence("gaj"), "ㄓㄚˇ");
ASSERT_EQ(composer.cnvSequence("gak"), "ㄓㄚˋ");
ASSERT_EQ(composer.cnvSequence("gr"), "ㄓㄜ");
ASSERT_EQ(composer.cnvSequence("grf"), "ㄓㄜˊ");
ASSERT_EQ(composer.cnvSequence("grj"), "ㄓㄜˇ");
ASSERT_EQ(composer.cnvSequence("grk"), "ㄓㄜˋ");
ASSERT_EQ(composer.cnvSequence("grd"), "ㄓㄜ˙");
ASSERT_EQ(composer.cnvSequence("gi"), "ㄓㄞ");
ASSERT_EQ(composer.cnvSequence("gif"), "ㄓㄞˊ");
ASSERT_EQ(composer.cnvSequence("gij"), "ㄓㄞˇ");
ASSERT_EQ(composer.cnvSequence("gik"), "ㄓㄞˋ");
ASSERT_EQ(composer.cnvSequence("gqk"), "ㄓㄟˋ");
ASSERT_EQ(composer.cnvSequence("gz"), "ㄓㄠ");
ASSERT_EQ(composer.cnvSequence("gzf"), "ㄓㄠˊ");
ASSERT_EQ(composer.cnvSequence("gzj"), "ㄓㄠˇ");
ASSERT_EQ(composer.cnvSequence("gzk"), "ㄓㄠˋ");
ASSERT_EQ(composer.cnvSequence("gp"), "ㄓㄡ");
ASSERT_EQ(composer.cnvSequence("gpf"), "ㄓㄡˊ");
ASSERT_EQ(composer.cnvSequence("gpj"), "ㄓㄡˇ");
ASSERT_EQ(composer.cnvSequence("gpk"), "ㄓㄡˋ");
ASSERT_EQ(composer.cnvSequence("gm"), "ㄓㄢ");
ASSERT_EQ(composer.cnvSequence("gmj"), "ㄓㄢˇ");
ASSERT_EQ(composer.cnvSequence("gmk"), "ㄓㄢˋ");
ASSERT_EQ(composer.cnvSequence("gn"), "ㄓㄣ");
ASSERT_EQ(composer.cnvSequence("gnf"), "ㄓㄣˊ");
ASSERT_EQ(composer.cnvSequence("gnj"), "ㄓㄣˇ");
ASSERT_EQ(composer.cnvSequence("gnk"), "ㄓㄣˋ");
ASSERT_EQ(composer.cnvSequence("gt"), "ㄓㄤ");
ASSERT_EQ(composer.cnvSequence("gtj"), "ㄓㄤˇ");
ASSERT_EQ(composer.cnvSequence("gtk"), "ㄓㄤˋ");
ASSERT_EQ(composer.cnvSequence("gl"), "ㄓㄥ");
ASSERT_EQ(composer.cnvSequence("glj"), "ㄓㄥˇ");
ASSERT_EQ(composer.cnvSequence("glk"), "ㄓㄥˋ");
ASSERT_EQ(composer.cnvSequence("gx"), "ㄓㄨ");
ASSERT_EQ(composer.cnvSequence("gxf"), "ㄓㄨˊ");
ASSERT_EQ(composer.cnvSequence("gxj"), "ㄓㄨˇ");
ASSERT_EQ(composer.cnvSequence("gxk"), "ㄓㄨˋ");
ASSERT_EQ(composer.cnvSequence("gxa"), "ㄓㄨㄚ");
ASSERT_EQ(composer.cnvSequence("gxaj"), "ㄓㄨㄚˇ");
ASSERT_EQ(composer.cnvSequence("gxo"), "ㄓㄨㄛ");
ASSERT_EQ(composer.cnvSequence("gxof"), "ㄓㄨㄛˊ");
ASSERT_EQ(composer.cnvSequence("gxok"), "ㄓㄨㄛˋ");
ASSERT_EQ(composer.cnvSequence("gxi"), "ㄓㄨㄞ");
ASSERT_EQ(composer.cnvSequence("gxij"), "ㄓㄨㄞˇ");
ASSERT_EQ(composer.cnvSequence("gxik"), "ㄓㄨㄞˋ");
ASSERT_EQ(composer.cnvSequence("gxq"), "ㄓㄨㄟ");
ASSERT_EQ(composer.cnvSequence("gxqj"), "ㄓㄨㄟˇ");
ASSERT_EQ(composer.cnvSequence("gxqk"), "ㄓㄨㄟˋ");
ASSERT_EQ(composer.cnvSequence("gxm"), "ㄓㄨㄢ");
ASSERT_EQ(composer.cnvSequence("gxmj"), "ㄓㄨㄢˇ");
ASSERT_EQ(composer.cnvSequence("gxmk"), "ㄓㄨㄢˋ");
ASSERT_EQ(composer.cnvSequence("gxn"), "ㄓㄨㄣ");
ASSERT_EQ(composer.cnvSequence("gxnj"), "ㄓㄨㄣˇ");
ASSERT_EQ(composer.cnvSequence("gxnk"), "ㄓㄨㄣˋ");
ASSERT_EQ(composer.cnvSequence("gxt"), "ㄓㄨㄤ");
ASSERT_EQ(composer.cnvSequence("gxtj"), "ㄓㄨㄤˇ");
ASSERT_EQ(composer.cnvSequence("gxtk"), "ㄓㄨㄤˋ");
ASSERT_EQ(composer.cnvSequence("gxl"), "ㄓㄨㄥ");
ASSERT_EQ(composer.cnvSequence("gxlj"), "ㄓㄨㄥˇ");
ASSERT_EQ(composer.cnvSequence("gxlk"), "ㄓㄨㄥˋ");
ASSERT_EQ(composer.cnvSequence("y"), "");
ASSERT_EQ(composer.cnvSequence("yf"), "ㄔˊ");
ASSERT_EQ(composer.cnvSequence("yj"), "ㄔˇ");
ASSERT_EQ(composer.cnvSequence("yk"), "ㄔˋ");
ASSERT_EQ(composer.cnvSequence("ya"), "ㄔㄚ");
ASSERT_EQ(composer.cnvSequence("yaf"), "ㄔㄚˊ");
ASSERT_EQ(composer.cnvSequence("yaj"), "ㄔㄚˇ");
ASSERT_EQ(composer.cnvSequence("yak"), "ㄔㄚˋ");
ASSERT_EQ(composer.cnvSequence("yr"), "ㄔㄜ");
ASSERT_EQ(composer.cnvSequence("yrj"), "ㄔㄜˇ");
ASSERT_EQ(composer.cnvSequence("yrk"), "ㄔㄜˋ");
ASSERT_EQ(composer.cnvSequence("yi"), "ㄔㄞ");
ASSERT_EQ(composer.cnvSequence("yif"), "ㄔㄞˊ");
ASSERT_EQ(composer.cnvSequence("yij"), "ㄔㄞˇ");
ASSERT_EQ(composer.cnvSequence("yik"), "ㄔㄞˋ");
ASSERT_EQ(composer.cnvSequence("yz"), "ㄔㄠ");
ASSERT_EQ(composer.cnvSequence("yzf"), "ㄔㄠˊ");
ASSERT_EQ(composer.cnvSequence("yzj"), "ㄔㄠˇ");
ASSERT_EQ(composer.cnvSequence("yzk"), "ㄔㄠˋ");
ASSERT_EQ(composer.cnvSequence("yp"), "ㄔㄡ");
ASSERT_EQ(composer.cnvSequence("ypf"), "ㄔㄡˊ");
ASSERT_EQ(composer.cnvSequence("ypj"), "ㄔㄡˇ");
ASSERT_EQ(composer.cnvSequence("ypk"), "ㄔㄡˋ");
ASSERT_EQ(composer.cnvSequence("ym"), "ㄔㄢ");
ASSERT_EQ(composer.cnvSequence("ymf"), "ㄔㄢˊ");
ASSERT_EQ(composer.cnvSequence("ymj"), "ㄔㄢˇ");
ASSERT_EQ(composer.cnvSequence("ymk"), "ㄔㄢˋ");
ASSERT_EQ(composer.cnvSequence("yn"), "ㄔㄣ");
ASSERT_EQ(composer.cnvSequence("ynf"), "ㄔㄣˊ");
ASSERT_EQ(composer.cnvSequence("ynj"), "ㄔㄣˇ");
ASSERT_EQ(composer.cnvSequence("ynk"), "ㄔㄣˋ");
ASSERT_EQ(composer.cnvSequence("ynd"), "ㄔㄣ˙");
ASSERT_EQ(composer.cnvSequence("yt"), "ㄔㄤ");
ASSERT_EQ(composer.cnvSequence("ytf"), "ㄔㄤˊ");
ASSERT_EQ(composer.cnvSequence("ytj"), "ㄔㄤˇ");
ASSERT_EQ(composer.cnvSequence("ytk"), "ㄔㄤˋ");
ASSERT_EQ(composer.cnvSequence("yl"), "ㄔㄥ");
ASSERT_EQ(composer.cnvSequence("ylf"), "ㄔㄥˊ");
ASSERT_EQ(composer.cnvSequence("ylj"), "ㄔㄥˇ");
ASSERT_EQ(composer.cnvSequence("ylk"), "ㄔㄥˋ");
ASSERT_EQ(composer.cnvSequence("yx"), "ㄔㄨ");
ASSERT_EQ(composer.cnvSequence("yxf"), "ㄔㄨˊ");
ASSERT_EQ(composer.cnvSequence("yxj"), "ㄔㄨˇ");
ASSERT_EQ(composer.cnvSequence("yxk"), "ㄔㄨˋ");
ASSERT_EQ(composer.cnvSequence("yxa"), "ㄔㄨㄚ");
ASSERT_EQ(composer.cnvSequence("yxaj"), "ㄔㄨㄚˇ");
ASSERT_EQ(composer.cnvSequence("yxak"), "ㄔㄨㄚˋ");
ASSERT_EQ(composer.cnvSequence("yxo"), "ㄔㄨㄛ");
ASSERT_EQ(composer.cnvSequence("yxok"), "ㄔㄨㄛˋ");
ASSERT_EQ(composer.cnvSequence("yxi"), "ㄔㄨㄞ");
ASSERT_EQ(composer.cnvSequence("yxif"), "ㄔㄨㄞˊ");
ASSERT_EQ(composer.cnvSequence("yxij"), "ㄔㄨㄞˇ");
ASSERT_EQ(composer.cnvSequence("yxik"), "ㄔㄨㄞˋ");
ASSERT_EQ(composer.cnvSequence("yxq"), "ㄔㄨㄟ");
ASSERT_EQ(composer.cnvSequence("yxqf"), "ㄔㄨㄟˊ");
ASSERT_EQ(composer.cnvSequence("yxqj"), "ㄔㄨㄟˇ");
ASSERT_EQ(composer.cnvSequence("yxqk"), "ㄔㄨㄟˋ");
ASSERT_EQ(composer.cnvSequence("yxm"), "ㄔㄨㄢ");
ASSERT_EQ(composer.cnvSequence("yxmf"), "ㄔㄨㄢˊ");
ASSERT_EQ(composer.cnvSequence("yxmj"), "ㄔㄨㄢˇ");
ASSERT_EQ(composer.cnvSequence("yxmk"), "ㄔㄨㄢˋ");
ASSERT_EQ(composer.cnvSequence("yxn"), "ㄔㄨㄣ");
ASSERT_EQ(composer.cnvSequence("yxnf"), "ㄔㄨㄣˊ");
ASSERT_EQ(composer.cnvSequence("yxnj"), "ㄔㄨㄣˇ");
ASSERT_EQ(composer.cnvSequence("yxt"), "ㄔㄨㄤ");
ASSERT_EQ(composer.cnvSequence("yxtf"), "ㄔㄨㄤˊ");
ASSERT_EQ(composer.cnvSequence("yxtj"), "ㄔㄨㄤˇ");
ASSERT_EQ(composer.cnvSequence("yxtk"), "ㄔㄨㄤˋ");
ASSERT_EQ(composer.cnvSequence("yxl"), "ㄔㄨㄥ");
ASSERT_EQ(composer.cnvSequence("yxlf"), "ㄔㄨㄥˊ");
ASSERT_EQ(composer.cnvSequence("yxlj"), "ㄔㄨㄥˇ");
ASSERT_EQ(composer.cnvSequence("yxlk"), "ㄔㄨㄥˋ");
ASSERT_EQ(composer.cnvSequence("c"), "");
ASSERT_EQ(composer.cnvSequence("cf"), "ㄕˊ");
ASSERT_EQ(composer.cnvSequence("cj"), "ㄕˇ");
ASSERT_EQ(composer.cnvSequence("ck"), "ㄕˋ");
ASSERT_EQ(composer.cnvSequence("cd"), "ㄕ˙");
ASSERT_EQ(composer.cnvSequence("ca"), "ㄕㄚ");
ASSERT_EQ(composer.cnvSequence("caf"), "ㄕㄚˊ");
ASSERT_EQ(composer.cnvSequence("caj"), "ㄕㄚˇ");
ASSERT_EQ(composer.cnvSequence("cak"), "ㄕㄚˋ");
ASSERT_EQ(composer.cnvSequence("cad"), "ㄕㄚ˙");
ASSERT_EQ(composer.cnvSequence("cr"), "ㄕㄜ");
ASSERT_EQ(composer.cnvSequence("crf"), "ㄕㄜˊ");
ASSERT_EQ(composer.cnvSequence("crj"), "ㄕㄜˇ");
ASSERT_EQ(composer.cnvSequence("crk"), "ㄕㄜˋ");
ASSERT_EQ(composer.cnvSequence("ci"), "ㄕㄞ");
ASSERT_EQ(composer.cnvSequence("cij"), "ㄕㄞˇ");
ASSERT_EQ(composer.cnvSequence("cik"), "ㄕㄞˋ");
ASSERT_EQ(composer.cnvSequence("cqf"), "ㄕㄟˊ");
ASSERT_EQ(composer.cnvSequence("cz"), "ㄕㄠ");
ASSERT_EQ(composer.cnvSequence("czf"), "ㄕㄠˊ");
ASSERT_EQ(composer.cnvSequence("czj"), "ㄕㄠˇ");
ASSERT_EQ(composer.cnvSequence("czk"), "ㄕㄠˋ");
ASSERT_EQ(composer.cnvSequence("cp"), "ㄕㄡ");
ASSERT_EQ(composer.cnvSequence("cpf"), "ㄕㄡˊ");
ASSERT_EQ(composer.cnvSequence("cpj"), "ㄕㄡˇ");
ASSERT_EQ(composer.cnvSequence("cpk"), "ㄕㄡˋ");
ASSERT_EQ(composer.cnvSequence("cm"), "ㄕㄢ");
ASSERT_EQ(composer.cnvSequence("cmf"), "ㄕㄢˊ");
ASSERT_EQ(composer.cnvSequence("cmj"), "ㄕㄢˇ");
ASSERT_EQ(composer.cnvSequence("cmk"), "ㄕㄢˋ");
ASSERT_EQ(composer.cnvSequence("cn"), "ㄕㄣ");
ASSERT_EQ(composer.cnvSequence("cnf"), "ㄕㄣˊ");
ASSERT_EQ(composer.cnvSequence("cnj"), "ㄕㄣˇ");
ASSERT_EQ(composer.cnvSequence("cnk"), "ㄕㄣˋ");
ASSERT_EQ(composer.cnvSequence("ct"), "ㄕㄤ");
ASSERT_EQ(composer.cnvSequence("ctj"), "ㄕㄤˇ");
ASSERT_EQ(composer.cnvSequence("ctk"), "ㄕㄤˋ");
ASSERT_EQ(composer.cnvSequence("ctd"), "ㄕㄤ˙");
ASSERT_EQ(composer.cnvSequence("cl"), "ㄕㄥ");
ASSERT_EQ(composer.cnvSequence("clf"), "ㄕㄥˊ");
ASSERT_EQ(composer.cnvSequence("clj"), "ㄕㄥˇ");
ASSERT_EQ(composer.cnvSequence("clk"), "ㄕㄥˋ");
ASSERT_EQ(composer.cnvSequence("cx"), "ㄕㄨ");
ASSERT_EQ(composer.cnvSequence("cxf"), "ㄕㄨˊ");
ASSERT_EQ(composer.cnvSequence("cxj"), "ㄕㄨˇ");
ASSERT_EQ(composer.cnvSequence("cxk"), "ㄕㄨˋ");
ASSERT_EQ(composer.cnvSequence("cxa"), "ㄕㄨㄚ");
ASSERT_EQ(composer.cnvSequence("cxaj"), "ㄕㄨㄚˇ");
ASSERT_EQ(composer.cnvSequence("cxak"), "ㄕㄨㄚˋ");
ASSERT_EQ(composer.cnvSequence("cxo"), "ㄕㄨㄛ");
ASSERT_EQ(composer.cnvSequence("cxok"), "ㄕㄨㄛˋ");
ASSERT_EQ(composer.cnvSequence("cxi"), "ㄕㄨㄞ");
ASSERT_EQ(composer.cnvSequence("cxij"), "ㄕㄨㄞˇ");
ASSERT_EQ(composer.cnvSequence("cxik"), "ㄕㄨㄞˋ");
ASSERT_EQ(composer.cnvSequence("cxq"), "ㄕㄨㄟ");
ASSERT_EQ(composer.cnvSequence("cxqf"), "ㄕㄨㄟˊ");
ASSERT_EQ(composer.cnvSequence("cxqj"), "ㄕㄨㄟˇ");
ASSERT_EQ(composer.cnvSequence("cxqk"), "ㄕㄨㄟˋ");
ASSERT_EQ(composer.cnvSequence("cxm"), "ㄕㄨㄢ");
ASSERT_EQ(composer.cnvSequence("cxmk"), "ㄕㄨㄢˋ");
ASSERT_EQ(composer.cnvSequence("cxnj"), "ㄕㄨㄣˇ");
ASSERT_EQ(composer.cnvSequence("cxnk"), "ㄕㄨㄣˋ");
ASSERT_EQ(composer.cnvSequence("cxt"), "ㄕㄨㄤ");
ASSERT_EQ(composer.cnvSequence("cxtf"), "ㄕㄨㄤˊ");
ASSERT_EQ(composer.cnvSequence("cxtj"), "ㄕㄨㄤˇ");
ASSERT_EQ(composer.cnvSequence("cxtk"), "ㄕㄨㄤˋ");
ASSERT_EQ(composer.cnvSequence("jk"), "ㄖˋ");
ASSERT_EQ(composer.cnvSequence("jrj"), "ㄖㄜˇ");
ASSERT_EQ(composer.cnvSequence("jrk"), "ㄖㄜˋ");
ASSERT_EQ(composer.cnvSequence("jzf"), "ㄖㄠˊ");
ASSERT_EQ(composer.cnvSequence("jzj"), "ㄖㄠˇ");
ASSERT_EQ(composer.cnvSequence("jzk"), "ㄖㄠˋ");
ASSERT_EQ(composer.cnvSequence("jpf"), "ㄖㄡˊ");
ASSERT_EQ(composer.cnvSequence("jpj"), "ㄖㄡˇ");
ASSERT_EQ(composer.cnvSequence("jpk"), "ㄖㄡˋ");
ASSERT_EQ(composer.cnvSequence("jmf"), "ㄖㄢˊ");
ASSERT_EQ(composer.cnvSequence("jmj"), "ㄖㄢˇ");
ASSERT_EQ(composer.cnvSequence("jmk"), "ㄖㄢˋ");
ASSERT_EQ(composer.cnvSequence("jnf"), "ㄖㄣˊ");
ASSERT_EQ(composer.cnvSequence("jnj"), "ㄖㄣˇ");
ASSERT_EQ(composer.cnvSequence("jnk"), "ㄖㄣˋ");
ASSERT_EQ(composer.cnvSequence("jt"), "ㄖㄤ");
ASSERT_EQ(composer.cnvSequence("jtf"), "ㄖㄤˊ");
ASSERT_EQ(composer.cnvSequence("jtj"), "ㄖㄤˇ");
ASSERT_EQ(composer.cnvSequence("jtk"), "ㄖㄤˋ");
ASSERT_EQ(composer.cnvSequence("jl"), "ㄖㄥ");
ASSERT_EQ(composer.cnvSequence("jlf"), "ㄖㄥˊ");
ASSERT_EQ(composer.cnvSequence("jlj"), "ㄖㄥˇ");
ASSERT_EQ(composer.cnvSequence("jlk"), "ㄖㄥˋ");
ASSERT_EQ(composer.cnvSequence("jxf"), "ㄖㄨˊ");
ASSERT_EQ(composer.cnvSequence("jxj"), "ㄖㄨˇ");
ASSERT_EQ(composer.cnvSequence("jxk"), "ㄖㄨˋ");
ASSERT_EQ(composer.cnvSequence("jxof"), "ㄖㄨㄛˊ");
ASSERT_EQ(composer.cnvSequence("jxok"), "ㄖㄨㄛˋ");
ASSERT_EQ(composer.cnvSequence("jxqf"), "ㄖㄨㄟˊ");
ASSERT_EQ(composer.cnvSequence("jxqj"), "ㄖㄨㄟˇ");
ASSERT_EQ(composer.cnvSequence("jxqk"), "ㄖㄨㄟˋ");
ASSERT_EQ(composer.cnvSequence("jxmf"), "ㄖㄨㄢˊ");
ASSERT_EQ(composer.cnvSequence("jxmj"), "ㄖㄨㄢˇ");
ASSERT_EQ(composer.cnvSequence("jxmk"), "ㄖㄨㄢˋ");
ASSERT_EQ(composer.cnvSequence("jxnf"), "ㄖㄨㄣˊ");
ASSERT_EQ(composer.cnvSequence("jxnj"), "ㄖㄨㄣˇ");
ASSERT_EQ(composer.cnvSequence("jxnk"), "ㄖㄨㄣˋ");
ASSERT_EQ(composer.cnvSequence("jxlf"), "ㄖㄨㄥˊ");
ASSERT_EQ(composer.cnvSequence("jxlj"), "ㄖㄨㄥˇ");
ASSERT_EQ(composer.cnvSequence("jxlk"), "ㄖㄨㄥˋ");
ASSERT_EQ(composer.cnvSequence("q"), "");
ASSERT_EQ(composer.cnvSequence("qf"), "ㄗˊ");
ASSERT_EQ(composer.cnvSequence("qj"), "ㄗˇ");
ASSERT_EQ(composer.cnvSequence("qk"), "ㄗˋ");
ASSERT_EQ(composer.cnvSequence("qd"), "ㄗ˙");
ASSERT_EQ(composer.cnvSequence("qa"), "ㄗㄚ");
ASSERT_EQ(composer.cnvSequence("qaf"), "ㄗㄚˊ");
ASSERT_EQ(composer.cnvSequence("qaj"), "ㄗㄚˇ");
ASSERT_EQ(composer.cnvSequence("qrf"), "ㄗㄜˊ");
ASSERT_EQ(composer.cnvSequence("qrj"), "ㄗㄜˇ");
ASSERT_EQ(composer.cnvSequence("qrk"), "ㄗㄜˋ");
ASSERT_EQ(composer.cnvSequence("qi"), "ㄗㄞ");
ASSERT_EQ(composer.cnvSequence("qij"), "ㄗㄞˇ");
ASSERT_EQ(composer.cnvSequence("qik"), "ㄗㄞˋ");
ASSERT_EQ(composer.cnvSequence("qqf"), "ㄗㄟˊ");
ASSERT_EQ(composer.cnvSequence("qz"), "ㄗㄠ");
ASSERT_EQ(composer.cnvSequence("qzf"), "ㄗㄠˊ");
ASSERT_EQ(composer.cnvSequence("qzj"), "ㄗㄠˇ");
ASSERT_EQ(composer.cnvSequence("qzk"), "ㄗㄠˋ");
ASSERT_EQ(composer.cnvSequence("qp"), "ㄗㄡ");
ASSERT_EQ(composer.cnvSequence("qpj"), "ㄗㄡˇ");
ASSERT_EQ(composer.cnvSequence("qpk"), "ㄗㄡˋ");
ASSERT_EQ(composer.cnvSequence("qm"), "ㄗㄢ");
ASSERT_EQ(composer.cnvSequence("qmf"), "ㄗㄢˊ");
ASSERT_EQ(composer.cnvSequence("qmj"), "ㄗㄢˇ");
ASSERT_EQ(composer.cnvSequence("qmk"), "ㄗㄢˋ");
ASSERT_EQ(composer.cnvSequence("qn"), "ㄗㄣ");
ASSERT_EQ(composer.cnvSequence("qnj"), "ㄗㄣˇ");
ASSERT_EQ(composer.cnvSequence("qnk"), "ㄗㄣˋ");
ASSERT_EQ(composer.cnvSequence("qt"), "ㄗㄤ");
ASSERT_EQ(composer.cnvSequence("qtj"), "ㄗㄤˇ");
ASSERT_EQ(composer.cnvSequence("qtk"), "ㄗㄤˋ");
ASSERT_EQ(composer.cnvSequence("ql"), "ㄗㄥ");
ASSERT_EQ(composer.cnvSequence("qlj"), "ㄗㄥˇ");
ASSERT_EQ(composer.cnvSequence("qlk"), "ㄗㄥˋ");
ASSERT_EQ(composer.cnvSequence("qx"), "ㄗㄨ");
ASSERT_EQ(composer.cnvSequence("qxf"), "ㄗㄨˊ");
ASSERT_EQ(composer.cnvSequence("qxj"), "ㄗㄨˇ");
ASSERT_EQ(composer.cnvSequence("qxk"), "ㄗㄨˋ");
ASSERT_EQ(composer.cnvSequence("qxo"), "ㄗㄨㄛ");
ASSERT_EQ(composer.cnvSequence("qxof"), "ㄗㄨㄛˊ");
ASSERT_EQ(composer.cnvSequence("qxoj"), "ㄗㄨㄛˇ");
ASSERT_EQ(composer.cnvSequence("qxok"), "ㄗㄨㄛˋ");
ASSERT_EQ(composer.cnvSequence("qxod"), "ㄗㄨㄛ˙");
ASSERT_EQ(composer.cnvSequence("qxq"), "ㄗㄨㄟ");
ASSERT_EQ(composer.cnvSequence("qxqj"), "ㄗㄨㄟˇ");
ASSERT_EQ(composer.cnvSequence("qxqk"), "ㄗㄨㄟˋ");
ASSERT_EQ(composer.cnvSequence("qxm"), "ㄗㄨㄢ");
ASSERT_EQ(composer.cnvSequence("qxmj"), "ㄗㄨㄢˇ");
ASSERT_EQ(composer.cnvSequence("qxmk"), "ㄗㄨㄢˋ");
ASSERT_EQ(composer.cnvSequence("qxn"), "ㄗㄨㄣ");
ASSERT_EQ(composer.cnvSequence("qxnj"), "ㄗㄨㄣˇ");
ASSERT_EQ(composer.cnvSequence("qxnk"), "ㄗㄨㄣˋ");
ASSERT_EQ(composer.cnvSequence("qxl"), "ㄗㄨㄥ");
ASSERT_EQ(composer.cnvSequence("qxlj"), "ㄗㄨㄥˇ");
ASSERT_EQ(composer.cnvSequence("qxlk"), "ㄗㄨㄥˋ");
ASSERT_EQ(composer.cnvSequence("w"), "");
ASSERT_EQ(composer.cnvSequence("wf"), "ㄘˊ");
ASSERT_EQ(composer.cnvSequence("wj"), "ㄘˇ");
ASSERT_EQ(composer.cnvSequence("wk"), "ㄘˋ");
ASSERT_EQ(composer.cnvSequence("wa"), "ㄘㄚ");
ASSERT_EQ(composer.cnvSequence("waj"), "ㄘㄚˇ");
ASSERT_EQ(composer.cnvSequence("wak"), "ㄘㄚˋ");
ASSERT_EQ(composer.cnvSequence("wrk"), "ㄘㄜˋ");
ASSERT_EQ(composer.cnvSequence("wi"), "ㄘㄞ");
ASSERT_EQ(composer.cnvSequence("wif"), "ㄘㄞˊ");
ASSERT_EQ(composer.cnvSequence("wij"), "ㄘㄞˇ");
ASSERT_EQ(composer.cnvSequence("wik"), "ㄘㄞˋ");
ASSERT_EQ(composer.cnvSequence("wz"), "ㄘㄠ");
ASSERT_EQ(composer.cnvSequence("wzf"), "ㄘㄠˊ");
ASSERT_EQ(composer.cnvSequence("wzj"), "ㄘㄠˇ");
ASSERT_EQ(composer.cnvSequence("wzk"), "ㄘㄠˋ");
ASSERT_EQ(composer.cnvSequence("wp"), "ㄘㄡ");
ASSERT_EQ(composer.cnvSequence("wpf"), "ㄘㄡˊ");
ASSERT_EQ(composer.cnvSequence("wpj"), "ㄘㄡˇ");
ASSERT_EQ(composer.cnvSequence("wpk"), "ㄘㄡˋ");
ASSERT_EQ(composer.cnvSequence("wm"), "ㄘㄢ");
ASSERT_EQ(composer.cnvSequence("wmf"), "ㄘㄢˊ");
ASSERT_EQ(composer.cnvSequence("wmj"), "ㄘㄢˇ");
ASSERT_EQ(composer.cnvSequence("wmk"), "ㄘㄢˋ");
ASSERT_EQ(composer.cnvSequence("wn"), "ㄘㄣ");
ASSERT_EQ(composer.cnvSequence("wnf"), "ㄘㄣˊ");
ASSERT_EQ(composer.cnvSequence("wt"), "ㄘㄤ");
ASSERT_EQ(composer.cnvSequence("wtf"), "ㄘㄤˊ");
ASSERT_EQ(composer.cnvSequence("wtj"), "ㄘㄤˇ");
ASSERT_EQ(composer.cnvSequence("wtk"), "ㄘㄤˋ");
ASSERT_EQ(composer.cnvSequence("wl"), "ㄘㄥ");
ASSERT_EQ(composer.cnvSequence("wlf"), "ㄘㄥˊ");
ASSERT_EQ(composer.cnvSequence("wlj"), "ㄘㄥˇ");
ASSERT_EQ(composer.cnvSequence("wlk"), "ㄘㄥˋ");
ASSERT_EQ(composer.cnvSequence("wx"), "ㄘㄨ");
ASSERT_EQ(composer.cnvSequence("wxf"), "ㄘㄨˊ");
ASSERT_EQ(composer.cnvSequence("wxj"), "ㄘㄨˇ");
ASSERT_EQ(composer.cnvSequence("wxk"), "ㄘㄨˋ");
ASSERT_EQ(composer.cnvSequence("wxo"), "ㄘㄨㄛ");
ASSERT_EQ(composer.cnvSequence("wxof"), "ㄘㄨㄛˊ");
ASSERT_EQ(composer.cnvSequence("wxoj"), "ㄘㄨㄛˇ");
ASSERT_EQ(composer.cnvSequence("wxok"), "ㄘㄨㄛˋ");
ASSERT_EQ(composer.cnvSequence("wxq"), "ㄘㄨㄟ");
ASSERT_EQ(composer.cnvSequence("wxqj"), "ㄘㄨㄟˇ");
ASSERT_EQ(composer.cnvSequence("wxqk"), "ㄘㄨㄟˋ");
ASSERT_EQ(composer.cnvSequence("wxm"), "ㄘㄨㄢ");
ASSERT_EQ(composer.cnvSequence("wxmf"), "ㄘㄨㄢˊ");
ASSERT_EQ(composer.cnvSequence("wxmj"), "ㄘㄨㄢˇ");
ASSERT_EQ(composer.cnvSequence("wxmk"), "ㄘㄨㄢˋ");
ASSERT_EQ(composer.cnvSequence("wxn"), "ㄘㄨㄣ");
ASSERT_EQ(composer.cnvSequence("wxnf"), "ㄘㄨㄣˊ");
ASSERT_EQ(composer.cnvSequence("wxnj"), "ㄘㄨㄣˇ");
ASSERT_EQ(composer.cnvSequence("wxnk"), "ㄘㄨㄣˋ");
ASSERT_EQ(composer.cnvSequence("wxl"), "ㄘㄨㄥ");
ASSERT_EQ(composer.cnvSequence("wxlf"), "ㄘㄨㄥˊ");
ASSERT_EQ(composer.cnvSequence("wxlj"), "ㄘㄨㄥˇ");
ASSERT_EQ(composer.cnvSequence("wxlk"), "ㄘㄨㄥˋ");
ASSERT_EQ(composer.cnvSequence("s"), "");
ASSERT_EQ(composer.cnvSequence("sj"), "ㄙˇ");
ASSERT_EQ(composer.cnvSequence("sk"), "ㄙˋ");
ASSERT_EQ(composer.cnvSequence("sa"), "ㄙㄚ");
ASSERT_EQ(composer.cnvSequence("saj"), "ㄙㄚˇ");
ASSERT_EQ(composer.cnvSequence("sak"), "ㄙㄚˋ");
ASSERT_EQ(composer.cnvSequence("sad"), "ㄙㄚ˙");
ASSERT_EQ(composer.cnvSequence("sr"), "ㄙㄜ");
ASSERT_EQ(composer.cnvSequence("srk"), "ㄙㄜˋ");
ASSERT_EQ(composer.cnvSequence("si"), "ㄙㄞ");
ASSERT_EQ(composer.cnvSequence("sif"), "ㄙㄞˊ");
ASSERT_EQ(composer.cnvSequence("sij"), "ㄙㄞˇ");
ASSERT_EQ(composer.cnvSequence("sik"), "ㄙㄞˋ");
ASSERT_EQ(composer.cnvSequence("sq"), "ㄙㄟ");
ASSERT_EQ(composer.cnvSequence("sz"), "ㄙㄠ");
ASSERT_EQ(composer.cnvSequence("szj"), "ㄙㄠˇ");
ASSERT_EQ(composer.cnvSequence("szk"), "ㄙㄠˋ");
ASSERT_EQ(composer.cnvSequence("sp"), "ㄙㄡ");
ASSERT_EQ(composer.cnvSequence("spj"), "ㄙㄡˇ");
ASSERT_EQ(composer.cnvSequence("spk"), "ㄙㄡˋ");
ASSERT_EQ(composer.cnvSequence("sm"), "ㄙㄢ");
ASSERT_EQ(composer.cnvSequence("smj"), "ㄙㄢˇ");
ASSERT_EQ(composer.cnvSequence("smk"), "ㄙㄢˋ");
ASSERT_EQ(composer.cnvSequence("sn"), "ㄙㄣ");
ASSERT_EQ(composer.cnvSequence("snj"), "ㄙㄣˇ");
ASSERT_EQ(composer.cnvSequence("st"), "ㄙㄤ");
ASSERT_EQ(composer.cnvSequence("stj"), "ㄙㄤˇ");
ASSERT_EQ(composer.cnvSequence("stk"), "ㄙㄤˋ");
ASSERT_EQ(composer.cnvSequence("sl"), "ㄙㄥ");
ASSERT_EQ(composer.cnvSequence("slk"), "ㄙㄥˋ");
ASSERT_EQ(composer.cnvSequence("sx"), "ㄙㄨ");
ASSERT_EQ(composer.cnvSequence("sxf"), "ㄙㄨˊ");
ASSERT_EQ(composer.cnvSequence("sxj"), "ㄙㄨˇ");
ASSERT_EQ(composer.cnvSequence("sxk"), "ㄙㄨˋ");
ASSERT_EQ(composer.cnvSequence("sxo"), "ㄙㄨㄛ");
ASSERT_EQ(composer.cnvSequence("sxof"), "ㄙㄨㄛˊ");
ASSERT_EQ(composer.cnvSequence("sxoj"), "ㄙㄨㄛˇ");
ASSERT_EQ(composer.cnvSequence("sxok"), "ㄙㄨㄛˋ");
ASSERT_EQ(composer.cnvSequence("sxq"), "ㄙㄨㄟ");
ASSERT_EQ(composer.cnvSequence("sxqf"), "ㄙㄨㄟˊ");
ASSERT_EQ(composer.cnvSequence("sxqj"), "ㄙㄨㄟˇ");
ASSERT_EQ(composer.cnvSequence("sxqk"), "ㄙㄨㄟˋ");
ASSERT_EQ(composer.cnvSequence("sxm"), "ㄙㄨㄢ");
ASSERT_EQ(composer.cnvSequence("sxmj"), "ㄙㄨㄢˇ");
ASSERT_EQ(composer.cnvSequence("sxmk"), "ㄙㄨㄢˋ");
ASSERT_EQ(composer.cnvSequence("sxn"), "ㄙㄨㄣ");
ASSERT_EQ(composer.cnvSequence("sxnj"), "ㄙㄨㄣˇ");
ASSERT_EQ(composer.cnvSequence("sxnk"), "ㄙㄨㄣˋ");
ASSERT_EQ(composer.cnvSequence("sxl"), "ㄙㄨㄥ");
ASSERT_EQ(composer.cnvSequence("sxlf"), "ㄙㄨㄥˊ");
ASSERT_EQ(composer.cnvSequence("sxlj"), "ㄙㄨㄥˇ");
ASSERT_EQ(composer.cnvSequence("sxlk"), "ㄙㄨㄥˋ");
ASSERT_EQ(composer.cnvSequence("a"), "");
ASSERT_EQ(composer.cnvSequence("af"), "ㄚˊ");
ASSERT_EQ(composer.cnvSequence("ak"), "ㄚˋ");
ASSERT_EQ(composer.cnvSequence("ad"), "ㄚ˙");
ASSERT_EQ(composer.cnvSequence("o"), "");
ASSERT_EQ(composer.cnvSequence("of"), "ㄛˊ");
ASSERT_EQ(composer.cnvSequence("oj"), "ㄛˇ");
ASSERT_EQ(composer.cnvSequence("ok"), "ㄛˋ");
ASSERT_EQ(composer.cnvSequence("r"), "");
ASSERT_EQ(composer.cnvSequence("rf"), "ㄜˊ");
ASSERT_EQ(composer.cnvSequence("rj"), "ㄜˇ");
ASSERT_EQ(composer.cnvSequence("rk"), "ㄜˋ");
// ASSERT_EQ(composer.cnvSequence("wf"), "ㄝˊ");
// ASSERT_EQ(composer.cnvSequence("wj"), "ㄝˇ");
// ASSERT_EQ(composer.cnvSequence("wk"), "ㄝˋ");
// ASSERT_EQ(composer.cnvSequence("wd"), "ㄝ˙");
ASSERT_EQ(composer.cnvSequence("i"), "");
ASSERT_EQ(composer.cnvSequence("if"), "ㄞˊ");
ASSERT_EQ(composer.cnvSequence("ij"), "ㄞˇ");
ASSERT_EQ(composer.cnvSequence("ik"), "ㄞˋ");
// ASSERT_EQ(composer.cnvSequence("qk"), "ㄟˋ");
ASSERT_EQ(composer.cnvSequence("z"), "");
ASSERT_EQ(composer.cnvSequence("zf"), "ㄠˊ");
ASSERT_EQ(composer.cnvSequence("zj"), "ㄠˇ");
ASSERT_EQ(composer.cnvSequence("zk"), "ㄠˋ");
ASSERT_EQ(composer.cnvSequence("p"), "");
ASSERT_EQ(composer.cnvSequence("pf"), "ㄡˊ");
ASSERT_EQ(composer.cnvSequence("pj"), "ㄡˇ");
ASSERT_EQ(composer.cnvSequence("pk"), "ㄡˋ");
ASSERT_EQ(composer.cnvSequence("pd"), "ㄡ˙");
ASSERT_EQ(composer.cnvSequence("m"), "");
ASSERT_EQ(composer.cnvSequence("mf"), "ㄢˊ");
ASSERT_EQ(composer.cnvSequence("mj"), "ㄢˇ");
ASSERT_EQ(composer.cnvSequence("mk"), "ㄢˋ");
ASSERT_EQ(composer.cnvSequence("n"), "");
ASSERT_EQ(composer.cnvSequence("nf"), "ㄣˊ");
ASSERT_EQ(composer.cnvSequence("nj"), "ㄣˇ");
ASSERT_EQ(composer.cnvSequence("nk"), "ㄣˋ");
ASSERT_EQ(composer.cnvSequence("nd"), "ㄣ˙");
ASSERT_EQ(composer.cnvSequence("t"), "");
ASSERT_EQ(composer.cnvSequence("tf"), "ㄤˊ");
ASSERT_EQ(composer.cnvSequence("tj"), "ㄤˇ");
ASSERT_EQ(composer.cnvSequence("tk"), "ㄤˋ");
ASSERT_EQ(composer.cnvSequence("l"), "");
ASSERT_EQ(composer.cnvSequence("lk"), "ㄥˋ");
ASSERT_EQ(composer.cnvSequence("h"), "");
ASSERT_EQ(composer.cnvSequence("hf"), "ㄦˊ");
ASSERT_EQ(composer.cnvSequence("hj"), "ㄦˇ");
ASSERT_EQ(composer.cnvSequence("hk"), "ㄦˋ");
ASSERT_EQ(composer.cnvSequence("hd"), "ㄦ˙");
ASSERT_EQ(composer.cnvSequence("e"), "");
ASSERT_EQ(composer.cnvSequence("ef"), "ㄧˊ");
ASSERT_EQ(composer.cnvSequence("ej"), "ㄧˇ");
ASSERT_EQ(composer.cnvSequence("ek"), "ㄧˋ");
ASSERT_EQ(composer.cnvSequence("ea"), "ㄧㄚ");
ASSERT_EQ(composer.cnvSequence("eaf"), "ㄧㄚˊ");
ASSERT_EQ(composer.cnvSequence("eaj"), "ㄧㄚˇ");
ASSERT_EQ(composer.cnvSequence("eak"), "ㄧㄚˋ");
ASSERT_EQ(composer.cnvSequence("ead"), "ㄧㄚ˙");
ASSERT_EQ(composer.cnvSequence("eo"), "ㄧㄛ");
ASSERT_EQ(composer.cnvSequence("eod"), "ㄧㄛ˙");
ASSERT_EQ(composer.cnvSequence("ew"), "ㄧㄝ");
ASSERT_EQ(composer.cnvSequence("ewf"), "ㄧㄝˊ");
ASSERT_EQ(composer.cnvSequence("ewj"), "ㄧㄝˇ");
ASSERT_EQ(composer.cnvSequence("ewk"), "ㄧㄝˋ");
ASSERT_EQ(composer.cnvSequence("ewd"), "ㄧㄝ˙");
ASSERT_EQ(composer.cnvSequence("eif"), "ㄧㄞˊ");
ASSERT_EQ(composer.cnvSequence("ez"), "ㄧㄠ");
ASSERT_EQ(composer.cnvSequence("ezf"), "ㄧㄠˊ");
ASSERT_EQ(composer.cnvSequence("ezj"), "ㄧㄠˇ");
ASSERT_EQ(composer.cnvSequence("ezk"), "ㄧㄠˋ");
ASSERT_EQ(composer.cnvSequence("ep"), "ㄧㄡ");
ASSERT_EQ(composer.cnvSequence("epf"), "ㄧㄡˊ");
ASSERT_EQ(composer.cnvSequence("epj"), "ㄧㄡˇ");
ASSERT_EQ(composer.cnvSequence("epk"), "ㄧㄡˋ");
ASSERT_EQ(composer.cnvSequence("em"), "ㄧㄢ");
ASSERT_EQ(composer.cnvSequence("emf"), "ㄧㄢˊ");
ASSERT_EQ(composer.cnvSequence("emj"), "ㄧㄢˇ");
ASSERT_EQ(composer.cnvSequence("emk"), "ㄧㄢˋ");
ASSERT_EQ(composer.cnvSequence("en"), "ㄧㄣ");
ASSERT_EQ(composer.cnvSequence("enf"), "ㄧㄣˊ");
ASSERT_EQ(composer.cnvSequence("enj"), "ㄧㄣˇ");
ASSERT_EQ(composer.cnvSequence("enk"), "ㄧㄣˋ");
ASSERT_EQ(composer.cnvSequence("et"), "ㄧㄤ");
ASSERT_EQ(composer.cnvSequence("etf"), "ㄧㄤˊ");
ASSERT_EQ(composer.cnvSequence("etj"), "ㄧㄤˇ");
ASSERT_EQ(composer.cnvSequence("etk"), "ㄧㄤˋ");
ASSERT_EQ(composer.cnvSequence("el"), "ㄧㄥ");
ASSERT_EQ(composer.cnvSequence("elf"), "ㄧㄥˊ");
ASSERT_EQ(composer.cnvSequence("elj"), "ㄧㄥˇ");
ASSERT_EQ(composer.cnvSequence("elk"), "ㄧㄥˋ");
ASSERT_EQ(composer.cnvSequence("x"), "");
ASSERT_EQ(composer.cnvSequence("xf"), "ㄨˊ");
ASSERT_EQ(composer.cnvSequence("xj"), "ㄨˇ");
ASSERT_EQ(composer.cnvSequence("xk"), "ㄨˋ");
ASSERT_EQ(composer.cnvSequence("xa"), "ㄨㄚ");
ASSERT_EQ(composer.cnvSequence("xaf"), "ㄨㄚˊ");
ASSERT_EQ(composer.cnvSequence("xaj"), "ㄨㄚˇ");
ASSERT_EQ(composer.cnvSequence("xak"), "ㄨㄚˋ");
ASSERT_EQ(composer.cnvSequence("xad"), "ㄨㄚ˙");
ASSERT_EQ(composer.cnvSequence("xo"), "ㄨㄛ");
ASSERT_EQ(composer.cnvSequence("xoj"), "ㄨㄛˇ");
ASSERT_EQ(composer.cnvSequence("xok"), "ㄨㄛˋ");
ASSERT_EQ(composer.cnvSequence("xi"), "ㄨㄞ");
ASSERT_EQ(composer.cnvSequence("xij"), "ㄨㄞˇ");
ASSERT_EQ(composer.cnvSequence("xik"), "ㄨㄞˋ");
ASSERT_EQ(composer.cnvSequence("xq"), "ㄨㄟ");
ASSERT_EQ(composer.cnvSequence("xqf"), "ㄨㄟˊ");
ASSERT_EQ(composer.cnvSequence("xqj"), "ㄨㄟˇ");
ASSERT_EQ(composer.cnvSequence("xqk"), "ㄨㄟˋ");
ASSERT_EQ(composer.cnvSequence("xm"), "ㄨㄢ");
ASSERT_EQ(composer.cnvSequence("xmf"), "ㄨㄢˊ");
ASSERT_EQ(composer.cnvSequence("xmj"), "ㄨㄢˇ");
ASSERT_EQ(composer.cnvSequence("xmk"), "ㄨㄢˋ");
ASSERT_EQ(composer.cnvSequence("xn"), "ㄨㄣ");
ASSERT_EQ(composer.cnvSequence("xnf"), "ㄨㄣˊ");
ASSERT_EQ(composer.cnvSequence("xnj"), "ㄨㄣˇ");
ASSERT_EQ(composer.cnvSequence("xnk"), "ㄨㄣˋ");
ASSERT_EQ(composer.cnvSequence("xt"), "ㄨㄤ");
ASSERT_EQ(composer.cnvSequence("xtf"), "ㄨㄤˊ");
ASSERT_EQ(composer.cnvSequence("xtj"), "ㄨㄤˇ");
ASSERT_EQ(composer.cnvSequence("xtk"), "ㄨㄤˋ");
ASSERT_EQ(composer.cnvSequence("xl"), "ㄨㄥ");
ASSERT_EQ(composer.cnvSequence("xlj"), "ㄨㄥˇ");
ASSERT_EQ(composer.cnvSequence("xlk"), "ㄨㄥˋ");
ASSERT_EQ(composer.cnvSequence("u"), "");
ASSERT_EQ(composer.cnvSequence("uf"), "ㄩˊ");
ASSERT_EQ(composer.cnvSequence("uj"), "ㄩˇ");
ASSERT_EQ(composer.cnvSequence("uk"), "ㄩˋ");
ASSERT_EQ(composer.cnvSequence("uw"), "ㄩㄝ");
ASSERT_EQ(composer.cnvSequence("uwj"), "ㄩㄝˇ");
ASSERT_EQ(composer.cnvSequence("uwk"), "ㄩㄝˋ");
ASSERT_EQ(composer.cnvSequence("um"), "ㄩㄢ");
ASSERT_EQ(composer.cnvSequence("umf"), "ㄩㄢˊ");
ASSERT_EQ(composer.cnvSequence("umj"), "ㄩㄢˇ");
ASSERT_EQ(composer.cnvSequence("umk"), "ㄩㄢˋ");
ASSERT_EQ(composer.cnvSequence("un"), "ㄩㄣ");
ASSERT_EQ(composer.cnvSequence("unf"), "ㄩㄣˊ");
ASSERT_EQ(composer.cnvSequence("unj"), "ㄩㄣˇ");
ASSERT_EQ(composer.cnvSequence("unk"), "ㄩㄣˋ");
ASSERT_EQ(composer.cnvSequence("ul"), "ㄩㄥ");
ASSERT_EQ(composer.cnvSequence("ulf"), "ㄩㄥˊ");
ASSERT_EQ(composer.cnvSequence("ulj"), "ㄩㄥˇ");
ASSERT_EQ(composer.cnvSequence("ulk"), "ㄩㄥˋ");
}
TEST(MandarinTestAdvanced, Hsu) {
// 許氏鍵盤窮極測試;
BopomofoReadingBuffer composer(BopomofoKeyboardLayout::HsuLayout());
ASSERT_EQ(composer.cnvSequence("kek"), "ㄎㄧㄤ");
// AreEqual(Composer.cnvSequence("vezf"), "ㄍㄧㄠˊ");
// AreEqual(Composer.cnvSequence("gen"), "ㄍㄧㄣ");
ASSERT_EQ(composer.cnvSequence("bekd"), "ㄅㄧㄤˊ");
ASSERT_EQ(composer.cnvSequence("bekj"), "ㄅㄧㄤˋ");
ASSERT_EQ(composer.cnvSequence("dxk"), "ㄉㄨㄤ");
ASSERT_EQ(composer.cnvSequence("by"), "ㄅㄚ");
ASSERT_EQ(composer.cnvSequence("byd"), "ㄅㄚˊ");
ASSERT_EQ(composer.cnvSequence("byf"), "ㄅㄚˇ");
ASSERT_EQ(composer.cnvSequence("byj"), "ㄅㄚˋ");
ASSERT_EQ(composer.cnvSequence("bys"), "ㄅㄚ˙");
ASSERT_EQ(composer.cnvSequence("bh"), "ㄅㄛ");
ASSERT_EQ(composer.cnvSequence("bhd"), "ㄅㄛˊ");
ASSERT_EQ(composer.cnvSequence("bhf"), "ㄅㄛˇ");
ASSERT_EQ(composer.cnvSequence("bhj"), "ㄅㄛˋ");
ASSERT_EQ(composer.cnvSequence("bhs"), "ㄅㄛ˙");
ASSERT_EQ(composer.cnvSequence("bi"), "ㄅㄞ");
ASSERT_EQ(composer.cnvSequence("bid"), "ㄅㄞˊ");
ASSERT_EQ(composer.cnvSequence("bif"), "ㄅㄞˇ");
ASSERT_EQ(composer.cnvSequence("bij"), "ㄅㄞˋ");
ASSERT_EQ(composer.cnvSequence("bis"), "ㄅㄞ˙");
ASSERT_EQ(composer.cnvSequence("ba"), "ㄅㄟ");
ASSERT_EQ(composer.cnvSequence("baf"), "ㄅㄟˇ");
ASSERT_EQ(composer.cnvSequence("baj"), "ㄅㄟˋ");
ASSERT_EQ(composer.cnvSequence("bas"), "ㄅㄟ˙");
ASSERT_EQ(composer.cnvSequence("bw"), "ㄅㄠ");
ASSERT_EQ(composer.cnvSequence("bwd"), "ㄅㄠˊ");
ASSERT_EQ(composer.cnvSequence("bwf"), "ㄅㄠˇ");
ASSERT_EQ(composer.cnvSequence("bwj"), "ㄅㄠˋ");
ASSERT_EQ(composer.cnvSequence("bm"), "ㄅㄢ");
ASSERT_EQ(composer.cnvSequence("bmf"), "ㄅㄢˇ");
ASSERT_EQ(composer.cnvSequence("bmj"), "ㄅㄢˋ");
ASSERT_EQ(composer.cnvSequence("bn"), "ㄅㄣ");
ASSERT_EQ(composer.cnvSequence("bnf"), "ㄅㄣˇ");
ASSERT_EQ(composer.cnvSequence("bnj"), "ㄅㄣˋ");
ASSERT_EQ(composer.cnvSequence("bk"), "ㄅㄤ");
ASSERT_EQ(composer.cnvSequence("bkf"), "ㄅㄤˇ");
ASSERT_EQ(composer.cnvSequence("bkj"), "ㄅㄤˋ");
ASSERT_EQ(composer.cnvSequence("bl"), "ㄅㄥ");
ASSERT_EQ(composer.cnvSequence("bld"), "ㄅㄥˊ");
ASSERT_EQ(composer.cnvSequence("blf"), "ㄅㄥˇ");
ASSERT_EQ(composer.cnvSequence("blj"), "ㄅㄥˋ");
ASSERT_EQ(composer.cnvSequence("be"), "ㄅㄧ");
ASSERT_EQ(composer.cnvSequence("bed"), "ㄅㄧˊ");
ASSERT_EQ(composer.cnvSequence("bef"), "ㄅㄧˇ");
ASSERT_EQ(composer.cnvSequence("bej"), "ㄅㄧˋ");
ASSERT_EQ(composer.cnvSequence("bee"), "ㄅㄧㄝ");
ASSERT_EQ(composer.cnvSequence("beed"), "ㄅㄧㄝˊ");
ASSERT_EQ(composer.cnvSequence("beef"), "ㄅㄧㄝˇ");
ASSERT_EQ(composer.cnvSequence("beej"), "ㄅㄧㄝˋ");
ASSERT_EQ(composer.cnvSequence("bew"), "ㄅㄧㄠ");
ASSERT_EQ(composer.cnvSequence("bewf"), "ㄅㄧㄠˇ");
ASSERT_EQ(composer.cnvSequence("bewj"), "ㄅㄧㄠˋ");
ASSERT_EQ(composer.cnvSequence("bem"), "ㄅㄧㄢ");
ASSERT_EQ(composer.cnvSequence("bemd"), "ㄅㄧㄢˊ");
ASSERT_EQ(composer.cnvSequence("bemf"), "ㄅㄧㄢˇ");
ASSERT_EQ(composer.cnvSequence("bemj"), "ㄅㄧㄢˋ");
ASSERT_EQ(composer.cnvSequence("ben"), "ㄅㄧㄣ");
ASSERT_EQ(composer.cnvSequence("benf"), "ㄅㄧㄣˇ");
ASSERT_EQ(composer.cnvSequence("benj"), "ㄅㄧㄣˋ");
ASSERT_EQ(composer.cnvSequence("bel"), "ㄅㄧㄥ");
ASSERT_EQ(composer.cnvSequence("belf"), "ㄅㄧㄥˇ");
ASSERT_EQ(composer.cnvSequence("belj"), "ㄅㄧㄥˋ");
ASSERT_EQ(composer.cnvSequence("bx"), "ㄅㄨ");
ASSERT_EQ(composer.cnvSequence("bxd"), "ㄅㄨˊ");
ASSERT_EQ(composer.cnvSequence("bxf"), "ㄅㄨˇ");
ASSERT_EQ(composer.cnvSequence("bxj"), "ㄅㄨˋ");
ASSERT_EQ(composer.cnvSequence("py"), "ㄆㄚ");
ASSERT_EQ(composer.cnvSequence("pyd"), "ㄆㄚˊ");
ASSERT_EQ(composer.cnvSequence("pyf"), "ㄆㄚˇ");
ASSERT_EQ(composer.cnvSequence("pyj"), "ㄆㄚˋ");
ASSERT_EQ(composer.cnvSequence("pys"), "ㄆㄚ˙");
ASSERT_EQ(composer.cnvSequence("ph"), "ㄆㄛ");
ASSERT_EQ(composer.cnvSequence("phd"), "ㄆㄛˊ");
ASSERT_EQ(composer.cnvSequence("phf"), "ㄆㄛˇ");
ASSERT_EQ(composer.cnvSequence("phj"), "ㄆㄛˋ");
ASSERT_EQ(composer.cnvSequence("pi"), "ㄆㄞ");
ASSERT_EQ(composer.cnvSequence("pid"), "ㄆㄞˊ");
ASSERT_EQ(composer.cnvSequence("pif"), "ㄆㄞˇ");
ASSERT_EQ(composer.cnvSequence("pij"), "ㄆㄞˋ");
ASSERT_EQ(composer.cnvSequence("pa"), "ㄆㄟ");
ASSERT_EQ(composer.cnvSequence("pad"), "ㄆㄟˊ");
ASSERT_EQ(composer.cnvSequence("paf"), "ㄆㄟˇ");
ASSERT_EQ(composer.cnvSequence("paj"), "ㄆㄟˋ");
ASSERT_EQ(composer.cnvSequence("pw"), "ㄆㄠ");
ASSERT_EQ(composer.cnvSequence("pwd"), "ㄆㄠˊ");
ASSERT_EQ(composer.cnvSequence("pwf"), "ㄆㄠˇ");
ASSERT_EQ(composer.cnvSequence("pwj"), "ㄆㄠˋ");
ASSERT_EQ(composer.cnvSequence("po"), "ㄆㄡ");
ASSERT_EQ(composer.cnvSequence("pod"), "ㄆㄡˊ");
ASSERT_EQ(composer.cnvSequence("pof"), "ㄆㄡˇ");
ASSERT_EQ(composer.cnvSequence("poj"), "ㄆㄡˋ");
ASSERT_EQ(composer.cnvSequence("pm"), "ㄆㄢ");
ASSERT_EQ(composer.cnvSequence("pmd"), "ㄆㄢˊ");
ASSERT_EQ(composer.cnvSequence("pmf"), "ㄆㄢˇ");
ASSERT_EQ(composer.cnvSequence("pmj"), "ㄆㄢˋ");
ASSERT_EQ(composer.cnvSequence("pn"), "ㄆㄣ");
ASSERT_EQ(composer.cnvSequence("pnd"), "ㄆㄣˊ");
ASSERT_EQ(composer.cnvSequence("pnf"), "ㄆㄣˇ");
ASSERT_EQ(composer.cnvSequence("pnj"), "ㄆㄣˋ");
ASSERT_EQ(composer.cnvSequence("pk"), "ㄆㄤ");
ASSERT_EQ(composer.cnvSequence("pkd"), "ㄆㄤˊ");
ASSERT_EQ(composer.cnvSequence("pkf"), "ㄆㄤˇ");
ASSERT_EQ(composer.cnvSequence("pkj"), "ㄆㄤˋ");
ASSERT_EQ(composer.cnvSequence("pl"), "ㄆㄥ");
ASSERT_EQ(composer.cnvSequence("pld"), "ㄆㄥˊ");
ASSERT_EQ(composer.cnvSequence("plf"), "ㄆㄥˇ");
ASSERT_EQ(composer.cnvSequence("plj"), "ㄆㄥˋ");
ASSERT_EQ(composer.cnvSequence("pe"), "ㄆㄧ");
ASSERT_EQ(composer.cnvSequence("ped"), "ㄆㄧˊ");
ASSERT_EQ(composer.cnvSequence("pef"), "ㄆㄧˇ");
ASSERT_EQ(composer.cnvSequence("pej"), "ㄆㄧˋ");
ASSERT_EQ(composer.cnvSequence("pey"), "ㄆㄧㄚ");
ASSERT_EQ(composer.cnvSequence("pee"), "ㄆㄧㄝ");
ASSERT_EQ(composer.cnvSequence("peef"), "ㄆㄧㄝˇ");
ASSERT_EQ(composer.cnvSequence("peej"), "ㄆㄧㄝˋ");
ASSERT_EQ(composer.cnvSequence("pew"), "ㄆㄧㄠ");
ASSERT_EQ(composer.cnvSequence("pewd"), "ㄆㄧㄠˊ");
ASSERT_EQ(composer.cnvSequence("pewf"), "ㄆㄧㄠˇ");
ASSERT_EQ(composer.cnvSequence("pewj"), "ㄆㄧㄠˋ");
ASSERT_EQ(composer.cnvSequence("pem"), "ㄆㄧㄢ");
ASSERT_EQ(composer.cnvSequence("pemd"), "ㄆㄧㄢˊ");
ASSERT_EQ(composer.cnvSequence("pemf"), "ㄆㄧㄢˇ");
ASSERT_EQ(composer.cnvSequence("pemj"), "ㄆㄧㄢˋ");
ASSERT_EQ(composer.cnvSequence("pen"), "ㄆㄧㄣ");
ASSERT_EQ(composer.cnvSequence("pend"), "ㄆㄧㄣˊ");
ASSERT_EQ(composer.cnvSequence("penf"), "ㄆㄧㄣˇ");
ASSERT_EQ(composer.cnvSequence("penj"), "ㄆㄧㄣˋ");
ASSERT_EQ(composer.cnvSequence("pel"), "ㄆㄧㄥ");
ASSERT_EQ(composer.cnvSequence("peld"), "ㄆㄧㄥˊ");
ASSERT_EQ(composer.cnvSequence("pelf"), "ㄆㄧㄥˇ");
ASSERT_EQ(composer.cnvSequence("pelj"), "ㄆㄧㄥˋ");
ASSERT_EQ(composer.cnvSequence("px"), "ㄆㄨ");
ASSERT_EQ(composer.cnvSequence("pxd"), "ㄆㄨˊ");
ASSERT_EQ(composer.cnvSequence("pxf"), "ㄆㄨˇ");
ASSERT_EQ(composer.cnvSequence("pxj"), "ㄆㄨˋ");
ASSERT_EQ(composer.cnvSequence("my"), "ㄇㄚ");
ASSERT_EQ(composer.cnvSequence("myd"), "ㄇㄚˊ");
ASSERT_EQ(composer.cnvSequence("myf"), "ㄇㄚˇ");
ASSERT_EQ(composer.cnvSequence("myj"), "ㄇㄚˋ");
ASSERT_EQ(composer.cnvSequence("mys"), "ㄇㄚ˙");
ASSERT_EQ(composer.cnvSequence("mh"), "ㄇㄛ");
ASSERT_EQ(composer.cnvSequence("mhd"), "ㄇㄛˊ");
ASSERT_EQ(composer.cnvSequence("mhf"), "ㄇㄛˇ");
ASSERT_EQ(composer.cnvSequence("mhj"), "ㄇㄛˋ");
ASSERT_EQ(composer.cnvSequence("mhs"), "ㄇㄛ˙");
ASSERT_EQ(composer.cnvSequence("mg"), "ㄇㄜ");
ASSERT_EQ(composer.cnvSequence("mgj"), "ㄇㄜˋ");
ASSERT_EQ(composer.cnvSequence("mgs"), "ㄇㄜ˙");
ASSERT_EQ(composer.cnvSequence("mi"), "ㄇㄞ");
ASSERT_EQ(composer.cnvSequence("mid"), "ㄇㄞˊ");
ASSERT_EQ(composer.cnvSequence("mif"), "ㄇㄞˇ");
ASSERT_EQ(composer.cnvSequence("mij"), "ㄇㄞˋ");
ASSERT_EQ(composer.cnvSequence("mad"), "ㄇㄟˊ");
ASSERT_EQ(composer.cnvSequence("maf"), "ㄇㄟˇ");
ASSERT_EQ(composer.cnvSequence("maj"), "ㄇㄟˋ");
ASSERT_EQ(composer.cnvSequence("mw"), "ㄇㄠ");
ASSERT_EQ(composer.cnvSequence("mwd"), "ㄇㄠˊ");
ASSERT_EQ(composer.cnvSequence("mwf"), "ㄇㄠˇ");
ASSERT_EQ(composer.cnvSequence("mwj"), "ㄇㄠˋ");
ASSERT_EQ(composer.cnvSequence("mod"), "ㄇㄡˊ");
ASSERT_EQ(composer.cnvSequence("mof"), "ㄇㄡˇ");
ASSERT_EQ(composer.cnvSequence("moj"), "ㄇㄡˋ");
ASSERT_EQ(composer.cnvSequence("mm"), "ㄇㄢ");
ASSERT_EQ(composer.cnvSequence("mmd"), "ㄇㄢˊ");
ASSERT_EQ(composer.cnvSequence("mmf"), "ㄇㄢˇ");
ASSERT_EQ(composer.cnvSequence("mmj"), "ㄇㄢˋ");
ASSERT_EQ(composer.cnvSequence("mn"), "ㄇㄣ");
ASSERT_EQ(composer.cnvSequence("mnd"), "ㄇㄣˊ");
ASSERT_EQ(composer.cnvSequence("mnf"), "ㄇㄣˇ");
ASSERT_EQ(composer.cnvSequence("mnj"), "ㄇㄣˋ");
ASSERT_EQ(composer.cnvSequence("mns"), "ㄇㄣ˙");
ASSERT_EQ(composer.cnvSequence("mk"), "ㄇㄤ");
ASSERT_EQ(composer.cnvSequence("mkd"), "ㄇㄤˊ");
ASSERT_EQ(composer.cnvSequence("mkf"), "ㄇㄤˇ");
ASSERT_EQ(composer.cnvSequence("mkj"), "ㄇㄤˋ");
ASSERT_EQ(composer.cnvSequence("ml"), "ㄇㄥ");
ASSERT_EQ(composer.cnvSequence("mld"), "ㄇㄥˊ");
ASSERT_EQ(composer.cnvSequence("mlf"), "ㄇㄥˇ");
ASSERT_EQ(composer.cnvSequence("mlj"), "ㄇㄥˋ");
ASSERT_EQ(composer.cnvSequence("me"), "ㄇㄧ");
ASSERT_EQ(composer.cnvSequence("med"), "ㄇㄧˊ");
ASSERT_EQ(composer.cnvSequence("mef"), "ㄇㄧˇ");
ASSERT_EQ(composer.cnvSequence("mej"), "ㄇㄧˋ");
ASSERT_EQ(composer.cnvSequence("mee"), "ㄇㄧㄝ");
ASSERT_EQ(composer.cnvSequence("meed"), "ㄇㄧㄝˊ");
ASSERT_EQ(composer.cnvSequence("meej"), "ㄇㄧㄝˋ");
ASSERT_EQ(composer.cnvSequence("mew"), "ㄇㄧㄠ");
ASSERT_EQ(composer.cnvSequence("mewd"), "ㄇㄧㄠˊ");
ASSERT_EQ(composer.cnvSequence("mewf"), "ㄇㄧㄠˇ");
ASSERT_EQ(composer.cnvSequence("mewj"), "ㄇㄧㄠˋ");
ASSERT_EQ(composer.cnvSequence("meod"), "ㄇㄧㄡˊ");
ASSERT_EQ(composer.cnvSequence("meof"), "ㄇㄧㄡˇ");
ASSERT_EQ(composer.cnvSequence("meoj"), "ㄇㄧㄡˋ");
ASSERT_EQ(composer.cnvSequence("mem"), "ㄇㄧㄢ");
ASSERT_EQ(composer.cnvSequence("memd"), "ㄇㄧㄢˊ");
ASSERT_EQ(composer.cnvSequence("memf"), "ㄇㄧㄢˇ");
ASSERT_EQ(composer.cnvSequence("memj"), "ㄇㄧㄢˋ");
ASSERT_EQ(composer.cnvSequence("men"), "ㄇㄧㄣ");
ASSERT_EQ(composer.cnvSequence("mend"), "ㄇㄧㄣˊ");
ASSERT_EQ(composer.cnvSequence("menf"), "ㄇㄧㄣˇ");
ASSERT_EQ(composer.cnvSequence("meld"), "ㄇㄧㄥˊ");
ASSERT_EQ(composer.cnvSequence("melf"), "ㄇㄧㄥˇ");
ASSERT_EQ(composer.cnvSequence("melj"), "ㄇㄧㄥˋ");
ASSERT_EQ(composer.cnvSequence("mxd"), "ㄇㄨˊ");
ASSERT_EQ(composer.cnvSequence("mxf"), "ㄇㄨˇ");
ASSERT_EQ(composer.cnvSequence("mxj"), "ㄇㄨˋ");
ASSERT_EQ(composer.cnvSequence("fy"), "ㄈㄚ");
ASSERT_EQ(composer.cnvSequence("fyd"), "ㄈㄚˊ");
ASSERT_EQ(composer.cnvSequence("fyf"), "ㄈㄚˇ");
ASSERT_EQ(composer.cnvSequence("fyj"), "ㄈㄚˋ");
ASSERT_EQ(composer.cnvSequence("fhd"), "ㄈㄛˊ");
ASSERT_EQ(composer.cnvSequence("fa"), "ㄈㄟ");
ASSERT_EQ(composer.cnvSequence("fad"), "ㄈㄟˊ");
ASSERT_EQ(composer.cnvSequence("faf"), "ㄈㄟˇ");
ASSERT_EQ(composer.cnvSequence("faj"), "ㄈㄟˋ");
ASSERT_EQ(composer.cnvSequence("fo"), "ㄈㄡ");
ASSERT_EQ(composer.cnvSequence("fod"), "ㄈㄡˊ");
ASSERT_EQ(composer.cnvSequence("fof"), "ㄈㄡˇ");
ASSERT_EQ(composer.cnvSequence("foj"), "ㄈㄡˋ");
ASSERT_EQ(composer.cnvSequence("fm"), "ㄈㄢ");
ASSERT_EQ(composer.cnvSequence("fmd"), "ㄈㄢˊ");
ASSERT_EQ(composer.cnvSequence("fmf"), "ㄈㄢˇ");
ASSERT_EQ(composer.cnvSequence("fmj"), "ㄈㄢˋ");
ASSERT_EQ(composer.cnvSequence("fn"), "ㄈㄣ");
ASSERT_EQ(composer.cnvSequence("fnd"), "ㄈㄣˊ");
ASSERT_EQ(composer.cnvSequence("fnf"), "ㄈㄣˇ");
ASSERT_EQ(composer.cnvSequence("fnj"), "ㄈㄣˋ");
ASSERT_EQ(composer.cnvSequence("fns"), "ㄈㄣ˙");
ASSERT_EQ(composer.cnvSequence("fk"), "ㄈㄤ");
ASSERT_EQ(composer.cnvSequence("fkd"), "ㄈㄤˊ");
ASSERT_EQ(composer.cnvSequence("fkf"), "ㄈㄤˇ");
ASSERT_EQ(composer.cnvSequence("fkj"), "ㄈㄤˋ");
ASSERT_EQ(composer.cnvSequence("fl"), "ㄈㄥ");
ASSERT_EQ(composer.cnvSequence("fld"), "ㄈㄥˊ");
ASSERT_EQ(composer.cnvSequence("flf"), "ㄈㄥˇ");
ASSERT_EQ(composer.cnvSequence("flj"), "ㄈㄥˋ");
ASSERT_EQ(composer.cnvSequence("fewj"), "ㄈㄧㄠˋ");
ASSERT_EQ(composer.cnvSequence("fx"), "ㄈㄨ");
ASSERT_EQ(composer.cnvSequence("fxd"), "ㄈㄨˊ");
ASSERT_EQ(composer.cnvSequence("fxf"), "ㄈㄨˇ");