55
66#define ARRAY_SIZE (x ) (sizeof(x) / sizeof((x)[0]))
77
8- extern uint32_t total (size_t basket_count , const uint16_t * basket , uint16_t * tally );
9-
10- /* extern uint32_t total_true(size_t basket_count, const uint16_t *basket); */
8+ extern uint32_t total (size_t basket_count , const uint16_t * basket );
119
1210void setUp (void ) {
1311}
@@ -16,127 +14,109 @@ void tearDown(void) {
1614}
1715
1816void test_only_a_single_book (void ) {
19- uint16_t tally [6 ] = { 0 , 0 , 0 , 0 , 0 , 0 };
2017 const uint16_t basket [] = {1 };
21- TEST_ASSERT_EQUAL_UINT32 (800 , total (ARRAY_SIZE (basket ), basket , tally ));
18+ TEST_ASSERT_EQUAL_UINT32 (800 , total (ARRAY_SIZE (basket ), basket ));
2219}
2320
2421void test_two_of_the_same_book (void ) {
2522 TEST_IGNORE ();
26- uint16_t tally [6 ] = { 0 , 0 , 0 , 0 , 0 , 0 };
2723 const uint16_t basket [] = {2 , 2 };
28- TEST_ASSERT_EQUAL_UINT32 (1600 , total (ARRAY_SIZE (basket ), basket , tally ));
24+ TEST_ASSERT_EQUAL_UINT32 (1600 , total (ARRAY_SIZE (basket ), basket ));
2925}
3026
3127void test_empty_basket (void ) {
3228 TEST_IGNORE ();
33- uint16_t tally [6 ] = { 0 , 0 , 0 , 0 , 0 , 0 };
34- TEST_ASSERT_EQUAL_UINT32 (0 , total (0 , NULL , tally ));
29+ TEST_ASSERT_EQUAL_UINT32 (0 , total (0 , NULL ));
3530}
3631
3732void test_two_different_books (void ) {
3833 TEST_IGNORE ();
39- uint16_t tally [6 ] = { 0 , 0 , 0 , 0 , 0 , 0 };
4034 const uint16_t basket [] = {1 , 2 };
41- TEST_ASSERT_EQUAL_UINT32 (1520 , total (ARRAY_SIZE (basket ), basket , tally ));
35+ TEST_ASSERT_EQUAL_UINT32 (1520 , total (ARRAY_SIZE (basket ), basket ));
4236}
4337
4438void test_three_different_books (void ) {
4539 TEST_IGNORE ();
46- uint16_t tally [6 ] = { 0 , 0 , 0 , 0 , 0 , 0 };
4740 const uint16_t basket [] = {1 , 2 , 3 };
48- TEST_ASSERT_EQUAL_UINT32 (2160 , total (ARRAY_SIZE (basket ), basket , tally ));
41+ TEST_ASSERT_EQUAL_UINT32 (2160 , total (ARRAY_SIZE (basket ), basket ));
4942}
5043
5144void test_four_different_books (void ) {
5245 TEST_IGNORE ();
53- uint16_t tally [6 ] = { 0 , 0 , 0 , 0 , 0 , 0 };
5446 const uint16_t basket [] = {1 , 2 , 3 , 4 };
55- TEST_ASSERT_EQUAL_UINT32 (2560 , total (ARRAY_SIZE (basket ), basket , tally ));
47+ TEST_ASSERT_EQUAL_UINT32 (2560 , total (ARRAY_SIZE (basket ), basket ));
5648}
5749
5850void test_five_different_books (void ) {
5951 TEST_IGNORE ();
60- uint16_t tally [6 ] = { 0 , 0 , 0 , 0 , 0 , 0 };
6152 const uint16_t basket [] = {1 , 2 , 3 , 4 , 5 };
62- TEST_ASSERT_EQUAL_UINT32 (3000 , total (ARRAY_SIZE (basket ), basket , tally ));
53+ TEST_ASSERT_EQUAL_UINT32 (3000 , total (ARRAY_SIZE (basket ), basket ));
6354}
6455
6556void test_two_groups_of_four_is_cheaper_than_group_of_five_plus_group_of_three (void ) {
6657 TEST_IGNORE ();
67- uint16_t tally [6 ] = { 0 , 0 , 0 , 0 , 0 , 0 };
6858 const uint16_t basket [] = {1 , 1 , 2 , 2 , 3 , 3 , 4 , 5 };
69- TEST_ASSERT_EQUAL_UINT32 (5120 , total (ARRAY_SIZE (basket ), basket , tally ));
59+ TEST_ASSERT_EQUAL_UINT32 (5120 , total (ARRAY_SIZE (basket ), basket ));
7060}
7161
7262void test_two_groups_of_four_is_cheaper_than_groups_of_five_and_three (void ) {
7363 TEST_IGNORE ();
74- uint16_t tally [6 ] = { 0 , 0 , 0 , 0 , 0 , 0 };
7564 const uint16_t basket [] = {1 , 1 , 2 , 3 , 4 , 4 , 5 , 5 };
76- TEST_ASSERT_EQUAL_UINT32 (5120 , total (ARRAY_SIZE (basket ), basket , tally ));
65+ TEST_ASSERT_EQUAL_UINT32 (5120 , total (ARRAY_SIZE (basket ), basket ));
7766}
7867
7968void test_group_of_four_plus_group_of_two_is_cheaper_than_two_groups_of_three (void ) {
8069 TEST_IGNORE ();
81- uint16_t tally [6 ] = { 0 , 0 , 0 , 0 , 0 , 0 };
8270 const uint16_t basket [] = {1 , 1 , 2 , 2 , 3 , 4 };
83- TEST_ASSERT_EQUAL_UINT32 (4080 , total (ARRAY_SIZE (basket ), basket , tally ));
71+ TEST_ASSERT_EQUAL_UINT32 (4080 , total (ARRAY_SIZE (basket ), basket ));
8472}
8573
8674void test_two_each_of_first_four_books_and_one_copy_each_of_rest (void ) {
8775 TEST_IGNORE ();
88- uint16_t tally [6 ] = { 0 , 0 , 0 , 0 , 0 , 0 };
8976 const uint16_t basket [] = {1 , 1 , 2 , 2 , 3 , 3 , 4 , 4 , 5 };
90- TEST_ASSERT_EQUAL_UINT32 (5560 , total (ARRAY_SIZE (basket ), basket , tally ));
77+ TEST_ASSERT_EQUAL_UINT32 (5560 , total (ARRAY_SIZE (basket ), basket ));
9178}
9279
9380void test_two_copies_of_each_book (void ) {
9481 TEST_IGNORE ();
95- uint16_t tally [6 ] = { 0 , 0 , 0 , 0 , 0 , 0 };
9682 const uint16_t basket [] = {1 , 1 , 2 , 2 , 3 , 3 , 4 , 4 , 5 , 5 };
97- TEST_ASSERT_EQUAL_UINT32 (6000 , total (ARRAY_SIZE (basket ), basket , tally ));
83+ TEST_ASSERT_EQUAL_UINT32 (6000 , total (ARRAY_SIZE (basket ), basket ));
9884}
9985
10086void test_three_copies_of_first_book_and_two_each_of_remaining (void ) {
10187 TEST_IGNORE ();
102- uint16_t tally [6 ] = { 0 , 0 , 0 , 0 , 0 , 0 };
10388 const uint16_t basket [] = {1 , 1 , 2 , 2 , 3 , 3 , 4 , 4 , 5 , 5 , 1 };
104- TEST_ASSERT_EQUAL_UINT32 (6800 , total (ARRAY_SIZE (basket ), basket , tally ));
89+ TEST_ASSERT_EQUAL_UINT32 (6800 , total (ARRAY_SIZE (basket ), basket ));
10590}
10691
10792void test_three_each_of_first_two_books_and_two_each_of_remaining_books (void ) {
10893 TEST_IGNORE ();
109- uint16_t tally [6 ] = { 0 , 0 , 0 , 0 , 0 , 0 };
11094 const uint16_t basket [] = {1 , 1 , 2 , 2 , 3 , 3 , 4 , 4 , 5 , 5 , 1 , 2 };
111- TEST_ASSERT_EQUAL_UINT32 (7520 , total (ARRAY_SIZE (basket ), basket , tally ));
95+ TEST_ASSERT_EQUAL_UINT32 (7520 , total (ARRAY_SIZE (basket ), basket ));
11296}
11397
11498void test_four_groups_of_four_are_cheaper_than_two_groups_each_of_five_and_three (void ) {
11599 TEST_IGNORE ();
116- uint16_t tally [6 ] = { 0 , 0 , 0 , 0 , 0 , 0 };
117100 const uint16_t basket [] = {1 , 1 , 2 , 2 , 3 , 3 , 4 , 5 , 1 , 1 , 2 , 2 , 3 , 3 , 4 , 5 };
118- TEST_ASSERT_EQUAL_UINT32 (10240 , total (ARRAY_SIZE (basket ), basket , tally ));
101+ TEST_ASSERT_EQUAL_UINT32 (10240 , total (ARRAY_SIZE (basket ), basket ));
119102}
120103
121104void test_check_that_groups_of_four_are_created_properly_even_when_there_are_more_groups_of_three_than_groups_of_five (void ) {
122105 TEST_IGNORE ();
123- uint16_t tally [6 ] = { 0 , 0 , 0 , 0 , 0 , 0 };
124106 const uint16_t basket [] = {1 , 1 , 1 , 1 , 1 , 1 , 2 , 2 , 2 , 2 , 2 , 2 , 3 , 3 , 3 , 3 , 3 , 3 , 4 , 4 , 5 , 5 };
125- TEST_ASSERT_EQUAL_UINT32 (14560 , total (ARRAY_SIZE (basket ), basket , tally ));
107+ TEST_ASSERT_EQUAL_UINT32 (14560 , total (ARRAY_SIZE (basket ), basket ));
126108}
127109
128110void test_one_group_of_one_and_four_is_cheaper_than_one_group_of_two_and_three (void ) {
129111 TEST_IGNORE ();
130- uint16_t tally [6 ] = { 0 , 0 , 0 , 0 , 0 , 0 };
131112 const uint16_t basket [] = {1 , 1 , 2 , 3 , 4 };
132- TEST_ASSERT_EQUAL_UINT32 (3360 , total (ARRAY_SIZE (basket ), basket , tally ));
113+ TEST_ASSERT_EQUAL_UINT32 (3360 , total (ARRAY_SIZE (basket ), basket ));
133114}
134115
135116void test_one_group_of_one_and_two_plus_three_groups_of_four_is_cheaper_than_one_group_of_each_size (void ) {
136117 TEST_IGNORE ();
137- uint16_t tally [6 ] = { 0 , 0 , 0 , 0 , 0 , 0 };
138118 const uint16_t basket [] = {1 , 2 , 2 , 3 , 3 , 3 , 4 , 4 , 4 , 4 , 5 , 5 , 5 , 5 , 5 };
139- TEST_ASSERT_EQUAL_UINT32 (10000 , total (ARRAY_SIZE (basket ), basket , tally ));
119+ TEST_ASSERT_EQUAL_UINT32 (10000 , total (ARRAY_SIZE (basket ), basket ));
140120}
141121
142122int main (void ) {
0 commit comments