Skip to content

Commit 6639c97

Browse files
authored
add generators, fix isbn-verifier and armstrong-numbers (#468)
1 parent 1565016 commit 6639c97

10 files changed

Lines changed: 941 additions & 123 deletions

File tree

exercises/practice/armstrong-numbers/armstrong_numbers_test.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,47 +12,47 @@ void tearDown(void) {
1212
}
1313

1414
void test_zero_is_an_armstrong_number(void) {
15-
TEST_ASSERT_TRUE(is_armstrong_number(0));
15+
TEST_ASSERT_EQUAL(true, is_armstrong_number(0));
1616
}
1717

1818
void test_single_digit_numbers_are_armstrong_numbers(void) {
1919
TEST_IGNORE();
20-
TEST_ASSERT_TRUE(is_armstrong_number(5));
20+
TEST_ASSERT_EQUAL(true, is_armstrong_number(5));
2121
}
2222

2323
void test_there_are_no_two_digit_armstrong_numbers(void) {
2424
TEST_IGNORE();
25-
TEST_ASSERT_FALSE(is_armstrong_number(10));
25+
TEST_ASSERT_EQUAL(false, is_armstrong_number(10));
2626
}
2727

2828
void test_three_digit_number_that_is_an_armstrong_number(void) {
2929
TEST_IGNORE();
30-
TEST_ASSERT_TRUE(is_armstrong_number(153));
30+
TEST_ASSERT_EQUAL(true, is_armstrong_number(153));
3131
}
3232

3333
void test_three_digit_number_that_is_not_an_armstrong_number(void) {
3434
TEST_IGNORE();
35-
TEST_ASSERT_FALSE(is_armstrong_number(100));
35+
TEST_ASSERT_EQUAL(false, is_armstrong_number(100));
3636
}
3737

3838
void test_four_digit_number_that_is_an_armstrong_number(void) {
3939
TEST_IGNORE();
40-
TEST_ASSERT_TRUE(is_armstrong_number(9474));
40+
TEST_ASSERT_EQUAL(true, is_armstrong_number(9474));
4141
}
4242

4343
void test_four_digit_number_that_is_not_an_armstrong_number(void) {
4444
TEST_IGNORE();
45-
TEST_ASSERT_FALSE(is_armstrong_number(9475));
45+
TEST_ASSERT_EQUAL(false, is_armstrong_number(9475));
4646
}
4747

4848
void test_seven_digit_number_that_is_an_armstrong_number(void) {
4949
TEST_IGNORE();
50-
TEST_ASSERT_TRUE(is_armstrong_number(9926315));
50+
TEST_ASSERT_EQUAL(true, is_armstrong_number(9926315));
5151
}
5252

5353
void test_seven_digit_number_that_is_not_an_armstrong_number(void) {
5454
TEST_IGNORE();
55-
TEST_ASSERT_FALSE(is_armstrong_number(9926314));
55+
TEST_ASSERT_EQUAL(false, is_armstrong_number(9926314));
5656
}
5757

5858
int main(void) {

exercises/practice/isbn-verifier/isbn_verifier_test.c

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -13,127 +13,127 @@ void tearDown(void) {
1313

1414
void test_valid_isbn(void) {
1515
alignas(16) const char isbn[] = "3-598-21508-8";
16-
TEST_ASSERT_TRUE(is_valid(isbn));
16+
TEST_ASSERT_EQUAL(true, is_valid(isbn));
1717
}
1818

1919
void test_invalid_isbn_check_digit(void) {
2020
TEST_IGNORE();
2121
alignas(16) const char isbn[] = "3-598-21508-9";
22-
TEST_ASSERT_FALSE(is_valid(isbn));
22+
TEST_ASSERT_EQUAL(false, is_valid(isbn));
2323
}
2424

2525
void test_valid_isbn_with_a_check_digit_of_10(void) {
2626
TEST_IGNORE();
2727
alignas(16) const char isbn[] = "3-598-21507-X";
28-
TEST_ASSERT_TRUE(is_valid(isbn));
28+
TEST_ASSERT_EQUAL(true, is_valid(isbn));
2929
}
3030

3131
void test_check_digit_is_a_character_other_than_x(void) {
3232
TEST_IGNORE();
3333
alignas(16) const char isbn[] = "3-598-21507-A";
34-
TEST_ASSERT_FALSE(is_valid(isbn));
34+
TEST_ASSERT_EQUAL(false, is_valid(isbn));
3535
}
3636

3737
void test_invalid_check_digit_in_isbn_is_not_treated_as_zero(void) {
3838
TEST_IGNORE();
3939
alignas(16) const char isbn[] = "4-598-21507-B";
40-
TEST_ASSERT_FALSE(is_valid(isbn));
40+
TEST_ASSERT_EQUAL(false, is_valid(isbn));
4141
}
4242

4343
void test_invalid_character_in_isbn_is_not_treated_as_zero(void) {
4444
TEST_IGNORE();
4545
alignas(16) const char isbn[] = "3-598-P1581-X";
46-
TEST_ASSERT_FALSE(is_valid(isbn));
46+
TEST_ASSERT_EQUAL(false, is_valid(isbn));
4747
}
4848

4949
void test_x_is_only_valid_as_a_check_digit(void) {
5050
TEST_IGNORE();
5151
alignas(16) const char isbn[] = "3-598-2X507-9";
52-
TEST_ASSERT_FALSE(is_valid(isbn));
52+
TEST_ASSERT_EQUAL(false, is_valid(isbn));
5353
}
5454

5555
void test_only_one_check_digit_is_allowed(void) {
5656
TEST_IGNORE();
5757
alignas(16) const char isbn[] = "3-598-21508-96";
58-
TEST_ASSERT_FALSE(is_valid(isbn));
58+
TEST_ASSERT_EQUAL(false, is_valid(isbn));
5959
}
6060

6161
void test_x_is_not_substituted_by_the_value_10(void) {
6262
TEST_IGNORE();
6363
alignas(16) const char isbn[] = "3-598-2X507-5";
64-
TEST_ASSERT_FALSE(is_valid(isbn));
64+
TEST_ASSERT_EQUAL(false, is_valid(isbn));
6565
}
6666

6767
void test_valid_isbn_without_separating_dashes(void) {
6868
TEST_IGNORE();
6969
alignas(16) const char isbn[] = "3598215088";
70-
TEST_ASSERT_TRUE(is_valid(isbn));
70+
TEST_ASSERT_EQUAL(true, is_valid(isbn));
7171
}
7272

7373
void test_isbn_without_separating_dashes_and_x_as_check_digit(void) {
7474
TEST_IGNORE();
7575
alignas(16) const char isbn[] = "359821507X";
76-
TEST_ASSERT_TRUE(is_valid(isbn));
76+
TEST_ASSERT_EQUAL(true, is_valid(isbn));
7777
}
7878

7979
void test_isbn_without_check_digit_and_dashes(void) {
8080
TEST_IGNORE();
8181
alignas(16) const char isbn[] = "359821507";
82-
TEST_ASSERT_FALSE(is_valid(isbn));
82+
TEST_ASSERT_EQUAL(false, is_valid(isbn));
8383
}
8484

8585
void test_too_long_isbn_and_no_dashes(void) {
8686
TEST_IGNORE();
8787
alignas(16) const char isbn[] = "3598215078X";
88-
TEST_ASSERT_FALSE(is_valid(isbn));
88+
TEST_ASSERT_EQUAL(false, is_valid(isbn));
8989
}
9090

9191
void test_too_short_isbn(void) {
9292
TEST_IGNORE();
9393
alignas(16) const char isbn[] = "00";
94-
TEST_ASSERT_FALSE(is_valid(isbn));
94+
TEST_ASSERT_EQUAL(false, is_valid(isbn));
9595
}
9696

9797
void test_isbn_without_check_digit(void) {
9898
TEST_IGNORE();
9999
alignas(16) const char isbn[] = "3-598-21507";
100-
TEST_ASSERT_FALSE(is_valid(isbn));
100+
TEST_ASSERT_EQUAL(false, is_valid(isbn));
101101
}
102102

103103
void test_check_digit_of_x_should_not_be_used_for_0(void) {
104104
TEST_IGNORE();
105105
alignas(16) const char isbn[] = "3-598-21515-X";
106-
TEST_ASSERT_FALSE(is_valid(isbn));
106+
TEST_ASSERT_EQUAL(false, is_valid(isbn));
107107
}
108108

109109
void test_empty_isbn(void) {
110110
TEST_IGNORE();
111111
alignas(16) const char isbn[] = "";
112-
TEST_ASSERT_FALSE(is_valid(isbn));
112+
TEST_ASSERT_EQUAL(false, is_valid(isbn));
113113
}
114114

115115
void test_input_is_9_characters(void) {
116116
TEST_IGNORE();
117117
alignas(16) const char isbn[] = "134456729";
118-
TEST_ASSERT_FALSE(is_valid(isbn));
118+
TEST_ASSERT_EQUAL(false, is_valid(isbn));
119119
}
120120

121121
void test_invalid_characters_are_not_ignored_after_checking_length(void) {
122122
TEST_IGNORE();
123123
alignas(16) const char isbn[] = "3132P34035";
124-
TEST_ASSERT_FALSE(is_valid(isbn));
124+
TEST_ASSERT_EQUAL(false, is_valid(isbn));
125125
}
126126

127127
void test_invalid_characters_are_not_ignored_before_checking_length(void) {
128128
TEST_IGNORE();
129129
alignas(16) const char isbn[] = "3598P215088";
130-
TEST_ASSERT_FALSE(is_valid(isbn));
130+
TEST_ASSERT_EQUAL(false, is_valid(isbn));
131131
}
132132

133133
void test_input_is_too_long_but_contains_a_valid_isbn(void) {
134134
TEST_IGNORE();
135135
alignas(16) const char isbn[] = "98245726788";
136-
TEST_ASSERT_FALSE(is_valid(isbn));
136+
TEST_ASSERT_EQUAL(false, is_valid(isbn));
137137
}
138138

139139
int main(void) {

exercises/practice/pascals-triangle/pascals_triangle_test.c

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
1-
// Version: 0
1+
#include "vendor/unity.h"
22

33
#include <stddef.h>
44
#include <stdint.h>
5-
#include "vendor/unity.h"
65

76
#define MAX_ARRAY_SIZE 800
87
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
98

10-
extern size_t rows(uint64_t* dest, size_t count);
9+
extern size_t rows(uint64_t dest[], size_t count);
1110

1211
void setUp(void) {
1312
}
@@ -23,7 +22,7 @@ void test_zero_rows(void) {
2322

2423
void test_single_row(void) {
2524
TEST_IGNORE();
26-
uint64_t expected[] = {1};
25+
const uint64_t expected[] = {1};
2726
uint64_t actual[MAX_ARRAY_SIZE];
2827
const size_t size = rows(actual, 1);
2928
TEST_ASSERT_EQUAL_UINT(ARRAY_SIZE(expected), size);
@@ -32,7 +31,7 @@ void test_single_row(void) {
3231

3332
void test_two_rows(void) {
3433
TEST_IGNORE();
35-
uint64_t expected[] = {1, 1, 1};
34+
const uint64_t expected[] = {1, 1, 1};
3635
uint64_t actual[MAX_ARRAY_SIZE];
3736
const size_t size = rows(actual, 2);
3837
TEST_ASSERT_EQUAL_UINT(ARRAY_SIZE(expected), size);
@@ -41,7 +40,7 @@ void test_two_rows(void) {
4140

4241
void test_three_rows(void) {
4342
TEST_IGNORE();
44-
uint64_t expected[] = {1, 1, 1, 1, 2, 1};
43+
const uint64_t expected[] = {1, 1, 1, 1, 2, 1};
4544
uint64_t actual[MAX_ARRAY_SIZE];
4645
const size_t size = rows(actual, 3);
4746
TEST_ASSERT_EQUAL_UINT(ARRAY_SIZE(expected), size);
@@ -50,7 +49,7 @@ void test_three_rows(void) {
5049

5150
void test_four_rows(void) {
5251
TEST_IGNORE();
53-
uint64_t expected[] = {1, 1, 1, 1, 2, 1, 1, 3, 3, 1};
52+
const uint64_t expected[] = {1, 1, 1, 1, 2, 1, 1, 3, 3, 1};
5453
uint64_t actual[MAX_ARRAY_SIZE];
5554
const size_t size = rows(actual, 4);
5655
TEST_ASSERT_EQUAL_UINT(ARRAY_SIZE(expected), size);
@@ -59,7 +58,7 @@ void test_four_rows(void) {
5958

6059
void test_five_rows(void) {
6160
TEST_IGNORE();
62-
uint64_t expected[] = {1, 1, 1, 1, 2, 1, 1, 3, 3, 1, 1, 4, 6, 4, 1};
61+
const uint64_t expected[] = {1, 1, 1, 1, 2, 1, 1, 3, 3, 1, 1, 4, 6, 4, 1};
6362
uint64_t actual[MAX_ARRAY_SIZE];
6463
const size_t size = rows(actual, 5);
6564
TEST_ASSERT_EQUAL_UINT(ARRAY_SIZE(expected), size);
@@ -68,7 +67,7 @@ void test_five_rows(void) {
6867

6968
void test_six_rows(void) {
7069
TEST_IGNORE();
71-
uint64_t expected[] = {1, 1, 1, 1, 2, 1, 1, 3, 3, 1, 1, 4, 6, 4, 1, 1, 5, 10, 10, 5, 1};
70+
const uint64_t expected[] = {1, 1, 1, 1, 2, 1, 1, 3, 3, 1, 1, 4, 6, 4, 1, 1, 5, 10, 10, 5, 1};
7271
uint64_t actual[MAX_ARRAY_SIZE];
7372
const size_t size = rows(actual, 6);
7473
TEST_ASSERT_EQUAL_UINT(ARRAY_SIZE(expected), size);
@@ -77,8 +76,8 @@ void test_six_rows(void) {
7776

7877
void test_ten_rows(void) {
7978
TEST_IGNORE();
80-
uint64_t expected[] = {1, 1, 1, 1, 2, 1, 1, 3, 3, 1, 1, 4, 6, 4, 1, 1, 5, 10, 10, 5, 1, 1, 6, 15, 20, 15, 6, 1,
81-
1, 7, 21, 35, 35, 21, 7, 1, 1, 8, 28, 56, 70, 56, 28, 8, 1, 1, 9, 36, 84, 126, 126, 84, 36, 9, 1};
79+
const uint64_t expected[] = {1, 1, 1, 1, 2, 1, 1, 3, 3, 1, 1, 4, 6, 4, 1, 1, 5, 10, 10, 5, 1, 1, 6, 15, 20, 15, 6, 1,
80+
1, 7, 21, 35, 35, 21, 7, 1, 1, 8, 28, 56, 70, 56, 28, 8, 1, 1, 9, 36, 84, 126, 126, 84, 36, 9, 1};
8281
uint64_t actual[MAX_ARRAY_SIZE];
8382
const size_t size = rows(actual, 10);
8483
TEST_ASSERT_EQUAL_UINT(ARRAY_SIZE(expected), size);
@@ -87,7 +86,7 @@ void test_ten_rows(void) {
8786

8887
void test_thirty_seven_rows(void) {
8988
TEST_IGNORE();
90-
uint64_t expected[] = {
89+
const uint64_t expected[] = {
9190
1, 1, 1, 1, 2, 1, 1, 3, 3, 1, 1,
9291
4, 6, 4, 1, 1, 5, 10, 10, 5, 1, 1,
9392
6, 15, 20, 15, 6, 1, 1, 7, 21, 35, 35,
@@ -151,8 +150,7 @@ void test_thirty_seven_rows(void) {
151150
324632, 52360, 6545, 595, 35, 1, 1, 36, 630, 7140, 58905,
152151
376992, 1947792, 8347680, 30260340, 94143280, 254186856, 600805296, 1251677700, 2310789600, 3796297200, 5567902560,
153152
7307872110, 8597496600, 9075135300, 8597496600, 7307872110, 5567902560, 3796297200, 2310789600, 1251677700, 600805296, 254186856,
154-
94143280, 30260340, 8347680, 1947792, 376992, 58905, 7140, 630, 36, 1,
155-
};
153+
94143280, 30260340, 8347680, 1947792, 376992, 58905, 7140, 630, 36, 1};
156154
uint64_t actual[MAX_ARRAY_SIZE];
157155
const size_t size = rows(actual, 37);
158156
TEST_ASSERT_EQUAL_UINT(ARRAY_SIZE(expected), size);

0 commit comments

Comments
 (0)