Testing and Debugging
Table Tests
A small table can run the same check over several inputs.
Table Tests
table_tests.c
#include <stdio.h>
int clamp_low(int value) {
if (value < 0) {
return 0;
}
return value;
}
int main(void) {
int offset = ;
int inputs[3] = {-2, 0, 5};
int expected[3] = {0, 0, 5};
int failures = 0;
for (int i = 0; i < 3; i++) {
int actual = clamp_low(inputs[i] + offset);
if (actual != expected[i]) {
failures = failures + 1;
}
}
printf("failures=%d\n", failures);
return 0;
}
#include <stdio.h>
int clamp_low(int value) {
if (value < 0) {
return 0;
}
return value;
}
int main(void) {
int offset = ;
int inputs[3] = {-2, 0, 5};
int expected[3] = {0, 0, 5};
int failures = 0;
for (int i = 0; i < 3; i++) {
int actual = clamp_low(inputs[i] + offset);
if (actual != expected[i]) {
failures = failures + 1;
}
}
printf("failures=%d\n", failures);
return 0;
}
#include <stdio.h>
int clamp_low(int value) {
if (value < 0) {
return 0;
}
return value;
}
int main(void) {
int offset = ;
int inputs[3] = {-2, 0, 5};
int expected[3] = {0, 0, 5};
int failures = 0;
for (int i = 0; i < 3; i++) {
int actual = clamp_low(inputs[i] + offset);
if (actual != expected[i]) {
failures = failures + 1;
}
}
printf("failures=%d\n", failures);
return 0;
}
test case
Each row gives an input and the expected output.
failure count
Counting mismatches gives one summary result after all rows have run.