Kuru
This commit is contained in:
parent
3e3463593e
commit
24b5386b51
46
lib/verb.rb
46
lib/verb.rb
@ -26,7 +26,12 @@ class KanaKanji
|
||||
end
|
||||
|
||||
def + (other)
|
||||
case other
|
||||
when String
|
||||
self.class.new kana + other, kanji + other
|
||||
when KanaKanji
|
||||
self.class.new kana + other.kana, kanji + other.kanji
|
||||
end
|
||||
end
|
||||
|
||||
def last_character(new_form=nil)
|
||||
@ -57,10 +62,6 @@ class Verb
|
||||
dict.all_but_last_character
|
||||
end
|
||||
|
||||
def ve
|
||||
VerbExpression
|
||||
end
|
||||
|
||||
def dictionary
|
||||
dict
|
||||
end
|
||||
@ -85,6 +86,10 @@ class Verb
|
||||
dictionary
|
||||
end
|
||||
|
||||
def short_form_present_negative
|
||||
negative_stem + "ない"
|
||||
end
|
||||
|
||||
def short_form_past_positive
|
||||
te.all_but_last_character + TE_TA_DE_DA[te.last_character]
|
||||
end
|
||||
@ -107,8 +112,8 @@ class IchidanVerb < Verb
|
||||
all_but_last_character
|
||||
end
|
||||
|
||||
def short_form_present_negative
|
||||
all_but_last_character + "ない"
|
||||
def negative_stem
|
||||
stem
|
||||
end
|
||||
|
||||
def te
|
||||
@ -129,8 +134,8 @@ class GodanVerb < Verb
|
||||
all_but_last_character + last_character("i")
|
||||
end
|
||||
|
||||
def short_form_present_negative
|
||||
all_but_last_character + last_character("a") + "ない"
|
||||
def negative_stem
|
||||
all_but_last_character + last_character("a")
|
||||
end
|
||||
|
||||
def potential_starter
|
||||
@ -170,8 +175,8 @@ class SuruVerb < Verb
|
||||
prefix + "し"
|
||||
end
|
||||
|
||||
def short_form_present_negative
|
||||
prefix + "しない"
|
||||
def negative_stem
|
||||
prefix + "し"
|
||||
end
|
||||
|
||||
def te
|
||||
@ -183,3 +188,24 @@ class SuruVerb < Verb
|
||||
end
|
||||
end
|
||||
|
||||
class KuruVerb < Verb
|
||||
def prefix
|
||||
dict[..-3]
|
||||
end
|
||||
|
||||
def te
|
||||
stem + "て"
|
||||
end
|
||||
|
||||
def stem
|
||||
prefix + KanaKanji.new("き", "来")
|
||||
end
|
||||
|
||||
def negative_stem
|
||||
prefix + KanaKanji.new("こ", "来")
|
||||
end
|
||||
|
||||
def potential_starter
|
||||
negative_stem + "られる"
|
||||
end
|
||||
end
|
||||
|
@ -17,6 +17,8 @@ class TestVerb < Minitest::Test
|
||||
@hanasu = GodanVerb.new("話す", "はなす", "to speak")
|
||||
@suru = SuruVerb.new("する", "する", "to do")
|
||||
@benkyousuru = SuruVerb.new("勉強する", "べんきょうする", "to study")
|
||||
@kuru = KuruVerb.new("来る", "くる", "to come")
|
||||
@tsuretekuru = KuruVerb.new("連れて来る", "つれてくる", "to bring somebody along")
|
||||
end
|
||||
|
||||
def test_te_form
|
||||
@ -38,6 +40,10 @@ class TestVerb < Minitest::Test
|
||||
assert_equal "行って", @iku.te.kanji
|
||||
assert_equal "泳いで", @oyogu.te.kanji
|
||||
assert_equal "話して", @hanasu.te.kanji
|
||||
assert_equal "来て", @kuru.te.kanji
|
||||
assert_equal "きて", @kuru.te.kana
|
||||
assert_equal "連れて来て", @tsuretekuru.te.kanji
|
||||
assert_equal "つれてきて", @tsuretekuru.te.kana
|
||||
end
|
||||
|
||||
def test_long_form_present_positive
|
||||
@ -49,6 +55,10 @@ class TestVerb < Minitest::Test
|
||||
assert_equal "します", @suru.long_form_present_positive.kana
|
||||
assert_equal "勉強します", @benkyousuru.long_form_present_positive.kanji
|
||||
assert_equal "べんきょうします", @benkyousuru.long_form_present_positive.kana
|
||||
assert_equal "来ます", @kuru.long_form_present_positive.kanji
|
||||
assert_equal "きます", @kuru.long_form_present_positive.kana
|
||||
assert_equal "連れて来ます", @tsuretekuru.long_form_present_positive.kanji
|
||||
assert_equal "つれてきます", @tsuretekuru.long_form_present_positive.kana
|
||||
end
|
||||
|
||||
def test_long_form_present_negative
|
||||
@ -60,6 +70,10 @@ class TestVerb < Minitest::Test
|
||||
assert_equal "しません", @suru.long_form_present_negative.kana
|
||||
assert_equal "勉強しません", @benkyousuru.long_form_present_negative.kanji
|
||||
assert_equal "べんきょうしません", @benkyousuru.long_form_present_negative.kana
|
||||
assert_equal "来ません", @kuru.long_form_present_negative.kanji
|
||||
assert_equal "きません", @kuru.long_form_present_negative.kana
|
||||
assert_equal "連れて来ません", @tsuretekuru.long_form_present_negative.kanji
|
||||
assert_equal "つれてきません", @tsuretekuru.long_form_present_negative.kana
|
||||
end
|
||||
|
||||
def test_short_form_present_positive
|
||||
@ -71,6 +85,10 @@ class TestVerb < Minitest::Test
|
||||
assert_equal "する", @suru.short_form_present_positive.kana
|
||||
assert_equal "勉強する", @benkyousuru.short_form_present_positive.kanji
|
||||
assert_equal "べんきょうする", @benkyousuru.short_form_present_positive.kana
|
||||
assert_equal "来る", @kuru.short_form_present_positive.kanji
|
||||
assert_equal "くる", @kuru.short_form_present_positive.kana
|
||||
assert_equal "連れて来る", @tsuretekuru.short_form_present_positive.kanji
|
||||
assert_equal "つれてくる", @tsuretekuru.short_form_present_positive.kana
|
||||
end
|
||||
|
||||
def test_short_form_present_negative
|
||||
@ -82,6 +100,10 @@ class TestVerb < Minitest::Test
|
||||
assert_equal "しない", @suru.short_form_present_negative.kana
|
||||
assert_equal "勉強しない", @benkyousuru.short_form_present_negative.kanji
|
||||
assert_equal "べんきょうしない", @benkyousuru.short_form_present_negative.kana
|
||||
assert_equal "来ない", @kuru.short_form_present_negative.kanji
|
||||
assert_equal "こない", @kuru.short_form_present_negative.kana
|
||||
assert_equal "連れて来ない", @tsuretekuru.short_form_present_negative.kanji
|
||||
assert_equal "つれてこない", @tsuretekuru.short_form_present_negative.kana
|
||||
end
|
||||
|
||||
def test_long_form_past_positive
|
||||
@ -93,6 +115,10 @@ class TestVerb < Minitest::Test
|
||||
assert_equal "しました", @suru.long_form_past_positive.kana
|
||||
assert_equal "勉強しました", @benkyousuru.long_form_past_positive.kanji
|
||||
assert_equal "べんきょうしました", @benkyousuru.long_form_past_positive.kana
|
||||
assert_equal "来ました", @kuru.long_form_past_positive.kanji
|
||||
assert_equal "きました", @kuru.long_form_past_positive.kana
|
||||
assert_equal "連れて来ました", @tsuretekuru.long_form_past_positive.kanji
|
||||
assert_equal "つれてきました", @tsuretekuru.long_form_past_positive.kana
|
||||
end
|
||||
|
||||
def test_long_form_past_negative
|
||||
@ -104,6 +130,10 @@ class TestVerb < Minitest::Test
|
||||
assert_equal "しませんでした", @suru.long_form_past_negative.kana
|
||||
assert_equal "勉強しませんでした", @benkyousuru.long_form_past_negative.kanji
|
||||
assert_equal "べんきょうしませんでした", @benkyousuru.long_form_past_negative.kana
|
||||
assert_equal "来ませんでした", @kuru.long_form_past_negative.kanji
|
||||
assert_equal "きませんでした", @kuru.long_form_past_negative.kana
|
||||
assert_equal "連れて来ませんでした", @tsuretekuru.long_form_past_negative.kanji
|
||||
assert_equal "つれてきませんでした", @tsuretekuru.long_form_past_negative.kana
|
||||
end
|
||||
|
||||
def test_short_form_past_positive
|
||||
@ -115,6 +145,10 @@ class TestVerb < Minitest::Test
|
||||
assert_equal "した", @suru.short_form_past_positive.kana
|
||||
assert_equal "勉強した", @benkyousuru.short_form_past_positive.kanji
|
||||
assert_equal "べんきょうした", @benkyousuru.short_form_past_positive.kana
|
||||
assert_equal "来た", @kuru.short_form_past_positive.kanji
|
||||
assert_equal "きた", @kuru.short_form_past_positive.kana
|
||||
assert_equal "連れて来た", @tsuretekuru.short_form_past_positive.kanji
|
||||
assert_equal "つれてきた", @tsuretekuru.short_form_past_positive.kana
|
||||
end
|
||||
|
||||
def test_short_form_past_negative
|
||||
@ -126,6 +160,10 @@ class TestVerb < Minitest::Test
|
||||
assert_equal "しなかった", @suru.short_form_past_negative.kana
|
||||
assert_equal "勉強しなかった", @benkyousuru.short_form_past_negative.kanji
|
||||
assert_equal "べんきょうしなかった", @benkyousuru.short_form_past_negative.kana
|
||||
assert_equal "来なかった", @kuru.short_form_past_negative.kanji
|
||||
assert_equal "こなかった", @kuru.short_form_past_negative.kana
|
||||
assert_equal "連れて来なかった", @tsuretekuru.short_form_past_negative.kanji
|
||||
assert_equal "つれてこなかった", @tsuretekuru.short_form_past_negative.kana
|
||||
end
|
||||
|
||||
def test_desire
|
||||
@ -137,6 +175,10 @@ class TestVerb < Minitest::Test
|
||||
assert_equal "したい", @suru.desire.kana
|
||||
assert_equal "勉強したい", @benkyousuru.desire.kanji
|
||||
assert_equal "べんきょうしたい", @benkyousuru.desire.kana
|
||||
assert_equal "来たい", @kuru.desire.kanji
|
||||
assert_equal "きたい", @kuru.desire.kana
|
||||
assert_equal "連れて来たい", @tsuretekuru.desire.kanji
|
||||
assert_equal "つれてきたい", @tsuretekuru.desire.kana
|
||||
end
|
||||
|
||||
def test_potential
|
||||
@ -148,5 +190,9 @@ class TestVerb < Minitest::Test
|
||||
assert_equal "できる", @suru.potential.dictionary.kana
|
||||
assert_equal "勉強できる", @benkyousuru.potential.dictionary.kanji
|
||||
assert_equal "べんきょうできる", @benkyousuru.potential.dictionary.kana
|
||||
assert_equal "来られる", @kuru.potential.dictionary.kanji
|
||||
assert_equal "こられる", @kuru.potential.dictionary.kana
|
||||
assert_equal "連れて来られる", @tsuretekuru.potential.dictionary.kanji
|
||||
assert_equal "つれてこられる", @tsuretekuru.potential.dictionary.kana
|
||||
end
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user