summaryrefslogtreecommitdiffstats
path: root/tests/expr.test
diff options
context:
space:
mode:
Diffstat (limited to 'tests/expr.test')
-rw-r--r--tests/expr.test42
1 files changed, 41 insertions, 1 deletions
diff --git a/tests/expr.test b/tests/expr.test
index 62b1c27..15eff76 100644
--- a/tests/expr.test
+++ b/tests/expr.test
@@ -21,7 +21,6 @@ if {"::tcltest" ni [namespace children]} {
# type is a 64 bit number on this machine.
testConstraint longIs32bit [expr {$tcl_platform(wordSize) == 4}]
-testConstraint longIs64bit [expr {$tcl_platform(wordSize) == 8}]
testConstraint wideIs64bit [expr {wide(0x8000000000000000) < 0}]
# Big test for correct ordering of data in [expr]
@@ -7450,11 +7449,52 @@ test expr-62.10 {TIP 582: comments can go inside function calls} {
expr {max# comment
(1,2)}
} 2
+
+# Bug e3dcab1d14 TODO: Need to work out a test case that fails
+# without tcl_precision, which has been eliminated in 9.0
+
+# proc do-one-test-expr-63 {e p float athreshold} {
+# # e - power of 2 to test
+# # p - tcl_precision to test wuth
+# # float - floating point value 2**-$p
+# # athreshold - tolerable absolute error (1/2 decimal digit in
+# # least significant place plus 1/2 least significant bit)
+# set trouble {}
+# set ::tcl_precision $p
+# set xfmt x[expr $float]
+# set ::tcl_precision 0
+# set fmt [string range $xfmt 1 end]
+# set aerror [expr {abs($fmt - $float)}]
+# if {$aerror > $athreshold} {
+# return "Result $fmt is more than $athreshold away from $float"
+# } else {
+# return {}
+# }
+# }
+
+# proc run-test-expr-63 {} {
+# for {set e 0} {$e <= 1023} {incr e} {
+# set pt [expr {floor($e*log(2)/log(10))}]
+# for {set p 6} {$p <= 17} {incr p} {
+# set athreshold [expr {0.5*10.0**-($pt+$p) + 2.0**-($e+53)}]
+# set numer [expr {5**$e}]
+# set xfloat x[expr {2.**-$e}]
+# set float [string range $xfloat 1 end]
+# test expr-63.$p.$e "convert 2**-$e to decimal at precision $p" {
+# do-one-test-expr-63 $e $p $float $athreshold
+# } {}
+# }
+# }
+# rename do-one-test-expr-63 {}
+# rename run-test-expr-63 {}
+# }
+# run-test-expr-63
# cleanup
unset -nocomplain a
unset -nocomplain min
unset -nocomplain max
+
::tcltest::cleanupTests
return