From 3525224124ea870fe6e1ac80ce0e8d86e1f5618c Mon Sep 17 00:00:00 2001 From: Isaac Good Date: Fri, 25 Sep 2026 21:59:31 -0700 Subject: [PATCH] [isogram] Switch to generated tests --- exercises/practice/isogram/.meta/template.j2 | 8 +++ exercises/practice/isogram/isogram_test.gd | 56 +++++++++++++++----- 2 files changed, 50 insertions(+), 14 deletions(-) create mode 100644 exercises/practice/isogram/.meta/template.j2 diff --git a/exercises/practice/isogram/.meta/template.j2 b/exercises/practice/isogram/.meta/template.j2 new file mode 100644 index 0000000..ad8bf50 --- /dev/null +++ b/exercises/practice/isogram/.meta/template.j2 @@ -0,0 +1,8 @@ +{% for case in cases %} +func test_{{ case["func_name"] }}(solution_script): + var got = solution_script.is_isogram("{{ case["input"]["phrase"] }}") + var want = {{ case["expected"] }} + return [got, want] + +{% endfor %} + diff --git a/exercises/practice/isogram/isogram_test.gd b/exercises/practice/isogram/isogram_test.gd index 544152b..8fa8946 100644 --- a/exercises/practice/isogram/isogram_test.gd +++ b/exercises/practice/isogram/isogram_test.gd @@ -1,54 +1,82 @@ func test_empty_string(solution_script): - return [solution_script.is_isogram(""), true] + var got = solution_script.is_isogram("") + var want = true + return [got, want] func test_isogram_with_only_lower_case_characters(solution_script): - return [solution_script.is_isogram("isogram"), true] + var got = solution_script.is_isogram("isogram") + var want = true + return [got, want] func test_word_with_one_duplicated_character(solution_script): - return [solution_script.is_isogram("eleven"), false] + var got = solution_script.is_isogram("eleven") + var want = false + return [got, want] func test_word_with_one_duplicated_character_from_the_end_of_the_alphabet(solution_script): - return [solution_script.is_isogram("zzyzx"), false] + var got = solution_script.is_isogram("zzyzx") + var want = false + return [got, want] func test_longest_reported_english_isogram(solution_script): - return [solution_script.is_isogram("subdermatoglyphic"), true] + var got = solution_script.is_isogram("subdermatoglyphic") + var want = true + return [got, want] func test_word_with_duplicated_character_in_mixed_case(solution_script): - return [solution_script.is_isogram("Alphabet"), false] + var got = solution_script.is_isogram("Alphabet") + var want = false + return [got, want] func test_word_with_duplicated_character_in_mixed_case_lowercase_first(solution_script): - return [solution_script.is_isogram("alphAbet"), false] + var got = solution_script.is_isogram("alphAbet") + var want = false + return [got, want] func test_hypothetical_isogrammic_word_with_hyphen(solution_script): - return [solution_script.is_isogram("thumbscrew-japingly"), true] + var got = solution_script.is_isogram("thumbscrew-japingly") + var want = true + return [got, want] func test_hypothetical_word_with_duplicated_character_following_hyphen(solution_script): - return [solution_script.is_isogram("thumbscrew-jappingly"), false] + var got = solution_script.is_isogram("thumbscrew-jappingly") + var want = false + return [got, want] func test_isogram_with_duplicated_hyphen(solution_script): - return [solution_script.is_isogram("six-year-old"), true] + var got = solution_script.is_isogram("six-year-old") + var want = true + return [got, want] func test_made_up_name_that_is_an_isogram(solution_script): - return [solution_script.is_isogram("Emily Jung Schwartzkopf"), true] + var got = solution_script.is_isogram("Emily Jung Schwartzkopf") + var want = true + return [got, want] func test_duplicated_character_in_the_middle(solution_script): - return [solution_script.is_isogram("accentor"), false] + var got = solution_script.is_isogram("accentor") + var want = false + return [got, want] func test_same_first_and_last_characters(solution_script): - return [solution_script.is_isogram("angola"), false] + var got = solution_script.is_isogram("angola") + var want = false + return [got, want] func test_word_with_duplicated_character_and_with_two_hyphens(solution_script): - return [solution_script.is_isogram("up-to-date"), false] + var got = solution_script.is_isogram("up-to-date") + var want = false + return [got, want]