diff options
Diffstat (limited to 'c/isogram/test/test_isogram.c')
-rw-r--r-- | c/isogram/test/test_isogram.c | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/c/isogram/test/test_isogram.c b/c/isogram/test/test_isogram.c new file mode 100644 index 0000000..5671338 --- /dev/null +++ b/c/isogram/test/test_isogram.c @@ -0,0 +1,104 @@ +#include "vendor/unity.h" +#include "../src/isogram.h" +#include <stdlib.h> + +void setUp(void) +{ +} + +void tearDown(void) +{ +} + +static void test_empty_string(void) +{ + TEST_ASSERT_TRUE(is_isogram("")); +} + +static void test_null(void) +{ + TEST_ASSERT_FALSE(is_isogram(NULL)); +} + +static void test_isogram_with_only_lower_case_characters(void) +{ + TEST_ASSERT_TRUE(is_isogram("isogram")); +} + +static void test_word_with_one_duplicated_character(void) +{ + TEST_ASSERT_FALSE(is_isogram("eleven")); +} + +static void test_word_with_one_duplicated_character_from_end_of_alphabet(void) +{ + TEST_ASSERT_FALSE(is_isogram("zzyzx")); +} + +static void test_longest_reported_english_isogram(void) +{ + TEST_ASSERT_TRUE(is_isogram("subdermatoglyphic")); +} + +static void test_word_with_duplicated_letter_in_mixed_case(void) +{ + TEST_ASSERT_FALSE(is_isogram("Alphabet")); +} + +static void test_word_with_duplicated_letter_in_mixed_case_lowercase_first(void) +{ + TEST_ASSERT_FALSE(is_isogram("alphAbet")); +} + +static void test_hypothetical_isogrammic_word_with_hyphen(void) +{ + TEST_ASSERT_TRUE(is_isogram("thumbscrew-japingly")); +} + +static void +test_hypothetical_word_with_duplicated_character_following_hyphen(void) +{ + TEST_ASSERT_FALSE(is_isogram("thumbscrew-jappingly")); +} + +static void test_isogram_with_duplicated_hyphen(void) +{ + TEST_ASSERT_TRUE(is_isogram("six-year-old")); +} + +static void test_made_up_name_that_is_an_isogram(void) +{ + TEST_ASSERT_TRUE(is_isogram("Emily Jung Schwartzkopf")); +} + +static void test_duplicated_character_in_the_middle(void) +{ + TEST_ASSERT_FALSE(is_isogram("accentor")); +} + +static void test_same_first_and_last_characters(void) +{ + TEST_ASSERT_FALSE(is_isogram("angola")); +} + +int main(void) +{ + UnityBegin("test/test_isogram.c"); + + RUN_TEST(test_empty_string); + RUN_TEST(test_null); + RUN_TEST(test_isogram_with_only_lower_case_characters); + RUN_TEST(test_word_with_one_duplicated_character); + RUN_TEST(test_word_with_one_duplicated_character_from_end_of_alphabet); + RUN_TEST(test_longest_reported_english_isogram); + RUN_TEST(test_word_with_duplicated_letter_in_mixed_case); + RUN_TEST(test_word_with_duplicated_letter_in_mixed_case_lowercase_first); + RUN_TEST(test_hypothetical_isogrammic_word_with_hyphen); + RUN_TEST(test_hypothetical_word_with_duplicated_character_following_hyphen); + RUN_TEST(test_isogram_with_duplicated_hyphen); + RUN_TEST(test_made_up_name_that_is_an_isogram); + RUN_TEST(test_duplicated_character_in_the_middle); + RUN_TEST(test_same_first_and_last_characters); + + return UnityEnd(); +} |