diff options
Diffstat (limited to 'support/dktools/test-dk4maall.c')
-rw-r--r-- | support/dktools/test-dk4maall.c | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/support/dktools/test-dk4maall.c b/support/dktools/test-dk4maall.c new file mode 100644 index 0000000000..a6edc80697 --- /dev/null +++ b/support/dktools/test-dk4maall.c @@ -0,0 +1,109 @@ +/* + WARNING: This file was generated by dkct. + Changes you make here will be lost if dkct is run again! + You should modify the original source and run dkct on it. + Original source: test-dk4maall.ctr +*/ + +/** @file test-dk4maall.c The test-dk4maall module. +*/ + + +#line 1 "test-dk4maall.ctr" +#include "dk4conf.h" + +#include <stdio.h> + +#include "dk4error.h" +#include "dk4maall.h" + + + +#line 9 "test-dk4maall.ctr" + + +static +void +show_error(dk4_er_t *erp) +{ + if (DK4_E_NONE != erp->ec) { + switch(erp->ec) { + case DK4_E_MATH_OVERFLOW: { + printf(" overflow"); + } break; + case DK4_E_MATH_DIVZERO: { + printf(" divzero"); + } break; + default: { + printf(" %d", erp->ec); + } break; + } + } +} + + + +int main(void) +{ + char buffer[128]; /* Input line buffer */ + dk4_er_t er; /* Error report */ + long long i1; /* First operand */ + long long i2; /* Second operand */ + int exc; /* Exit code */ + int cc; /* Flag: Can continue */ + long long c1; /* First operand as char */ + long long c2; /* Second operand as char */ + long long c3; /* Result as char */ + + + +#line 45 "test-dk4maall.ctr" + + +#line 46 "test-dk4maall.ctr" + exc = 0; + cc = 1; + while((1 == cc) && (fgets(buffer, sizeof(buffer), stdin))) { + if (sscanf(buffer, "%lld %lld", &i1, &i2) == 2) { + c1 = i1; + c2 = i2; + printf("%lld %lld\n", c1, c2); + dk4error_init(&er); + c3 = dk4ma_ll_add(c1, c2, &er); + printf("\t+ %lld", c3); + show_error(&er); + printf("\n"); + + dk4error_init(&er); + c3 = dk4ma_ll_sub(c1, c2, &er); + printf("\t- %lld", c3); + show_error(&er); + printf("\n"); + + dk4error_init(&er); + c3 = dk4ma_ll_mul(c1, c2, &er); + printf("\t* %lld", c3); + show_error(&er); + printf("\n"); + + dk4error_init(&er); + c3 = dk4ma_ll_div(c1, c2, &er); + printf("\t/ %lld", c3); + show_error(&er); + printf("\n"); + } else { + exc = 1; + fprintf(stderr, "test-dk4maac:ERROR: Invalid input line!\n"); + fflush(stderr); + cc = 0; + } + } + + +#line 84 "test-dk4maall.ctr" + + +#line 85 "test-dk4maall.ctr" + return exc; +} + |