diff --git a/exercises/isogram/.meta/.version b/exercises/isogram/.meta/.version index e440e5c842..b8626c4cff 100644 --- a/exercises/isogram/.meta/.version +++ b/exercises/isogram/.meta/.version @@ -1 +1 @@ -3 \ No newline at end of file +4 diff --git a/exercises/isogram/.meta/generator/isogram_case.rb b/exercises/isogram/.meta/generator/isogram_case.rb index 078852ae37..a121d977c1 100644 --- a/exercises/isogram/.meta/generator/isogram_case.rb +++ b/exercises/isogram/.meta/generator/isogram_case.rb @@ -6,9 +6,23 @@ def workload indent_lines( [ "string = #{input.inspect}", - "#{assert} Isogram.is_isogram?(string)" + "#{assert} Isogram.isogram?(string), #{failure_message}" ], 4 ) end + private + + def failure_message + %Q("Expected #{expected}, #{reason}") + end + + def reason + "'#{input}' #{is_or_not} an isogram" + end + + def is_or_not + expected ? 'is' : 'is not' + end + end diff --git a/exercises/isogram/isogram_test.rb b/exercises/isogram/isogram_test.rb index 66f3f270b2..5170678380 100755 --- a/exercises/isogram/isogram_test.rb +++ b/exercises/isogram/isogram_test.rb @@ -7,55 +7,55 @@ class IsogramTest < Minitest::Test def test_empty_string # skip string = "" - assert Isogram.is_isogram?(string) + assert Isogram.isogram?(string), "Expected true, '' is an isogram" end def test_isogram_with_only_lower_case_characters skip string = "isogram" - assert Isogram.is_isogram?(string) + assert Isogram.isogram?(string), "Expected true, 'isogram' is an isogram" end def test_word_with_one_duplicated_character skip string = "eleven" - refute Isogram.is_isogram?(string) + refute Isogram.isogram?(string), "Expected false, 'eleven' is not an isogram" end def test_longest_reported_english_isogram skip string = "subdermatoglyphic" - assert Isogram.is_isogram?(string) + assert Isogram.isogram?(string), "Expected true, 'subdermatoglyphic' is an isogram" end def test_word_with_duplicated_character_in_mixed_case skip string = "Alphabet" - refute Isogram.is_isogram?(string) + refute Isogram.isogram?(string), "Expected false, 'Alphabet' is not an isogram" end def test_hypothetical_isogrammic_word_with_hyphen skip string = "thumbscrew-japingly" - assert Isogram.is_isogram?(string) + assert Isogram.isogram?(string), "Expected true, 'thumbscrew-japingly' is an isogram" end def test_isogram_with_duplicated_non_letter_character skip string = "Hjelmqvist-Gryb-Zock-Pfund-Wax" - assert Isogram.is_isogram?(string) + assert Isogram.isogram?(string), "Expected true, 'Hjelmqvist-Gryb-Zock-Pfund-Wax' is an isogram" end def test_made_up_name_that_is_an_isogram skip string = "Emily Jung Schwartzkopf" - assert Isogram.is_isogram?(string) + assert Isogram.isogram?(string), "Expected true, 'Emily Jung Schwartzkopf' is an isogram" end def test_duplicated_character_in_the_middle skip string = "accentor" - refute Isogram.is_isogram?(string) + refute Isogram.isogram?(string), "Expected false, 'accentor' is not an isogram" end # Problems in exercism evolve over time, as we find better ways to ask @@ -77,6 +77,6 @@ def test_duplicated_character_in_the_middle def test_bookkeeping skip - assert_equal 3, BookKeeping::VERSION + assert_equal 4, BookKeeping::VERSION end end