Skip to content

Commit

Permalink
Updating tests for Pig-Latin (#1033)
Browse files Browse the repository at this point in the history
* Updating tests for Pig-Latin

* Update test_pig_latin.c

---------

Co-authored-by: Ryan Hartlage <ryanplusplus@gmail.com>
  • Loading branch information
jagdish-15 and ryanplusplus authored Jan 12, 2025
1 parent 4b1a93a commit 22b55ef
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 48 deletions.
1 change: 1 addition & 0 deletions exercises/practice/pig-latin/.meta/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
],
"contributors": [
"h-3-0",
"jagdish-15",
"patricksjackson",
"QLaille",
"ryanplusplus",
Expand Down
60 changes: 35 additions & 25 deletions exercises/practice/pig-latin/.meta/tests.toml
Original file line number Diff line number Diff line change
@@ -1,69 +1,79 @@
# This is an auto-generated file. Regular comments will be removed when this
# file is regenerated. Regenerating will not touch any manually added keys,
# so comments can be added in a "comment" key.
# This is an auto-generated file.
#
# Regenerating this file via `configlet sync` will:
# - Recreate every `description` key/value pair
# - Recreate every `reimplements` key/value pair, where they exist in problem-specifications
# - Remove any `include = true` key/value pair (an omitted `include` key implies inclusion)
# - Preserve any other key/value pair
#
# As user-added comments (using the # character) will be removed when this file
# is regenerated, comments can be added via a `comment` key.

[11567f84-e8c6-4918-aedb-435f0b73db57]
description = "word beginning with a"
description = "ay is added to words that start with vowels -> word beginning with a"

[f623f581-bc59-4f45-9032-90c3ca9d2d90]
description = "word beginning with e"
description = "ay is added to words that start with vowels -> word beginning with e"

[7dcb08b3-23a6-4e8a-b9aa-d4e859450d58]
description = "word beginning with i"
description = "ay is added to words that start with vowels -> word beginning with i"

[0e5c3bff-266d-41c8-909f-364e4d16e09c]
description = "word beginning with o"
description = "ay is added to words that start with vowels -> word beginning with o"

[614ba363-ca3c-4e96-ab09-c7320799723c]
description = "word beginning with u"
description = "ay is added to words that start with vowels -> word beginning with u"

[bf2538c6-69eb-4fa7-a494-5a3fec911326]
description = "word beginning with a vowel and followed by a qu"
description = "ay is added to words that start with vowels -> word beginning with a vowel and followed by a qu"

[e5be8a01-2d8a-45eb-abb4-3fcc9582a303]
description = "word beginning with p"
description = "first letter and ay are moved to the end of words that start with consonants -> word beginning with p"

[d36d1e13-a7ed-464d-a282-8820cb2261ce]
description = "word beginning with k"
description = "first letter and ay are moved to the end of words that start with consonants -> word beginning with k"

[d838b56f-0a89-4c90-b326-f16ff4e1dddc]
description = "word beginning with x"
description = "first letter and ay are moved to the end of words that start with consonants -> word beginning with x"

[bce94a7a-a94e-4e2b-80f4-b2bb02e40f71]
description = "word beginning with q without a following u"
description = "first letter and ay are moved to the end of words that start with consonants -> word beginning with q without a following u"

[e59dbbe8-ccee-4619-a8e9-ce017489bfc0]
description = "first letter and ay are moved to the end of words that start with consonants -> word beginning with consonant and vowel containing qu"

[c01e049a-e3e2-451c-bf8e-e2abb7e438b8]
description = "word beginning with ch"
description = "some letter clusters are treated like a single consonant -> word beginning with ch"

[9ba1669e-c43f-4b93-837a-cfc731fd1425]
description = "word beginning with qu"
description = "some letter clusters are treated like a single consonant -> word beginning with qu"

[92e82277-d5e4-43d7-8dd3-3a3b316c41f7]
description = "word beginning with qu and a preceding consonant"
description = "some letter clusters are treated like a single consonant -> word beginning with qu and a preceding consonant"

[79ae4248-3499-4d5b-af46-5cb05fa073ac]
description = "word beginning with th"
description = "some letter clusters are treated like a single consonant -> word beginning with th"

[e0b3ae65-f508-4de3-8999-19c2f8e243e1]
description = "word beginning with thr"
description = "some letter clusters are treated like a single consonant -> word beginning with thr"

[20bc19f9-5a35-4341-9d69-1627d6ee6b43]
description = "word beginning with sch"
description = "some letter clusters are treated like a single consonant -> word beginning with sch"

[54b796cb-613d-4509-8c82-8fbf8fc0af9e]
description = "word beginning with yt"
description = "some letter clusters are treated like a single vowel -> word beginning with yt"

[8c37c5e1-872e-4630-ba6e-d20a959b67f6]
description = "word beginning with xr"
description = "some letter clusters are treated like a single vowel -> word beginning with xr"

[a4a36d33-96f3-422c-a233-d4021460ff00]
description = "y is treated like a consonant at the beginning of a word"
description = "position of y in a word determines if it is a consonant or a vowel -> y is treated like a consonant at the beginning of a word"

[adc90017-1a12-4100-b595-e346105042c7]
description = "y is treated like a vowel at the end of a consonant cluster"
description = "position of y in a word determines if it is a consonant or a vowel -> y is treated like a vowel at the end of a consonant cluster"

[29b4ca3d-efe5-4a95-9a54-8467f2e5e59a]
description = "y as second letter in two letter word"
description = "position of y in a word determines if it is a consonant or a vowel -> y as second letter in two letter word"

[44616581-5ce3-4a81-82d0-40c7ab13d2cf]
description = "a whole phrase"
description = "phrases are translated -> a whole phrase"
53 changes: 30 additions & 23 deletions exercises/practice/pig-latin/test_pig_latin.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,142 +14,148 @@ void tearDown(void)
res = NULL;
}

