diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2020-11-15 11:54:52 +0200 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2020-11-15 11:54:52 +0200 |
commit | 6d1274d1d0c9b2f0feb109876c7c250951035a3c (patch) | |
tree | 8166de2cc662c0f54c82ecce98e8061bb5b216b1 /awklib/eg/test-programs/gen-float-table.awk | |
parent | 3aadf44caf614edcdb7bb9ccc2a689db9a784a21 (diff) | |
download | egawk-6d1274d1d0c9b2f0feb109876c7c250951035a3c.tar.gz egawk-6d1274d1d0c9b2f0feb109876c7c250951035a3c.tar.bz2 egawk-6d1274d1d0c9b2f0feb109876c7c250951035a3c.zip |
Add test programs embedded in the doc.
Diffstat (limited to 'awklib/eg/test-programs/gen-float-table.awk')
-rw-r--r-- | awklib/eg/test-programs/gen-float-table.awk | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/awklib/eg/test-programs/gen-float-table.awk b/awklib/eg/test-programs/gen-float-table.awk new file mode 100644 index 00000000..c35f2dff --- /dev/null +++ b/awklib/eg/test-programs/gen-float-table.awk @@ -0,0 +1,59 @@ +function eq(left, right) +{ + return left == right +} + +function ne(left, right) +{ + return left != right +} + +function lt(left, right) +{ + return left < right +} + +function le(left, right) +{ + return left <= right +} + +function gt(left, right) +{ + return left > right +} + +function ge(left, right) +{ + return left >= right +} + +BEGIN { + nan = sqrt(-1) + inf = -log(0) + split("== != < <= > >=", names) + names[3] = names[3] " " + names[5] = names[5] " " + split("eq ne lt le gt ge", funcs) + + compare[1] = 2.0 + compare[2] = values[1] = -sqrt(-1.0) # nan + compare[3] = values[2] = sqrt(-1.0) # -nan + compare[4] = values[3] = -log(0.0) # inf + compare[5] = values[4] = log(0.0) # -inf + + for (i = 1; i in values; i++) { + for (j = 1; j in compare; j++) { + for (k = 1; k in names; k++) { + the_func = funcs[k] + printf("%g %s %g -> %s\n", + values[i], + names[k], + compare[j], + the_func(values[i], compare[j]) ? + "true" : "false"); + } + printf("\n"); + } + } +} |