summary refs log tree commit diff stats
path: root/c/pangram/test/test_pangram.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/pangram/test/test_pangram.c')
-rw-r--r--c/pangram/test/test_pangram.c105
1 files changed, 105 insertions, 0 deletions
diff --git a/c/pangram/test/test_pangram.c b/c/pangram/test/test_pangram.c
new file mode 100644
index 0000000..d6b2e1f
--- /dev/null
+++ b/c/pangram/test/test_pangram.c
@@ -0,0 +1,105 @@
+#include "vendor/unity.h"
+#include "../src/pangram.h"
+
+void setUp(void)
+{
+}
+
+void tearDown(void)
+{
+}
+
+static void test_null(void)
+{
+   TEST_ASSERT_FALSE(is_pangram(NULL));
+}
+
+static void test_empty_sentence(void)
+{
+   const char sentence[] = "";
+
+   TEST_ASSERT_FALSE(is_pangram(sentence));
+}
+
+static void test_perfect_lower_case(void)
+{
+   const char sentence[] = "abcdefghijklmnopqrstuvwxyz";
+
+   TEST_ASSERT_TRUE(is_pangram(sentence));
+}
+
+static void test_only_lower_case(void)
+{
+   const char sentence[] = "the quick brown fox jumps over the lazy dog";
+
+   TEST_ASSERT_TRUE(is_pangram(sentence));
+}
+
+static void test_missing_letter_x(void)
+{
+   const char sentence[] =
+       "a quick movement of the enemy will jeopardize five gunboats";
+
+   TEST_ASSERT_FALSE(is_pangram(sentence));
+}
+
+static void test_missing_letter_h(void)
+{
+   const char sentence[] = "five boxing wizards jump quickly at it";
+
+   TEST_ASSERT_FALSE(is_pangram(sentence));
+}
+
+static void test_with_underscores(void)
+{
+   const char sentence[] = "the_quick_brown_fox_jumps_over_the_lazy_dog";
+
+   TEST_ASSERT_TRUE(is_pangram(sentence));
+}
+
+static void test_with_numbers(void)
+{
+   const char sentence[] = "the 1 quick brown fox jumps over the 2 lazy dogs";
+
+   TEST_ASSERT_TRUE(is_pangram(sentence));
+}
+
+static void test_missing_letters_replaced_by_numbers(void)
+{
+   const char sentence[] = "7h3 qu1ck brown fox jumps ov3r 7h3 lazy dog";
+
+   TEST_ASSERT_FALSE(is_pangram(sentence));
+}
+
+static void test_mixed_case_and_punctuation(void)
+{
+   const char sentence[] = "\"Five quacking Zephyrs jolt my wax bed.\"";
+
+   TEST_ASSERT_TRUE(is_pangram(sentence));
+}
+
+static void test_case_insensitive(void)
+{
+   const char sentence[] = "the quick brown fox jumps over with lazy FX";
+
+   TEST_ASSERT_FALSE(is_pangram(sentence));
+}
+
+int main(void)
+{
+   UnityBegin("test/test_pangram.c");
+
+   RUN_TEST(test_null);
+   RUN_TEST(test_empty_sentence);
+   RUN_TEST(test_perfect_lower_case);
+   RUN_TEST(test_only_lower_case);
+   RUN_TEST(test_missing_letter_x);
+   RUN_TEST(test_missing_letter_h);
+   RUN_TEST(test_with_underscores);
+   RUN_TEST(test_with_numbers);
+   RUN_TEST(test_missing_letters_replaced_by_numbers);
+   RUN_TEST(test_mixed_case_and_punctuation);
+   RUN_TEST(test_case_insensitive);
+
+   return UnityEnd();
+}