static void check_transate(const char *phrase, const char *expected)
static void check_translate(const char *phrase, const char *expected)
{
res = translate(phrase);
TEST_ASSERT_EQUAL_STRING(expected, res);
}

static void test_word_beginning_with_a(void)
{
check_transate("apple", "appleay");
check_translate("apple", "appleay");
}

static void test_word_beginning_with_e(void)
{
TEST_IGNORE(); // delete this line to run test
check_transate("ear", "earay");
check_translate("ear", "earay");
}

static void test_word_beginning_with_i(void)
{
TEST_IGNORE();
check_transate("igloo", "iglooay");
check_translate("igloo", "iglooay");
}

static void test_word_beginning_with_o(void)
{
TEST_IGNORE();
check_transate("object", "objectay");
check_translate("object", "objectay");
}

static void test_word_beginning_with_u(void)
{
TEST_IGNORE();
check_transate("under", "underay");
check_translate("under", "underay");
}

static void test_word_beginning_with_a_vowel_and_followed_by_a_qu(void)
{
TEST_IGNORE();
check_transate("equal", "equalay");
check_translate("equal", "equalay");
}

static void test_word_beginning_with_p(void)
{
TEST_IGNORE();
check_transate("pig", "igpay");
check_translate("pig", "igpay");
}

static void test_word_beginning_with_k(void)
{
TEST_IGNORE();
check_transate("koala", "oalakay");
check_translate("koala", "oalakay");
}

static void test_word_beginning_with_x(void)
{
TEST_IGNORE();
check_transate("xenon", "enonxay");
check_translate("xenon", "enonxay");
}

static void test_word_beginning_with_q_without_a_following_u(void)
{
TEST_IGNORE();
check_transate("qat", "atqay");
check_translate("qat", "atqay");
}

static void test_word_beginning_with_consonant_and_vowel_containing_qu(void)
{
TEST_IGNORE();
check_translate("liquid", "iquidlay");
}

static void test_word_beginning_with_ch(void)
{
TEST_IGNORE();
check_transate("chair", "airchay");
check_translate("chair", "airchay");
}

static void test_word_beginning_with_qu(void)
{
TEST_IGNORE();
check_transate("queen", "eenquay");
check_translate("queen", "eenquay");
}

static void test_word_beginning_with_qu_and_a_preceding_consonant(void)
{
TEST_IGNORE();
check_transate("square", "aresquay");
check_translate("square", "aresquay");
}

static void test_word_beginning_with_th(void)
{
TEST_IGNORE();
check_transate("therapy", "erapythay");
check_translate("therapy", "erapythay");
}

static void test_word_beginning_with_thr(void)
{
TEST_IGNORE();
check_transate("thrush", "ushthray");
check_translate("thrush", "ushthray");
}

static void test_word_beginning_with_sch(void)
{
TEST_IGNORE();
check_transate("school", "oolschay");
check_translate("school", "oolschay");
}

static void test_word_beginning_with_yt(void)
{
TEST_IGNORE();
check_transate("yttria", "yttriaay");
check_translate("yttria", "yttriaay");
}

static void test_word_beginning_with_xr(void)
{
TEST_IGNORE();
check_transate("xray", "xrayay");
check_translate("xray", "xrayay");
}

static void test_y_is_treated_like_a_consonant_at_the_beginning_of_a_word(void)
{
TEST_IGNORE();
check_transate("yellow", "ellowyay");
check_translate("yellow", "ellowyay");
}

static void
test_y_is_treated_like_a_vowel_at_the_end_of_a_consonant_cluster(void)
{
TEST_IGNORE();
check_transate("rhythm", "ythmrhay");
check_translate("rhythm", "ythmrhay");
}

static void test_y_as_second_letter_in_two_letter_word(void)
{
TEST_IGNORE();
check_transate("my", "ymay");
check_translate("my", "ymay");
}

static void test_a_whole_phrase(void)
{
TEST_IGNORE();
check_transate("quick fast run", "ickquay astfay unray");
check_translate("quick fast run", "ickquay astfay unray");
}

int main(void)
Expand All @@ -166,6 +172,7 @@ int main(void)
RUN_TEST(test_word_beginning_with_k);
RUN_TEST(test_word_beginning_with_x);
RUN_TEST(test_word_beginning_with_q_without_a_following_u);
RUN_TEST(test_word_beginning_with_consonant_and_vowel_containing_qu);
RUN_TEST(test_word_beginning_with_ch);
RUN_TEST(test_word_beginning_with_qu);
RUN_TEST(test_word_beginning_with_qu_and_a_preceding_consonant);
Expand Down

0 comments on commit 22b55ef

Please sign in to comment.