diff --git a/lib/verb.rb b/lib/verb.rb index b5b11ac..02ed561 100644 --- a/lib/verb.rb +++ b/lib/verb.rb @@ -130,10 +130,20 @@ class GodanVerb < Verb dict.kanji == "行く" end + def aru? + dict.kanji == "ある" + end + def stem all_but_last_character + last_character("i") end + def short_form_present_negative + return KanaKanji.new("ない") if aru? + + super + end + def negative_stem all_but_last_character + last_character("a") end diff --git a/test/test_verb.rb b/test/test_verb.rb index c291fc5..34d2fba 100644 --- a/test/test_verb.rb +++ b/test/test_verb.rb @@ -19,6 +19,7 @@ class TestVerb < Minitest::Test @benkyousuru = SuruVerb.new("勉強する", "べんきょうする", "to study") @kuru = KuruVerb.new("来る", "くる", "to come") @tsuretekuru = KuruVerb.new("連れて来る", "つれてくる", "to bring somebody along") + @aru = GodanVerb.new("ある", "ある", "to be") end def test_te_form @@ -44,6 +45,7 @@ class TestVerb < Minitest::Test assert_equal "きて", @kuru.te.kana assert_equal "連れて来て", @tsuretekuru.te.kanji assert_equal "つれてきて", @tsuretekuru.te.kana + assert_equal "あって", @aru.te.kana end def test_long_form_present_positive @@ -59,6 +61,7 @@ class TestVerb < Minitest::Test assert_equal "きます", @kuru.long_form_present_positive.kana assert_equal "連れて来ます", @tsuretekuru.long_form_present_positive.kanji assert_equal "つれてきます", @tsuretekuru.long_form_present_positive.kana + assert_equal "あります", @aru.long_form_present_positive.kana end def test_long_form_present_negative @@ -74,6 +77,7 @@ class TestVerb < Minitest::Test assert_equal "きません", @kuru.long_form_present_negative.kana assert_equal "連れて来ません", @tsuretekuru.long_form_present_negative.kanji assert_equal "つれてきません", @tsuretekuru.long_form_present_negative.kana + assert_equal "ありません", @aru.long_form_present_negative.kana end def test_short_form_present_positive @@ -89,6 +93,7 @@ class TestVerb < Minitest::Test assert_equal "くる", @kuru.short_form_present_positive.kana assert_equal "連れて来る", @tsuretekuru.short_form_present_positive.kanji assert_equal "つれてくる", @tsuretekuru.short_form_present_positive.kana + assert_equal "ある", @aru.short_form_present_positive.kana end def test_short_form_present_negative @@ -104,6 +109,7 @@ class TestVerb < Minitest::Test assert_equal "こない", @kuru.short_form_present_negative.kana assert_equal "連れて来ない", @tsuretekuru.short_form_present_negative.kanji assert_equal "つれてこない", @tsuretekuru.short_form_present_negative.kana + assert_equal "ない", @aru.short_form_present_negative.kana end def test_long_form_past_positive @@ -119,6 +125,7 @@ class TestVerb < Minitest::Test assert_equal "きました", @kuru.long_form_past_positive.kana assert_equal "連れて来ました", @tsuretekuru.long_form_past_positive.kanji assert_equal "つれてきました", @tsuretekuru.long_form_past_positive.kana + assert_equal "ありました", @aru.long_form_past_positive.kana end def test_long_form_past_negative @@ -134,6 +141,7 @@ class TestVerb < Minitest::Test assert_equal "きませんでした", @kuru.long_form_past_negative.kana assert_equal "連れて来ませんでした", @tsuretekuru.long_form_past_negative.kanji assert_equal "つれてきませんでした", @tsuretekuru.long_form_past_negative.kana + assert_equal "ありませんでした", @aru.long_form_past_negative.kana end def test_short_form_past_positive @@ -149,6 +157,7 @@ class TestVerb < Minitest::Test assert_equal "きた", @kuru.short_form_past_positive.kana assert_equal "連れて来た", @tsuretekuru.short_form_past_positive.kanji assert_equal "つれてきた", @tsuretekuru.short_form_past_positive.kana + assert_equal "あった", @aru.short_form_past_positive.kana end def test_short_form_past_negative @@ -164,6 +173,7 @@ class TestVerb < Minitest::Test assert_equal "こなかった", @kuru.short_form_past_negative.kana assert_equal "連れて来なかった", @tsuretekuru.short_form_past_negative.kanji assert_equal "つれてこなかった", @tsuretekuru.short_form_past_negative.kana + assert_equal "なかった", @aru.short_form_past_negative.kana end def test_desire @@ -179,6 +189,7 @@ class TestVerb < Minitest::Test assert_equal "きたい", @kuru.desire.kana assert_equal "連れて来たい", @tsuretekuru.desire.kanji assert_equal "つれてきたい", @tsuretekuru.desire.kana + assert_equal "ありたい", @aru.desire.kana end def test_potential @@ -194,5 +205,6 @@ class TestVerb < Minitest::Test assert_equal "こられる", @kuru.potential.dictionary.kana assert_equal "連れて来られる", @tsuretekuru.potential.dictionary.kanji assert_equal "つれてこられる", @tsuretekuru.potential.dictionary.kana + assert_equal "あれる", @aru.potential.dictionary.kana end end