예제 #1
0
    def run(self):
        if self.kwargs == {}:
            kwargs = self.parse_args(self.argv)
        else:
            kwargs = self.kwargs

        checker = KanayureChecker(**kwargs)
        status_code = checker.run()
        sys.exit(status_code)
예제 #2
0
    def test_make_re_near_word(self, mock_run):
        from kanayure.checker import KanayureChecker
        testdata = (("アー", ["ア"], ["イ"]),
                    ("ア・イ", ["アイ", "アーイ"], ["ア・ン", "ア・"]),
                    ("バック・ステップ", ["バックステップ"], []),
                    ("バックステップ", ["バック・ステップ"], []),
                    ("チップ", [], ["テープ"]))
        for test_input, match_tests, no_match_tests in testdata:
            checker = KanayureChecker()
            re_near_word = checker.make_re_near_word(test_input)
            self.assertRegex(test_input, r"\A" + re_near_word + r"\Z")
            for match_test in match_tests:
                self.assertRegex(match_test, r"\A" + re_near_word + r"\Z")
            for no_match_test in no_match_tests:
                self.assertNotRegex(no_match_test,
                                    r"\A" + re_near_word + r"\Z")

        testdata = (("ディストラクタ", "デストラクタ"),
                    ("ヴァヴィヴヴェヴォ", "バビブベボ"),
                    ("イアー", "イヤー"),
                    ("ファフィフフェフォ", "ハヒフヘホ"),
                    ("エックストラ", "エキストラ", "エクストラ"),
                    ("イクス", "エクス"),
                    ("リファレンス", "レファレンス"),
                    ("ロケール", "ロカール"),
                    ("パーザ", "パーサー"),
                    ("イヤー", "イア"),
                    ("クォート", "クオート"),
                    ("ウインドウ",
                     "ウィンドウ",
                     "ウィンドゥ",
                     "ウィンドー",
                     "ウインドー"),
                    ("インターフェース", "インタフェイス"),
                    ("チェーン", "チェイン"),
                    ("メーラ", "メイラー"),
                    ("ヘッダブロック", "ヘッダーブロック"),
                    ("ティップ", "チップ"),
                    ("ピア・トゥ・ピア", "ピアツーピア"),
                    ("シグニチャ",
                     "シグネチャ",
                     "シグネイチャ",
                     "シグネーチャ"),
                    ("コンフィギュレーション", "コンフィグレーション"))
        for variants in testdata:
            re_variant = None
            for variant in variants:
                if re_variant is None:
                    re_variant = checker.make_re_near_word(variant)
                else:
                    self.assertEqual(checker.make_re_near_word(variant),
                                     re_variant,
                                     variant)
                self.assertRegex(test_input,
                                 r"\A" + re_near_word + r"\Z",
                                 variant)
예제 #3
0
 def test_make_near_index_base(self, mock_run):
     from kanayure.checker import KanayureChecker
     testdata = ((["アー", "ア"], {'ア': {'アー'}, 'アー': {'ア'}}),
                 (["ア", "アー"], {'ア': {'アー'}, 'アー': {'ア'}}),
                 (["ア", "ン"], {}),
                 (["ア・", "ア"], {'ア': {'ア・'}, 'ア・': {'ア'}}))
     for test_input, test_output in testdata:
         checker = KanayureChecker()
         near_index_base = checker.make_near_index_base(test_input)
         self.assertEqual(near_index_base, test_output)
예제 #4
0
 def test_find_near_words(self, mock_run):
     from kanayure.checker import KanayureChecker
     near_index_base = {"A": {"B"},
                        "C": {"B"}}
     testdata = (("A", {}, {}, set(), {"A", "B"}),
                 ("A", {}, {}, {"B"}, {"A", "B"}),
                 ("A", {}, {}, {"A", "B"}, {"A", "B"}),
                 ("C", {}, {}, {"A", "B"}, {"A", "B", "C"}),
                 ("A", {"B": "C"}, {"C": {"B", "C"}},
                  {"B"}, {"A", "B", "C"}))
     for num, (word,
               typical_word,
               near_index,
               near_words_in,
               near_words_out) in enumerate(testdata):
         checker = KanayureChecker()
         checker.near_index_base = near_index_base
         checker.near_index = near_index
         checker.typical_word = typical_word
         result = checker.find_near_words(word, near_words_in)
         self.assertSetEqual(result,
                             near_words_out,
                             "testdata = " + repr(testdata[num]))