aboutsummaryrefslogtreecommitdiffstats
path: root/test/mpfrrndeval.awk
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2018-01-10 22:14:27 +0200
committerArnold D. Robbins <arnold@skeeve.com>2018-01-10 22:14:27 +0200
commitcc8c981c9eaed42e1afd278afac787cd2aeab55f (patch)
tree66daeb2dc1049a6112445705f6b92cea55958bd7 /test/mpfrrndeval.awk
parentdd2516767fa58d56684e003f646ef6d611051a64 (diff)
parent7d463f19f1fc98a7d4f99e3575c545ca7009d9db (diff)
downloadegawk-cc8c981c9eaed42e1afd278afac787cd2aeab55f.tar.gz
egawk-cc8c981c9eaed42e1afd278afac787cd2aeab55f.tar.bz2
egawk-cc8c981c9eaed42e1afd278afac787cd2aeab55f.zip
Merge branch 'master' into feature/fix-comments
Diffstat (limited to 'test/mpfrrndeval.awk')
-rw-r--r--test/mpfrrndeval.awk35
1 files changed, 35 insertions, 0 deletions
diff --git a/test/mpfrrndeval.awk b/test/mpfrrndeval.awk
new file mode 100644
index 00000000..12010052
--- /dev/null
+++ b/test/mpfrrndeval.awk
@@ -0,0 +1,35 @@
+# Tests side effects (like caching) on the evaluation (formatting and
+# rounding) of MPFR variables vs literals.
+BEGIN {
+ pi = 3.1416
+ e = 2.7183
+ golden = 1.6180
+
+ # Evaluated as number with (default) OFMT.
+ print pi
+ print e
+ print golden
+ printf "\n"
+
+ # Evaluated as number with (custom) OFMT.
+ OFMT = "%.f"
+ ROUNDMODE = "U"; print "Variable pi U:", pi
+ ROUNDMODE = "D"; print "Variable pi D:", pi
+ ROUNDMODE = "U"; print "Literal pi U:", 3.1416
+ ROUNDMODE = "D"; print "Literal pi D:", 3.1416
+ printf "\n"
+
+ # Evaluated as string with (custom) CONVFMT. Absent comma.
+ CONVFMT = "%.f"
+ ROUNDMODE = "D"; print "Variable e D: " e
+ ROUNDMODE = "U"; print "Variable e U: " e
+ ROUNDMODE = "D"; print "Literal e D: " 2.7183
+ ROUNDMODE = "U"; print "Literal e U: " 2.7183
+ printf "\n"
+
+ # Evaluated as number with (hardcoded) printf conversion.
+ ROUNDMODE = "N"; printf "Variable golden N: %.f\n", golden
+ ROUNDMODE = "Z"; printf "Variable golden Z: %.f\n", golden
+ ROUNDMODE = "N"; printf "Literal golden N: %.f\n", 1.6180
+ ROUNDMODE = "Z"; printf "Literal golden Z: %.f\n", 1.6180
+}