summaryrefslogtreecommitdiff
path: root/support/dktools/test-dk4maac.ctr
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /support/dktools/test-dk4maac.ctr
Initial commit
Diffstat (limited to 'support/dktools/test-dk4maac.ctr')
-rw-r--r--support/dktools/test-dk4maac.ctr88
1 files changed, 88 insertions, 0 deletions
diff --git a/support/dktools/test-dk4maac.ctr b/support/dktools/test-dk4maac.ctr
new file mode 100644
index 0000000000..e93ae20697
--- /dev/null
+++ b/support/dktools/test-dk4maac.ctr
@@ -0,0 +1,88 @@
+
+#include "dk4conf.h"
+
+#include <stdio.h>
+
+#include "dk4error.h"
+#include "dk4maac.h"
+
+$!trace-include
+
+
+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 */
+ int i1; /* First operand */
+ int i2; /* Second operand */
+ int exc; /* Exit code */
+ int cc; /* Flag: Can continue */
+ char c1; /* First operand as char */
+ char c2; /* Second operand as char */
+ char c3; /* Result as char */
+
+ $!trace-init test-dk4maac.deb
+ $? "+ main"
+ exc = 0;
+ cc = 1;
+ while((1 == cc) && (fgets(buffer, sizeof(buffer), stdin))) {
+ if (sscanf(buffer, "%d %d", &i1, &i2) == 2) {
+ c1 = i1;
+ c2 = i2;
+ printf("%d %d\n", (int)c1, (int)c2);
+ dk4error_init(&er);
+ c3 = dk4ma_char_add(c1, c2, &er);
+ printf("\t+ %d", (int)c3);
+ show_error(&er);
+ printf("\n");
+
+ dk4error_init(&er);
+ c3 = dk4ma_char_sub(c1, c2, &er);
+ printf("\t- %d", (int)c3);
+ show_error(&er);
+ printf("\n");
+
+ dk4error_init(&er);
+ c3 = dk4ma_char_mul(c1, c2, &er);
+ printf("\t* %d", (int)c3);
+ show_error(&er);
+ printf("\n");
+
+ dk4error_init(&er);
+ c3 = dk4ma_char_div(c1, c2, &er);
+ printf("\t/ %d", (int)c3);
+ show_error(&er);
+ printf("\n");
+ } else {
+ exc = 1;
+ fprintf(stderr, "test-dk4maac:ERROR: Invalid input line!\n");
+ fflush(stderr);
+ cc = 0;
+ }
+ }
+ $? "- main"
+ $!trace-end
+ return exc;
+}
+