Potential form

This commit is contained in:
Bill Rossi 2025-08-16 09:39:37 -04:00
parent 2c0e22d0b0
commit 3e3463593e
2 changed files with 30 additions and 3 deletions

View File

@ -40,13 +40,13 @@ class KanaKanji
end end
class Verb class Verb
attr_reader :dict_kanji, :dict_kana, :definition_english, :dict attr_reader :dict_kanji, :dict_kana, :definition, :dict
def initialize(dict_kanji, dict_kana, definition_english) def initialize(dict_kanji, dict_kana, definition)
@dict_kanji = dict_kanji || dict_kana @dict_kanji = dict_kanji || dict_kana
@dict_kana = dict_kana @dict_kana = dict_kana
@dict = KanaKanji.new dict_kana, dict_kanji @dict = KanaKanji.new dict_kana, dict_kanji
@definition_english = definition_english @definition = definition
end end
def last_character(new_form=nil) def last_character(new_form=nil)
@ -96,6 +96,10 @@ class Verb
def desire def desire
stem + "たい" stem + "たい"
end end
def potential
IchidanVerb.new(potential_starter.kanji, potential_starter.kana, "to be able #{definition}")
end
end end
class IchidanVerb < Verb class IchidanVerb < Verb
@ -110,6 +114,10 @@ class IchidanVerb < Verb
def te def te
all_but_last_character + "" all_but_last_character + ""
end end
def potential_starter
stem + "られる"
end
end end
class GodanVerb < Verb class GodanVerb < Verb
@ -125,6 +133,10 @@ class GodanVerb < Verb
all_but_last_character + last_character("a") + "ない" all_but_last_character + last_character("a") + "ない"
end end
def potential_starter
all_but_last_character + last_character("e") + ""
end
def te def te
all_but_last_character + case last_character all_but_last_character + case last_character
when "" when ""
@ -165,5 +177,9 @@ class SuruVerb < Verb
def te def te
prefix + "して" prefix + "して"
end end
def potential_starter
prefix + "できる"
end
end end

View File

@ -138,4 +138,15 @@ class TestVerb < Minitest::Test
assert_equal "勉強したい", @benkyousuru.desire.kanji assert_equal "勉強したい", @benkyousuru.desire.kanji
assert_equal "べんきょうしたい", @benkyousuru.desire.kana assert_equal "べんきょうしたい", @benkyousuru.desire.kana
end end
def test_potential
assert_equal "見られる", @miru.potential.dictionary.kanji
assert_equal "みられる", @miru.potential.dictionary.kana
assert_equal "飲める", @nomu.potential.dictionary.kanji
assert_equal "のめる", @nomu.potential.dictionary.kana
assert_equal "できる", @suru.potential.dictionary.kanji
assert_equal "できる", @suru.potential.dictionary.kana
assert_equal "勉強できる", @benkyousuru.potential.dictionary.kanji
assert_equal "べんきょうできる", @benkyousuru.potential.dictionary.kana
end
end end