@@ -13,7 +13,7 @@ The Sum of the A.P. series are :
13
13
+ 1.5 Invalid input
14
14
+ 2. Write a function to find elements
15
15
+ 3. Output sum
16
- 4. Test
16
+ + 4. Test
17
17
+ 5. Cpplint test
18
18
+ 6. Add and push
19
19
*/
@@ -28,15 +28,19 @@ enum is_valid {
28
28
int input_start (int * start );
29
29
int input_number_of_items (int * number_of_items );
30
30
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 );
32
33
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 ();
33
36
34
37
int main () {
35
38
int start = 0 , number_of_items = 0 , difference = 0 ;
39
+ // Normal run of the programm
36
40
if (input_start (& start )) {
37
41
if (input_number_of_items (& number_of_items )) {
38
42
if (input_difference (& difference )) {
39
- find_and_print_result (start , number_of_items , difference );
43
+ print_result_find_sum (start , number_of_items , difference );
40
44
} else {
41
45
print_invalid_input ();
42
46
}
@@ -46,14 +50,47 @@ int main() {
46
50
} else {
47
51
print_invalid_input ();
48
52
}
53
+ // Test runs
54
+ printf ("\nStart of test runs:\n" );
55
+ run_tests ();
49
56
return 0 ;
50
57
}
51
58
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
+
52
89
void print_invalid_input () {
53
90
printf ("n/a" );
54
91
}
55
92
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 ) {
57
94
printf ("The Sum of the A.P. series are:\n" );
58
95
int sum = start , element = start ;
59
96
printf ("%d " , element );
@@ -62,7 +99,8 @@ void find_and_print_result(int start, int number_of_items, int difference) {
62
99
printf ("+ %d " , element );
63
100
sum += element ;
64
101
}
65
- printf ("= %d" , sum );
102
+ printf ("= %d\n" , sum );
103
+ return sum ;
66
104
}
67
105
68
106
int input_start (int * start ) {
@@ -79,7 +117,7 @@ int input_number_of_items(int *number_of_items) {
79
117
int is_valid = TRUE;
80
118
char endline = '\0' ;
81
119
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 ) {
83
121
is_valid = FALSE;
84
122
}
85
123
return is_valid ;
0 commit comments