Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions exercises/practice/isogram/.meta/template.j2
Original file line number Diff line number Diff line change
@@ -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 %}

56 changes: 42 additions & 14 deletions exercises/practice/isogram/isogram_test.gd
Original file line number Diff line number Diff line change
@@ -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]
Loading