#coding: utf-8
import re
import unittest
import replace_lib
import sexp

class TestMain(unittest.TestCase):
    # def setUp(self):
    #   #初期化処理
    #   pass

    # def tearDown(self):
    #   #終了処理
    #   pass

    def test_search_lemma0(self):
        pos = "動詞"
        lemma = "好く"
        yomi = "すく"

        expected = '(動詞 ((読み すく)(見出し語 好く すく)(活用型 子音動詞カ行)(意味情報 "代表表記:好く/すく 反義:動詞:嫌う/きらう")))'
        actual = replace_lib.search_lemma(pos, lemma, yomi)
        self.assertEquals(actual, expected)

    def test_get_katuyou_type_and_info_from_juman_dic0(self):
        lemma = "好く"
        yomi = "すく"
        pos = "動詞"
        actual_katuyou, actual_info = replace_lib.get_katuyou_type_and_info_from_juman_dic(pos, lemma, yomi)
        self.assertEquals(actual_katuyou, "子音動詞カ行")
        self.assertEquals(actual_info, '"代表表記:好く/すく 反義:動詞:嫌う/きらう"')

    def test_extract_antonyms_from_token_line0(self):
        ind = 0
        token_line = '守る まもる 守る 動詞 2 * 0 子音動詞ラ行 10 基本形 2 "代表表記:守る/まもる 反義:動詞:攻める/せめる;動詞:破る/やぶる" <代表表記:守る/まもる><反義:動詞:攻める/せめる;動詞:破る/やぶる><正規化代表表記:守る/まもる><文頭><文末><表現文末><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>'

        actual = replace_lib.extract_antonyms_from_token_line(ind, token_line)
        expected = [(0, "動詞", "攻める", "せめる"), (0, "動詞", "破る", "やぶる")]
        self.assertEquals(actual, expected)

    def test_replace_juman_line_with_antonym0(self):
        line = '守る まもる 守る 動詞 2 * 0 子音動詞ラ行 10 基本形 2 "代表表記:守る/まもる 反義:動詞:攻める/せめる;動詞:破る/やぶる" <代表表記:守る/まもる><反義:動詞:攻める/せめる;動詞:破る/やぶる><正規化代表表記:守る/まもる><文頭><文末><表現文末><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>'
        pos = "動詞"
        lemma = "攻める"
        yomi = "せめる"

        actual = replace_lib.replace_juman_line_with_antonym(line, pos, lemma, yomi)
        expected = '攻める せめる 攻める 動詞 * * * 母音動詞 * 基本形 * "代表表記:攻める/せめる ドメイン:スポーツ 反義:動詞:守る/まもる;動詞:防ぐ/ふせぐ"'
        self.assertEquals(actual, expected)


    def test_replace_juman_line_with_antonym1(self):
        line = '攻めて せめて 攻める 動詞 2 * 0 母音動詞 1 タ系連用テ形 14 "代表表記:攻める/せめる ドメイン:スポーツ 反義:動詞:守る/まもる;動詞:防ぐ/ふせぐ" <代表表記:攻める/せめる><ドメイン:スポーツ><反義:動詞:守る/まもる;動詞:防ぐ/ふせぐ><正規化代表表記:攻める/せめる><文頭><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>'
        pos = "動詞"
        lemma = "守る"
        yomi = "まもる"

        actual = replace_lib.replace_juman_line_with_antonym(line, pos, lemma, yomi)
        expected = '守って まもって 守る 動詞 * * * 子音動詞ラ行 * タ系連用テ形 * "代表表記:守る/まもる 反義:動詞:攻める/せめる;動詞:破る/やぶる"'
        self.assertEquals(actual, expected)


    def test_replace_juman_line_with_antonym2(self):
        line = 'うまく うまく うまい 形容詞 3 * 0 イ形容詞アウオ段 18 基本連用形 7 "代表表記:上手い/うまい 反義:形容詞:下手だ/へただ" <代表表記:上手い/うまい><反義:形容詞:まずい/まずい><正規化代表表記:上手い/うまい?旨い/うまい><品曖><ALT-うまく-うまく-うまい-3-0-18-7-"代表表記:旨い/うまい ドメイン:料理・食事 反義:形容詞:まずい/まずい"><品曖-形容詞><原形曖昧><かな漢字><ひらがな><活用語><自立><内容語><タグ単位始><文節始><文節主辞><係:連用>'
        pos = "形容詞"
        lemma = "下手だ"
        yomi = "へただ"

        actual = replace_lib.replace_juman_line_with_antonym(line, pos, lemma, yomi)
        expected = '下手に へたに 下手だ 形容詞 * * * ナ形容詞 * 基本連用形 * "代表表記:下手だ/へただ 反義:形容詞:上手い/うまい;形容詞:上手だ/うわてだ;形容詞:上手だ/じょうずだ"'
        self.assertEquals(actual, expected)

    def test_replace_juman_line_with_antonym3(self):
        line = 'カンタンに カンタンに カンタンだ 形容詞 3 * 0 ナ形容詞 21 ダ列基本連用形 7 "代表表記:簡単だ/かんたんだ 反義:形容詞:複雑だ/ふくざつだ 自動獲得:テキスト 既知語帰着:表記・出現類似" <代表表記:簡単だ/かんたんだ><反義:形容詞:複雑だ/ふくざつだ><自動獲得:テキスト><既知語帰着:表記・出現類似><正規化代表表記:簡単だ/かんたんだ><文頭><活用語><自立><内容語><タグ単位始><文節始><文節主辞><係:連用>'
        pos = "形容詞"
        lemma = "複雑だ"
        yomi = "ふくざつだ"

        actual = replace_lib.replace_juman_line_with_antonym(line, pos, lemma, yomi)
        expected = '複雑に ふくざつに 複雑だ 形容詞 * * * ナ形容詞 * ダ列基本連用形 * "代表表記:複雑だ/ふくざつだ 反義:形容詞:簡単だ/かんたんだ;形容詞:単純だ/たんじゅんだ"'
        self.assertEquals([actual], [expected])

    def test_replace_juman_line_with_antonym4(self):
        line = 'ウソ うそ ウソ 名詞 6 普通名詞 1 * 0 * 0 "代表表記:嘘/うそ カテゴリ:抽象物 反義:形容詞:本当だ/ほんとうだ" <代表表記:嘘/うそ><カテゴリ:抽象物><反義:形容詞:本当だ/ほんとうだ><正規化代表表記:嘘/うそ><文頭><記英数カ><カタカナ><名詞相当語><自立><内容語><タグ単位始><文節始><固有キー><文節主辞><係:ト格>'

        pos = "形容詞"
        lemma = "本当だ"
        yomi = "ほんとうだ"

        actual = replace_lib.replace_juman_line_with_antonym(line, pos, lemma, yomi)
        expected = '本当 ほんとう 本当だ 形容詞 * * * ナノ形容詞 * 語幹 * "代表表記:本当だ/ほんとうだ 反義:名詞-普通名詞:嘘/うそ"'
        self.assertEquals([actual], [expected])

    def test_replace_juman_line_with_antonym5(self):
        line = '本当だ ほんとうだ 本当だ 形容詞 3 * 0 ナノ形容詞 22 基本形 2 "代表表記:本当だ/ほんとうだ 反義:名詞-普通名詞:嘘/うそ" <代表表記:本当だ/ほんとうだ><反義:名詞-普通名詞:嘘/うそ><正規化代表表記:本当だ/ほんとうだ><文頭><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞><係:ト格>'

        pos = "名詞-普通名詞"
        lemma = "嘘"
        yomi = "うそ"

        actual = replace_lib.replace_juman_line_with_antonym(line, pos, lemma, yomi)
        expected = '嘘 うそ 嘘 名詞 * 普通名詞 * * * * * "代表表記:嘘/うそ カテゴリ:抽象物 反義:形容詞:本当だ/ほんとうだ"'

        self.assertEquals([actual], [expected])

    def test_replace_juman_line_with_antonym_6(self):
        line = '私用 しよう 私用 名詞 6 サ変名詞 2 * 0 * 0 "代表表記:私用/しよう カテゴリ:抽象物 反義:名詞-普通名詞:公用/こうよう"'
        pos = "名詞-普通名詞"
        lemma = "公用"
        yomi = "こうよう"

        actual = replace_lib.replace_juman_line_with_antonym(line, pos, lemma, yomi)
        expected = '公用 こうよう 公用 名詞 * 普通名詞 * * * * * "代表表記:公用/こうよう カテゴリ:抽象物 ドメイン:政治 反義:名詞-サ変名詞:私用/しよう"'
        self.assertEquals([actual], [expected])

    #品詞変更がある場合
    def test_replace_juman_line_with_antonym_7(self):
        line = '伸ばし のばし 伸ばし 名詞 6 普通名詞 1 * 0 * 0 "代表表記:伸ばし/のばしv 代表表記変更:伸ばす/のばす 自他動詞:自:伸びる/のびる 反義:動詞:曲げる/まげる;動詞:縮める/ちぢめる 品詞変更:伸ばし-のばし-伸ばす-2-0-5-8" <代表表記:伸ばし/のばしv><自他動詞:自:伸びる/のびる><反義:動詞:曲げる/まげる;動詞:縮める/ちぢめる><正規化代表表記:伸ばし/のばしv><かな漢字><品詞変更:伸ばし-のばし-伸ばす-2-0-5-8-"代表表記:伸ばす/のばす 自他動詞:自:伸びる/のびる 反義:動詞:曲げる/まげる;動詞:縮める/ちぢめる"><代表表記変更:伸ばす/のばす><名詞相当語><自立><内容語><タグ単位始><文節始>'

        pos = "動詞"
        lemma = "曲げる"
        yomi = "まげる"

        actual = replace_lib.replace_juman_line_with_antonym(line, pos, lemma, yomi)
        expected = '曲げ まげ 曲げる 動詞 * * * 母音動詞 * 基本連用形 * "代表表記:曲げる/まげる 自他動詞:自:曲がる/まがる 反義:動詞:伸ばす/のばす"'
        self.assertEquals([actual], [expected])


    def test_replace_with_antonym_pairs0(self):
        token_lines = ['あ あ あ 感動詞 12 * 0 * 0 * 0 "代表表記:あ/あ"']
        antonym_pairs = []
        actual = replace_lib.replace_with_antonym_pairs(token_lines, antonym_pairs)
        expected = ['あ あ あ 感動詞 12 * 0 * 0 * 0 "代表表記:あ/あ"']
        self.assertEquals(actual, expected)

    def test_replace_with_antonym_pairs1(self):
        token_lines = ['攻める せめる 攻める 動詞 2 * 0 母音動詞 1 基本形 2 "代表表記:攻める/せめる ドメイン:スポーツ 反義:動詞:守る/まもる;動詞:防ぐ/ふせぐ" <代表表記:攻める/せめる><ドメイン:スポーツ><反義:動詞:守る/まもる;動詞:防ぐ/ふせぐ><正規化代表表記:攻める/せめる><文頭><文末><表現文末><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>']
        antonym_pairs = [(0, "動詞", "守る", "まもる")]
        actual = replace_lib.replace_with_antonym_pairs(token_lines, antonym_pairs)
        expected = ['守る まもる 守る 動詞 * * * 子音動詞ラ行 * 基本形 * "代表表記:守る/まもる 反義:動詞:攻める/せめる;動詞:破る/やぶる"']
        self.assertEquals(actual, expected)

    def test_replace_with_antonym_pairs2(self):
        token_lines = ['攻めろ せめろ 攻める 動詞 2 * 0 母音動詞 1 命令形 6 "代表表記:攻める/せめる ドメイン:スポーツ 反義:動詞:守る/まもる;動詞:防ぐ/ふせぐ" <代表表記:攻める/せめる><ドメイン:スポーツ><反義:動詞:守る/まもる;動詞:防ぐ/ふせぐ><正規化代表表記:攻める/せめる><文頭><文末><表現文末><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>']
        antonym_pairs = [(0, "動詞", "守る", "まもる")]
        actual = replace_lib.replace_with_antonym_pairs(token_lines, antonym_pairs)
        expected = ['守れ まもれ 守る 動詞 * * * 子音動詞ラ行 * 命令形 * "代表表記:守る/まもる 反義:動詞:攻める/せめる;動詞:破る/やぶる"']
        self.assertEquals(actual, expected)

    def test_replace_with_antonym_pairs3(self):
        token_lines = ['攻めて せめて 攻める 動詞 2 * 0 母音動詞 1 タ系連用テ形 14 "代表表記:攻める/せめる ドメイン:スポーツ 反義:動詞:守る/まもる;動詞:防ぐ/ふせぐ" <代表表記:攻める/せめる><ドメイン:スポーツ><反義:動詞:守る/まもる;動詞:防ぐ/ふせぐ><正規化代表表記:攻める/せめる><文頭><文末><表現文末><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>']
        antonym_pairs = [(0, "動詞", "守る", "まもる")]
        actual = replace_lib.replace_with_antonym_pairs(token_lines, antonym_pairs)
        expected = ['守って まもって 守る 動詞 * * * 子音動詞ラ行 * タ系連用テ形 * "代表表記:守る/まもる 反義:動詞:攻める/せめる;動詞:破る/やぶる"']
        self.assertEquals(actual, expected)

    def test_replace_with_antonym_pairs4(self):
        token_lines = ['攻めて せめて 攻める 動詞 2 * 0 母音動詞 1 タ系連用テ形 14 "代表表記:攻める/せめる ドメイン:スポーツ 反義:動詞:守る/まもる;動詞:防ぐ/ふせぐ" <代表表記:攻める/せめる><ドメイン:スポーツ><反義:動詞:守る/まもる;動詞:防ぐ/ふせぐ><正規化代表表記:攻める/せめる><文頭><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>', 'は は は 助詞 9 副助詞 2 * 0 * 0 NIL <文末><表現文末><かな漢字><ひらがな><付属>']
        antonym_pairs = [(0, "動詞", "守る", "まもる")]
        actual = replace_lib.replace_with_antonym_pairs(token_lines, antonym_pairs)
        expected = ['守って まもって 守る 動詞 * * * 子音動詞ラ行 * タ系連用テ形 * "代表表記:守る/まもる 反義:動詞:攻める/せめる;動詞:破る/やぶる"', 'は は は 助詞 9 副助詞 2 * 0 * 0 NIL <文末><表現文末><かな漢字><ひらがな><付属>']
        self.assertEquals(actual, expected)

    def test_replace_with_token_with_antonym_pairs5(self):
        token_lines = """
ただ ただ ただ 副詞 8 * 0 * 0 * 0 "代表表記:唯/ただ 数量修飾 修飾（デ格）" <代表表記:唯/ただ><数量修飾><修飾（デ格）><正規化代表表記:唯/ただ><文頭><かな漢字><ひらがな><自立><内容語><タグ単位始><文節始><文節主辞><係:連用>
、 、 、 特殊 1 読点 2 * 0 * 0 NIL <英記号><記号><述語区切><付属>
世界 せかい 世界 名詞 6 普通名詞 1 * 0 * 0 "代表表記:世界/せかい カテゴリ:場所-その他" <代表表記:世界/せかい><カテゴリ:場所-その他><正規化代表表記:世界/せかい><漢字><かな漢字><名詞相当語><自立><内容語><タグ単位始><文節始><文節主辞><係:ガ格>
が が が 助詞 9 格助詞 1 * 0 * 0 NIL <かな漢字><ひらがな><付属>
うまく うまく うまい 形容詞 3 * 0 イ形容詞アウオ段 18 基本連用形 7 "代表表記:上手い/うまい 反義:形容詞:下手だ/へただ" <代表表記:上手い/うまい><反義:形容詞:まずい/まずい><正規化代表表記:上手い/うまい?旨い/うまい><品曖><ALT-うまく-うまく-うまい-3-0-18-7-"代表表記:旨い/うまい ドメイン:料理・食事 反義:形容詞:まずい/まずい"><品曖-形容詞><原形曖昧><かな漢字><ひらがな><活用語><自立><内容語><タグ単位始><文節始><文節主辞><係:連用>
自分 じぶん 自分 名詞 6 普通名詞 1 * 0 * 0 "代表表記:自分/じぶん 修飾（デ格） カテゴリ:人" <代表表記:自分/じぶん><修飾（デ格）><カテゴリ:人><正規化代表表記:自分/じぶん><漢字><かな漢字><名詞相当語><自立><内容語><タグ単位始><文節始><文節主辞><係:ノ格>
の の の 助詞 9 格助詞 1 * 0 * 0 NIL <かな漢字><ひらがな><付属>
思い通りに おもいどおりに 思い通りだ 形容詞 3 * 0 ナノ形容詞 22 ダ列基本連用形 8 "代表表記:思い通りだ/おもいどおりだ" <代表表記:思い通りだ/おもいどおりだ><正規化代表表記:思い通りだ/おもいどおりだ><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞><係:連用>
回転 かいてん 回転 名詞 6 サ変名詞 2 * 0 * 0 "代表表記:回転/かいてん カテゴリ:抽象物" <代表表記:回転/かいてん><カテゴリ:抽象物><正規化代表表記:回転/かいてん><漢字><かな漢字><名詞相当語><サ変><サ変動詞><自立><内容語><タグ単位始><文節始><文節主辞><係:連用>
して して する 動詞 2 * 0 サ変動詞 16 タ系連用テ形 14 "代表表記:する/する 付属動詞候補（基本） 自他動詞:自:成る/なる" <代表表記:する/する><付属動詞候補（基本）><自他動詞:自:成る/なる><正規化代表表記:する/する><とタ系連用テ形複合辞><かな漢字><ひらがな><活用語><付属>
も も も 助詞 9 副助詞 2 * 0 * 0 NIL <かな漢字><ひらがな><付属>
、 、 、 特殊 1 読点 2 * 0 * 0 NIL <英記号><記号><述語区切><付属>
自分 じぶん 自分 名詞 6 普通名詞 1 * 0 * 0 "代表表記:自分/じぶん 修飾（デ格） カテゴリ:人" <代表表記:自分/じぶん><修飾（デ格）><カテゴリ:人><正規化代表表記:自分/じぶん><漢字><かな漢字><名詞相当語><自立><内容語><タグ単位始><文節始><文節主辞><係:ノ格>
の の の 助詞 9 接続助詞 3 * 0 * 0 NIL <かな漢字><ひらがな><付属>
才能 さいのう 才能 名詞 6 普通名詞 1 * 0 * 0 "代表表記:才能/さいのう カテゴリ:抽象物" <代表表記:才能/さいのう><カテゴリ:抽象物><正規化代表表記:才能/さいのう><漢字><かな漢字><名詞相当語><自立><内容語><タグ単位始><文節始><文節主辞><係:ト格>
だ だ だ 判定詞 4 * 0 判定詞 25 基本形 2 NIL <かな漢字><ひらがな><活用語><付属>
と と と 助詞 9 格助詞 1 * 0 * 0 NIL <かな漢字><ひらがな><付属>
思い おもい 思う 動詞 2 * 0 子音動詞ワ行 12 基本連用形 8 "代表表記:思う/おもう 補文ト" <代表表記:思う/おもう><補文ト><正規化代表表記:思う/おもう><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>
こま こま こむ 動詞 2 * 0 子音動詞マ行 9 未然形 3 "代表表記:込む/こむ 付属動詞候補（基本） 反義:動詞:空く/すく" <代表表記:込む/こむ><付属動詞候補（基本）><反義:動詞:空く/すく><正規化代表表記:込む/こむ><かな漢字><ひらがな><活用語><付属>
ないで ないで ぬ 助動詞 5 * 0 助動詞ぬ型 27 タ系連用テ形 9 NIL <かな漢字><ひらがな><活用語><否定><付属>
ください ください くださる 接尾辞 14 動詞性接尾辞 7 子音動詞ラ行イ形 11 命令形 6 "代表表記:下さる/くださる" <代表表記:下さる/くださる><正規化代表表記:下さる/くださる><表現文末><かな漢字><ひらがな><活用語><付属>
。 。 。 特殊 1 句点 1 * 0 * 0 NIL <文末><英記号><記号><付属>
"""[1:-1].split('\n') #初めの改行をカット


        antonym_pairs = [(4, "形容詞", "下手だ", "へただ")]

        expected = """
ただ ただ ただ 副詞 8 * 0 * 0 * 0 "代表表記:唯/ただ 数量修飾 修飾（デ格）" <代表表記:唯/ただ><数量修飾><修飾（デ格）><正規化代表表記:唯/ただ><文頭><かな漢字><ひらがな><自立><内容語><タグ単位始><文節始><文節主辞><係:連用>
、 、 、 特殊 1 読点 2 * 0 * 0 NIL <英記号><記号><述語区切><付属>
世界 せかい 世界 名詞 6 普通名詞 1 * 0 * 0 "代表表記:世界/せかい カテゴリ:場所-その他" <代表表記:世界/せかい><カテゴリ:場所-その他><正規化代表表記:世界/せかい><漢字><かな漢字><名詞相当語><自立><内容語><タグ単位始><文節始><文節主辞><係:ガ格>
が が が 助詞 9 格助詞 1 * 0 * 0 NIL <かな漢字><ひらがな><付属>
下手に へたに 下手だ 形容詞 * * * ナ形容詞 * 基本連用形 * "代表表記:下手だ/へただ 反義:形容詞:上手い/うまい;形容詞:上手だ/うわてだ;形容詞:上手だ/じょうずだ"
自分 じぶん 自分 名詞 6 普通名詞 1 * 0 * 0 "代表表記:自分/じぶん 修飾（デ格） カテゴリ:人" <代表表記:自分/じぶん><修飾（デ格）><カテゴリ:人><正規化代表表記:自分/じぶん><漢字><かな漢字><名詞相当語><自立><内容語><タグ単位始><文節始><文節主辞><係:ノ格>
の の の 助詞 9 格助詞 1 * 0 * 0 NIL <かな漢字><ひらがな><付属>
思い通りに おもいどおりに 思い通りだ 形容詞 3 * 0 ナノ形容詞 22 ダ列基本連用形 8 "代表表記:思い通りだ/おもいどおりだ" <代表表記:思い通りだ/おもいどおりだ><正規化代表表記:思い通りだ/おもいどおりだ><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞><係:連用>
回転 かいてん 回転 名詞 6 サ変名詞 2 * 0 * 0 "代表表記:回転/かいてん カテゴリ:抽象物" <代表表記:回転/かいてん><カテゴリ:抽象物><正規化代表表記:回転/かいてん><漢字><かな漢字><名詞相当語><サ変><サ変動詞><自立><内容語><タグ単位始><文節始><文節主辞><係:連用>
して して する 動詞 2 * 0 サ変動詞 16 タ系連用テ形 14 "代表表記:する/する 付属動詞候補（基本） 自他動詞:自:成る/なる" <代表表記:する/する><付属動詞候補（基本）><自他動詞:自:成る/なる><正規化代表表記:する/する><とタ系連用テ形複合辞><かな漢字><ひらがな><活用語><付属>
も も も 助詞 9 副助詞 2 * 0 * 0 NIL <かな漢字><ひらがな><付属>
、 、 、 特殊 1 読点 2 * 0 * 0 NIL <英記号><記号><述語区切><付属>
自分 じぶん 自分 名詞 6 普通名詞 1 * 0 * 0 "代表表記:自分/じぶん 修飾（デ格） カテゴリ:人" <代表表記:自分/じぶん><修飾（デ格）><カテゴリ:人><正規化代表表記:自分/じぶん><漢字><かな漢字><名詞相当語><自立><内容語><タグ単位始><文節始><文節主辞><係:ノ格>
の の の 助詞 9 接続助詞 3 * 0 * 0 NIL <かな漢字><ひらがな><付属>
才能 さいのう 才能 名詞 6 普通名詞 1 * 0 * 0 "代表表記:才能/さいのう カテゴリ:抽象物" <代表表記:才能/さいのう><カテゴリ:抽象物><正規化代表表記:才能/さいのう><漢字><かな漢字><名詞相当語><自立><内容語><タグ単位始><文節始><文節主辞><係:ト格>
だ だ だ 判定詞 4 * 0 判定詞 25 基本形 2 NIL <かな漢字><ひらがな><活用語><付属>
と と と 助詞 9 格助詞 1 * 0 * 0 NIL <かな漢字><ひらがな><付属>
思い おもい 思う 動詞 2 * 0 子音動詞ワ行 12 基本連用形 8 "代表表記:思う/おもう 補文ト" <代表表記:思う/おもう><補文ト><正規化代表表記:思う/おもう><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>
こま こま こむ 動詞 2 * 0 子音動詞マ行 9 未然形 3 "代表表記:込む/こむ 付属動詞候補（基本） 反義:動詞:空く/すく" <代表表記:込む/こむ><付属動詞候補（基本）><反義:動詞:空く/すく><正規化代表表記:込む/こむ><かな漢字><ひらがな><活用語><付属>
ないで ないで ぬ 助動詞 5 * 0 助動詞ぬ型 27 タ系連用テ形 9 NIL <かな漢字><ひらがな><活用語><否定><付属>
ください ください くださる 接尾辞 14 動詞性接尾辞 7 子音動詞ラ行イ形 11 命令形 6 "代表表記:下さる/くださる" <代表表記:下さる/くださる><正規化代表表記:下さる/くださる><表現文末><かな漢字><ひらがな><活用語><付属>
。 。 。 特殊 1 句点 1 * 0 * 0 NIL <文末><英記号><記号><付属>
"""[1:-1].split('\n') #初めの改行をカット

        actual = replace_lib.replace_with_antonym_pairs(token_lines, antonym_pairs)
        self.assertEquals(actual, expected)


    def test_remove_negation_from_suruna0(self):
        token_lines = ['歩く あるく 歩く 動詞 2 * 0 子音動詞カ行 2 基本形 2 "代表表記:歩く/あるく" <代表表記:歩く/あるく><正規化代表表記:歩く/あるく><文頭><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>', 'な な な 助詞 9 終助詞 4 * 0 * 0 NIL <文末><表現文末><かな漢字><ひらがな><付属>']

        actual = replace_lib.remove_negation_from_suruna(token_lines)
        expected = ['歩き あるき 歩く 動詞 * * * 子音動詞カ行 * 基本連用形 * "代表表記:歩く/あるく" <代表表記:歩く/あるく><正規化代表表記:歩く/あるく><文頭><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>', 'ましょう ましょう ます 接尾辞 14 動詞性接尾辞 7 動詞性接尾辞ます型 31 意志形 4 "代表表記:ます/ます"']
        self.assertEquals(actual, expected)

    def test_remove_negation_from_ikemasen0(self):
        token_lines = """
歩いて あるいて 歩く 動詞 2 * 0 子音動詞カ行 2 タ系連用テ形 14 "代表表記:歩く/あるく" <代表表記:歩く/あるく><正規化代表表記:歩く/あるく><文頭><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>
は は は 助詞 9 副助詞 2 * 0 * 0 NIL <かな漢字><ひらがな><付属>
いけ いけ いける 動詞 2 * 0 母音動詞 1 基本連用形 8 "代表表記:生ける/いける ドメイン:文化・芸術" <代表表記:生ける/いける><ドメイン:文化・芸術><正規化代表表記:生ける/いける?行ける/いける><品曖><ALT-いけ-いけ-いける-2-0-1-8-"代表表記:行ける/いける 可能動詞:行く/いく 付属動詞候補（タ系）"><付属動詞候補（タ系）><品曖-動詞><原形曖昧><かな漢字><ひらがな><活用語><付属>
ませ ませ ます 接尾辞 14 動詞性接尾辞 7 動詞性接尾辞ます型 31 未然形 3 "代表表記:ます/ます" <代表表記:ます/ます><正規化代表表記:ます/ます><かな漢字><ひらがな><活用語><付属>
ん ん ぬ 助動詞 5 * 0 助動詞ぬ型 27 音便基本形 12 NIL <文末><表現文末><かな漢字><ひらがな><活用語><否定><付属>
"""[1:-1].split('\n') #初めの改行をカット

        actual = replace_lib.remove_negation_from_ikemasen(token_lines)
        expected = """
歩か あるか 歩く 動詞 * * * 子音動詞カ行 * 未然形 * "代表表記:歩く/あるく" <代表表記:歩く/あるく><正規化代表表記:歩く/あるく><文頭><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>
なければ なければ ない 接尾辞 14 形容詞性述語接尾辞 5 イ形容詞アウオ段 18 基本条件形 6 "代表表記:ない/ない"
いけ いけ いける 動詞 2 * 0 母音動詞 1 基本連用形 8 "代表表記:生ける/いける ドメイン:文化・芸術" <代表表記:生ける/いける><ドメイン:文化・芸術><正規化代表表記:生ける/いける?行ける/いける><品曖><ALT-いけ-いけ-いける-2-0-1-8-"代表表記:行ける/いける 可能動詞:行く/いく 付属動詞候補（タ系）"><付属動詞候補（タ系）><品曖-動詞><原形曖昧><かな漢字><ひらがな><活用語><付属>
ませ ませ ます 接尾辞 14 動詞性接尾辞 7 動詞性接尾辞ます型 31 未然形 3 "代表表記:ます/ます" <代表表記:ます/ます><正規化代表表記:ます/ます><かな漢字><ひらがな><活用語><付属>
ん ん ぬ 助動詞 5 * 0 助動詞ぬ型 27 音便基本形 12 NIL <文末><表現文末><かな漢字><ひらがな><活用語><否定><付属>
"""[1:-1].split('\n') #初めの改行をカット

        self.assertEquals(actual, expected)



    def test_remove_negation_from_ikemasen1(self):
        token_lines = """
忘れて わすれて 忘れる 動詞 2 * 0 母音動詞 1 タ系連用テ形 14 "代表表記:忘れる/わすれる 付属動詞候補（基本） 反義:動詞:覚える/おぼえる" <代表表記:忘れる/わすれる><付属動詞候補（基本）><反義:動詞:覚える/おぼえる><正規化代表表記:忘れる/わすれる><文頭><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>
は は は 助詞 9 副助詞 2 * 0 * 0 NIL <かな漢字><ひらがな><付属>
なら なら なる 動詞 2 * 0 子音動詞ラ行 10 未然形 3 "代表表記:成る/なる 自他動詞:他:成す/なす;他:する/する" <代表表記:成る/なる><自他動詞:他:鳴らす/ならす><正規化代表表記:成る/なる?鳴る/なる><品曖><ALT-なら-なら-なる-2-0-10-3-"代表表記:鳴る/なる 自他動詞:他:鳴らす/ならす"><品曖-動詞><原形曖昧><かな漢字><ひらがな><活用語><付属>
ない ない ない 接尾辞 14 形容詞性述語接尾辞 5 イ形容詞アウオ段 18 基本形 2 "代表表記:ない/ない" <代表表記:ない/ない><正規化代表表記:ない/ない><文末><表現文末><かな漢字><ひらがな><活用語><否定><付属>
"""[1:-1].split('\n') #初めの改行をカット

        actual = replace_lib.remove_negation_from_ikemasen(token_lines)
        expected = """
忘れ わすれ 忘れる 動詞 * * * 母音動詞 * 未然形 * "代表表記:忘れる/わすれる 付属動詞候補（基本） 反義:動詞:覚える/おぼえる" <代表表記:忘れる/わすれる><付属動詞候補（基本）><反義:動詞:覚える/おぼえる><正規化代表表記:忘れる/わすれる><文頭><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>
なければ なければ ない 接尾辞 14 形容詞性述語接尾辞 5 イ形容詞アウオ段 18 基本条件形 6 "代表表記:ない/ない"
なら なら なる 動詞 2 * 0 子音動詞ラ行 10 未然形 3 "代表表記:成る/なる 自他動詞:他:成す/なす;他:する/する" <代表表記:成る/なる><自他動詞:他:鳴らす/ならす><正規化代表表記:成る/なる?鳴る/なる><品曖><ALT-なら-なら-なる-2-0-10-3-"代表表記:鳴る/なる 自他動詞:他:鳴らす/ならす"><品曖-動詞><原形曖昧><かな漢字><ひらがな><活用語><付属>
ない ない ない 接尾辞 14 形容詞性述語接尾辞 5 イ形容詞アウオ段 18 基本形 2 "代表表記:ない/ない" <代表表記:ない/ない><正規化代表表記:ない/ない><文末><表現文末><かな漢字><ひらがな><活用語><否定><付属>
"""[1:-1].split('\n') #初めの改行をカット

        self.assertEquals(actual, expected)

    def test_remove_negation_from_ikemasen2(self):
        token_lines = """
走って はしって 走る 動詞 2 * 0 子音動詞ラ行 10 タ系連用テ形 14 "代表表記:走る/はしる" <代表表記:走る/はしる><正規化代表表記:走る/はしる><文頭><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>
は は は 助詞 9 副助詞 2 * 0 * 0 NIL <かな漢字><ひらがな><付属>
いけない いけない いけない 形容詞 3 * 0 イ形容詞アウオ段 18 基本形 2 "代表表記:いけない/いけない" <代表表記:いけない/いけない><正規化代表表記:いけない/いけない><文末><表現文末><かな漢字><ひらがな><活用語><付属>
"""[1:-1].split('\n') #初めの改行をカット

        actual = replace_lib.remove_negation_from_ikemasen(token_lines)
        expected = """
走ら はしら 走る 動詞 * * * 子音動詞ラ行 * 未然形 * "代表表記:走る/はしる" <代表表記:走る/はしる><正規化代表表記:走る/はしる><文頭><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>
なければ なければ ない 接尾辞 14 形容詞性述語接尾辞 5 イ形容詞アウオ段 18 基本条件形 6 "代表表記:ない/ない"
いけない いけない いけない 形容詞 3 * 0 イ形容詞アウオ段 18 基本形 2 "代表表記:いけない/いけない" <代表表記:いけない/いけない><正規化代表表記:いけない/いけない><文末><表現文末><かな漢字><ひらがな><活用語><付属>
"""[1:-1].split('\n') #初めの改行をカット

        self.assertEquals(actual, expected)

    def test_remove_negation_from_naide_kudasai0(self):
        token_lines = """
歩か あるか 歩く 動詞 2 * 0 子音動詞カ行 2 未然形 3 "代表表記:歩く/あるく" <代表表記:歩く/あるく><正規化代表表記:歩く/あるく><文頭><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>
ないで ないで ぬ 助動詞 5 * 0 助動詞ぬ型 27 タ系連用テ形 9 NIL <かな漢字><ひらがな><活用語><否定><付属>
下さい ください 下さる 接尾辞 14 動詞性接尾辞 7 子音動詞ラ行イ形 11 命令形 6 "代表表記:下さる/くださる" <代表表記:下さる/くださる><正規化代表表記:下さる/くださる><文末><表現文末><かな漢字><活用語><付属>
"""[1:-1].split('\n') #初めの改行をカット

        actual = replace_lib.remove_negation_from_naide_kudasai(token_lines)
        expected = """
歩いて あるいて 歩く 動詞 * * * 子音動詞カ行 * タ系連用テ形 * "代表表記:歩く/あるく" <代表表記:歩く/あるく><正規化代表表記:歩く/あるく><文頭><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>
下さい ください 下さる 接尾辞 14 動詞性接尾辞 7 子音動詞ラ行イ形 11 命令形 6 "代表表記:下さる/くださる" <代表表記:下さる/くださる><正規化代表表記:下さる/くださる><文末><表現文末><かな漢字><活用語><付属>
"""[1:-1].split('\n') #初めの改行をカット

        self.assertEquals(actual, expected)

    def test_remove_negation_from_naide_kudasai1(self):
        token_lines = """
走ら はしら 走る 動詞 2 * 0 子音動詞ラ行 10 未然形 3 "代表表記:走る/はしる" <代表表記:走る/はしる><正規化代表表記:走る/はしる><文頭><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>
ないで ないで ぬ 助動詞 5 * 0 助動詞ぬ型 27 タ系連用テ形 9 NIL <かな漢字><ひらがな><活用語><否定><付属>
ね ね ね 助詞 9 終助詞 4 * 0 * 0 NIL <文末><表現文末><かな漢字><ひらがな><付属>
"""[1:-1].split('\n') #初めの改行をカット

        actual = replace_lib.remove_negation_from_naide_kudasai(token_lines)
        expected = ['走って はしって 走る 動詞 * * * 子音動詞ラ行 * タ系連用テ形 * "代表表記:走る/はしる" <代表表記:走る/はしる><正規化代表表記:走る/はしる><文頭><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>', 'ね ね ね 助詞 9 終助詞 4 * 0 * 0 NIL <文末><表現文末><かな漢字><ひらがな><付属>']
        self.assertEquals(actual, expected)









    def test_remove_negation_from_go_naranaide0(self):
        token_lines = """
お お お 接頭辞 13 名詞接頭辞 1 * 0 * 0 "代表表記:御/お" <代表表記:御/お><正規化代表表記:御/お><文頭><かな漢字><ひらがな><接頭><非独立接頭辞><タグ単位始><文節始>
使い つかい 使う 動詞 2 * 0 子音動詞ワ行 12 基本連用形 8 "代表表記:使う/つかう" <代表表記:使う/つかう><正規化代表表記:使う/つかう><かな漢字><活用語><自立><内容語><文節主辞>
に に に 助詞 9 格助詞 1 * 0 * 0 NIL <かな漢字><ひらがな><付属>
なら なら なる 動詞 2 * 0 子音動詞ラ行 10 未然形 3 "代表表記:成る/なる 自他動詞:他:成す/なす;他:する/する" <代表表記:成る/なる><自他動詞:他:鳴らす/ならす><正規化代表表記:成る/なる?鳴る/なる><品曖><ALT-なら-なら-なる-2-0-10-3-"代表表記:鳴る/なる 自他動詞:他:鳴らす/ならす"><品曖-動詞><原形曖昧><かな漢字><ひらがな><活用語><付属>
ないで ないで ぬ 助動詞 5 * 0 助動詞ぬ型 27 タ系連用テ形 9 NIL <かな漢字><ひらがな><活用語><否定><付属>
下さい ください 下さる 接尾辞 14 動詞性接尾辞 7 子音動詞ラ行イ形 11 命令形 6 "代表表記:下さる/くださる" <代表表記:下さる/くださる><正規化代表表記:下さる/くださる><表現文末><かな漢字><活用語><付属>
。 。 。 特殊 1 句点 1 * 0 * 0 NIL <文末><英記号><記号><付属>
"""[1:-1].split('\n') #初めの改行をカット

        actual = replace_lib.remove_negation_from_go_naranaide(token_lines)
        expected = """
お お お 接頭辞 13 名詞接頭辞 1 * 0 * 0 "代表表記:御/お" <代表表記:御/お><正規化代表表記:御/お><文頭><かな漢字><ひらがな><接頭><非独立接頭辞><タグ単位始><文節始>
使い つかい 使う 動詞 2 * 0 子音動詞ワ行 12 基本連用形 8 "代表表記:使う/つかう" <代表表記:使う/つかう><正規化代表表記:使う/つかう><かな漢字><活用語><自立><内容語><文節主辞>
に に に 助詞 9 格助詞 1 * 0 * 0 NIL <かな漢字><ひらがな><付属>
なって なって なる 動詞 * * * 子音動詞ラ行 * タ系連用テ形 * "代表表記:成る/なる 自他動詞:他:成す/なす;他:する/する" <代表表記:成る/なる><自他動詞:他:鳴らす/ならす><正規化代表表記:成る/なる?鳴る/なる><品曖><ALT-なら-なら-なる-2-0-10-3-"代表表記:鳴る/なる 自他動詞:他:鳴らす/ならす"><品曖-動詞><原形曖昧><かな漢字><ひらがな><活用語><付属>
下さい ください 下さる 接尾辞 14 動詞性接尾辞 7 子音動詞ラ行イ形 11 命令形 6 "代表表記:下さる/くださる" <代表表記:下さる/くださる><正規化代表表記:下さる/くださる><表現文末><かな漢字><活用語><付属>
。 。 。 特殊 1 句点 1 * 0 * 0 NIL <文末><英記号><記号><付属>
"""[1:-1].split('\n') #初めの改行をカット
        self.assertEquals(actual, expected)


    def test_remove_negation_from_go_naranaide1(self):
        token_lines = """
お お お 接頭辞 13 名詞接頭辞 1 * 0 * 0 "代表表記:御/お" <代表表記:御/お><正規化代表表記:御/お><文頭><かな漢字><ひらがな><接頭><非独立接頭辞><タグ単位始><文節始>
使い つかい 使い 名詞 6 普通名詞 1 * 0 * 0 "代表表記:使い/つかいv 代表表記変更:使う/つかう 品詞変更:使い-つかい-使う-2-0-12-8" <代表表記:使い/つかいv><正規化代表表記:使い/つかいv><かな漢字><品詞変更:使い-つかい-使う-2-0-12-8-"代表表記:使う/つかう"><代表表記変更:使う/つかう><名詞相当語><自立><内容語><文節主辞><係:ニ格>
に に に 助詞 9 格助詞 1 * 0 * 0 NIL <かな漢字><ひらがな><付属>
は は は 助詞 9 副助詞 2 * 0 * 0 NIL <かな漢字><ひらがな><付属>
なら なら なる 動詞 2 * 0 子音動詞ラ行 10 未然形 3 "代表表記:成る/なる 自他動詞:他:成す/なす;他:する/する" <代表表記:成る/なる><自他動詞:他:鳴らす/ならす><正規化代表表記:成る/なる?鳴る/なる><品曖><ALT-なら-なら-なる-2-0-10-3-"代表表記:鳴る/なる 自他動詞:他:鳴らす/ならす"><品曖-動詞><原形曖昧><かな漢字><ひらがな><活用語><自立><内容語><タグ単位始><文節始><文節主辞><用言曖昧性解消>
ないで ないで ぬ 助動詞 5 * 0 助動詞ぬ型 27 タ系連用テ形 9 NIL <かな漢字><ひらがな><活用語><否定><付属>
ください ください くださる 接尾辞 14 動詞性接尾辞 7 子音動詞ラ行イ形 11 命令形 6 "代表表記:下さる/くださる" <代表表記:下さる/くださる><正規化代表表記:下さる/くださる><文末><表現文末><かな漢字><ひらがな><活用語><付属>
"""[1:-1].split('\n') #初めの改行をカット

        actual = replace_lib.remove_negation_from_go_naranaide(token_lines)
        expected = """
お お お 接頭辞 13 名詞接頭辞 1 * 0 * 0 "代表表記:御/お" <代表表記:御/お><正規化代表表記:御/お><文頭><かな漢字><ひらがな><接頭><非独立接頭辞><タグ単位始><文節始>
使い つかい 使い 名詞 6 普通名詞 1 * 0 * 0 "代表表記:使い/つかいv 代表表記変更:使う/つかう 品詞変更:使い-つかい-使う-2-0-12-8" <代表表記:使い/つかいv><正規化代表表記:使い/つかいv><かな漢字><品詞変更:使い-つかい-使う-2-0-12-8-"代表表記:使う/つかう"><代表表記変更:使う/つかう><名詞相当語><自立><内容語><文節主辞><係:ニ格>
に に に 助詞 9 格助詞 1 * 0 * 0 NIL <かな漢字><ひらがな><付属>
なって なって なる 動詞 * * * 子音動詞ラ行 * タ系連用テ形 * "代表表記:成る/なる 自他動詞:他:成す/なす;他:する/する" <代表表記:成る/なる><自他動詞:他:鳴らす/ならす><正規化代表表記:成る/なる?鳴る/なる><品曖><ALT-なら-なら-なる-2-0-10-3-"代表表記:鳴る/なる 自他動詞:他:鳴らす/ならす"><品曖-動詞><原形曖昧><かな漢字><ひらがな><活用語><自立><内容語><タグ単位始><文節始><文節主辞><用言曖昧性解消>
ください ください くださる 接尾辞 14 動詞性接尾辞 7 子音動詞ラ行イ形 11 命令形 6 "代表表記:下さる/くださる" <代表表記:下さる/くださる><正規化代表表記:下さる/くださる><文末><表現文末><かな漢字><ひらがな><活用語><付属>
"""[1:-1].split('\n') #初めの改行をカット
        self.assertEquals(actual, expected)

    def test_remove_negation_from_banning0(self):
        token_lines = """
覚え おぼえ 覚える 動詞 2 * 0 母音動詞 1 未然形 3 "代表表記:覚える/おぼえる 反義:動詞:忘れる/わすれる" <代表表記:覚える/おぼえる><反義:動詞:忘れる/わすれる><正規化代表表記:覚える/おぼえる><文頭><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>
ないで ないで ぬ 助動詞 5 * 0 助動詞ぬ型 27 タ系連用テ形 9 NIL <かな漢字><ひらがな><活用語><否定><付属>
下さい ください 下さる 接尾辞 14 動詞性接尾辞 7 子音動詞ラ行イ形 11 命令形 6 "代表表記:下さる/くださる" <代表表記:下さる/くださる><正規化代表表記:下さる/くださる><文末><表現文末><かな漢字><活用語><付属>
"""[1:-1].split('\n') #初めの改行をカット

        actual = replace_lib.remove_negation_from_banning(token_lines)
        expected = """
覚えて おぼえて 覚える 動詞 * * * 母音動詞 * タ系連用テ形 * "代表表記:覚える/おぼえる 反義:動詞:忘れる/わすれる" <代表表記:覚える/おぼえる><反義:動詞:忘れる/わすれる><正規化代表表記:覚える/おぼえる><文頭><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>
下さい ください 下さる 接尾辞 14 動詞性接尾辞 7 子音動詞ラ行イ形 11 命令形 6 "代表表記:下さる/くださる" <代表表記:下さる/くださる><正規化代表表記:下さる/くださる><文末><表現文末><かな漢字><活用語><付属>
"""[1:-1].split('\n') #初めの改行をカット
        self.assertEquals(actual, expected)


    def test_remove_negation_from_banning1(self):
        token_lines = """
忘れ わすれ 忘れる 動詞 2 * 0 母音動詞 1 未然形 3 "代表表記:忘れる/わすれる 付属動詞候補（基本） 反義:動詞:覚える/おぼえる" <代表表記:忘れる/わすれる><付属動詞候補（基本）><反義:動詞:覚える/おぼえる><正規化代表表記:忘れる/わすれる><文頭><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>
ない ない ない 接尾辞 14 形容詞性述語接尾辞 5 イ形容詞アウオ段 18 基本形 2 "代表表記:ない/ない" <代表表記:ない/ない><正規化代表表記:ない/ない><かな漢字><ひらがな><活用語><否定><付属>
ように ように ようだ 助動詞 5 * 0 ナ形容詞 21 ダ列基本連用形 7 NIL <かな漢字><ひらがな><活用語><付属>
して して する 接尾辞 14 動詞性接尾辞 7 サ変動詞 16 タ系連用テ形 14 "代表表記:する/する" <代表表記:する/する><正規化代表表記:する/する><かな漢字><ひらがな><活用語><付属>
ください ください くださる 接尾辞 14 動詞性接尾辞 7 子音動詞ラ行イ形 11 命令形 6 "代表表記:下さる/くださる" <代表表記:下さる/くださる><正規化代表表記:下さる/くださる><文末><表現文末><かな漢字><ひらがな><活用語><付属>
"""[1:-1].split('\n') #初めの改行をカット

        actual = replace_lib.remove_negation_from_banning(token_lines)
        expected = """
忘れる わすれる 忘れる 動詞 * * * 母音動詞 * 基本形 * "代表表記:忘れる/わすれる 付属動詞候補（基本） 反義:動詞:覚える/おぼえる" <代表表記:忘れる/わすれる><付属動詞候補（基本）><反義:動詞:覚える/おぼえる><正規化代表表記:忘れる/わすれる><文頭><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>
ように ように ようだ 助動詞 5 * 0 ナ形容詞 21 ダ列基本連用形 7 NIL <かな漢字><ひらがな><活用語><付属>
して して する 接尾辞 14 動詞性接尾辞 7 サ変動詞 16 タ系連用テ形 14 "代表表記:する/する" <代表表記:する/する><正規化代表表記:する/する><かな漢字><ひらがな><活用語><付属>
ください ください くださる 接尾辞 14 動詞性接尾辞 7 子音動詞ラ行イ形 11 命令形 6 "代表表記:下さる/くださる" <代表表記:下さる/くださる><正規化代表表記:下さる/くださる><文末><表現文末><かな漢字><ひらがな><活用語><付属>
"""[1:-1].split('\n') #初めの改行をカット
        self.assertEquals(actual, expected)


    def test_change_katuyou0(self):
        token_line = '歩く あるく 歩く 動詞 2 * 0 子音動詞カ行 2 基本形 2 "代表表記:歩く/あるく" <代表表記:歩く/あるく><正規化代表表記:歩く/あるく><文頭><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>'
        katuyou = '基本連用形'
        actual = replace_lib.change_katuyou(token_line, katuyou)
        expected = '歩き あるき 歩く 動詞 * * * 子音動詞カ行 * 基本連用形 * "代表表記:歩く/あるく" <代表表記:歩く/あるく><正規化代表表記:歩く/あるく><文頭><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>'
        self.assertEquals(actual, expected)


    def test_change_katuyou1(self):
        token_line = '歩いて あるいて 歩く 動詞 2 * 0 子音動詞カ行 2 タ系連用テ形 14 "代表表記:歩く/あるく" <代表表記:歩く/あるく><正規化代表表記:歩く/あるく><文頭><文末><表現文末><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>'
        katuyou = '基本連用形'
        actual = replace_lib.change_katuyou(token_line, katuyou)
        expected = '歩き あるき 歩く 動詞 * * * 子音動詞カ行 * 基本連用形 * "代表表記:歩く/あるく" <代表表記:歩く/あるく><正規化代表表記:歩く/あるく><文頭><文末><表現文末><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>'
        self.assertEquals([actual], [expected])


    def test_change_katuyou2(self):
        token_line = '覚え おぼえ 覚える 動詞 * * * 母音動詞 * 未然形 * "代表表記:覚える/おぼえる 反義:動詞:忘れる/わすれる"'
        katuyou = '基本連用形'
        actual = replace_lib.change_katuyou(token_line, katuyou)
        expected = '覚え おぼえ 覚える 動詞 * * * 母音動詞 * 基本連用形 * "代表表記:覚える/おぼえる 反義:動詞:忘れる/わすれる"'
        self.assertEquals([actual], [expected])


    def test_change_katuyou3(self):
        token_line = 'みる みる みる 接尾辞 14 動詞性接尾辞 7 母音動詞 1 基本形 2 "代表表記:みる/みる"'
        katuyou = '基本連用形'
        actual = replace_lib.change_katuyou(token_line, katuyou)
        expected = 'み み みる 接尾辞 * 動詞性接尾辞 * 母音動詞 * 基本連用形 * "代表表記:みる/みる"'

        self.assertEquals([actual], [expected])


    def test_change_case_wo_to_ni(self):
        knp_lines = """
# S-ID:1 KNP:4.12-CF1.1 DATE:2015/10/28 SCORE:-8.29897
* 0 1D <文頭><ヲ><助詞><体言><一文字漢字><係:ヲ格><区切:0-0><格要素><連用要素><正規化代表表記:席/せき><主辞代表表記:席/せき>
+ 0 1D <文頭><ヲ><助詞><体言><一文字漢字><係:ヲ格><区切:0-0><格要素><連用要素><名詞項候補><先行詞候補><正規化代表表記:席/せき><解析格:ヲ>
席 せき 席 名詞 6 普通名詞 1 * 0 * 0 "代表表記:席/せき 漢字読み:音 カテゴリ:場所-施設部位" <代表表記:席/せき><漢字読み:音><カテゴリ:場所-施設部位><正規化代表表記:席/せき><文頭><漢字><かな漢字><名詞相当語><自立><内容語><タグ単位始><文節始><文節主辞><係:ヲ格>
を を を 助詞 9 格助詞 1 * 0 * 0 NIL <かな漢字><ひらがな><付属>
* 1 -1D <文末><否定表現><〜ぬ><用言:動><レベル:C><区切:5-5><ID:（文末）><並キ:述:&ST:3.5&&&レベル:B><提題受:30><主節><動態述語><モダリティ-禁止><敬語:尊敬表現><正規化代表表記:立つ/たつ><主辞代表表記:立つ/たつ><並列類似度:-100.000>
+ 1 -1D <文末><否定表現><〜ぬ><用言:動><レベル:C><区切:5-5><ID:（文末）><並キ:述:&ST:3.5&&&レベル:B><提題受:30><主節><動態述語><モダリティ-禁止><敬語:尊敬表現><正規化代表表記:立つ/たつ><用言代表表記:立つ/たつ><主題格:一人称優位><格関係0:ヲ:席><格解析結果:立つ/たつ:動3:ガ/U/-/-/-/-;ヲ/C/席/0/0/1;ニ/U/-/-/-/-;ト/U/-/-/-/-;デ/U/-/-/-/-;カラ/U/-/-/-/-;ヨリ/U/-/-/-/-;マデ/U/-/-/-/-;ヘ/U/-/-/-/-;時間/U/-/-/-/-;外の関係/U/-/-/-/-;ノ/U/-/-/-/-;修飾/U/-/-/-/-;トスル/U/-/-/-/-;ニヨル/U/-/-/-/-;ニトル/U/-/-/-/-;トイウ/U/-/-/-/-;ニオク/U/-/-/-/-;ヲツウジル/U/-/-/-/-;ニタイスル/U/-/-/-/->
立た たた 立つ 動詞 2 * 0 子音動詞タ行 6 未然形 3 "代表表記:立つ/たつ 付属動詞候補（基本） 自他動詞:他:立てる/たてる 反義:動詞:座る/すわる" <代表表記:立つ/たつ><付属動詞候補（基本）><自他動詞:他:立てる/たてる><反義:動詞:座る/すわる><正規化代表表記:立つ/たつ><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>
ないで ないで ぬ 助動詞 5 * 0 助動詞ぬ型 27 タ系連用テ形 9 NIL <かな漢字><ひらがな><活用語><否定><付属>
ください ください くださる 接尾辞 14 動詞性接尾辞 7 子音動詞ラ行イ形 11 命令形 6 "代表表記:下さる/くださる" <代表表記:下さる/くださる><正規化代表表記:下さる/くださる><文末><表現文末><かな漢字><ひらがな><活用語><付属>
EOS
""".split('\n')[1:-1]

        prev_case = "ヲ"
        new_case = 'ニ'
        chunk_ind = 5

        actual = replace_lib.change_case(knp_lines, prev_case, new_case, chunk_ind)
        expected = """
席 せき 席 名詞 6 普通名詞 1 * 0 * 0 "代表表記:席/せき 漢字読み:音 カテゴリ:場所-施設部位" <代表表記:席/せき><漢字読み:音><カテゴリ:場所-施設部位><正規化代表表記:席/せき><文頭><漢字><かな漢字><名詞相当語><自立><内容語><タグ単位始><文節始><文節主辞><係:ヲ格>
に に に 助詞 9 格助詞 1 * 0 * 0 NIL
立た たた 立つ 動詞 2 * 0 子音動詞タ行 6 未然形 3 "代表表記:立つ/たつ 付属動詞候補（基本） 自他動詞:他:立てる/たてる 反義:動詞:座る/すわる" <代表表記:立つ/たつ><付属動詞候補（基本）><自他動詞:他:立てる/たてる><反義:動詞:座る/すわる><正規化代表表記:立つ/たつ><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>
ないで ないで ぬ 助動詞 5 * 0 助動詞ぬ型 27 タ系連用テ形 9 NIL <かな漢字><ひらがな><活用語><否定><付属>
ください ください くださる 接尾辞 14 動詞性接尾辞 7 子音動詞ラ行イ形 11 命令形 6 "代表表記:下さる/くださる" <代表表記:下さる/くださる><正規化代表表記:下さる/くださる><文末><表現文末><かな漢字><ひらがな><活用語><付属>
""".split('\n')[1:-1]

        self.assertEquals(actual, expected)


    def test_change_case_ni_to_kara(self):
        knp_lines = """
# S-ID:1 KNP:4.12-CF1.1 DATE:2015/10/28 SCORE:-18.54409
* 0 1D <文頭><ニ><助詞><体言><係:ニ格><区切:0-0><格要素><連用要素><正規化代表表記:防波堤/ぼうはてい><主辞代表表記:防波堤/ぼうはてい>
+ 0 1D <文頭><ニ><助詞><体言><係:ニ格><区切:0-0><格要素><連用要素><名詞項候補><先行詞候補><正規化代表表記:防波堤/ぼうはてい><解析格:ニ>
防波堤 ぼうはてい 防波堤 名詞 6 普通名詞 1 * 0 * 0 "代表表記:防波堤/ぼうはてい カテゴリ:場所-施設" <代表表記:防波堤/ぼうはてい><カテゴリ:場所-施設><正規化代表表記:防波堤/ぼうはてい><文頭><漢字><かな漢字><名詞相当語><自立><内容語><タグ単位始><文節始><文節主辞><係:ニ格>
に に に 助詞 9 格助詞 1 * 0 * 0 NIL <かな漢字><ひらがな><付属>
* 1 -1D <文末><否定表現><〜ぬ><用言:動><レベル:C><区切:5-5><ID:（文末）><並キ:述:&ST:3.5&&&レベル:B><提題受:30><主節><動態述語><モダリティ-禁止><敬語:尊敬表現><正規化代表表記:近付く/ちかづく><主辞代表表記:近付く/ちかづく><並列類似度:-100.000>
+ 1 -1D <文末><否定表現><〜ぬ><用言:動><レベル:C><区切:5-5><ID:（文末）><並キ:述:&ST:3.5&&&レベル:B><提題受:30><主節><動態述語><モダリティ-禁止><敬語:尊敬表現><正規化代表表記:近付く/ちかづく><用言代表表記:近付く/ちかづく><主題格:一人称優位><格関係0:ニ:防波堤><格解析結果:近付く/ちかづく:動1:ガ/U/-/-/-/-;ヲ/U/-/-/-/-;ニ/C/防波堤/0/0/1;ト/U/-/-/-/-;デ/U/-/-/-/-;カラ/U/-/-/-/-;ヨリ/U/-/-/-/-;マデ/U/-/-/-/-;ヘ/U/-/-/-/-;時間/U/-/-/-/-;外の関係/U/-/-/-/-;修飾/U/-/-/-/-;ノ/U/-/-/-/-;トスル/U/-/-/-/-;ニヨル/U/-/-/-/-;ヲツウジル/U/-/-/-/-;ニムケル/U/-/-/-/-;ニオク/U/-/-/-/-;ニツヅク/U/-/-/-/-;ニクラベル/U/-/-/-/->
近づか ちかづか 近づく 動詞 2 * 0 子音動詞カ行 2 未然形 3 "代表表記:近付く/ちかづく 自他動詞:他:近付ける/ちかづける 反義:動詞:遠ざかる/とおざかる;動詞:遠退く/とおのく" <代表表記:近付く/ちかづく><自他動詞:他:近付ける/ちかづける><反義:動詞:遠ざかる/とおざかる;動詞:遠退く/とおのく><正規化代表表記:近付く/ちかづく><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>
ないで ないで ぬ 助動詞 5 * 0 助動詞ぬ型 27 タ系連用テ形 9 NIL <かな漢字><ひらがな><活用語><否定><付属>
ください ください くださる 接尾辞 14 動詞性接尾辞 7 子音動詞ラ行イ形 11 命令形 6 "代表表記:下さる/くださる" <代表表記:下さる/くださる><正規化代表表記:下さる/くださる><文末><表現文末><かな漢字><ひらがな><活用語><付属>
EOS
""".split('\n')[1:-1]

        prev_case = "ニ"
        new_case = 'カラ'
        chunk_ind = 5

        actual = replace_lib.change_case(knp_lines, prev_case, new_case, chunk_ind)
        expected = """
防波堤 ぼうはてい 防波堤 名詞 6 普通名詞 1 * 0 * 0 "代表表記:防波堤/ぼうはてい カテゴリ:場所-施設" <代表表記:防波堤/ぼうはてい><カテゴリ:場所-施設><正規化代表表記:防波堤/ぼうはてい><文頭><漢字><かな漢字><名詞相当語><自立><内容語><タグ単位始><文節始><文節主辞><係:ニ格>
から から から 助詞 9 格助詞 1 * 0 * 0 NIL
近づか ちかづか 近づく 動詞 2 * 0 子音動詞カ行 2 未然形 3 "代表表記:近付く/ちかづく 自他動詞:他:近付ける/ちかづける 反義:動詞:遠ざかる/とおざかる;動詞:遠退く/とおのく" <代表表記:近付く/ちかづく><自他動詞:他:近付ける/ちかづける><反義:動詞:遠ざかる/とおざかる;動詞:遠退く/とおのく><正規化代表表記:近付く/ちかづく><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>
ないで ないで ぬ 助動詞 5 * 0 助動詞ぬ型 27 タ系連用テ形 9 NIL <かな漢字><ひらがな><活用語><否定><付属>
ください ください くださる 接尾辞 14 動詞性接尾辞 7 子音動詞ラ行イ形 11 命令形 6 "代表表記:下さる/くださる" <代表表記:下さる/くださる><正規化代表表記:下さる/くださる><文末><表現文末><かな漢字><ひらがな><活用語><付属>
""".split('\n')[1:-1]

        self.assertEquals(actual, expected)

    def test_get_token_lines_lst_inserted_verb_like_suffix_into0(self):
        token_lines = """
忘れる わすれる 忘れる 動詞 2 * 0 母音動詞 1 基本形 2 "代表表記:忘れる/わすれる 付属動詞候補（基本） 反義:動詞:覚える/おぼえる" <代表表記:忘れる/わすれる><付属動詞候補（基本）><反義:動詞:覚える/おぼえる><正規化代表表記:忘れる/わすれる><文頭><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>
な な な 助詞 9 終助詞 4 * 0 * 0 NIL <文末><表現文末><かな漢字><ひらがな><付属>
""".split('\n')[1:-1]

        teiru_lines = """
忘れて わすれて 忘れる 動詞 * * * 母音動詞 * タ系連用テ形 * "代表表記:忘れる/わすれる 付属動詞候補（基本） 反義:動詞:覚える/おぼえる" <代表表記:忘れる/わすれる><付属動詞候補（基本）><反義:動詞:覚える/おぼえる><正規化代表表記:忘れる/わすれる><文頭><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>
いる いる いる 接尾辞 * 動詞性接尾辞 * 母音動詞 * 基本形 * "代表表記:いる/いる"
な な な 助詞 9 終助詞 4 * 0 * 0 NIL <文末><表現文末><かな漢字><ひらがな><付属>
""".split('\n')[1:-1]

        teoku_lines = """
忘れて わすれて 忘れる 動詞 * * * 母音動詞 * タ系連用テ形 * "代表表記:忘れる/わすれる 付属動詞候補（基本） 反義:動詞:覚える/おぼえる" <代表表記:忘れる/わすれる><付属動詞候補（基本）><反義:動詞:覚える/おぼえる><正規化代表表記:忘れる/わすれる><文頭><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>
おく おく おく 接尾辞 * 動詞性接尾辞 * 子音動詞カ行 * 基本形 * "代表表記:おく/おく"
な な な 助詞 9 終助詞 4 * 0 * 0 NIL <文末><表現文末><かな漢字><ひらがな><付属>
""".split('\n')[1:-1]

        actual = replace_lib.get_token_lines_lst_inserted_verb_like_suffix_into(token_lines)
        expected = []
        expected.append(teiru_lines)
        expected.append(teoku_lines)
        self.assertEquals(actual, expected)

    def test_get_token_lines_lst_inserted_verb_like_suffix_into1(self):
        token_lines = """
心配 しんぱい 心配 名詞 6 サ変名詞 2 * 0 * 0 "代表表記:心配/しんぱい 補文ト カテゴリ:抽象物 反義:名詞-サ変名詞:安心/あんしん 形容詞派生:心配だ/しんぱいだ" <代表表記:心配/しんぱい><補文ト><カテゴリ:抽象物><反義:名詞-サ変名詞:安心/あんしん><形容詞派生:心配だ/しんぱいだ><正規化代表表記:心配/しんぱい><文頭><漢字><かな漢字><名詞相当語><サ変><サ変動詞><自立><内容語><タグ単位始><文節始><文節主辞>
する する する 動詞 2 * 0 サ変動詞 16 基本形 2 "代表表記:する/する 付属動詞候補（基本） 自他動詞:自:成る/なる" <代表表記:する/する><付属動詞候補（基本）><自他動詞:自:成る/なる><正規化代表表記:する/する><とタ系連用テ形複合辞><かな漢字><ひらがな><活用語><付属>
な な な 助詞 9 終助詞 4 * 0 * 0 NIL <文末><表現文末><かな漢字><ひらがな><付属>
""".split('\n')[1:-1]

        actual = replace_lib.get_token_lines_lst_inserted_verb_like_suffix_into(token_lines)
        teiru_lines = """
心配 しんぱい 心配 名詞 6 サ変名詞 2 * 0 * 0 "代表表記:心配/しんぱい 補文ト カテゴリ:抽象物 反義:名詞-サ変名詞:安心/あんしん 形容詞派生:心配だ/しんぱいだ" <代表表記:心配/しんぱい><補文ト><カテゴリ:抽象物><反義:名詞-サ変名詞:安心/あんしん><形容詞派生:心配だ/しんぱいだ><正規化代表表記:心配/しんぱい><文頭><漢字><かな漢字><名詞相当語><サ変><サ変動詞><自立><内容語><タグ単位始><文節始><文節主辞>
して して する 動詞 * * * サ変動詞 * タ系連用テ形 * "代表表記:する/する 付属動詞候補（基本） 自他動詞:自:成る/なる" <代表表記:する/する><付属動詞候補（基本）><自他動詞:自:成る/なる><正規化代表表記:する/する><とタ系連用テ形複合辞><かな漢字><ひらがな><活用語><付属>
いる いる いる 接尾辞 * 動詞性接尾辞 * 母音動詞 * 基本形 * "代表表記:いる/いる"
な な な 助詞 9 終助詞 4 * 0 * 0 NIL <文末><表現文末><かな漢字><ひらがな><付属>
""".split('\n')[1:-1]

        teoku_lines = """
心配 しんぱい 心配 名詞 6 サ変名詞 2 * 0 * 0 "代表表記:心配/しんぱい 補文ト カテゴリ:抽象物 反義:名詞-サ変名詞:安心/あんしん 形容詞派生:心配だ/しんぱいだ" <代表表記:心配/しんぱい><補文ト><カテゴリ:抽象物><反義:名詞-サ変名詞:安心/あんしん><形容詞派生:心配だ/しんぱいだ><正規化代表表記:心配/しんぱい><文頭><漢字><かな漢字><名詞相当語><サ変><サ変動詞><自立><内容語><タグ単位始><文節始><文節主辞>
して して する 動詞 * * * サ変動詞 * タ系連用テ形 * "代表表記:する/する 付属動詞候補（基本） 自他動詞:自:成る/なる" <代表表記:する/する><付属動詞候補（基本）><自他動詞:自:成る/なる><正規化代表表記:する/する><とタ系連用テ形複合辞><かな漢字><ひらがな><活用語><付属>
おく おく おく 接尾辞 * 動詞性接尾辞 * 子音動詞カ行 * 基本形 * "代表表記:おく/おく"
な な な 助詞 9 終助詞 4 * 0 * 0 NIL <文末><表現文末><かな漢字><ひらがな><付属>
""".split('\n')[1:-1]

        expected = []
        expected.append(teiru_lines)
        expected.append(teoku_lines)
        self.assertEquals(actual, expected)

    def test_get_token_lines_lst_inserted_verb_like_suffix_into2(self):
        token_lines = """
心配 しんぱい 心配 名詞 6 サ変名詞 2 * 0 * 0 "代表表記:心配/しんぱい 補文ト カテゴリ:抽象物 反義:名詞-サ変名詞:安心/あんしん 形容詞派生:心配だ/しんぱいだ" <代表表記:心配/しんぱい><補文ト><カテゴリ:抽象物><反義:名詞-サ変名詞:安心/あんしん><形容詞派生:心配だ/しんぱいだ><正規化代表表記:心配/しんぱい><文頭><漢字><かな漢字><名詞相当語><サ変><サ変動詞><自立><内容語><タグ単位始><文節始><文節主辞>
して して する 動詞 2 * 0 サ変動詞 16 タ系連用テ形 14 "代表表記:する/する 付属動詞候補（基本） 自他動詞:自:成る/なる" <代表表記:する/する><付属動詞候補（基本）><自他動詞:自:成る/なる><正規化代表表記:する/する><とタ系連用テ形複合辞><かな漢字><ひらがな><活用語><付属>
は は は 助詞 9 副助詞 2 * 0 * 0 NIL <かな漢字><ひらがな><付属>
いけ いけ いける 動詞 2 * 0 母音動詞 1 基本連用形 8 "代表表記:生ける/いける ドメイン:文化・芸術" <代表表記:生ける/いける><ドメイン:文化・芸術><正規化代表表記:生ける/いける?行ける/いける><品曖><ALT-いけ-いけ-いける-2-0-1-8-"代表表記:行ける/いける 可能動詞:行く/いく 付属動詞候補（タ系）"><付属動詞候補（タ系）><品曖-動詞><原形曖昧><かな漢字><ひらがな><活用語><付属>
ませ ませ ます 接尾辞 14 動詞性接尾辞 7 動詞性接尾辞ます型 31 未然形 3 "代表表記:ます/ます" <代表表記:ます/ます><正規化代表表記:ます/ます><かな漢字><ひらがな><活用語><付属>
ん ん ぬ 助動詞 5 * 0 助動詞ぬ型 27 音便基本形 12 NIL <文末><表現文末><かな漢字><ひらがな><活用語><否定><付属>
""".split('\n')[1:-1]

        actual = replace_lib.get_token_lines_lst_inserted_verb_like_suffix_into(token_lines)
        teiru_lines = """
心配 しんぱい 心配 名詞 6 サ変名詞 2 * 0 * 0 "代表表記:心配/しんぱい 補文ト カテゴリ:抽象物 反義:名詞-サ変名詞:安心/あんしん 形容詞派生:心配だ/しんぱいだ" <代表表記:心配/しんぱい><補文ト><カテゴリ:抽象物><反義:名詞-サ変名詞:安心/あんしん><形容詞派生:心配だ/しんぱいだ><正規化代表表記:心配/しんぱい><文頭><漢字><かな漢字><名詞相当語><サ変><サ変動詞><自立><内容語><タグ単位始><文節始><文節主辞>
して して する 動詞 * * * サ変動詞 * タ系連用テ形 * "代表表記:する/する 付属動詞候補（基本） 自他動詞:自:成る/なる" <代表表記:する/する><付属動詞候補（基本）><自他動詞:自:成る/なる><正規化代表表記:する/する><とタ系連用テ形複合辞><かな漢字><ひらがな><活用語><付属>
いて いて いる 接尾辞 * 動詞性接尾辞 * 母音動詞 * タ系連用テ形 * "代表表記:いる/いる"
は は は 助詞 9 副助詞 2 * 0 * 0 NIL <かな漢字><ひらがな><付属>
いけ いけ いける 動詞 2 * 0 母音動詞 1 基本連用形 8 "代表表記:生ける/いける ドメイン:文化・芸術" <代表表記:生ける/いける><ドメイン:文化・芸術><正規化代表表記:生ける/いける?行ける/いける><品曖><ALT-いけ-いけ-いける-2-0-1-8-"代表表記:行ける/いける 可能動詞:行く/いく 付属動詞候補（タ系）"><付属動詞候補（タ系）><品曖-動詞><原形曖昧><かな漢字><ひらがな><活用語><付属>
ませ ませ ます 接尾辞 14 動詞性接尾辞 7 動詞性接尾辞ます型 31 未然形 3 "代表表記:ます/ます" <代表表記:ます/ます><正規化代表表記:ます/ます><かな漢字><ひらがな><活用語><付属>
ん ん ぬ 助動詞 5 * 0 助動詞ぬ型 27 音便基本形 12 NIL <文末><表現文末><かな漢字><ひらがな><活用語><否定><付属>
""".split('\n')[1:-1]

        teoku_lines = """
心配 しんぱい 心配 名詞 6 サ変名詞 2 * 0 * 0 "代表表記:心配/しんぱい 補文ト カテゴリ:抽象物 反義:名詞-サ変名詞:安心/あんしん 形容詞派生:心配だ/しんぱいだ" <代表表記:心配/しんぱい><補文ト><カテゴリ:抽象物><反義:名詞-サ変名詞:安心/あんしん><形容詞派生:心配だ/しんぱいだ><正規化代表表記:心配/しんぱい><文頭><漢字><かな漢字><名詞相当語><サ変><サ変動詞><自立><内容語><タグ単位始><文節始><文節主辞>
して して する 動詞 * * * サ変動詞 * タ系連用テ形 * "代表表記:する/する 付属動詞候補（基本） 自他動詞:自:成る/なる" <代表表記:する/する><付属動詞候補（基本）><自他動詞:自:成る/なる><正規化代表表記:する/する><とタ系連用テ形複合辞><かな漢字><ひらがな><活用語><付属>
おいて おいて おく 接尾辞 * 動詞性接尾辞 * 子音動詞カ行 * タ系連用テ形 * "代表表記:おく/おく"
は は は 助詞 9 副助詞 2 * 0 * 0 NIL <かな漢字><ひらがな><付属>
いけ いけ いける 動詞 2 * 0 母音動詞 1 基本連用形 8 "代表表記:生ける/いける ドメイン:文化・芸術" <代表表記:生ける/いける><ドメイン:文化・芸術><正規化代表表記:生ける/いける?行ける/いける><品曖><ALT-いけ-いけ-いける-2-0-1-8-"代表表記:行ける/いける 可能動詞:行く/いく 付属動詞候補（タ系）"><付属動詞候補（タ系）><品曖-動詞><原形曖昧><かな漢字><ひらがな><活用語><付属>
ませ ませ ます 接尾辞 14 動詞性接尾辞 7 動詞性接尾辞ます型 31 未然形 3 "代表表記:ます/ます" <代表表記:ます/ます><正規化代表表記:ます/ます><かな漢字><ひらがな><活用語><付属>
ん ん ぬ 助動詞 5 * 0 助動詞ぬ型 27 音便基本形 12 NIL <文末><表現文末><かな漢字><ひらがな><活用語><否定><付属>
""".split('\n')[1:-1]

        expected = []
        expected.append(teiru_lines)
        expected.append(teoku_lines)
        self.assertEquals(actual, expected)

if __name__ == '__main__':
    unittest.main() # シンプルな出力でいい場合

    #詳細
    # unittest.main(verbosity=2, buffer=True)
