Skip to content

Commit 42fb2b2

Browse files
committed
Tests are done
1 parent 2c6920a commit 42fb2b2

File tree

1 file changed

+44
-6
lines changed

1 file changed

+44
-6
lines changed

For loop/49. Find the sum of an A.P. series.c

Lines changed: 44 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ The Sum of the A.P. series are :
1313
+ 1.5 Invalid input
1414
+ 2. Write a function to find elements
1515
+ 3. Output sum
16-
4. Test
16+
+ 4. Test
1717
+ 5. Cpplint test
1818
+ 6. Add and push
1919
*/
@@ -28,15 +28,19 @@ enum is_valid {
2828
int input_start(int *start);
2929
int input_number_of_items(int *number_of_items);
3030
int input_difference(int *difference);
31-
void find_and_print_result(int start, int number_of_items, int difference);
31+
// Changed this function to return int sum for tests
32+
int print_result_find_sum(int start, int number_of_items, int difference);
3233
void print_invalid_input();
34+
void test(int start, int number_of_items, int difference, int expected_sum, int test_number);
35+
void run_tests();
3336

3437
int main() {
3538
int start = 0, number_of_items = 0, difference = 0;
39+
// Normal run of the programm
3640
if (input_start(&start)) {
3741
if (input_number_of_items(&number_of_items)) {
3842
if (input_difference(&difference)) {
39-
find_and_print_result(start, number_of_items, difference);
43+
print_result_find_sum(start, number_of_items, difference);
4044
} else {
4145
print_invalid_input();
4246
}
@@ -46,14 +50,47 @@ int main() {
4650
} else {
4751
print_invalid_input();
4852
}
53+
// Test runs
54+
printf("\nStart of test runs:\n");
55+
run_tests();
4956
return 0;
5057
}
5158

59+
void run_tests() {
60+
// values: int start, int number_of_items, int difference, int expected_sum, int test_number
61+
// Normal value tests
62+
test(1, 10, 4, 190, 1);
63+
test(0, 9, 5, 180, 2);
64+
test(500, 5, 180, 4300, 3);
65+
// Negative number tests
66+
// Negative start
67+
test(-100, 5, 3, -470, 4);
68+
// Negative step
69+
test(100, 5, -3, 470, 5);
70+
// Negative start and step
71+
test(-100, 5, -3, -530, 6);
72+
// Big numbers
73+
test(67548, 50, 4543, 8942575, 7);
74+
// Almost the end of int range
75+
test(63437548, 33, 54543, 2122237788, 8);
76+
}
77+
78+
void test(int start, int number_of_items, int difference, int expected_sum, int test_number) {
79+
int actual_sum = 0;
80+
actual_sum = print_result_find_sum(start, number_of_items, difference);
81+
if (expected_sum == actual_sum) {
82+
printf("Success\n");
83+
} else {
84+
printf("Failed\nTest #%d: start = %d, number_of_items = %d, difference = %d, expected_sum = %d, actual_sum = %d\n",
85+
test_number, start, number_of_items, difference, expected_sum, actual_sum);
86+
}
87+
}
88+
5289
void print_invalid_input() {
5390
printf("n/a");
5491
}
5592

56-
void find_and_print_result(int start, int number_of_items, int difference) {
93+
int print_result_find_sum(int start, int number_of_items, int difference) {
5794
printf("The Sum of the A.P. series are:\n");
5895
int sum = start, element = start;
5996
printf("%d ", element);
@@ -62,7 +99,8 @@ void find_and_print_result(int start, int number_of_items, int difference) {
6299
printf("+ %d ", element);
63100
sum += element;
64101
}
65-
printf("= %d", sum);
102+
printf("= %d\n", sum);
103+
return sum;
66104
}
67105

68106
int input_start(int *start) {
@@ -79,7 +117,7 @@ int input_number_of_items(int *number_of_items) {
79117
int is_valid = TRUE;
80118
char endline = '\0';
81119
printf("Input the number of items for the A.P. series:\n");
82-
if (!scanf("%d%c", number_of_items, &endline) || endline != '\n' || *number_of_items == 0) {
120+
if (!scanf("%d%c", number_of_items, &endline) || endline != '\n' || *number_of_items <= 0) {
83121
is_valid = FALSE;
84122
}
85123
return is_valid;

0 commit comments

Comments
 (0)