diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/Makefile.am | 24 | ||||
-rw-r--r-- | test/Makefile.in | 23 | ||||
-rw-r--r-- | test/mpfrexprange.awk | 7 | ||||
-rw-r--r-- | test/mpfrexprange.ok | 2 | ||||
-rw-r--r-- | test/mpfrieee.awk | 13 | ||||
-rw-r--r-- | test/mpfrieee.ok | 12 | ||||
-rw-r--r-- | test/mpfrnr.awk | 10 | ||||
-rw-r--r-- | test/mpfrnr.in | 3 | ||||
-rw-r--r-- | test/mpfrnr.ok | 1 | ||||
-rw-r--r-- | test/mpfrrnd.awk | 15 | ||||
-rw-r--r-- | test/mpfrrnd.ok | 10 |
11 files changed, 120 insertions, 0 deletions
diff --git a/test/Makefile.am b/test/Makefile.am index f81bc8ec..bc174fb8 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -846,6 +846,8 @@ INET_TESTS = inetdayu inetdayt inetechu inetecht MACHINE_TESTS = double1 double2 fmtspcl intformat +MPFR_TESTS = mpfrnr mpfrrnd mpfrieee mpfrexprange + LOCALE_CHARSET_TESTS = \ asort asorti fmttest fnarydel fnparydl lc_num1 mbfw1 \ mbprintf1 mbprintf2 mbprintf3 rebt8b2 rtlenmb sort1 sprintfc @@ -906,6 +908,8 @@ inet: inetmesg $(INET_TESTS) machine-tests: $(MACHINE_TESTS) +mpfr-tests: $(MPFR_TESTS) + msg:: @echo '' @echo 'Any output from "cmp" is bad news, although some differences' @@ -1451,6 +1455,26 @@ rri1:: AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +mpfrieee: + @echo $@ + @$(AWK) -M -vPREC=double -f $(srcdir)/$@.awk > _$@ 2>&1 + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +mpfrexprange: + @echo $@ + @$(AWK) -M -vPREC=53 -f $(srcdir)/$@.awk > _$@ 2>&1 + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +mpfrrnd: + @echo $@ + @$(AWK) -M -vPREC=53 -f $(srcdir)/$@.awk > _$@ 2>&1 + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +mpfrnr: + @echo $@ + @$(AWK) -M -vPREC=113 -f $(srcdir)/$@.awk $(srcdir)/$@.in > _$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + # Targets generated for other tests: include Maketests diff --git a/test/Makefile.in b/test/Makefile.in index 96f4a20f..7a88e836 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -1029,6 +1029,7 @@ GAWK_EXT_TESTS = \ EXTRA_TESTS = inftest regtest INET_TESTS = inetdayu inetdayt inetechu inetecht MACHINE_TESTS = double1 double2 fmtspcl intformat +MPFR_TESTS = mpfrnr mpfrrnd mpfrieee mpfrexprange LOCALE_CHARSET_TESTS = \ asort asorti fmttest fnarydel fnparydl lc_num1 mbfw1 \ mbprintf1 mbprintf2 mbprintf3 rebt8b2 rtlenmb sort1 sprintfc @@ -1260,6 +1261,8 @@ inet: inetmesg $(INET_TESTS) machine-tests: $(MACHINE_TESTS) +mpfr-tests: $(MPFR_TESTS) + msg:: @echo '' @echo 'Any output from "cmp" is bad news, although some differences' @@ -1802,6 +1805,26 @@ rri1:: @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \ AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +mpfrieee: + @echo $@ + @$(AWK) -M -vPREC=double -f $(srcdir)/$@.awk > _$@ 2>&1 + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +mpfrexprange: + @echo $@ + @$(AWK) -M -vPREC=53 -f $(srcdir)/$@.awk > _$@ 2>&1 + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +mpfrrnd: + @echo $@ + @$(AWK) -M -vPREC=53 -f $(srcdir)/$@.awk > _$@ 2>&1 + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +mpfrnr: + @echo $@ + @$(AWK) -M -vPREC=113 -f $(srcdir)/$@.awk $(srcdir)/$@.in > _$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ Gt-dummy: # file Maketests, generated from Makefile.am by the Gentests program addcomma: diff --git a/test/mpfrexprange.awk b/test/mpfrexprange.awk new file mode 100644 index 00000000..68e95a39 --- /dev/null +++ b/test/mpfrexprange.awk @@ -0,0 +1,7 @@ +# test change of allowed exponent range +BEGIN { + x=1.0e-10000 + print x+0 + PREC="double" + print x+0 +} diff --git a/test/mpfrexprange.ok b/test/mpfrexprange.ok new file mode 100644 index 00000000..4700ee22 --- /dev/null +++ b/test/mpfrexprange.ok @@ -0,0 +1,2 @@ +1e-10000 +0 diff --git a/test/mpfrieee.awk b/test/mpfrieee.awk new file mode 100644 index 00000000..dc6e120d --- /dev/null +++ b/test/mpfrieee.awk @@ -0,0 +1,13 @@ +# Test IEEE-754 binary double format +BEGIN { + x = 1.0e-320 + i = 0 + while (x > 0) { + printf("%.15e\n", x) + x /= 2 + + # terminate early when the test is going to fail. + if (++i > 50) + break + } +} diff --git a/test/mpfrieee.ok b/test/mpfrieee.ok new file mode 100644 index 00000000..e88f5c79 --- /dev/null +++ b/test/mpfrieee.ok @@ -0,0 +1,12 @@ +9.999888671826830e-321 +4.999944335913415e-321 +2.499972167956708e-321 +1.249986083978354e-321 +6.225227137599706e-322 +3.112613568799853e-322 +1.581010066691989e-322 +7.905050333459945e-323 +3.952525166729972e-323 +1.976262583364986e-323 +9.881312916824931e-324 +4.940656458412465e-324 diff --git a/test/mpfrnr.awk b/test/mpfrnr.awk new file mode 100644 index 00000000..1a3b753a --- /dev/null +++ b/test/mpfrnr.awk @@ -0,0 +1,10 @@ +# Test NR and FNR for file(s) with records > LONG_MAX +BEGIN { + NR = 0x7FFFFFFF +} +BEGINFILE { + FNR = 0x7fffffffffffffff +} +END { + print NR, NR-0x7FFFFFFF, FNR, FNR-0x7fffffffffffffff +} diff --git a/test/mpfrnr.in b/test/mpfrnr.in new file mode 100644 index 00000000..6ad36e52 --- /dev/null +++ b/test/mpfrnr.in @@ -0,0 +1,3 @@ +Line 1 +Line 2 +Line 3 diff --git a/test/mpfrnr.ok b/test/mpfrnr.ok new file mode 100644 index 00000000..e472f8bf --- /dev/null +++ b/test/mpfrnr.ok @@ -0,0 +1 @@ +2147483650 3 9223372036854775810 3 diff --git a/test/mpfrrnd.awk b/test/mpfrrnd.awk new file mode 100644 index 00000000..eafefb9f --- /dev/null +++ b/test/mpfrrnd.awk @@ -0,0 +1,15 @@ +BEGIN { + N = 22/7 + printf(" %.15f\n", N) + + printf("* %.10f\n", N) # default + RNDMODE="N"; printf("N %.10f\n", N) + RNDMODE="U"; printf("U %.10f\n", N) + RNDMODE="D"; printf("D %.10f\n", N) + RNDMODE="Z"; printf("Z %.10f\n", N) + N = -N + RNDMODE="N"; printf("N %.10f\n", N) + RNDMODE="U"; printf("U %.10f\n", N) + RNDMODE="D"; printf("D %.10f\n", N) + RNDMODE="Z"; printf("Z %.10f\n", N) +} diff --git a/test/mpfrrnd.ok b/test/mpfrrnd.ok new file mode 100644 index 00000000..fceb937b --- /dev/null +++ b/test/mpfrrnd.ok @@ -0,0 +1,10 @@ + 3.142857142857143 +* 3.1428571429 +N 3.1428571429 +U 3.1428571429 +D 3.1428571428 +Z 3.1428571428 +N -3.1428571429 +U -3.1428571428 +D -3.1428571429 +Z -3.1428571428 |