OSDN Git Service

Please enter the commit message for your changes. Lines starting
[eos/base.git] / util / src / TclTk / tcl8.6.12 / tests / expr.test
diff --git a/util/src/TclTk/tcl8.6.12/tests/expr.test b/util/src/TclTk/tcl8.6.12/tests/expr.test
new file mode 100644 (file)
index 0000000..4fa6821
--- /dev/null
@@ -0,0 +1,7293 @@
+# Commands covered: expr
+#
+# This file contains a collection of tests for one or more of the Tcl
+# built-in commands. Sourcing this file into Tcl runs the tests and
+# generates output for errors.  No output means no errors were found.
+#
+# Copyright (c) 1996-1997 Sun Microsystems, Inc.
+# Copyright (c) 1998-2000 by Scriptics Corporation.
+#
+# See the file "license.terms" for information on usage and redistribution
+# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+
+if {"::tcltest" ni [namespace children]} {
+    package require tcltest 2.5
+    namespace import -force ::tcltest::*
+}
+
+::tcltest::loadTestedCommands
+catch [list package require -exact Tcltest [info patchlevel]]
+
+testConstraint testmathfunctions [expr {
+    ([catch {expr {T1()}} msg] != 1) || ($msg ne {invalid command name "tcl::mathfunc::T1"})
+}]
+
+# Determine if "long int" type is a 32 bit number and if the wide
+# type is a 64 bit number on this machine.
+
+testConstraint longIs32bit [expr {int(0x80000000) < 0}]
+testConstraint longIs64bit [expr {int(0x8000000000000000) < 0}]
+testConstraint wideIs64bit \
+       [expr {(wide(0x80000000) > 0) && (wide(0x8000000000000000) < 0)}]
+
+# Big test for correct ordering of data in [expr]
+
+proc testIEEE {} {
+    variable ieeeValues
+    binary scan [binary format dd -1.0 1.0] c* c
+    switch -exact -- $c {
+       {0 0 0 0 0 0 -16 -65 0 0 0 0 0 0 -16 63} {
+           # little endian
+           binary scan \x00\x00\x00\x00\x00\x00\xf0\xff d \
+               ieeeValues(-Infinity)
+           binary scan \x00\x00\x00\x00\x00\x00\xf0\xbf d \
+               ieeeValues(-Normal)
+           binary scan \x00\x00\x00\x00\x00\x00\x08\x80 d \
+               ieeeValues(-Subnormal)
+           binary scan \x00\x00\x00\x00\x00\x00\x00\x80 d \
+               ieeeValues(-0)
+           binary scan \x00\x00\x00\x00\x00\x00\x00\x00 d \
+               ieeeValues(+0)
+           binary scan \x00\x00\x00\x00\x00\x00\x08\x00 d \
+               ieeeValues(+Subnormal)
+           binary scan \x00\x00\x00\x00\x00\x00\xf0\x3f d \
+               ieeeValues(+Normal)
+           binary scan \x00\x00\x00\x00\x00\x00\xf0\x7f d \
+               ieeeValues(+Infinity)
+           binary scan \x00\x00\x00\x00\x00\x00\xf8\x7f d \
+               ieeeValues(NaN)
+           binary scan \x00\x00\x00\x00\x00\x00\xf8\xff d \
+               ieeeValues(-NaN)
+           set ieeeValues(littleEndian) 1
+           return 1
+       }
+       {-65 -16 0 0 0 0 0 0 63 -16 0 0 0 0 0 0} {
+           binary scan \xff\xf0\x00\x00\x00\x00\x00\x00 d \
+               ieeeValues(-Infinity)
+           binary scan \xbf\xf0\x00\x00\x00\x00\x00\x00 d \
+               ieeeValues(-Normal)
+           binary scan \x80\x08\x00\x00\x00\x00\x00\x00 d \
+               ieeeValues(-Subnormal)
+           binary scan \x80\x00\x00\x00\x00\x00\x00\x00 d \
+               ieeeValues(-0)
+           binary scan \x00\x00\x00\x00\x00\x00\x00\x00 d \
+               ieeeValues(+0)
+           binary scan \x00\x08\x00\x00\x00\x00\x00\x00 d \
+               ieeeValues(+Subnormal)
+           binary scan \x3f\xf0\x00\x00\x00\x00\x00\x00 d \
+               ieeeValues(+Normal)
+           binary scan \x7f\xf0\x00\x00\x00\x00\x00\x00 d \
+               ieeeValues(+Infinity)
+           binary scan \x7f\xf8\x00\x00\x00\x00\x00\x00 d \
+               ieeeValues(NaN)
+           binary scan \xff\xf8\x00\x00\x00\x00\x00\x00 d \
+               ieeeValues(-NaN)
+           set ieeeValues(littleEndian) 0
+           return 1
+       }
+       default {
+           return 0
+       }
+    }
+}
+
+testConstraint ieeeFloatingPoint [testIEEE]
+# procedures used below
+
+proc put_hello_char {c} {
+    global a
+    append a [format %c $c]
+    return $c
+}
+proc hello_world {} {
+    global a
+    set a ""
+    set L1 [set l0 [set h_1 [set q 0]]]
+    for {put_hello_char [expr [put_hello_char [expr [set h 7]*10+2]]+29]} {$l0?[put_hello_char $l0]
+        :!$h_1} {put_hello_char $ll;expr {$L1==2?[set ll [expr 32+0-0+[set bar 0]]]:0}} {expr {[incr L1]==[expr 1+([string length "abc"]-[string length "abc"])]
+        ?[set ll [set l0 [expr 54<<1]]]:$ll==108&&$L1<3?
+        [incr ll [expr 1|1<<1]; set ll $ll; set ll $ll; set ll $ll; set ll $ll; set l0 [expr ([string length "abc"]-[string length "abc"])+([string length "abc"]-[string length "abc"])-([string length "abc"]-[string length "abc"])+([string length "abc"]-[string length "abc"])]; set l0; set l0 $l0; set l0; set l0]:$L1==4&&$ll==32?[set ll [expr 19+$h1+([string length "abc"]-[string length "abc"])-([string length "abc"]-[string length "abc"])+([string length "abc"]-[string length "abc"])-([string length "abc"]-[string length "abc"])+[set foo [expr ([string length "abc"]-[string length "abc"])+([string length "abc"]-[string length "abc"])+([string length "abc"]-[string length "abc"])]]]]
+        :[set q [expr $q-$h1+([string length "abc"]-[string length "abc"])-([string length "abc"]-[string length "abc"])]]};expr {$L1==5?[incr ll -8; set ll $ll; set ll]:$q&&$h1&&1};expr {$L1==4+2
+        ?[incr ll 3]:[expr ([string length "abc"]-[string length "abc"])+1]};expr {$ll==($h<<4)+2+0&&$L1!=6?[incr ll -6]:[set h1 [expr 100+([string length "abc"]-[string length "abc"])-([string length "abc"]-[string length "abc"])]]}
+        expr {$L1!=1<<3?[incr q [expr ([string length "abc"]-[string length "abc"])-1]]:[set h_1 [set ll $h1]]}
+    }
+    set a
+}
+
+proc 12days {a b c} {
+    global xxx
+    expr {1<$a?[expr {$a<3?[12days -79 -13 [string range $c [12days -87 \
+       [expr 1-$b] [string range $c [12days -86 0 [string range $c 1 end]] \
+       end]] end]]:1};expr {$a<$b?[12days [expr $a+1] $b $c]:3};expr {[12days \
+       -94 [expr $a-27] $c]&&$a==2?$b<13?[12days 2 [expr $b+1] "%s %d %d\n"]:9
+       :16}]:$a<0?$a<-72?[12days $b $a "@n'+,#'/*\{\}w+/w#cdnr/+,\{\}r/*de\}+,/*\{*+,/w\{%+,/w#q#n+,/#\{l+,/n\{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,\}\{w+K w'K:'+\}e#';dq#'l q#'+d'K#!/+k#;q#'r\}eKK#\}w'r\}eKK\{nl\]'/#;#q#n')\{)#\}w')\{)\{nl\]'/+#n';d\}rw' i;# )\{nl\]!/n\{n#'; r\{#w'r nc\{nl\]'/#\{l,+'K \{rw' iK\{;\[\{nl\]'/w#q#n'wk nw' iwk\{KK\{nl\]!/w\{%'l##w#' i; :\{nl\]'/*\{q#'ld;r'\}\{nlwb!/*de\}'c ;;\{nl'-\{\}rw\]'/+,\}##'*\}#nc,',#nw\]'/+kd'+e\}+;#'rdq#w! nr'/ ') \}+\}\{rl#'\{n' ')# \}'+\}##(!!/"]
+       :$a<-50?[string compare [format %c $b] [string index $c 0]]==0?[append \
+       xxx [string index $c 31];scan [string index $c 31] %c x;set x]
+       :[12days -65 $b [string range $c 1 end]]:[12days [expr ([string compare \
+       [string index $c 0] "/"]==0)+$a] $b [string range $c 1 end]]:0<$a
+       ?[12days 2 2 "%s"]:[string compare [string index $c 0] "/"]==0||
+       [12days 0 [12days -61 [scan [string index $c 0] %c x; set x] \
+       "!ek;dc i@bK'(q)-\[w\]*%n+r3#l,\{\}:\nuwloca-O;m .vpbks,fxntdCeghiry"] \
+       [string range $c 1 end]]}
+}
+proc do_twelve_days {} {
+    global xxx
+    set xxx ""
+    12days 1 1 1
+    set result [string length $xxx]
+    unset xxx
+    return $result
+}
+\f
+# start of tests
+
+catch {unset a b i x}
+
+test expr-1.1 {TclCompileExprCmd: no expression} {
+    list [catch {expr  } msg] $msg
+} {1 {wrong # args: should be "expr arg ?arg ...?"}}
+test expr-1.2 {TclCompileExprCmd: one expression word} {
+    expr -25
+} -25
+test expr-1.3 {TclCompileExprCmd: two expression words} {
+    expr -8.2   -6
+} -14.2
+test expr-1.4 {TclCompileExprCmd: five expression words} {
+    expr 20 - 5 +10 -7
+} 18
+test expr-1.5 {TclCompileExprCmd: quoted expression word} {
+    expr "0005"
+} 5
+test expr-1.6 {TclCompileExprCmd: quoted expression word} {
+    catch {expr "0005"zxy} msg
+    set msg
+} {extra characters after close-quote}
+test expr-1.7 {TclCompileExprCmd: expression word in braces} {
+    expr {-0005}
+} -5
+test expr-1.8 {TclCompileExprCmd: expression word in braces} {
+    expr {{-0x1234}}
+} -4660
+test expr-1.9 {TclCompileExprCmd: expression word in braces} {
+    catch {expr {-0005}foo} msg
+    set msg
+} {extra characters after close-brace}
+test expr-1.10 {TclCompileExprCmd: other expression word in braces} {
+    expr 4*[llength "6 2"]
+} 8
+test expr-1.11 {TclCompileExprCmd: expression word terminated by ;} {
+    expr 4*[llength "6 2"];
+} 8
+test expr-1.12 {TclCompileExprCmd: inlined expr (in "catch") inside other catch} {
+    set a xxx
+    catch {
+       # Might not be a number
+       set a [expr 10*$a]
+    }
+} 1
+test expr-1.13 {TclCompileExprCmd: second level of substitutions in expr not in braces with single var reference} {
+    set a xxx
+    set x 27;  set bool {$x};  if $bool {set a foo}
+    set a
+} foo
+test expr-1.14 {TclCompileExprCmd: second level of substitutions in expr with comparison as top-level operator} {
+    set a xxx
+    set x 2;  set b {$x};  set a [expr $b == 2]
+    set a
+} 1
+test expr-1.15 {TclCompileExprCmd: second level of substitutions in expr with comparison as top-level operator} {
+    set a xxx
+    set x 2;  set b {$x};  set a [expr $b eq 2]
+    set a
+} 1
+
+test expr-2.1 {TclCompileExpr: are builtin functions registered?} {
+    expr double(5*[llength "6 2"])
+} 10.0
+test expr-2.2 {TclCompileExpr: error in expr} -body {
+    expr 2***3
+} -returnCodes error -match glob -result *
+test expr-2.3 {TclCompileExpr: junk after legal expr} -body {
+    expr 7*[llength "a b"]foo
+} -returnCodes error -match glob -result *
+test expr-2.4 {TclCompileExpr: numeric expr string rep == formatted int rep} {
+    expr {0001}
+} 1
+
+test expr-3.1 {CompileCondExpr: just lor expr} {expr 3||0} 1
+test expr-3.2 {CompileCondExpr: error in lor expr} -body {
+    expr x||3
+} -returnCodes error -match glob -result *
+test expr-3.3 {CompileCondExpr: test true arm} {expr 3>2?44:66} 44
+test expr-3.4 {CompileCondExpr: error compiling true arm} -body {
+    expr 3>2?2***3:66
+} -returnCodes error -match glob -result *
+test expr-3.5 {CompileCondExpr: test false arm} {expr 2>3?44:66} 66
+test expr-3.6 {CompileCondExpr: error compiling false arm} -body {
+    expr 2>3?44:2***3
+} -returnCodes error -match glob -result *
+test expr-3.7 {CompileCondExpr: long arms & nested cond exprs} {
+    hello_world
+} {Hello world}
+test expr-3.8 {CompileCondExpr: long arms & nested cond exprs} unix {
+    # Fails with a stack overflow on threaded Windows builds
+    do_twelve_days
+} 2358
+
+test expr-4.1 {CompileLorExpr: just land expr} {expr 1.3&&3.3} 1
+test expr-4.2 {CompileLorExpr: error in land expr} -body {
+    expr x&&3
+} -returnCodes error -match glob -result *
+test expr-4.3 {CompileLorExpr: simple lor exprs} {expr 0||1.0} 1
+test expr-4.4 {CompileLorExpr: simple lor exprs} {expr 3.0||0.0} 1
+test expr-4.5 {CompileLorExpr: simple lor exprs} {expr 0||0||1} 1
+test expr-4.6 {CompileLorExpr: error compiling lor arm} -body {
+    expr 2***3||4.0
+} -returnCodes error -match glob -result *
+test expr-4.7 {CompileLorExpr: error compiling lor arm} -body {
+    expr 1.3||2***3
+} -returnCodes error -match glob -result *
+test expr-4.8 {CompileLorExpr: error compiling lor arms} {
+    list [catch {expr {"a"||"b"}} msg] $msg
+} {1 {expected boolean value but got "a"}}
+test expr-4.9 {CompileLorExpr: long lor arm} {
+    set a "abcdefghijkl"
+    set i 7
+    expr {[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]] || [string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]] || [string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]] || [string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]&&[string compare [format %c $i] [string index $a $i]]}
+} 1
+test expr-4.10 {CompileLorExpr: error compiling ! operand} {
+    list [catch {expr {!"a"}} msg] $msg
+} {1 {can't use non-numeric string as operand of "!"}}
+test expr-4.11 {CompileLorExpr: error compiling land arms} {
+    list [catch {expr {"a"||0}} msg] $msg
+} {1 {expected boolean value but got "a"}}
+test expr-4.12 {CompileLorExpr: error compiling land arms} {
+    list [catch {expr {0||"a"}} msg] $msg
+} {1 {expected boolean value but got "a"}}
+
+test expr-5.1 {CompileLandExpr: just bitor expr} {expr 7|0x13} 23
+test expr-5.2 {CompileLandExpr: error in bitor expr} -body {
+    expr x|3
+} -returnCodes error -match glob -result *
+test expr-5.3 {CompileLandExpr: simple land exprs} {expr 0&&1.0} 0
+test expr-5.4 {CompileLandExpr: simple land exprs} {expr 0&&0} 0
+test expr-5.5 {CompileLandExpr: simple land exprs} {expr 3.0&&1.2} 1
+test expr-5.6 {CompileLandExpr: simple land exprs} {expr 1&&1&&2} 1
+test expr-5.7 {CompileLandExpr: error compiling land arm} -body {
+    expr 2***3&&4.0
+} -returnCodes error -match glob -result *
+test expr-5.8 {CompileLandExpr: error compiling land arm} -body {
+    expr 1.3&&2***3
+} -returnCodes error -match glob -result *
+test expr-5.9 {CompileLandExpr: error compiling land arm} {
+    list [catch {expr {"a"&&"b"}} msg] $msg
+} {1 {expected boolean value but got "a"}}
+test expr-5.10 {CompileLandExpr: long land arms} {
+    set a "abcdefghijkl"
+    set i 7
+    expr {[string compare [format %c 103] [string index $a $i]]^[string compare [format %c 105] [string index $a $i]]^[string compare [format %c 103] [string index $a $i]]^[string compare [format %c 105] [string index $a $i]]^[string compare [format %c 103] [string index $a $i]]^[string compare [format %c 105] [string index $a $i]]^[string compare [format %c 103] [string index $a $i]]^[string compare [format %c 105] [string index $a $i]]^[string compare [format %c 103] [string index $a $i]]^[string compare [format %c 105] [string index $a $i]]^[string compare [format %c 103] [string index $a $i]]^[string compare [format %c 105] [string index $a $i]]^[string compare [format %c 103] [string index $a $i]]^[string compare [format %c 105] [string index $a $i]]^[string compare [format %c 103] [string index $a $i]]^[string compare [format %c 105] [string index $a $i]]^[string compare [format %c 103] [string index $a $i]]^[string compare [format %c 105] [string index $a $i]] && [string compare [format %c 103] [string index $a $i]]^[string compare [format %c 105] [string index $a $i]]^[string compare [format %c 103] [string index $a $i]]^[string compare [format %c 105] [string index $a $i]]^[string compare [format %c 103] [string index $a $i]]^[string compare [format %c 105] [string index $a $i]]^[string compare [format %c 103] [string index $a $i]]^[string compare [format %c 105] [string index $a $i]]^[string compare [format %c 103] [string index $a $i]]^[string compare [format %c 105] [string index $a $i]]^[string compare [format %c 103] [string index $a $i]]^[string compare [format %c 105] [string index $a $i]]^[string compare [format %c 103] [string index $a $i]]^[string compare [format %c 105] [string index $a $i]]^[string compare [format %c 103] [string index $a $i]]^[string compare [format %c 105] [string index $a $i]]^[string compare [format %c 103] [string index $a $i]]^[string compare [format %c 105] [string index $a $i]] && [string compare [format %c 103] [string index $a $i]]^[string compare [format %c 105] [string index $a $i]]^[string compare [format %c 103] [string index $a $i]]^[string compare [format %c 105] [string index $a $i]]^[string compare [format %c 103] [string index $a $i]]^[string compare [format %c 105] [string index $a $i]]^[string compare [format %c 103] [string index $a $i]]^[string compare [format %c 105] [string index $a $i]]^[string compare [format %c 103] [string index $a $i]]^[string compare [format %c 105] [string index $a $i]]^[string compare [format %c 103] [string index $a $i]]^[string compare [format %c 105] [string index $a $i]]^[string compare [format %c 103] [string index $a $i]]^[string compare [format %c 105] [string index $a $i]]^[string compare [format %c 103] [string index $a $i]]^[string compare [format %c 105] [string index $a $i]]^[string compare [format %c 103] [string index $a $i]]^[string compare [format %c 105] [string index $a $i]] && [string compare [format %c 103] [string index $a $i]]^[string compare [format %c 105] [string index $a $i]]^[string compare [format %c 103] [string index $a $i]]^[string compare [format %c 105] [string index $a $i]]^[string compare [format %c 103] [string index $a $i]]^[string compare [format %c 105] [string index $a $i]]^[string compare [format %c 103] [string index $a $i]]^[string compare [format %c 105] [string index $a $i]]^[string compare [format %c 103] [string index $a $i]]^[string compare [format %c 105] [string index $a $i]]^[string compare [format %c 103] [string index $a $i]]^[string compare [format %c 105] [string index $a $i]]^[string compare [format %c 103] [string index $a $i]]^[string compare [format %c 105] [string index $a $i]]^[string compare [format %c 103] [string index $a $i]]^[string compare [format %c 105] [string index $a $i]]^[string compare [format %c 103] [string index $a $i]]^[string compare [format %c 105] [string index $a $i]]}
+} 1
+
+test expr-6.1 {CompileBitXorExpr: just bitand expr} {expr 7&0x13} 3
+test expr-6.2 {CompileBitXorExpr: error in bitand expr} -body {
+    expr x|3
+} -returnCodes error -match glob -result *
+test expr-6.3 {CompileBitXorExpr: simple bitxor exprs} {expr 7^0x13} 20
+test expr-6.4 {CompileBitXorExpr: simple bitxor exprs} {expr 3^0x10} 19
+test expr-6.5 {CompileBitXorExpr: simple bitxor exprs} {expr 0^7} 7
+test expr-6.6 {CompileBitXorExpr: simple bitxor exprs} {expr -1^7} -8
+test expr-6.7 {CompileBitXorExpr: error compiling bitxor arm} -body {
+    expr 2***3|6
+} -returnCodes error -match glob -result *
+test expr-6.8 {CompileBitXorExpr: error compiling bitxor arm} -body {
+    expr 2^x
+} -returnCodes error -match glob -result *
+test expr-6.9 {CompileBitXorExpr: runtime error in bitxor arm} {
+    list [catch {expr {24.0^3}} msg] $msg
+} {1 {can't use floating-point value as operand of "^"}}
+test expr-6.10 {CompileBitXorExpr: runtime error in bitxor arm} {
+    list [catch {expr {"a"^"b"}} msg] $msg
+} {1 {can't use non-numeric string as operand of "^"}}
+
+test expr-7.1 {CompileBitAndExpr: just equality expr} {expr 3==2} 0
+test expr-7.2 {CompileBitAndExpr: just equality expr} {expr 2.0==2} 1
+test expr-7.3 {CompileBitAndExpr: just equality expr} {expr 3.2!=2.2} 1
+test expr-7.4 {CompileBitAndExpr: just equality expr} {expr {"abc" == "abd"}} 0
+test expr-7.5 {CompileBitAndExpr: error in equality expr} -body {
+    expr x==3
+} -returnCodes error -match glob -result *
+test expr-7.6 {CompileBitAndExpr: simple bitand exprs} {expr 7&0x13} 3
+test expr-7.7 {CompileBitAndExpr: simple bitand exprs} {expr 0xf2&0x53} 82
+test expr-7.8 {CompileBitAndExpr: simple bitand exprs} {expr 3&6} 2
+test expr-7.9 {CompileBitAndExpr: simple bitand exprs} {expr -1&-7} -7
+test expr-7.10 {CompileBitAndExpr: error compiling bitand arm} -body {
+    expr 2***3&6
+} -returnCodes error -match glob -result *
+test expr-7.11 {CompileBitAndExpr: error compiling bitand arm} -body {
+    expr 2&x
+} -returnCodes error -match glob -result *
+test expr-7.12 {CompileBitAndExpr: runtime error in bitand arm} {
+    list [catch {expr {24.0&3}} msg] $msg
+} {1 {can't use floating-point value as operand of "&"}}
+test expr-7.13 {CompileBitAndExpr: runtime error in bitand arm} {
+    list [catch {expr {"a"&"b"}} msg] $msg
+} {1 {can't use non-numeric string as operand of "&"}}
+test expr-7.14 {CompileBitAndExpr: equality expr} {expr 3eq2} 0
+test expr-7.18 {CompileBitAndExpr: equality expr} {expr {"abc" eq "abd"}} 0
+test expr-7.20 {CompileBitAndExpr: error in equality expr} -body {
+    expr xne3
+} -returnCodes error -match glob -result *
+
+test expr-8.1 {CompileEqualityExpr: just relational expr} {expr 3>=2} 1
+test expr-8.2 {CompileEqualityExpr: just relational expr} {expr 2<=2.1} 1
+test expr-8.3 {CompileEqualityExpr: just relational expr} {expr 3.2>"2.2"} 1
+test expr-8.4 {CompileEqualityExpr: just relational expr} {expr {"0y"<"0x12"}} 0
+test expr-8.5 {CompileEqualityExpr: error in relational expr} -body {
+    expr x>3
+} -returnCodes error -match glob -result *
+test expr-8.6 {CompileEqualityExpr: simple equality exprs} {expr 7==0x13} 0
+test expr-8.7 {CompileEqualityExpr: simple equality exprs} {expr -0xf2!=0x53} 1
+test expr-8.8 {CompileEqualityExpr: simple equality exprs} {expr {"12398712938788234-1298379" != ""}} 1
+test expr-8.9 {CompileEqualityExpr: simple equality exprs} {expr -1!="abc"} 1
+test expr-8.10 {CompileEqualityExpr: error compiling equality arm} -body {
+    expr 2***3==6
+} -returnCodes error -match glob -result *
+test expr-8.11 {CompileEqualityExpr: error compiling equality arm} -body {
+    expr 2!=x
+} -returnCodes error -match glob -result *
+test expr-8.12 {CompileBitAndExpr: equality expr} {expr {"a"eq"a"}} 1
+test expr-8.13 {CompileBitAndExpr: equality expr} {expr {"\374" eq [set s \u00fc]}} 1
+test expr-8.14 {CompileBitAndExpr: equality expr} {expr 3eq2} 0
+test expr-8.15 {CompileBitAndExpr: equality expr} {expr 2.0eq2} 0
+test expr-8.16 {CompileBitAndExpr: equality expr} {expr 3.2ne2.2} 1
+test expr-8.17 {CompileBitAndExpr: equality expr} {expr 01eq1} 0
+test expr-8.18 {CompileBitAndExpr: equality expr} {expr {"abc" eq "abd"}} 0
+test expr-8.19 {CompileBitAndExpr: equality expr} {expr {"abc" ne "abd"}} 1
+test expr-8.20 {CompileBitAndExpr: error in equality expr} -body {
+    expr x ne3
+} -returnCodes error -match glob -result *
+test expr-8.21 {CompileBitAndExpr: error in equality expr} -body {
+    # These should be ""ed to avoid the error
+    expr a eq b
+} -returnCodes error -match glob -result *
+test expr-8.22 {CompileBitAndExpr: error in equality expr} -body {
+    expr {false eqfalse}
+} -returnCodes error -match glob -result *
+test expr-8.23 {CompileBitAndExpr: error in equality expr} -body {
+    expr {false nefalse}
+} -returnCodes error -match glob -result *
+test expr-8.24 {CompileEqualityExpr: simple equality exprs} {
+    set x 12398712938788234
+    expr {$x == 100}
+} 0
+test expr-8.25 {CompileEqualityExpr: simple equality exprs} {
+    expr {"0x12 " == "0x12"}
+} 1
+test expr-8.26 {CompileEqualityExpr: simple equality exprs} {
+    expr {"0x12 " eq "0x12"}
+} 0
+test expr-8.27 {CompileEqualityExpr: simple equality exprs} {
+    expr {"1.0e100000000" == "0.0"}
+} 0
+test expr-8.28 {CompileEqualityExpr: just relational expr} {
+    expr {"0y" == "0x0"}
+} 0
+test expr-8.29 {CompileEqualityExpr: just relational expr} {
+    # Compare original strings from variables.
+    set v1 "0y"
+    set v2 "0x12"
+    expr {$v1 < $v2}
+} 0
+test expr-8.30 {CompileEqualityExpr: simple equality exprs} {
+    expr {"fake" != "bob"}
+} 1
+test expr-8.31 {expr edge cases} -body {
+    expr {1e}
+} -returnCodes error -match glob -result *
+test expr-8.32 {expr edge cases} -body {
+    expr {1E}
+} -returnCodes error -match glob -result *
+test expr-8.33 {expr edge cases} -body {
+    expr {1e+}
+} -returnCodes error -match glob -result *
+test expr-8.34 {expr edge cases} -body {
+    expr {1E+}
+} -returnCodes error -match glob -result *
+test expr-8.35 {expr edge cases} -body {
+    expr {1ea}
+} -returnCodes error -match glob -result *
+
+test expr-9.1 {CompileRelationalExpr: just shift expr} {expr 3<<2} 12
+test expr-9.2 {CompileRelationalExpr: just shift expr} {expr 0xff>>2} 63
+test expr-9.3 {CompileRelationalExpr: just shift expr} {expr -1>>2} -1
+test expr-9.4 {CompileRelationalExpr: just shift expr} {expr {1<<3}} 8
+test expr-9.5a {CompileRelationalExpr: shift expr producing LONG_MIN} longIs64bit {
+    expr {int(1<<63)}
+} -9223372036854775808
+test expr-9.5b {CompileRelationalExpr: shift expr producing LONG_MIN} longIs32bit {
+    expr {int(1<<31)}
+} -2147483648
+test expr-9.6 {CompileRelationalExpr: error in shift expr} -body {
+    expr x>>3
+} -returnCodes error -match glob -result *
+test expr-9.7 {CompileRelationalExpr: simple relational exprs} {expr 0xff>=+0x3} 1
+test expr-9.8 {CompileRelationalExpr: simple relational exprs} {expr -0xf2<0x3} 1
+test expr-9.9 {CompileRelationalExpr: error compiling relational arm} -body {
+    expr 2***3>6
+} -returnCodes error -match glob -result *
+test expr-9.10 {CompileRelationalExpr: error compiling relational arm} -body {
+    expr 2<x
+} -returnCodes error -match glob -result *
+
+test expr-10.1 {CompileShiftExpr: just add expr} {expr 4+-2} 2
+test expr-10.2 {CompileShiftExpr: just add expr} {expr 0xff-2} 253
+test expr-10.3 {CompileShiftExpr: just add expr} {expr -1--2} 1
+test expr-10.4 {CompileShiftExpr: just add expr} {expr 1-0o123} -82
+test expr-10.5 {CompileShiftExpr: error in add expr} -body {
+    expr x+3
+} -returnCodes error -match glob -result *
+test expr-10.6 {CompileShiftExpr: simple shift exprs} {expr 0xff>>0x3} 31
+test expr-10.7 {CompileShiftExpr: simple shift exprs} {expr -0xf2<<0x3} -1936
+test expr-10.8 {CompileShiftExpr: error compiling shift arm} -body {
+    expr 2***3>>6
+} -returnCodes error -match glob -result *
+test expr-10.9 {CompileShiftExpr: error compiling shift arm} -body {
+    expr 2<<x
+} -returnCodes error -match glob -result *
+test expr-10.10 {CompileShiftExpr: runtime error} {
+    list [catch {expr {24.0>>43}} msg] $msg
+} {1 {can't use floating-point value as operand of ">>"}}
+test expr-10.11 {CompileShiftExpr: runtime error} {
+    list [catch {expr {"a"<<"b"}} msg] $msg
+} {1 {can't use non-numeric string as operand of "<<"}}
+
+test expr-11.1 {CompileAddExpr: just multiply expr} {expr 4*-2} -8
+test expr-11.2 {CompileAddExpr: just multiply expr} {expr 0xff%2} 1
+test expr-11.3 {CompileAddExpr: just multiply expr} {expr -1/2} -1
+test expr-11.4 {CompileAddExpr: just multiply expr} {expr 7891%0o123} 6
+test expr-11.5 {CompileAddExpr: error in multiply expr} -body {
+    expr x*3
+} -returnCodes error -match glob -result *
+test expr-11.6 {CompileAddExpr: simple add exprs} {expr 0xff++0x3} 258
+test expr-11.7 {CompileAddExpr: simple add exprs} {expr -0xf2--0x3} -239
+test expr-11.8 {CompileAddExpr: error compiling add arm} -body {
+    expr 2***3+6
+} -returnCodes error -match glob -result *
+test expr-11.9 {CompileAddExpr: error compiling add arm} -body {
+    expr 2-x
+} -returnCodes error -match glob -result *
+test expr-11.10 {CompileAddExpr: runtime error} {
+    list [catch {expr {24.0+"xx"}} msg] $msg
+} {1 {can't use non-numeric string as operand of "+"}}
+test expr-11.11 {CompileAddExpr: runtime error} {
+    list [catch {expr {"a"-"b"}} msg] $msg
+} {1 {can't use non-numeric string as operand of "-"}}
+test expr-11.12 {CompileAddExpr: runtime error} {
+    list [catch {expr {3/0}} msg] $msg
+} {1 {divide by zero}}
+test expr-11.13a {CompileAddExpr: runtime error} !ieeeFloatingPoint {
+    list [catch {expr {2.3/0.0}} msg] $msg
+} {1 {divide by zero}}
+test expr-11.13b {CompileAddExpr: runtime error} ieeeFloatingPoint {
+    list [catch {expr {2.3/0.0}} msg] $msg
+} {0 Inf}
+
+test expr-12.1 {CompileMultiplyExpr: just unary expr} {expr ~4} -5
+test expr-12.2 {CompileMultiplyExpr: just unary expr} {expr --5} 5
+test expr-12.3 {CompileMultiplyExpr: just unary expr} {expr !27} 0
+test expr-12.4 {CompileMultiplyExpr: just unary expr} {expr ~0xff00ff} -16711936
+test expr-12.5 {CompileMultiplyExpr: error in unary expr} -body {
+    expr ~x
+} -returnCodes error -match glob -result *
+test expr-12.6 {CompileMultiplyExpr: simple multiply exprs} {expr 0xff*0x3} 765
+test expr-12.7 {CompileMultiplyExpr: simple multiply exprs} {expr -0xf2%-0x3} -2
+test expr-12.8 {CompileMultiplyExpr: error compiling multiply arm} -body {
+    expr 2*3%%6
+} -returnCodes error -match glob -result *
+test expr-12.9 {CompileMultiplyExpr: error compiling multiply arm} -body {
+    expr 2*x
+} -returnCodes error -match glob -result *
+test expr-12.10 {CompileMultiplyExpr: runtime error} {
+    list [catch {expr {24.0*"xx"}} msg] $msg
+} {1 {can't use non-numeric string as operand of "*"}}
+test expr-12.11 {CompileMultiplyExpr: runtime error} {
+    list [catch {expr {"a"/"b"}} msg] $msg
+} {1 {can't use non-numeric string as operand of "/"}}
+
+test expr-13.1 {CompileUnaryExpr: unary exprs} {expr -0xff} -255
+test expr-13.2 {CompileUnaryExpr: unary exprs} {expr +0o00123} 83
+test expr-13.3 {CompileUnaryExpr: unary exprs} {expr +--++36} 36
+test expr-13.4 {CompileUnaryExpr: unary exprs} {expr !2} 0
+test expr-13.5 {CompileUnaryExpr: unary exprs} {expr +--+-62.0} -62.0
+test expr-13.6 {CompileUnaryExpr: unary exprs} {expr !0.0} 1
+test expr-13.7 {CompileUnaryExpr: unary exprs} {expr !0xef} 0
+test expr-13.8 {CompileUnaryExpr: error compiling unary expr} -body {
+    expr ~x
+} -returnCodes error -match glob -result *
+test expr-13.9 {CompileUnaryExpr: error compiling unary expr} -body {
+    expr !1.x
+} -returnCodes error -match glob -result *
+test expr-13.10 {CompileUnaryExpr: runtime error} {
+    list [catch {expr {~"xx"}} msg] $msg
+} {1 {can't use non-numeric string as operand of "~"}}
+test expr-13.11 {CompileUnaryExpr: runtime error} {
+    list [catch {expr ~4.0} msg] $msg
+} {1 {can't use floating-point value as operand of "~"}}
+test expr-13.12 {CompileUnaryExpr: just primary expr} {expr 0x123} 291
+test expr-13.13 {CompileUnaryExpr: just primary expr} {
+    set a 27
+    expr $a
+} 27
+test expr-13.14 {CompileUnaryExpr: just primary expr} {
+    expr double(27)
+} 27.0
+test expr-13.15 {CompileUnaryExpr: just primary expr} {expr "123"} 123
+test expr-13.16 {CompileUnaryExpr: error in primary expr} {
+    catch {expr [set]} msg
+    set msg
+} {wrong # args: should be "set varName ?newValue?"}
+test expr-13.17 {CompileUnaryExpr: negating non-numeric boolean literals} {
+    set a1 yes; set a0 no; set b1 true; set b0 false
+    list [expr {!$a1}] [expr {!$a0}] [expr {!$b1}] [expr {!$b0}]
+} {0 1 0 1}
+
+test expr-14.1 {CompilePrimaryExpr: literal primary} {expr 1} 1
+test expr-14.2 {CompilePrimaryExpr: literal primary} {expr 123} 123
+test expr-14.3 {CompilePrimaryExpr: literal primary} {expr 0xff} 255
+test expr-14.4 {CompilePrimaryExpr: literal primary} {expr 0o0010} 8
+test expr-14.5 {CompilePrimaryExpr: literal primary} {expr 62.0} 62.0
+test expr-14.6 {CompilePrimaryExpr: literal primary} {
+    expr 3.1400000
+} 3.14
+test expr-14.7 {CompilePrimaryExpr: literal primary} {expr {{abcde}<{abcdef}}} 1
+test expr-14.8 {CompilePrimaryExpr: literal primary} {expr {{abc\
+def} < {abcdef}}} 1
+test expr-14.9 {CompilePrimaryExpr: literal primary} {expr {{abc\tde} > {abc\tdef}}} 0
+test expr-14.10 {CompilePrimaryExpr: literal primary} {expr {{123}}} 123
+test expr-14.11 {CompilePrimaryExpr: var reference primary} {
+    set i 789
+    list [expr {$i}] [expr $i]
+} {789 789}
+test expr-14.12 {CompilePrimaryExpr: var reference primary} {
+    set i {789}    ;# test expr's aggressive conversion to numeric semantics
+    list [expr {$i}] [expr $i]
+} {789 789}
+test expr-14.13 {CompilePrimaryExpr: var reference primary} {
+    catch {unset a}
+    set a(foo) foo
+    set a(bar) bar
+    set a(123) 123
+    set result ""
+    lappend result [expr $a(123)] [expr {$a(bar)<$a(foo)}]
+    catch {unset a}
+    set result
+} {123 1}
+test expr-14.14 {CompilePrimaryExpr: var reference primary} {
+    set i 123    ;# test "$var.0" floating point conversion hack
+    list [expr $i] [expr $i.0] [expr $i.0/12.0]
+} {123 123.0 10.25}
+test expr-14.15 {CompilePrimaryExpr: var reference primary} {
+    set i 123
+    catch {expr $i.2} msg
+    set msg
+} 123.2
+test expr-14.16 {CompilePrimaryExpr: error compiling var reference primary} -body {
+    expr {$a(foo}
+} -returnCodes error -match glob -result *
+test expr-14.17 {CompilePrimaryExpr: string primary that looks like var ref} -body {
+    expr $
+} -returnCodes error -match glob -result *
+test expr-14.18 {CompilePrimaryExpr: quoted string primary} {
+    expr "21"
+} 21
+test expr-14.19 {CompilePrimaryExpr: quoted string primary} {
+    set i 123
+    set x 456
+    expr "$i+$x"
+} 579
+test expr-14.20 {CompilePrimaryExpr: quoted string primary} {
+    set i 3
+    set x 6
+    expr 2+"$i.$x"
+} 5.6
+test expr-14.21 {CompilePrimaryExpr: error in quoted string primary} {
+    catch {expr "[set]"} msg
+    set msg
+} {wrong # args: should be "set varName ?newValue?"}
+test expr-14.22 {CompilePrimaryExpr: subcommand primary} {
+    expr {[set i 123; set i]}
+} 123
+test expr-14.23 {CompilePrimaryExpr: error in subcommand primary} -body {
+    catch {expr {[set]}} msg
+    set ::errorInfo
+} -match glob -result {wrong # args: should be "set varName ?newValue?"
+    while *ing
+"set"*}
+test expr-14.24 {CompilePrimaryExpr: error in subcommand primary} -body {
+    expr {[set i}
+} -returnCodes error -match glob -result *
+test expr-14.25 {CompilePrimaryExpr: math function primary} {
+    format %.6g [expr exp(1.0)]
+} 2.71828
+test expr-14.26 {CompilePrimaryExpr: math function primary} {
+    format %.6g [expr pow(2.0+0.1,3.0+0.1)]
+} 9.97424
+test expr-14.27 {CompilePrimaryExpr: error in math function primary} -body {
+    expr sinh::(2.0)
+} -returnCodes error -match glob -result *
+test expr-14.28 {CompilePrimaryExpr: subexpression primary} {
+    expr 2+(3*4)
+} 14
+test expr-14.29 {CompilePrimaryExpr: error in subexpression primary} -body {
+    catch {expr 2+(3*[set])} msg
+    set ::errorInfo
+} -match glob -result {wrong # args: should be "set varName ?newValue?"
+    while *ing
+"set"*}
+test expr-14.30 {CompilePrimaryExpr: missing paren in subexpression primary} -body {
+    expr 2+(3*(4+5)
+} -returnCodes error -match glob -result *
+test expr-14.31 {CompilePrimaryExpr: just var ref in subexpression primary} {
+    set i "5+10"
+    list "[expr $i] == 15" "[expr ($i)] == 15" "[eval expr ($i)] == 15"
+} {{15 == 15} {15 == 15} {15 == 15}}
+test expr-14.32 {CompilePrimaryExpr: unexpected token} -body {
+    expr @
+} -returnCodes error -match glob -result *
+
+test expr-15.1 {CompileMathFuncCall: missing parenthesis} -body {
+    expr sinh2.0)
+} -returnCodes error -match glob -result *
+test expr-15.2 {CompileMathFuncCall: unknown math function} -body {
+    catch {expr whazzathuh(1)} msg
+    set ::errorInfo
+} -match glob -result {* "*whazzathuh"
+    while *ing
+"expr whazzathuh(1)"}
+test expr-15.3 {CompileMathFuncCall: too many arguments} -body {
+    catch {expr sin(1,2,3)} msg
+    set ::errorInfo
+} -match glob -result {too many arguments for math function*
+    while *ing
+"expr sin(1,2,3)"}
+test expr-15.4 {CompileMathFuncCall: ')' found before last required arg} -body {
+    catch {expr sin()} msg
+    set ::errorInfo
+} -match glob -result {not enough arguments for math function*
+    while *ing
+"expr sin()"}
+test expr-15.5 {CompileMathFuncCall: not enough arguments} -body {
+    catch {expr pow(1)} msg
+    set ::errorInfo
+} -match glob -result {not enough arguments for math function*
+    while *ing
+"expr pow(1)"}
+test expr-15.6 {CompileMathFuncCall: missing ')'} -body {
+    expr sin(1
+} -returnCodes error -match glob -result *
+test expr-15.7 {CompileMathFuncCall: call registered math function} {testmathfunctions} {
+    expr 2*T1()
+} 246
+test expr-15.8 {CompileMathFuncCall: call registered math function} {testmathfunctions} {
+    expr T2()*3
+} 1035
+test expr-15.9 {CompileMathFuncCall: call registered math function} {testmathfunctions} {
+    expr T3(21, 37)
+} 37
+test expr-15.10 {CompileMathFuncCall: call registered math function} {testmathfunctions} {
+    expr T3(21.2, 37)
+} 37.0
+test expr-15.11 {CompileMathFuncCall: call registered math function} {testmathfunctions} {
+    expr T3(-21.2, -17.5)
+} -17.5
+test expr-15.12 {ExprCallMathFunc: call registered math function} {testmathfunctions} {
+    expr T3(21, wide(37))
+} 37
+test expr=15.13 {ExprCallMathFunc: call registered math function} {testmathfunctions} {
+    expr T3(wide(21), 37)
+} 37
+test expr=15.14 {ExprCallMathFunc: call registered math function} {testmathfunctions} {
+    expr T3(wide(21), wide(37))
+} 37
+test expr-15.15 {ExprCallMathFunc: call registered math function} {testmathfunctions} {
+    expr T3(21.0, wide(37))
+} 37.0
+test expr-15.16 {ExprCallMathFunc: call registered math function} {testmathfunctions} {
+    expr T3(wide(21), 37.0)
+} 37.0
+test expr-15.17 {ExprCallMathFunc: non-numeric arg} -constraints {
+    testmathfunctions
+} -body {
+    expr T3(0,"a")
+} -returnCodes error -result {argument to math function didn't have numeric value}
+
+
+test expr-16.1 {GetToken: checks whether integer token starting with "0x" (e.g., "0x$") is invalid} {
+    catch {unset a}
+    set a(VALUE) ff15
+    set i 123
+    if {[expr 0x$a(VALUE)] & 16} {
+        set i {}
+    }
+    set i
+} {}
+test expr-16.2 {GetToken: check for string literal in braces} {
+    expr {{1}}
+} {1}
+
+# Check "expr" and computed command names.
+
+test expr-17.1 {expr and computed command names} {
+    set i 0
+    set z expr
+    $z 1+2
+} 3
+
+# Check correct conversion of operands to numbers: If the string looks like
+# an integer, convert to integer. Otherwise, if the string looks like a
+# double, convert to double.
+
+test expr-18.1 {expr and conversion of operands to numbers} {
+    set x [lindex 11 0]
+    catch {expr int($x)}
+    expr {$x}
+} 11
+test expr-18.2 {whitespace strings should not be == 0 (buggy strtod)} {
+    expr {" "}
+} { }
+
+# Check "expr" and interpreter result object resetting before appending
+# an error msg during evaluation of exprs not in {}s
+
+test expr-19.1 {expr and interpreter result object resetting} {
+    proc p {} {
+        set t  10.0
+        set x  2.0
+        set dx 0.2
+        set f  {$dx-$x/10}
+        set g  {-$x/5}
+        set center 1.0
+        set x  [expr $x-$center]
+        set dx [expr $dx+$g]
+        set x  [expr $x+$f+$center]
+        set x  [expr $x+$f+$center]
+        set y  [expr round($x)]
+    }
+    p
+} 3
+
+# Test for incorrect "double evaluation" semantics
+
+test expr-20.1 {wrong brace matching} {
+    catch {unset l}
+    catch {unset r}
+    catch {unset q}
+    catch {unset cmd}
+    catch {unset a}
+    set l "\{"; set r "\}"; set q "\""
+    set cmd "expr $l$q|$q == $q$r$q$r"
+    list [catch $cmd a] $a
+} {1 {extra characters after close-brace}}
+test expr-20.2 {double invocation of variable traces} -body {
+    set exprtracecounter 0
+    proc exprtraceproc {args} {
+       upvar #0 exprtracecounter counter
+       set argc [llength $args]
+       set extraargs [lrange $args 0 [expr {$argc - 4}]]
+       set name [lindex $args [expr {$argc - 3}]]
+       upvar 1 $name var
+       if {[incr counter] % 2 == 1} {
+           set var "$counter oops [concat $extraargs]"
+       } else {
+           set var "$counter + [concat $extraargs]"
+       }
+    }
+    trace variable exprtracevar r [list exprtraceproc 10]
+    list [catch {expr "$exprtracevar + 20"} a] $a \
+        [catch {expr "$exprtracevar + 20"} b] $b \
+        [unset exprtracevar exprtracecounter]
+} -match glob -result {1 * 0 32 {}}
+test expr-20.3 {broken substitution of integer digits} {
+    # fails with 8.0.x, but not 8.1b2
+    list [set a 000; expr 0x1$a] [set a 1; expr ${a}000]
+} {4096 1000}
+test expr-20.4 {proper double evaluation compilation, error case} {
+    catch {unset a}; # make sure $a doesn't exist
+    list [catch {expr 1?{$a}:0} msg] $msg
+} {1 {can't read "a": no such variable}}
+test expr-20.5 {proper double evaluation compilation, working case} {
+    set a yellow
+    expr 1?{$a}:0
+} yellow
+test expr-20.6 {handling of compile error in trial compile} {
+    list [catch {expr + {[incr]}} msg] $msg
+} {1 {wrong # args: should be "incr varName ?increment?"}}
+test expr-20.7 {handling of compile error in runtime case} {
+    list [catch {expr + {[error foo]}} msg] $msg
+} {1 foo}
+
+# Test for non-numeric boolean literal handling
+test expr-21.1         {non-numeric boolean literals} {expr false } false
+test expr-21.2         {non-numeric boolean literals} {expr true  } true
+test expr-21.3         {non-numeric boolean literals} {expr off   } off
+test expr-21.4         {non-numeric boolean literals} {expr on    } on
+test expr-21.5         {non-numeric boolean literals} {expr no    } no
+test expr-21.6         {non-numeric boolean literals} {expr yes   } yes
+test expr-21.7         {non-numeric boolean literals} {expr !false} 1
+test expr-21.8         {non-numeric boolean literals} {expr !true } 0
+test expr-21.9         {non-numeric boolean literals} {expr !off  } 1
+test expr-21.10 {non-numeric boolean literals} {expr !on   } 0
+test expr-21.11 {non-numeric boolean literals} {expr !no   } 1
+test expr-21.12 {non-numeric boolean literals} {expr !yes  } 0
+test expr-21.13 {non-numeric boolean literals} -body {
+    expr !truef
+} -returnCodes error -match glob -result *
+test expr-21.14 {non-numeric boolean literals} {
+    list [catch {expr !"truef"} err] $err
+} {1 {can't use non-numeric string as operand of "!"}}
+test expr-21.15 {non-numeric boolean variables} {
+    set v truef
+    list [catch {expr {!$v}} err] $err
+} {1 {can't use non-numeric string as operand of "!"}}
+test expr-21.16 {non-numeric boolean variables} {
+    set v "true "
+    list [catch {expr {!$v}} err] $err
+} {1 {can't use non-numeric string as operand of "!"}}
+test expr-21.17 {non-numeric boolean variables} {
+    set v "tru"
+    list [catch {expr {!$v}} err] $err
+} {0 0}
+test expr-21.18 {non-numeric boolean variables} {
+    set v "fal"
+    list [catch {expr {!$v}} err] $err
+} {0 1}
+test expr-21.19 {non-numeric boolean variables} {
+    set v "y"
+    list [catch {expr {!$v}} err] $err
+} {0 0}
+test expr-21.20 {non-numeric boolean variables} {
+    set v "of"
+    list [catch {expr {!$v}} err] $err
+} {0 1}
+test expr-21.21 {non-numeric boolean variables} {
+    set v "o"
+    list [catch {expr {!$v}} err] $err
+} {1 {can't use non-numeric string as operand of "!"}}
+test expr-21.22 {non-numeric boolean variables} {
+    set v ""
+    list [catch {expr {!$v}} err] $err
+} {1 {can't use empty string as operand of "!"}}
+
+# Test for non-numeric float handling.
+test expr-22.1 {non-numeric floats} {
+    list [catch {expr {NaN + 1}} msg] $msg
+} {1 {can't use non-numeric floating-point value as operand of "+"}}
+test expr-22.2 {non-numeric floats} !ieeeFloatingPoint {
+    list [catch {expr {Inf + 1}} msg] $msg
+} {1 {can't use infinite floating-point value as operand of "+"}}
+test expr-22.3 {non-numeric floats} {
+    set nan NaN
+    list [catch {expr {$nan + 1}} msg] $msg
+} {1 {can't use non-numeric floating-point value as operand of "+"}}
+test expr-22.4 {non-numeric floats} !ieeeFloatingPoint {
+    set inf Inf
+    list [catch {expr {$inf + 1}} msg] $msg
+} {1 {can't use infinite floating-point value as operand of "+"}}
+test expr-22.5 {non-numeric floats} {
+    list [catch {expr NaN} msg] $msg
+} {1 {domain error: argument not in valid range}}
+test expr-22.6 {non-numeric floats} !ieeeFloatingPoint {
+    list [catch {expr Inf} msg] $msg
+} {1 {floating-point value too large to represent}}
+test expr-22.7 {non-numeric floats} {
+    list [catch {expr {1 / NaN}} msg] $msg
+} {1 {can't use non-numeric floating-point value as operand of "/"}}
+test expr-22.8 {non-numeric floats} !ieeeFloatingPoint {
+    list [catch {expr {1 / Inf}} msg] $msg
+} {1 {can't use infinite floating-point value as operand of "/"}}
+# Make sure [Bug 761471] stays fixed.
+test expr-22.9 {non-numeric floats: shared object equality and NaN} {
+    set x NaN
+    expr {$x == $x}
+} 0
+# Make sure [Bug d0f7ba56f0] stays fixed.
+test expr-22.10 {non-numeric arguments: equality and NaN} {
+    set x NaN
+    expr {$x > "Gran"}
+} 1
+test expr-22.11 {non-numeric arguments: equality and NaN} {
+    set x NaN
+    expr {"Gran" < $x}
+} 1
+
+# Tests for exponentiation handling
+test expr-23.1 {CompileExponentialExpr: just exponential expr} {expr 4**2} 16
+test expr-23.2 {CompileExponentialExpr: just exponential expr} {expr 0xff**2} 65025
+test expr-23.3 {CompileExponentialExpr: just exponential expr} {expr -1**2} 1
+test expr-23.4 {CompileExponentialExpr: just exponential expr} {expr 18**07} 612220032
+test expr-23.5 {CompileExponentialExpr: error in exponential expr} -body {
+    expr x**3
+} -returnCodes error -match glob -result *
+test expr-23.6 {CompileExponentialExpr: simple expo exprs} {expr 0xff**0x3} 16581375
+test expr-23.7 {CompileExponentialExpr: error compiling expo arm} -body {
+    expr (-3-)**6
+} -returnCodes error -match glob -result *
+test expr-23.8 {CompileExponentialExpr: error compiling expo arm} -body {
+    expr 2**x
+} -returnCodes error -match glob -result *
+test expr-23.9 {CompileExponentialExpr: runtime error} {
+    list [catch {expr {24.0**"xx"}} msg] $msg
+} {1 {can't use non-numeric string as operand of "**"}}
+test expr-23.10 {CompileExponentialExpr: runtime error} {
+    list [catch {expr {"a"**2}} msg] $msg
+} {1 {can't use non-numeric string as operand of "**"}}
+test expr-23.11 {CompileExponentialExpr: runtime error} {
+    list [catch {expr {0**-1}} msg] $msg
+} {1 {exponentiation of zero by negative power}}
+test expr-23.12 {CompileExponentialExpr: runtime error} {
+    list [catch {expr {0.0**-1.0}} msg] $msg
+} {1 {exponentiation of zero by negative power}}
+test expr-23.13 {CompileExponentialExpr: runtime error} {
+    list [catch {expr {wide(0)**wide(-1)}} msg] $msg
+} {1 {exponentiation of zero by negative power}}
+test expr-23.14 {INST_EXPON: special cases} {expr {0**1}} 0
+test expr-23.15 {INST_EXPON: special cases} {expr {0**0}} 1
+test expr-23.16 {INST_EXPON: special cases} {expr {-2**-1}} 0
+test expr-23.17 {INST_EXPON: special cases} {expr {-2**0}} 1
+test expr-23.18 {INST_EXPON: special cases} {expr {-1**1}} -1
+test expr-23.19 {INST_EXPON: special cases} {expr {-1**0}} 1
+test expr-23.20 {INST_EXPON: special cases} {expr {-1**2}} 1
+test expr-23.21 {INST_EXPON: special cases} {expr {-1**-1}} -1
+test expr-23.22 {INST_EXPON: special cases} {expr {1**1234567}} 1
+test expr-23.23 {INST_EXPON: special cases} {expr {2**-2}} 0
+test expr-23.24 {INST_EXPON: special cases} {expr {wide(0)**wide(1)}} 0
+test expr-23.25 {INST_EXPON: special cases} {expr {wide(0)**wide(0)}} 1
+test expr-23.26 {INST_EXPON: special cases} {expr {wide(-2)**wide(-1)}} 0
+test expr-23.27 {INST_EXPON: special cases} {expr {wide(-2)**wide(0)}} 1
+test expr-23.28 {INST_EXPON: special cases} {expr {wide(-1)**wide(1)}} -1
+test expr-23.29 {INST_EXPON: special cases} {expr {wide(-1)**wide(0)}} 1
+test expr-23.30 {INST_EXPON: special cases} {expr {wide(-1)**wide(2)}} 1
+test expr-23.31 {INST_EXPON: special cases} {expr {wide(-1)**wide(-1)}} -1
+test expr-23.32 {INST_EXPON: special cases} {expr {wide(1)**wide(1234567)}} 1
+test expr-23.33 {INST_EXPON: special cases} {expr {wide(2)**wide(-2)}} 0
+test expr-23.34 {INST_EXPON: special cases} {expr {2**0}} 1
+test expr-23.35 {INST_EXPON: special cases} {expr {wide(2)**0}} 1
+test expr-23.36 {INST_EXPON: big integer} {expr {10**17}} 1[string repeat 0 17]
+test expr-23.37 {INST_EXPON: big integer} {expr {10**18}} 1[string repeat 0 18]
+test expr-23.38 {INST_EXPON: big integer} {expr {10**19}} 1[string repeat 0 19]
+test expr-23.39 {INST_EXPON: big integer} {
+    expr 1[string repeat 0 30]**2
+} 1[string repeat 0 60]
+test expr-23.40 {INST_EXPON: overflow to big integer} {expr {(-10)**3}} -1000
+test expr-23.41 {INST_EXPON: overflow to big integer} {expr 2**64} [expr 1<<64]
+test expr-23.42 {INST_EXPON: overflow to big integer} {expr 4**32} [expr 1<<64]
+test expr-23.43 {INST_EXPON: overflow to big integer} {expr 16**16} [expr 1<<64]
+test expr-23.44 {INST_EXPON: overflow to big integer} {expr 256**8} [expr 1<<64]
+test expr-23.45 {INST_EXPON: Bug 1555371} {expr 2**1} 2
+test expr-23.46 {INST_EXPON: Bug 1561260} -body {
+    expr 5**28
+} -match glob -result *5
+test expr-23.47 {INST_EXPON: Bug 1561260} {
+    expr 2**32*5**32
+} 1[string repeat 0 32]
+test expr-23.48 {INST_EXPON: TIP 274: right assoc} {
+expr 2**3**4
+} 2417851639229258349412352
+test expr-23.49 {INST_EXPON: optimize powers of 2} {
+    set trouble {test powers of 2}
+    for {set tval 0} {$tval <= 66} {incr tval} {
+       set is [expr {2 ** $tval}]
+       set sb [expr {1 << $tval}]
+       if {$is != $sb} {
+           append trouble \n "2**" $tval " is " $is " should be " $sb
+       }
+       if {$tval >= 1} {
+           set is [expr {-2 ** $tval}]
+           set sb [expr {1 << $tval}]
+           if {$tval & 1} {
+               set sb [expr {-$sb}]
+           }
+           if {$is != $sb} {
+               append trouble \n "-2**" $tval " is " $is " should be " $sb
+           }
+       }
+    }
+    set trouble
+} {test powers of 2}
+test expr-23.50 {INST_EXPON: small powers of 32-bit integers} {
+    set trouble {test small powers of 32-bit ints}
+    for {set base 3} {$base <= 45} {incr base} {
+       set sb $base
+       set sbm [expr {-$base}]
+       for {set expt 2} {$expt <= 8} {incr expt} {
+           set sb [expr {$sb * $base}]
+           set is [expr {$base ** $expt}]
+           if {$sb != $is} {
+               append trouble \n $base ** $expt " is " $is " should be " $sb
+           }
+           set sbm [expr {-$sbm * $base}]
+           set ism [expr {(-$base) ** $expt}]
+           if {$sbm != $ism} {
+               append trouble \n - $base ** $expt " is " $ism \
+                   " should be " $sbm
+           }
+       }
+    }
+    set trouble
+} {test small powers of 32-bit ints}
+test expr-23.51 {INST_EXPON: intermediate powers of 32-bit integers} {
+    set trouble {test intermediate powers of 32-bit ints}
+    for {set base 3} {$base <= 11} {incr base} {
+       set sb [expr {$base ** 8}]
+       set sbm $sb
+       for {set expt 9} {$expt <= 21} {incr expt} {
+           set sb [expr {$sb * $base}]
+           set sbm [expr {$sbm * -$base}]
+           set is [expr {$base ** $expt}]
+           set ism [expr {-$base ** $expt}]
+           if {$sb != $is} {
+               append trouble \n $base ** $expt " is " $is " should be " $sb
+           }
+           if {$sbm != $ism} {
+               append trouble \n - $base ** $expt " is " $ism  \
+                   " should be " $sbm
+           }
+       }
+    }
+    set trouble
+} {test intermediate powers of 32-bit ints}
+test expr-23.52 {INST_EXPON: small integer powers with 64-bit results} {
+    set trouble {test small int powers with 64-bit results}
+    for {set exp 2} {$exp <= 16} {incr exp} {
+       set base [expr {entier(pow(double(0x7fffffffffffffff),(1.0/$exp)))}]
+       set sb 1
+       set sbm 1
+       for {set i 0} {$i < $exp} {incr i} {
+           set sb [expr {$sb * $base}]
+           set sbm [expr {$sbm * -$base}]
+       }
+       set is [expr {$base ** $exp}]
+       set ism [expr {-$base ** $exp}]
+       if {$sb != $is} {
+           append trouble \n $base ** $exp " is " $is " should be " $sb
+       }
+       if {$sbm != $ism} {
+           append trouble \n - $base ** $exp " is " $ism " should be " $sbm
+       }
+       incr base
+       set sb 1
+       set sbm 1
+       for {set i 0} {$i < $exp} {incr i} {
+           set sb [expr {$sb * $base}]
+           set sbm [expr {$sbm * -$base}]
+       }
+       set is [expr {$base ** $exp}]
+       set ism [expr {-$base ** $exp}]
+       if {$sb != $is} {
+           append trouble \n $base ** $exp " is " $is " should be " $sb
+       }
+       if {$sbm != $ism} {
+           append trouble \n - $base ** $exp " is " $ism " should be " $sbm
+       }
+    }
+    set trouble
+} {test small int powers with 64-bit results}
+test expr-23.53 {INST_EXPON: intermediate powers of 64-bit integers} {
+    set trouble {test intermediate powers of 64-bit ints}
+    for {set base 3} {$base <= 13} {incr base} {
+       set sb [expr {$base ** 15}]
+       set sbm [expr {-$sb}]
+       for {set expt 16} {$expt <= 39} {incr expt} {
+           set sb [expr {$sb * $base}]
+           set sbm [expr {$sbm * -$base}]
+           set is [expr {$base ** $expt}]
+           set ism [expr {-$base ** $expt}]
+           if {$sb != $is} {
+               append trouble \n $base ** $expt " is " $is " should be " $sb
+           }
+           if {$sbm != $ism} {
+               append trouble \n - $base ** $expt " is " $ism  \
+                   " should be " $sbm
+           }
+       }
+    }
+    set trouble
+} {test intermediate powers of 64-bit ints}
+test expr-23.54.0 {INST_EXPON: Bug 2798543} {
+    expr {3**9 == 3**65545}
+} 0
+test expr-23.54.1 {INST_EXPON: Bug 2798543} {
+    expr {3**10 == 3**65546}
+} 0
+test expr-23.54.2 {INST_EXPON: Bug 2798543} {
+    expr {3**11 == 3**65547}
+} 0
+test expr-23.54.3 {INST_EXPON: Bug 2798543} {
+    expr {3**12 == 3**65548}
+} 0
+test expr-23.54.4 {INST_EXPON: Bug 2798543} {
+    expr {3**13 == 3**65549}
+} 0
+test expr-23.54.5 {INST_EXPON: Bug 2798543} {
+    expr {3**14 == 3**65550}
+} 0
+test expr-23.54.6 {INST_EXPON: Bug 2798543} {
+    expr {3**15 == 3**65551}
+} 0
+test expr-23.54.7 {INST_EXPON: Bug 2798543} {
+    expr {3**16 == 3**65552}
+} 0
+test expr-23.54.8 {INST_EXPON: Bug 2798543} {
+    expr {3**17 == 3**65553}
+} 0
+test expr-23.54.9 {INST_EXPON: Bug 2798543} {
+    expr {3**18 == 3**65554}
+} 0
+test expr-23.54.10 {INST_EXPON: Bug 2798543} {
+    expr {3**19 == 3**65555}
+} 0
+test expr-23.54.11 {INST_EXPON: Bug 2798543} {
+    expr {3**9 == 3**131081}
+} 0
+test expr-23.54.12 {INST_EXPON: Bug 2798543} -body {
+    expr {3**268435456}
+} -returnCodes error -result {exponent too large}
+test expr-23.54.13 {INST_EXPON: Bug 2798543} {
+    expr {(-3)**9 == (-3)**65545}
+} 0
+test expr-23.55.0 {INST_EXPON: Bug 2798543} {
+    expr {4**9 == 4**65545}
+} 0
+test expr-23.55.1 {INST_EXPON: Bug 2798543} {
+    expr {4**15 == 4**65551}
+} 0
+test expr-23.55.2 {INST_EXPON: Bug 2798543} {
+    expr {4**9 == 4**131081}
+} 0
+test expr-23.55.3 {INST_EXPON: Bug 2798543} -body {
+    expr {4**268435456}
+} -returnCodes error -result {exponent too large}
+test expr-23.55.4 {INST_EXPON: Bug 2798543} {
+    expr {(-4)**9 == (-4)**65545}
+} 0
+test expr-23.56.0 {INST_EXPON: Bug 2798543} {
+    expr {5**9 == 5**65545}
+} 0
+test expr-23.56.1 {INST_EXPON: Bug 2798543} {
+    expr {5**13 == 5**65549}
+} 0
+test expr-23.56.2 {INST_EXPON: Bug 2798543} {
+    expr {5**9 == 5**131081}
+} 0
+test expr-23.56.3 {INST_EXPON: Bug 2798543} -body {
+    expr {5**268435456}
+} -returnCodes error -result {exponent too large}
+test expr-23.56.4 {INST_EXPON: Bug 2798543} {
+    expr {(-5)**9 == (-5)**65545}
+} 0
+test expr-23.57.0 {INST_EXPON: Bug 2798543} {
+    expr {6**9 == 6**65545}
+} 0
+test expr-23.57.1 {INST_EXPON: Bug 2798543} {
+    expr {6**11 == 6**65547}
+} 0
+test expr-23.57.2 {INST_EXPON: Bug 2798543} {
+    expr {6**9 == 6**131081}
+} 0
+test expr-23.57.3 {INST_EXPON: Bug 2798543} -body {
+    expr {6**268435456}
+} -returnCodes error -result {exponent too large}
+test expr-23.57.4 {INST_EXPON: Bug 2798543} {
+    expr {(-6)**9 == (-6)**65545}
+} 0
+test expr-23.58.0 {INST_EXPON: Bug 2798543} {
+    expr {7**9 == 7**65545}
+} 0
+test expr-23.58.1 {INST_EXPON: Bug 2798543} {
+    expr {7**11 == 7**65547}
+} 0
+test expr-23.58.2 {INST_EXPON: Bug 2798543} {
+    expr {7**9 == 7**131081}
+} 0
+test expr-23.58.3 {INST_EXPON: Bug 2798543} -body {
+    expr {7**268435456}
+} -returnCodes error -result {exponent too large}
+test expr-23.58.4 {INST_EXPON: Bug 2798543} {
+    expr {(-7)**9 == (-7)**65545}
+} 0
+test expr-23.59.0 {INST_EXPON: Bug 2798543} {
+    expr {8**9 == 8**65545}
+} 0
+test expr-23.59.1 {INST_EXPON: Bug 2798543} {
+    expr {8**10 == 8**65546}
+} 0
+test expr-23.59.2 {INST_EXPON: Bug 2798543} {
+    expr {8**9 == 8**131081}
+} 0
+test expr-23.59.3 {INST_EXPON: Bug 2798543} -body {
+    expr {8**268435456}
+} -returnCodes error -result {exponent too large}
+test expr-23.59.4 {INST_EXPON: Bug 2798543} {
+    expr {(-8)**9 == (-8)**65545}
+} 0
+test expr-23.60.0 {INST_EXPON: Bug 2798543} {
+    expr {9**9 == 9**65545}
+} 0
+test expr-23.60.1 {INST_EXPON: Bug 2798543} {
+    expr {9**9 == 9**131081}
+} 0
+test expr-23.60.2 {INST_EXPON: Bug 2798543} -body {
+    expr {9**268435456}
+} -returnCodes error -result {exponent too large}
+test expr-23.60.3 {INST_EXPON: Bug 2798543} {
+    expr {(-9)**9 == (-9)**65545}
+} 0
+test expr-23.61.0 {INST_EXPON: Bug 2798543} {
+    expr {10**9 == 10**65545}
+} 0
+test expr-23.61.1 {INST_EXPON: Bug 2798543} {
+    expr {10**9 == 10**131081}
+} 0
+test expr-23.61.2 {INST_EXPON: Bug 2798543} -body {
+    expr {10**268435456}
+} -returnCodes error -result {exponent too large}
+test expr-23.61.3 {INST_EXPON: Bug 2798543} {
+    expr {(-10)**9 == (-10)**65545}
+} 0
+test expr-23.62.0 {INST_EXPON: Bug 2798543} {
+    expr {11**9 == 11**65545}
+} 0
+test expr-23.62.1 {INST_EXPON: Bug 2798543} {
+    expr {11**9 == 11**131081}
+} 0
+test expr-23.62.2 {INST_EXPON: Bug 2798543} -body {
+    expr {11**268435456}
+} -returnCodes error -result {exponent too large}
+test expr-23.62.3 {INST_EXPON: Bug 2798543} {
+    expr {(-11)**9 == (-11)**65545}
+} 0
+test expr-23.63.0 {INST_EXPON: Bug 2798543} {
+    expr {3**20 == 3**65556}
+} 0
+test expr-23.63.1 {INST_EXPON: Bug 2798543} {
+    expr {3**39 == 3**65575}
+} 0
+test expr-23.63.2 {INST_EXPON: Bug 2798543} {
+    expr {3**20 == 3**131092}
+} 0
+test expr-23.63.3 {INST_EXPON: Bug 2798543} -body {
+    expr {3**268435456}
+} -returnCodes error -result {exponent too large}
+test expr-23.63.4 {INST_EXPON: Bug 2798543} {
+    expr {(-3)**20 == (-3)**65556}
+} 0
+test expr-23.64.0 {INST_EXPON: Bug 2798543} {
+    expr {4**17 == 4**65553}
+} 0
+test expr-23.64.1 {INST_EXPON: Bug 2798543} {
+    expr {4**31 == 4**65567}
+} 0
+test expr-23.64.2 {INST_EXPON: Bug 2798543} {
+    expr {4**17 == 4**131089}
+} 0
+test expr-23.64.3 {INST_EXPON: Bug 2798543} -body {
+    expr {4**268435456}
+} -returnCodes error -result {exponent too large}
+test expr-23.64.4 {INST_EXPON: Bug 2798543} {
+    expr {(-4)**17 == (-4)**65553}
+} 0
+test expr-23.65.0 {INST_EXPON: Bug 2798543} {
+    expr {5**17 == 5**65553}
+} 0
+test expr-23.65.1 {INST_EXPON: Bug 2798543} {
+    expr {5**27 == 5**65563}
+} 0
+test expr-23.65.2 {INST_EXPON: Bug 2798543} {
+    expr {5**17 == 5**131089}
+} 0
+test expr-23.65.3 {INST_EXPON: Bug 2798543} -body {
+    expr {5**268435456}
+} -returnCodes error -result {exponent too large}
+test expr-23.65.4 {INST_EXPON: Bug 2798543} {
+    expr {(-5)**17 == (-5)**65553}
+} 0
+test expr-23.66.0 {INST_EXPON: Bug 2798543} {
+    expr {6**17 == 6**65553}
+} 0
+test expr-23.66.1 {INST_EXPON: Bug 2798543} {
+    expr {6**24 == 6**65560}
+} 0
+test expr-23.66.2 {INST_EXPON: Bug 2798543} {
+    expr {6**17 == 6**131089}
+} 0
+test expr-23.66.3 {INST_EXPON: Bug 2798543} -body {
+    expr {6**268435456}
+} -returnCodes error -result {exponent too large}
+test expr-23.66.4 {INST_EXPON: Bug 2798543} {
+    expr {(-6)**17 == (-6)**65553}
+} 0
+test expr-23.67.0 {INST_EXPON: Bug 2798543} {
+    expr {7**17 == 7**65553}
+} 0
+test expr-23.67.1 {INST_EXPON: Bug 2798543} {
+    expr {7**22 == 7**65558}
+} 0
+test expr-23.67.2 {INST_EXPON: Bug 2798543} {
+    expr {7**17 == 7**131089}
+} 0
+test expr-23.67.3 {INST_EXPON: Bug 2798543} -body {
+    expr {7**268435456}
+} -returnCodes error -result {exponent too large}
+test expr-23.67.4 {INST_EXPON: Bug 2798543} {
+    expr {(-7)**17 == (-7)**65553}
+} 0
+test expr-23.68.0 {INST_EXPON: Bug 2798543} {
+    expr {8**17 == 8**65553}
+} 0
+test expr-23.68.1 {INST_EXPON: Bug 2798543} {
+    expr {8**20 == 8**65556}
+} 0
+test expr-23.68.2 {INST_EXPON: Bug 2798543} {
+    expr {8**17 == 8**131089}
+} 0
+test expr-23.68.3 {INST_EXPON: Bug 2798543} -body {
+    expr {8**268435456}
+} -returnCodes error -result {exponent too large}
+test expr-23.68.4 {INST_EXPON: Bug 2798543} {
+    expr {(-8)**17 == (-8)**65553}
+} 0
+test expr-23.69.0 {INST_EXPON: Bug 2798543} {
+    expr {9**17 == 9**65553}
+} 0
+test expr-23.69.1 {INST_EXPON: Bug 2798543} {
+    expr {9**19 == 9**65555}
+} 0
+test expr-23.69.2 {INST_EXPON: Bug 2798543} {
+    expr {9**17 == 9**131089}
+} 0
+test expr-23.69.3 {INST_EXPON: Bug 2798543} -body {
+    expr {9**268435456}
+} -returnCodes error -result {exponent too large}
+test expr-23.69.4 {INST_EXPON: Bug 2798543} {
+    expr {(-9)**17 == (-9)**65553}
+} 0
+test expr-23.70.0 {INST_EXPON: Bug 2798543} {
+    expr {10**17 == 10**65553}
+} 0
+test expr-23.70.1 {INST_EXPON: Bug 2798543} {
+    expr {10**18 == 10**65554}
+} 0
+test expr-23.70.2 {INST_EXPON: Bug 2798543} {
+    expr {10**17 == 10**131089}
+} 0
+test expr-23.70.3 {INST_EXPON: Bug 2798543} -body {
+    expr {10**268435456}
+} -returnCodes error -result {exponent too large}
+test expr-23.70.4 {INST_EXPON: Bug 2798543} {
+    expr {(-10)**17 == (-10)**65553}
+} 0
+test expr-23.71.0 {INST_EXPON: Bug 2798543} {
+    expr {11**17 == 11**65553}
+} 0
+test expr-23.71.1 {INST_EXPON: Bug 2798543} {
+    expr {11**18 == 11**65554}
+} 0
+test expr-23.71.2 {INST_EXPON: Bug 2798543} {
+    expr {11**17 == 11**131089}
+} 0
+test expr-23.71.3 {INST_EXPON: Bug 2798543} -body {
+    expr {11**268435456}
+} -returnCodes error -result {exponent too large}
+test expr-23.71.4 {INST_EXPON: Bug 2798543} {
+    expr {(-11)**17 == (-11)**65553}
+} 0
+test expr-23.72.0 {INST_EXPON: Bug 2798543} {
+    expr {12**17 == 12**65553}
+} 0
+test expr-23.72.1 {INST_EXPON: Bug 2798543} {
+    expr {12**17 == 12**131089}
+} 0
+test expr-23.72.2 {INST_EXPON: Bug 2798543} -body {
+    expr {12**268435456}
+} -returnCodes error -result {exponent too large}
+test expr-23.72.3 {INST_EXPON: Bug 2798543} {
+    expr {(-12)**17 == (-12)**65553}
+} 0
+test expr-23.73.0 {INST_EXPON: Bug 2798543} {
+    expr {13**17 == 13**65553}
+} 0
+test expr-23.73.1 {INST_EXPON: Bug 2798543} {
+    expr {13**17 == 13**131089}
+} 0
+test expr-23.73.2 {INST_EXPON: Bug 2798543} -body {
+    expr {13**268435456}
+} -returnCodes error -result {exponent too large}
+test expr-23.73.3 {INST_EXPON: Bug 2798543} {
+    expr {(-13)**17 == (-13)**65553}
+} 0
+test expr-23.74.0 {INST_EXPON: Bug 2798543} {
+    expr {14**17 == 14**65553}
+} 0
+test expr-23.74.1 {INST_EXPON: Bug 2798543} {
+    expr {14**17 == 14**131089}
+} 0
+test expr-23.74.2 {INST_EXPON: Bug 2798543} -body {
+    expr {14**268435456}
+} -returnCodes error -result {exponent too large}
+test expr-23.74.3 {INST_EXPON: Bug 2798543} {
+    expr {(-14)**17 == (-14)**65553}
+} 0
+
+
+# Some compilers get this wrong; ensure that we work around it correctly
+test expr-24.1 {expr edge cases; shifting} {expr int(5)>>32} 0
+test expr-24.2 {expr edge cases; shifting} {expr int(5)>>63} 0
+test expr-24.3 {expr edge cases; shifting} {expr wide(5)>>32} 0
+test expr-24.4 {expr edge cases; shifting} {expr wide(5)>>63} 0
+test expr-24.5 {expr edge cases; shifting} longIs32bit {expr int(5<<32)} 0
+test expr-24.6 {expr edge cases; shifting} longIs32bit {expr int(5<<63)} 0
+test expr-24.7 {expr edge cases; shifting} {expr wide(5)<<32} 21474836480
+test expr-24.8 {expr edge cases; shifting} {expr wide(10<<63)} 0
+test expr-24.9 {expr edge cases; shifting} {expr 5>>32} 0
+
+test expr-24.10 {INST_LSHIFT: Bug 1567222} {expr 500000000000000<<28} 134217728000000000000000
+
+# List membership tests
+test expr-25.1 {'in' operator} {expr {"a" in "a b c"}} 1
+test expr-25.2 {'in' operator} {expr {"a" in "b a c"}} 1
+test expr-25.3 {'in' operator} {expr {"a" in "b c a"}} 1
+test expr-25.4 {'in' operator} {expr {"a" in ""}} 0
+test expr-25.5 {'in' operator} {expr {"" in {a b c ""}}} 1
+test expr-25.6 {'in' operator} {expr {"" in "a b c"}} 0
+test expr-25.7 {'in' operator} {expr {"" in ""}} 0
+
+test expr-26.1 {'ni' operator} {expr {"a" ni "a b c"}} 0
+test expr-26.2 {'ni' operator} {expr {"a" ni "b a c"}} 0
+test expr-26.3 {'ni' operator} {expr {"a" ni "b c a"}} 0
+test expr-26.4 {'ni' operator} {expr {"a" ni ""}} 1
+test expr-26.5 {'ni' operator} {expr {"" ni {a b c ""}}} 0
+test expr-26.6 {'ni' operator} {expr {"" ni "a b c"}} 1
+test expr-26.7 {'ni' operator} {expr {"" ni ""}} 1
+
+foreach op {< <= == != > >=} {
+    proc test$op {a b} [list expr "\$a $op \$b"]
+}
+
+test expr-27.1 {expr - correct ordering - not compiled} ieeeFloatingPoint {
+    set problems {}
+    # Ordering should be: -Infinity < -Normal < Subnormal < -0
+    #                     < +0 < +Subnormal < +Normal < +Infinity
+    # with equality within each class.
+    set names {
+       -Infinity -Normal -Subnormal -0 +0 +Subnormal +Normal +Infinity
+    }
+    set weights {
+       -3 -2 -1 0 0 1 2 3
+    }
+    foreach name1 $names weight1 $weights {
+       foreach name2 $names weight2 $weights {
+           foreach op {< <= == != >= >} {
+               set shouldBe [expr "$weight1 $op $weight2"]
+               set is [expr "\$ieeeValues($name1) $op \$ieeeValues($name2)"]
+               if { $is != $shouldBe } {
+                   append problems $name1 { } $op { } $name2 \
+                       ":result is " $is ", should be $shouldBe" \n
+               }
+           }
+       }
+    }
+    set problems
+} {}
+test expr-27.2 {expr - correct ordering - compiled} ieeeFloatingPoint {
+    set problems {}
+    # Ordering should be: -Infinity < -Normal < Subnormal < -0
+    #                     < +0 < +Subnormal < +Normal < +Infinity
+    # with equality within each class.
+    set names {
+       -Infinity -Normal -Subnormal -0 +0 +Subnormal +Normal +Infinity
+    }
+    set weights {
+       -3 -2 -1 0 0 1 2 3
+    }
+    foreach name1 $names weight1 $weights {
+       foreach name2 $names weight2 $weights {
+           foreach op {< <= == != >= >} {
+               set shouldBe [expr "$weight1 $op $weight2"]
+               set is [test$op $ieeeValues($name1) $ieeeValues($name2)]
+               if { $is != $shouldBe } {
+                   append problems $name1 { } $op { } $name2 \
+                       ":result is " $is ", should be $shouldBe" \n
+               }
+           }
+       }
+    }
+    set problems
+} {}
+test expr-27.3 {expr - NaN is unordered - not compiled} {
+    set problems {}
+    set names {
+       -Infinity -Normal -Subnormal -0 +0 +Subnormal +Normal +Infinity NaN
+    }
+    foreach name1 $names {
+       foreach op {< <= == != >= >} sb {0 0 0 1 0 0} {
+           if "(\$ieeeValues($name1) $op \$ieeeValues(NaN)) != $sb " {
+               append problems $name1 { } $op { } NaN \
+                   ": result is 1, should be $sb" \n
+           }
+           if "(\$ieeeValues(NaN) $op \$ieeeValues($name1)) != $sb" {
+               append problems NaN { } $op { } $name1 \
+                   ": result is 1, should be $sb" \n
+           }
+       }
+    }
+    set problems
+} {}
+test expr-27.4 {expr - NaN is unordered - compiled} {
+    set problems {}
+    set names {
+       -Infinity -Normal -Subnormal -0 +0 +Subnormal +Normal +Infinity NaN
+    }
+    foreach name1 $names {
+       foreach op {< <= == != >= >} sb {0 0 0 1 0 0} {
+           if { [test$op $ieeeValues($name1) $ieeeValues(NaN)] != $sb } {
+               append problems $ieeeValues($name1) { } $op { } $ieeeValues(NaN) \
+                   ": result is 1, should be $sb" \n
+           }
+           if { [test$op $ieeeValues(NaN) $ieeeValues($name1)] != $sb } {
+               append problems NaN { } $op { } $ieeeValues($name1) \
+                   ": result is 1, should be $sb" \n
+           }
+       }
+    }
+    set problems
+} {}
+
+proc convertToDouble { x } {
+    variable ieeeValues
+    binary scan [binary format d $x] c* bytes
+    set result 0x
+    if { $ieeeValues(littleEndian) } {
+       for { set i 7 } { $i >= 0 } { incr i -1 } {
+           append result [format %02x [expr { [lindex $bytes $i] & 0xff }]]
+       }
+    } else {
+       foreach byte $bytes {
+           append result [format %02x [expr { $byte & 0xff }]]
+       }
+    }
+    return $result
+}
+
+test expr-28.1 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d ALL 0 E0 OK 00000000000000 E-1023
+    convertToDouble 0E0
+} 0x0000000000000000
+test expr-28.2 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d ALL -0 E0 OK -0000000000000 E-1023
+    convertToDouble -0E0
+} 0x8000000000000000
+test expr-28.3 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d ALL 1 E0 OK 10000000000000 E0
+    convertToDouble 1E0
+} 0x3ff0000000000000
+test expr-28.4 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d ALL 15 E-1 OK 18000000000000 E0
+    convertToDouble 15E-1
+} 0x3ff8000000000000
+test expr-28.5 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d ALL 125 E-2 OK 14000000000000 E0
+    convertToDouble 125E-2
+} 0x3ff4000000000000
+test expr-28.6 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d ALL 1125 E-3 OK 12000000000000 E0
+    convertToDouble 1125E-3
+} 0x3ff2000000000000
+test expr-28.7 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d ALL 10625 E-4 OK 11000000000000 E0
+    convertToDouble 10625E-4
+} 0x3ff1000000000000
+test expr-28.8 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d ALL 103125 E-5 OK 10800000000000 E0
+    convertToDouble 103125E-5
+} 0x3ff0800000000000
+test expr-28.9 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d ALL 1015625 E-6 OK 10400000000000 E0
+    convertToDouble 1015625E-6
+} 0x3ff0400000000000
+test expr-28.10 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d ALL 10078125 E-7 OK 10200000000000 E0
+    convertToDouble 10078125E-7
+} 0x3ff0200000000000
+test expr-28.11 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d ALL 100390625 E-8 OK 10100000000000 E0
+    convertToDouble 100390625E-8
+} 0x3ff0100000000000
+test expr-28.12 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee ALL 1001953125 E-9 OK 10080000000000 E0
+    convertToDouble 1001953125E-9
+} 0x3ff0080000000000
+test expr-28.13 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee ALL 10009765625 E-10 OK 10040000000000 E0
+    convertToDouble 10009765625E-10
+} 0x3ff0040000000000
+test expr-28.14 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee ALL 100048828125 E-11 OK 10020000000000 E0
+    convertToDouble 100048828125E-11
+} 0x3ff0020000000000
+test expr-28.15 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee ALL 1000244140625 E-12 OK 10010000000000 E0
+    convertToDouble 1000244140625E-12
+} 0x3ff0010000000000
+test expr-28.16 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee ALL 10001220703125 E-13 OK 10008000000000 E0
+    convertToDouble 10001220703125E-13
+} 0x3ff0008000000000
+test expr-28.17 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee ALL 100006103515625 E-14 OK 10004000000000 E0
+    convertToDouble 100006103515625E-14
+} 0x3ff0004000000000
+test expr-28.18 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee ALL 1000030517578125 E-15 OK 10002000000000 E0
+    convertToDouble 1000030517578125E-15
+} 0x3ff0002000000000
+test expr-28.19 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee ALL 10000152587890625 E-16 OK 10001000000000 E0
+    convertToDouble 10000152587890625E-16
+} 0x3ff0001000000000
+test expr-28.20 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +8 E153 x 1317e5ef3ab327_0000000001& E511
+    convertToDouble +8E153
+} 0x5fe317e5ef3ab327
+test expr-28.21 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -1 E153 x -1317e5ef3ab327_0000000001& E508
+    convertToDouble -1E153
+} 0xdfb317e5ef3ab327
+test expr-28.22 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +9 E306 x 19a2028368022e_00000000001& E1019
+    convertToDouble +9E306
+} 0x7fa9a2028368022e
+test expr-28.23 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -2 E153 x -1317e5ef3ab327_0000000001& E509
+    convertToDouble -2E153
+} 0xdfc317e5ef3ab327
+test expr-28.24 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +7 E-304 x 1eb8e84fa0b278_00000000001& E-1008
+    convertToDouble +7E-304
+} 0x00feb8e84fa0b278
+test expr-28.25 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -3 E-49 x -1c0f92a6276c9d_000000001& E-162
+    convertToDouble -3E-49
+} 0xb5dc0f92a6276c9d
+test expr-28.26 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +7 E-303 x 13339131c46f8b_00000000001& E-1004
+    convertToDouble +7E-303
+} 0x0133339131c46f8b
+test expr-28.27 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -6 E-49 x -1c0f92a6276c9d_000000001& E-161
+    convertToDouble -6E-49
+} 0xb5ec0f92a6276c9d
+test expr-28.28 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +9 E43 x 102498ea6df0c3_11111111110& E146
+    convertToDouble +9E43
+} 0x49102498ea6df0c4
+test expr-28.29 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -9 E44 x -142dbf25096cf4_1111111110& E149
+    convertToDouble -9E44
+} 0xc9442dbf25096cf5
+test expr-28.30 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +8 E303 x 1754e31cd072d9_1111111110& E1009
+    convertToDouble +8E303
+} 0x7f0754e31cd072da
+test expr-28.31 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -1 E303 x -1754e31cd072d9_1111111110& E1006
+    convertToDouble -1E303
+} 0xfed754e31cd072da
+test expr-28.32 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +7 E-287 x 1551603777f798_111111110& E-951
+    convertToDouble +7E-287
+} 0x048551603777f799
+test expr-28.33 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -2 E-204 x -1410d9f9b2f7f2_11111110& E-677
+    convertToDouble -2E-204
+} 0x95a410d9f9b2f7f3
+test expr-28.34 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +2 E-205 x 100d7b2e28c65b_11111110& E-680
+    convertToDouble +2E-205
+} 0x15700d7b2e28c65c
+test expr-28.35 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -9 E-47 x -10711fed5b19a3_11111110& E-153
+    convertToDouble -9E-47
+} 0xb660711fed5b19a4
+test expr-28.36 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +34 E195 x 1d1c26db7d0dae_000000000001& E652
+    convertToDouble +34E195
+} 0x68bd1c26db7d0dae
+test expr-28.37 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -68 E195 x -1d1c26db7d0dae_000000000001& E653
+    convertToDouble -68E195
+} 0xe8cd1c26db7d0dae
+test expr-28.38 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +85 E194 x 1d1c26db7d0dae_000000000001& E650
+    convertToDouble +85E194
+} 0x689d1c26db7d0dae
+test expr-28.39 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -67 E97 x -139ac1ce2cc95f_000000000001& E328
+    convertToDouble -67E97
+} 0xd4739ac1ce2cc95f
+test expr-28.40 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +93 E-234 x 127b2e4f210075_0000000000000001& E-771
+    convertToDouble +93E-234
+} 0x0fc27b2e4f210075
+test expr-28.41 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -19 E-87 x -12e5f5dfa4fe9d_00000000000001& E-285
+    convertToDouble -19E-87
+} 0xae22e5f5dfa4fe9d
+test expr-28.42 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +38 E-87 x 12e5f5dfa4fe9d_00000000000001& E-284
+    convertToDouble +38E-87
+} 0x2e32e5f5dfa4fe9d
+test expr-28.43 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -38 E-88 x -1e3cbc9907fdc8_00000000000001& E-288
+    convertToDouble -38E-88
+} 0xadfe3cbc9907fdc8
+test expr-28.44 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -69 E220 x -1e8aa8823a5db3_11111111110& E736
+    convertToDouble -69E220
+} 0xedfe8aa8823a5db4
+test expr-28.45 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +18 E43 x 102498ea6df0c3_11111111110& E147
+    convertToDouble +18E43
+} 0x49202498ea6df0c4
+test expr-28.46 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -36 E43 x -102498ea6df0c3_11111111110& E148
+    convertToDouble -36E43
+} 0xc9302498ea6df0c4
+test expr-28.47 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +61 E-99 x 10ad836f269a16_11111111111110& E-323
+    convertToDouble +61E-99
+} 0x2bc0ad836f269a17
+test expr-28.48 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -43 E-92 x -1c0794d9d40e95_111111111111110& E-301
+    convertToDouble -43E-92
+} 0xad2c0794d9d40e96
+test expr-28.49 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +86 E-92 x 1c0794d9d40e95_111111111111110& E-300
+    convertToDouble +86E-92
+} 0x2d3c0794d9d40e96
+test expr-28.50 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -51 E-74 x -1cd5bee57763e5_1111111111111110& E-241
+    convertToDouble -51E-74
+} 0xb0ecd5bee57763e6
+test expr-28.51 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +283 E85 x 16c309024bab4b_00000000000000001& E290
+    convertToDouble +283E85
+} 0x5216c309024bab4b
+test expr-28.52 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -566 E85 x -16c309024bab4b_00000000000000001& E291
+    convertToDouble -566E85
+} 0xd226c309024bab4b
+test expr-28.53 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +589 E187 x 1526be9c22eb17_00000000000000001& E630
+    convertToDouble +589E187
+} 0x675526be9c22eb17
+test expr-28.54 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -839 E143 x -1ae03f245703e2_000000000000001& E484
+    convertToDouble -839E143
+} 0xde3ae03f245703e2
+test expr-28.55 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -744 E-234 x -127b2e4f210075_0000000000000001& E-768
+    convertToDouble -744E-234
+} 0x8ff27b2e4f210075
+test expr-28.56 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +930 E-235 x 127b2e4f210075_0000000000000001& E-771
+    convertToDouble +930E-235
+} 0x0fc27b2e4f210075
+test expr-28.57 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -186 E-234 x -127b2e4f210075_0000000000000001& E-770
+    convertToDouble -186E-234
+} 0x8fd27b2e4f210075
+test expr-28.58 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +604 E175 x 17d93193f78fc5_1111111111111111110& E590
+    convertToDouble +604E175
+} 0x64d7d93193f78fc6
+test expr-28.59 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -302 E175 x -17d93193f78fc5_1111111111111111110& E589
+    convertToDouble -302E175
+} 0xe4c7d93193f78fc6
+test expr-28.60 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +755 E174 x 17d93193f78fc5_1111111111111111110& E587
+    convertToDouble +755E174
+} 0x64a7d93193f78fc6
+test expr-28.61 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -151 E175 x -17d93193f78fc5_1111111111111111110& E588
+    convertToDouble -151E175
+} 0xe4b7d93193f78fc6
+test expr-28.62 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +662 E-213 x 1bdb90e62a8cbc_1111111111111110& E-699
+    convertToDouble +662E-213
+} 0x144bdb90e62a8cbd
+test expr-28.63 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -408 E-74 x -1cd5bee57763e5_1111111111111110& E-238
+    convertToDouble -408E-74
+} 0xb11cd5bee57763e6
+test expr-28.64 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +510 E-75 x 1cd5bee57763e5_1111111111111110& E-241
+    convertToDouble +510E-75
+} 0x30ecd5bee57763e6
+test expr-28.65 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +6782 E55 x 159bd3ad46e346_0000000000000000001& E195
+    convertToDouble +6782E55
+} 0x4c259bd3ad46e346
+test expr-28.66 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -2309 E92 x -1bac6f7d64d119_000000000000000001& E316
+    convertToDouble -2309E92
+} 0xd3bbac6f7d64d119
+test expr-28.67 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +7963 E34 x 1df4170f0fdecc_00000000000000000001& E125
+    convertToDouble +7963E34
+} 0x47cdf4170f0fdecc
+test expr-28.68 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -3391 E55 x -159bd3ad46e346_0000000000000000001& E194
+    convertToDouble -3391E55
+} 0xcc159bd3ad46e346
+test expr-28.69 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +7903 E-96 x 107c2d27a5b989_0000000000000000001& E-306
+    convertToDouble +7903E-96
+} 0x2cd07c2d27a5b989
+test expr-28.70 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -7611 E-226 x -119b8744033457_0000000000000000001& E-738
+    convertToDouble -7611E-226
+} 0x91d19b8744033457
+test expr-28.71 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +4907 E-196 x 11e90a8711440f_000000000000000001& E-639
+    convertToDouble +4907E-196
+} 0x1801e90a8711440f
+test expr-28.72 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -5547 E-311 x -13f190452a29f4_000000000000000001& E-1021
+    convertToDouble -5547E-311
+} 0x8023f190452a29f4
+test expr-28.73 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +5311 E241 x 1f1ce3c887c25f_11111111111111111110& E812
+    convertToDouble +5311E241
+} 0x72bf1ce3c887c260
+test expr-28.74 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -5311 E243 x -184e91f4aa0fda_11111111111111111110& E819
+    convertToDouble -5311E243
+} 0xf3284e91f4aa0fdb
+test expr-28.75 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +5311 E242 x 13720e5d54d97b_11111111111111111110& E816
+    convertToDouble +5311E242
+} 0x72f3720e5d54d97c
+test expr-28.76 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +9269 E-45 x 19d69455a53bd8_111111111111111111110& E-137
+    convertToDouble +9269E-45
+} 0x3769d69455a53bd9
+test expr-28.77 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -8559 E-289 x -104a81d35952fe_11111111111111111110& E-947
+    convertToDouble -8559E-289
+} 0x84c04a81d35952ff
+test expr-28.78 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +8699 E-276 x 12d2df246ecd2c_1111111111111111111110& E-904
+    convertToDouble +8699E-276
+} 0x0772d2df246ecd2d
+test expr-28.79 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -8085 E-64 x -14c98fce16152d_1111111111111111110& E-200
+    convertToDouble -8085E-64
+} 0xb374c98fce16152e
+test expr-28.80 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +74819 E201 x 1dd455061eb3f1_0000000000000000000001& E683
+    convertToDouble +74819E201
+} 0x6aadd455061eb3f1
+test expr-28.81 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -82081 E41 x -170105df3d47cb_000000000000000000000000001& E152
+    convertToDouble -82081E41
+} 0xc9770105df3d47cb
+test expr-28.82 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +51881 E37 x 17d2950dc76da4_000000000000000000001& E138
+    convertToDouble +51881E37
+} 0x4897d2950dc76da4
+test expr-28.83 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -55061 E157 x -1394fc0f33536c_000000000000000000001& E537
+    convertToDouble -55061E157
+} 0xe18394fc0f33536c
+test expr-28.84 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +77402 E-215 x 10492a4a8a37fd_0000000000000000000000001& E-698
+    convertToDouble +77402E-215
+} 0x1450492a4a8a37fd
+test expr-28.85 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -33891 E-92 x -1592f9932c06bd_00000000000000000000001& E-291
+    convertToDouble -33891E-92
+} 0xadc592f9932c06bd
+test expr-28.86 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +38701 E-215 x 10492a4a8a37fd_0000000000000000000000001& E-699
+    convertToDouble +38701E-215
+} 0x1440492a4a8a37fd
+test expr-28.87 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -82139 E-76 x -1d0681489839d5_00000000000000000000001& E-237
+    convertToDouble -82139E-76
+} 0xb12d0681489839d5
+test expr-28.88 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +75859 E25 x 132645e1ba93ef_11111111111111111111110& E99
+    convertToDouble +75859E25
+} 0x46232645e1ba93f0
+test expr-28.89 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +89509 E140 x 16f02bee68670c_1111111111111111111110& E481
+    convertToDouble +89509E140
+} 0x5e06f02bee68670d
+test expr-28.90 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -57533 E287 x -1272ed2307f569_1111111111111111111110& E969
+    convertToDouble -57533E287
+} 0xfc8272ed2307f56a
+test expr-28.91 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +46073 E-32 x 12405b773fbdf2_11111111111111111111110& E-91
+    convertToDouble +46073E-32
+} 0x3a42405b773fbdf3
+test expr-28.92 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -92146 E-32 x -12405b773fbdf2_11111111111111111111110& E-90
+    convertToDouble -92146E-32
+} 0xba52405b773fbdf3
+test expr-28.93 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +83771 E-74 x 17206bfc4ccabd_11111111111111111111110& E-230
+    convertToDouble +83771E-74
+} 0x3197206bfc4ccabe
+test expr-28.94 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -34796 E-276 x -12d2df246ecd2c_1111111111111111111110& E-902
+    convertToDouble -34796E-276
+} 0x8792d2df246ecd2d
+test expr-28.95 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +584169 E229 x 1d657059dc79aa_00000000000000000000000000001& E779
+    convertToDouble +584169E229
+} 0x70ad657059dc79aa
+test expr-28.96 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +164162 E41 x 170105df3d47cb_000000000000000000000000001& E153
+    convertToDouble +164162E41
+} 0x49870105df3d47cb
+test expr-28.97 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -328324 E41 x -170105df3d47cb_000000000000000000000000001& E154
+    convertToDouble -328324E41
+} 0xc9970105df3d47cb
+test expr-28.98 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +209901 E-11 x 119b96f36ec68b_00000000000000000000000001& E-19
+    convertToDouble +209901E-11
+} 0x3ec19b96f36ec68b
+test expr-28.99 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -419802 E-11 x -119b96f36ec68b_00000000000000000000000001& E-18
+    convertToDouble -419802E-11
+} 0xbed19b96f36ec68b
+test expr-28.100 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +940189 E-112 x 1b99d6240c1a28_00000000000000000000000001& E-353
+    convertToDouble +940189E-112
+} 0x29eb99d6240c1a28
+test expr-28.101 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -892771 E-213 x -125818c7294f27_0000000000000000000000000001& E-688
+    convertToDouble -892771E-213
+} 0x94f25818c7294f27
+test expr-28.102 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +757803 E120 x 11e968b555bb80_11111111111111111111111111110& E418
+    convertToDouble +757803E120
+} 0x5a11e968b555bb81
+test expr-28.103 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -252601 E120 x -17e1e0f1c7a4ab_11111111111111111111111111110& E416
+    convertToDouble -252601E120
+} 0xd9f7e1e0f1c7a4ac
+test expr-28.104 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +252601 E121 x 1dda592e398dd6_1111111111111111111111111110& E419
+    convertToDouble +252601E121
+} 0x5a2dda592e398dd7
+test expr-28.105 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -505202 E120 x -17e1e0f1c7a4ab_11111111111111111111111111110& E417
+    convertToDouble -505202E120
+} 0xda07e1e0f1c7a4ac
+test expr-28.106 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +970811 E-264 x 1dda6b965c9629_11111111111111111111111110& E-858
+    convertToDouble +970811E-264
+} 0x0a5dda6b965c962a
+test expr-28.107 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -654839 E-60 x -100e7db3b3f241_111111111111111111111111110& E-180
+    convertToDouble -654839E-60
+} 0xb4b00e7db3b3f242
+test expr-28.108 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +289767 E-178 x 1caad28f23a100_11111111111111111111111110& E-574
+    convertToDouble +289767E-178
+} 0x1c1caad28f23a101
+test expr-28.109 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -579534 E-178 x -1caad28f23a100_11111111111111111111111110& E-573
+    convertToDouble -579534E-178
+} 0x9c2caad28f23a101
+test expr-28.110 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -8823691 E130 x -1e597c0b94b7ae_00000000000000000000000000000001& E454
+    convertToDouble -8823691E130
+} 0xdc5e597c0b94b7ae
+test expr-28.111 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +9346704 E229 x 1d657059dc79aa_00000000000000000000000000001& E783
+    convertToDouble +9346704E229
+} 0x70ed657059dc79aa
+test expr-28.112 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -1168338 E229 x -1d657059dc79aa_00000000000000000000000000001& E780
+    convertToDouble -1168338E229
+} 0xf0bd657059dc79aa
+test expr-28.113 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -6063369 E-136 x -1ae6148e3902b3_000000000000000000000000000001& E-430
+    convertToDouble -6063369E-136
+} 0xa51ae6148e3902b3
+test expr-28.114 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +3865421 E-225 x 15d4fe53afec65_00000000000000000000000000001& E-726
+    convertToDouble +3865421E-225
+} 0x1295d4fe53afec65
+test expr-28.115 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -5783893 E-127 x -17e5902ce0e151_000000000000000000000000000000001& E-400
+    convertToDouble -5783893E-127
+} 0xa6f7e5902ce0e151
+test expr-28.116 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +2572231 E223 x 10f73be1dff9ac_111111111111111111111111111110& E762
+    convertToDouble +2572231E223
+} 0x6f90f73be1dff9ad
+test expr-28.117 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -5144462 E223 x -10f73be1dff9ac_111111111111111111111111111110& E763
+    convertToDouble -5144462E223
+} 0xefa0f73be1dff9ad
+test expr-28.118 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +1817623 E109 x 1d85f96f3fe659_11111111111111111111111111110& E382
+    convertToDouble +1817623E109
+} 0x57dd85f96f3fe65a
+test expr-28.119 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +6431543 E-97 x 14f6493f34a0bc_11111111111111111111111111110& E-300
+    convertToDouble +6431543E-97
+} 0x2d34f6493f34a0bd
+test expr-28.120 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -5444097 E-21 x -18849dd33c95ae_11111111111111111111111111110& E-48
+    convertToDouble -5444097E-21
+} 0xbcf8849dd33c95af
+test expr-28.121 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +8076999 E-121 x 1fd332f7e2e3b2_11111111111111111111111111110& E-380
+    convertToDouble +8076999E-121
+} 0x283fd332f7e2e3b3
+test expr-28.122 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -9997649 E-270 x -1425e9d29e558d_1111111111111111111111111110& E-874
+    convertToDouble -9997649E-270
+} 0x895425e9d29e558e
+test expr-28.123 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +50609263 E157 x 1193aff1f1c8e3_000000000000000000000000000000001& E547
+    convertToDouble +50609263E157
+} 0x622193aff1f1c8e3
+test expr-28.124 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +70589528 E130 x 1e597c0b94b7ae_00000000000000000000000000000001& E457
+    convertToDouble +70589528E130
+} 0x5c8e597c0b94b7ae
+test expr-28.125 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -88236910 E129 x -1e597c0b94b7ae_00000000000000000000000000000001& E454
+    convertToDouble -88236910E129
+} 0xdc5e597c0b94b7ae
+test expr-28.126 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +87575437 E-310 x 1805c19e680456_0000000000000000000000000000000000001& E-1004
+    convertToDouble +87575437E-310
+} 0x013805c19e680456
+test expr-28.127 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -23135572 E-127 x -17e5902ce0e151_000000000000000000000000000000001& E-398
+    convertToDouble -23135572E-127
+} 0xa717e5902ce0e151
+test expr-28.128 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +85900881 E177 x 14375b2214e1b4_111111111111111111111111111111110& E614
+    convertToDouble +85900881E177
+} 0x6654375b2214e1b5
+test expr-28.129 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -84863171 E113 x -1a4a8e56474b8b_111111111111111111111111111111110& E401
+    convertToDouble -84863171E113
+} 0xd90a4a8e56474b8c
+test expr-28.130 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +68761586 E232 x 1a662c350f37f2_1111111111111111111111111111110& E796
+    convertToDouble +68761586E232
+} 0x71ba662c350f37f3
+test expr-28.131 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -50464069 E286 x -1948dd06de561e_1111111111111111111111111111110& E975
+    convertToDouble -50464069E286
+} 0xfce948dd06de561f
+test expr-28.132 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +27869147 E-248 x 1dbbac6f83a820_111111111111111111111111111111111110& E-800
+    convertToDouble +27869147E-248
+} 0x0dfdbbac6f83a821
+test expr-28.133 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -55738294 E-248 x -1dbbac6f83a820_111111111111111111111111111111111110& E-799
+    convertToDouble -55738294E-248
+} 0x8e0dbbac6f83a821
+test expr-28.134 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +70176353 E-53 x 100683a21de854_1111111111111111111111111111111110& E-150
+    convertToDouble +70176353E-53
+} 0x36900683a21de855
+test expr-28.135 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -80555086 E-32 x -1f29ca0ff893b0_111111111111111111111111111111110& E-81
+    convertToDouble -80555086E-32
+} 0xbaef29ca0ff893b1
+test expr-28.136 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -491080654 E121 x -1c569e968e0944_00000000000000000000000000000000000000001& E430
+    convertToDouble -491080654E121
+} 0xdadc569e968e0944
+test expr-28.137 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +526250918 E287 x 14997a298b2f2e_0000000000000000000000000000000000001& E982
+    convertToDouble +526250918E287
+} 0x7d54997a298b2f2e
+test expr-28.138 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -245540327 E121 x -1c569e968e0944_00000000000000000000000000000000000000001& E429
+    convertToDouble -245540327E121
+} 0xdacc569e968e0944
+test expr-28.139 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -175150874 E-310 x -1805c19e680456_0000000000000000000000000000000000001& E-1003
+    convertToDouble -175150874E-310
+} 0x814805c19e680456
+test expr-28.140 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +350301748 E-310 x 1805c19e680456_0000000000000000000000000000000000001& E-1002
+    convertToDouble +350301748E-310
+} 0x015805c19e680456
+test expr-28.141 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -437877185 E-311 x -1805c19e680456_0000000000000000000000000000000000001& E-1005
+    convertToDouble -437877185E-311
+} 0x812805c19e680456
+test expr-28.142 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +458117166 E52 x 16ce94febdc7a4_1111111111111111111111111111111111110& E201
+    convertToDouble +458117166E52
+} 0x4c86ce94febdc7a5
+test expr-28.143 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -916234332 E52 x -16ce94febdc7a4_1111111111111111111111111111111111110& E202
+    convertToDouble -916234332E52
+} 0xcc96ce94febdc7a5
+test expr-28.144 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +229058583 E52 x 16ce94febdc7a4_1111111111111111111111111111111111110& E200
+    convertToDouble +229058583E52
+} 0x4c76ce94febdc7a5
+test expr-28.145 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -525789935 E98 x -16ecdc2a58fc64_11111111111111111111111111111111110& E354
+    convertToDouble -525789935E98
+} 0xd616ecdc2a58fc65
+test expr-28.146 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +282926897 E-227 x 1ff5a70d3d2fee_1111111111111111111111111111111111110& E-727
+    convertToDouble +282926897E-227
+} 0x128ff5a70d3d2fef
+test expr-28.147 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -565853794 E-227 x -1ff5a70d3d2fee_1111111111111111111111111111111111110& E-726
+    convertToDouble -565853794E-227
+} 0x929ff5a70d3d2fef
+test expr-28.148 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +667284113 E-240 x 109355f8050c01_111111111111111111111111111111111110& E-768
+    convertToDouble +667284113E-240
+} 0x0ff09355f8050c02
+test expr-28.149 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -971212611 E-126 x -1397d3c9745d2e_111111111111111111111111111111111111110& E-389
+    convertToDouble -971212611E-126
+} 0xa7a397d3c9745d2f
+test expr-28.150 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +9981396317 E-182 x 18afe10a2a66aa_0000000000000000000000000000000000000001& E-572
+    convertToDouble +9981396317E-182
+} 0x1c38afe10a2a66aa
+test expr-28.151 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -5035231965 E-156 x -101891fc4717fd_00000000000000000000000000000000000001& E-486
+    convertToDouble -5035231965E-156
+} 0xa1901891fc4717fd
+test expr-28.152 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +8336960483 E-153 x 1a06a1024b95e1_000000000000000000000000000000000000001& E-476
+    convertToDouble +8336960483E-153
+} 0x223a06a1024b95e1
+test expr-28.153 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -8056371144 E-155 x -101891fc4717fd_00000000000000000000000000000000000001& E-482
+    convertToDouble -8056371144E-155
+} 0xa1d01891fc4717fd
+test expr-28.154 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +6418488827 E79 x 1021f14ed7b3f9_11111111111111111111111111111111111111110& E295
+    convertToDouble +6418488827E79
+} 0x526021f14ed7b3fa
+test expr-28.155 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -3981006983 E252 x -102ebaf189d5f1_1111111111111111111111111111111111111110& E869
+    convertToDouble -3981006983E252
+} 0xf6402ebaf189d5f2
+test expr-28.156 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +7962013966 E252 x 102ebaf189d5f1_1111111111111111111111111111111111111110& E870
+    convertToDouble +7962013966E252
+} 0x76502ebaf189d5f2
+test expr-28.157 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -4713898551 E261 x -11d8813536e0df_11111111111111111111111111111111111110& E899
+    convertToDouble -4713898551E261
+} 0xf821d8813536e0e0
+test expr-28.158 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +8715380633 E-58 x 14614c3219891e_11111111111111111111111111111111111111110& E-160
+    convertToDouble +8715380633E-58
+} 0x35f4614c3219891f
+test expr-28.159 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -9078555839 E-109 x -1fc575867314ed_111111111111111111111111111111111111111111110& E-330
+    convertToDouble -9078555839E-109
+} 0xab5fc575867314ee
+test expr-28.160 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +9712126110 E-127 x 1397d3c9745d2e_111111111111111111111111111111111111110& E-389
+    convertToDouble +9712126110E-127
+} 0x27a397d3c9745d2f
+test expr-28.161 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +42333842451 E201 x 10189a26df575f_000000000000000000000000000000000000000000001& E703
+    convertToDouble +42333842451E201
+} 0x6be0189a26df575f
+test expr-28.162 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -84667684902 E201 x -10189a26df575f_000000000000000000000000000000000000000000001& E704
+    convertToDouble -84667684902E201
+} 0xebf0189a26df575f
+test expr-28.163 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +23792120709 E-315 x 10b517dc5d3212_00000000000000000000000000000000000000001& E-1012
+    convertToDouble +23792120709E-315
+} 0x00b0b517dc5d3212
+test expr-28.164 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -78564021519 E-227 x -1155515fd37265_00000000000000000000000000000000000000000001& E-718
+    convertToDouble -78564021519E-227
+} 0x931155515fd37265
+test expr-28.165 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +71812054883 E-188 x 1747b46d78c6fe_00000000000000000000000000000000000000001& E-589
+    convertToDouble +71812054883E-188
+} 0x1b2747b46d78c6fe
+test expr-28.166 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -30311163631 E-116 x -163ef6f560afe7_00000000000000000000000000000000000000001& E-351
+    convertToDouble -30311163631E-116
+} 0xaa063ef6f560afe7
+test expr-28.167 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +71803914657 E292 x 10c0c44cdc2c05_11111111111111111111111111111111111111111110& E1006
+    convertToDouble +71803914657E292
+} 0x7ed0c0c44cdc2c06
+test expr-28.168 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +36314223356 E-109 x 1fc575867314ed_111111111111111111111111111111111111111111110& E-328
+    convertToDouble +36314223356E-109
+} 0x2b7fc575867314ee
+test expr-28.169 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +18157111678 E-109 x 1fc575867314ed_111111111111111111111111111111111111111111110& E-329
+    convertToDouble +18157111678E-109
+} 0x2b6fc575867314ee
+test expr-28.170 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -45392779195 E-110 x -1fc575867314ed_111111111111111111111111111111111111111111110& E-331
+    convertToDouble -45392779195E-110
+} 0xab4fc575867314ee
+test expr-28.171 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +778380362293 E218 x 19ab8261990292_0000000000000000000000000000000000000000000000000001& E763
+    convertToDouble +778380362293E218
+} 0x6fa9ab8261990292
+test expr-28.172 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -685763015669 E280 x -15fd7aa44d9477_000000000000000000000000000000000000000000000001& E969
+    convertToDouble -685763015669E280
+} 0xfc85fd7aa44d9477
+test expr-28.173 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +952918668151 E70 x 14177a9915fbf8_00000000000000000000000000000000000000000000001& E272
+    convertToDouble +952918668151E70
+} 0x50f4177a9915fbf8
+test expr-28.174 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -548357443505 E32 x -13abde2775e9b5_0000000000000000000000000000000000000000000001& E145
+    convertToDouble -548357443505E32
+} 0xc903abde2775e9b5
+test expr-28.175 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +384865004907 E-285 x 1aa65b58639e69_00000000000000000000000000000000000000000000001& E-909
+    convertToDouble +384865004907E-285
+} 0x072aa65b58639e69
+test expr-28.176 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -769730009814 E-285 x -1aa65b58639e69_00000000000000000000000000000000000000000000001& E-908
+    convertToDouble -769730009814E-285
+} 0x873aa65b58639e69
+test expr-28.177 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +697015418417 E-93 x 152847dad80453_0000000000000000000000000000000000000000000001& E-270
+    convertToDouble +697015418417E-93
+} 0x2f152847dad80453
+test expr-28.178 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -915654049301 E-28 x -1a645598d05989_0000000000000000000000000000000000000000000001& E-54
+    convertToDouble -915654049301E-28
+} 0xbc9a645598d05989
+test expr-28.179 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +178548656339 E169 x 1b89d67c5b6d24_111111111111111111111111111111111111111111110& E598
+    convertToDouble +178548656339E169
+} 0x655b89d67c5b6d25
+test expr-28.180 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -742522891517 E259 x -1c1c352fc3c308_11111111111111111111111111111111111111111111110& E899
+    convertToDouble -742522891517E259
+} 0xf82c1c352fc3c309
+test expr-28.181 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +742522891517 E258 x 167cf7596968d3_11111111111111111111111111111111111111111111110& E896
+    convertToDouble +742522891517E258
+} 0x77f67cf7596968d4
+test expr-28.182 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -357097312678 E169 x -1b89d67c5b6d24_111111111111111111111111111111111111111111110& E599
+    convertToDouble -357097312678E169
+} 0xe56b89d67c5b6d25
+test expr-28.183 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -3113521449172 E218 x -19ab8261990292_0000000000000000000000000000000000000000000000000001& E765
+    convertToDouble -3113521449172E218
+} 0xefc9ab8261990292
+test expr-28.184 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +3891901811465 E217 x 19ab8261990292_0000000000000000000000000000000000000000000000000001& E762
+    convertToDouble +3891901811465E217
+} 0x6f99ab8261990292
+test expr-28.185 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -1556760724586 E218 x -19ab8261990292_0000000000000000000000000000000000000000000000000001& E764
+    convertToDouble -1556760724586E218
+} 0xefb9ab8261990292
+test expr-28.186 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +9997878507563 E-195 x 153db2fea1ea31_0000000000000000000000000000000000000000000000001& E-605
+    convertToDouble +9997878507563E-195
+} 0x1a253db2fea1ea31
+test expr-28.187 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -7247563029154 E-319 x -10493f056e9ef3_0000000000000000000000000000000000000000000000001& E-1017
+    convertToDouble -7247563029154E-319
+} 0x8060493f056e9ef3
+test expr-28.188 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +3623781514577 E-319 x 10493f056e9ef3_0000000000000000000000000000000000000000000000001& E-1018
+    convertToDouble +3623781514577E-319
+} 0x0050493f056e9ef3
+test expr-28.189 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -3092446298323 E-200 x -113918353bbc47_0000000000000000000000000000000000000000000000001& E-623
+    convertToDouble -3092446298323E-200
+} 0x99013918353bbc47
+test expr-28.190 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +6363857920591 E145 x 128a61cf9483b6_1111111111111111111111111111111111111111111111111110& E524
+    convertToDouble +6363857920591E145
+} 0x60b28a61cf9483b7
+test expr-28.191 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -8233559360849 E94 x -11f324d11d4861_1111111111111111111111111111111111111111111111110& E355
+    convertToDouble -8233559360849E94
+} 0xd621f324d11d4862
+test expr-28.192 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +2689845954547 E49 x 10bd2bfd34f98a_1111111111111111111111111111111111111111111111110& E204
+    convertToDouble +2689845954547E49
+} 0x4cb0bd2bfd34f98b
+test expr-28.193 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -5379691909094 E49 x -10bd2bfd34f98a_1111111111111111111111111111111111111111111111110& E205
+    convertToDouble -5379691909094E49
+} 0xccc0bd2bfd34f98b
+test expr-28.194 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +5560322501926 E-301 x 15acc2053064c1_11111111111111111111111111111111111111111111111110& E-958
+    convertToDouble +5560322501926E-301
+} 0x0415acc2053064c2
+test expr-28.195 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -7812878489261 E-179 x -126dae7bbeda74_11111111111111111111111111111111111111111111111111110& E-552
+    convertToDouble -7812878489261E-179
+} 0x9d726dae7bbeda75
+test expr-28.196 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +8439398533053 E-256 x 170cc285f2d209_1111111111111111111111111111111111111111111111110& E-808
+    convertToDouble +8439398533053E-256
+} 0x0d770cc285f2d20a
+test expr-28.197 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -2780161250963 E-301 x -15acc2053064c1_11111111111111111111111111111111111111111111111110& E-959
+    convertToDouble -2780161250963E-301
+} 0x8405acc2053064c2
+test expr-28.198 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -87605699161665 E155 x -12920f96e7f9ef_00000000000000000000000000000000000000000000000000001& E561
+    convertToDouble -87605699161665E155
+} 0xe302920f96e7f9ef
+test expr-28.199 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -17521139832333 E156 x -12920f96e7f9ef_00000000000000000000000000000000000000000000000000001& E562
+    convertToDouble -17521139832333E156
+} 0xe312920f96e7f9ef
+test expr-28.200 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -88218101363513 E-170 x -18395688592faf_0000000000000000000000000000000000000000000000000001& E-519
+    convertToDouble -88218101363513E-170
+} 0x9f88395688592faf
+test expr-28.201 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +38639244311627 E-115 x 114ef3e205c817_0000000000000000000000000000000000000000000000000001& E-337
+    convertToDouble +38639244311627E-115
+} 0x2ae14ef3e205c817
+test expr-28.202 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +35593959807306 E261 x 1072f3819c1320_11111111111111111111111111111111111111111111111111110& E912
+    convertToDouble +35593959807306E261
+} 0x78f072f3819c1321
+test expr-28.203 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -53390939710959 E260 x -13bd243521b08d_11111111111111111111111111111111111111111111111111110& E909
+    convertToDouble -53390939710959E260
+} 0xf8c3bd243521b08e
+test expr-28.204 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +71187919614612 E261 x 1072f3819c1320_11111111111111111111111111111111111111111111111111110& E913
+    convertToDouble +71187919614612E261
+} 0x790072f3819c1321
+test expr-28.205 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -88984899518265 E260 x -1072f3819c1320_11111111111111111111111111111111111111111111111111110& E910
+    convertToDouble -88984899518265E260
+} 0xf8d072f3819c1321
+test expr-28.206 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +77003665618895 E-73 x 18bf7e7fa6f029_111111111111111111111111111111111111111111111111111111110& E-197
+    convertToDouble +77003665618895E-73
+} 0x33a8bf7e7fa6f02a
+test expr-28.207 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -15400733123779 E-72 x -18bf7e7fa6f029_111111111111111111111111111111111111111111111111111111110& E-196
+    convertToDouble -15400733123779E-72
+} 0xb3b8bf7e7fa6f02a
+test expr-28.208 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +61602932495116 E-72 x 18bf7e7fa6f029_111111111111111111111111111111111111111111111111111111110& E-194
+    convertToDouble +61602932495116E-72
+} 0x33d8bf7e7fa6f02a
+test expr-28.209 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -30801466247558 E-72 x -18bf7e7fa6f029_111111111111111111111111111111111111111111111111111111110& E-195
+    convertToDouble -30801466247558E-72
+} 0xb3c8bf7e7fa6f02a
+test expr-28.210 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +834735494917063 E-300 x 1fc6c26f899dd1_0000000000000000000000000000000000000000000000000000000001& E-948
+    convertToDouble +834735494917063E-300
+} 0x04bfc6c26f899dd1
+test expr-28.211 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -589795149206434 E-151 x -15f2df5e675a0f_0000000000000000000000000000000000000000000000000000000001& E-453
+    convertToDouble -589795149206434E-151
+} 0xa3a5f2df5e675a0f
+test expr-28.212 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +475603213226859 E-42 x 12d73088f4050a_000000000000000000000000000000000000000000000000000000001& E-91
+    convertToDouble +475603213226859E-42
+} 0x3a42d73088f4050a
+test expr-28.213 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -294897574603217 E-151 x -15f2df5e675a0f_0000000000000000000000000000000000000000000000000000000001& E-454
+    convertToDouble -294897574603217E-151
+} 0xa395f2df5e675a0f
+test expr-28.214 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +850813008001913 E93 x 172f7a1831ad70_11111111111111111111111111111111111111111111111111111110& E358
+    convertToDouble +850813008001913E93
+} 0x56572f7a1831ad71
+test expr-28.215 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -203449172043339 E185 x -1102b47e4af987_11111111111111111111111111111111111111111111111111111110& E662
+    convertToDouble -203449172043339E185
+} 0xe95102b47e4af988
+test expr-28.216 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +406898344086678 E185 x 1102b47e4af987_11111111111111111111111111111111111111111111111111111110& E663
+    convertToDouble +406898344086678E185
+} 0x696102b47e4af988
+test expr-28.217 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -813796688173356 E185 x -1102b47e4af987_11111111111111111111111111111111111111111111111111111110& E664
+    convertToDouble -813796688173356E185
+} 0xe97102b47e4af988
+test expr-28.218 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +6045338514609393 E244 x 1f746182e6cd5d_00000000000000000000000000000000000000000000000000000000001& E862
+    convertToDouble +6045338514609393E244
+} 0x75df746182e6cd5d
+test expr-28.219 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -5145963778954906 E142 x -1dfc11fbf46087_00000000000000000000000000000000000000000000000000000000001& E523
+    convertToDouble -5145963778954906E142
+} 0xe0adfc11fbf46087
+test expr-28.220 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +2572981889477453 E142 x 1dfc11fbf46087_00000000000000000000000000000000000000000000000000000000001& E522
+    convertToDouble +2572981889477453E142
+} 0x609dfc11fbf46087
+test expr-28.221 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -6965949469487146 E74 x -15e2c10ad970b0_0000000000000000000000000000000000000000000000000000000001& E298
+    convertToDouble -6965949469487146E74
+} 0xd295e2c10ad970b0
+test expr-28.222 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +6182410494241627 E-119 x 11b96458445d07_0000000000000000000000000000000000000000000000000000000000001& E-343
+    convertToDouble +6182410494241627E-119
+} 0x2a81b96458445d07
+test expr-28.223 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -8510309498186985 E-277 x -1acc46749dccfe_000000000000000000000000000000000000000000000000000000000001& E-868
+    convertToDouble -8510309498186985E-277
+} 0x89bacc46749dccfe
+test expr-28.224 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +6647704637273331 E-212 x 13e07d2c0cb1e9_0000000000000000000000000000000000000000000000000000000000001& E-652
+    convertToDouble +6647704637273331E-212
+} 0x1733e07d2c0cb1e9
+test expr-28.225 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -2215901545757777 E-212 x -1a80a6e566428c_000000000000000000000000000000000000000000000000000000000001& E-654
+    convertToDouble -2215901545757777E-212
+} 0x971a80a6e566428c
+test expr-28.226 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +3771476185376383 E276 x 183010aba78a53_111111111111111111111111111111111111111111111111111111111110& E968
+    convertToDouble +3771476185376383E276
+} 0x7c783010aba78a54
+test expr-28.227 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -3729901848043846 E212 x -1f7d6721f7f143_111111111111111111111111111111111111111111111111111111111110& E755
+    convertToDouble -3729901848043846E212
+} 0xef2f7d6721f7f144
+test expr-28.228 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +3771476185376383 E277 x 1e3c14d6916ce8_111111111111111111111111111111111111111111111111111111111110& E971
+    convertToDouble +3771476185376383E277
+} 0x7cae3c14d6916ce9
+test expr-28.229 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -9977830465649166 E119 x -15f6de9d5d6b5a_111111111111111111111111111111111111111111111111111111111110& E448
+    convertToDouble -9977830465649166E119
+} 0xdbf5f6de9d5d6b5b
+test expr-28.230 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +8439928496349319 E-142 x 12483a0f125699_111111111111111111111111111111111111111111111111111111111110& E-419
+    convertToDouble +8439928496349319E-142
+} 0x25c2483a0f12569a
+test expr-28.231 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -8204230082070882 E-59 x -1d460f4fca1d36_1111111111111111111111111111111111111111111111111111111110& E-144
+    convertToDouble -8204230082070882E-59
+} 0xb6fd460f4fca1d37
+test expr-28.232 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +8853686434843997 E-244 x 157a340eb5d4f0_11111111111111111111111111111111111111111111111111111111110& E-758
+    convertToDouble +8853686434843997E-244
+} 0x10957a340eb5d4f1
+test expr-28.233 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -5553274272288559 E-104 x -1c47d20a19d1ed_1111111111111111111111111111111111111111111111111111111110& E-294
+    convertToDouble -5553274272288559E-104
+} 0xad9c47d20a19d1ee
+test expr-28.234 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +36149023611096162 E144 x 1491daad0ba280_0000000000000000000000000000000000000000000000000000000000000001& E533
+    convertToDouble +36149023611096162E144
+} 0x614491daad0ba280
+test expr-28.235 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -36149023611096162 E147 x -14166f8cfd5cb1_0000000000000000000000000000000000000000000000000000000000000001& E543
+    convertToDouble -36149023611096162E147
+} 0xe1e4166f8cfd5cb1
+test expr-28.236 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +18074511805548081 E146 x 1011f2d73116f4_0000000000000000000000000000000000000000000000000000000000000001& E539
+    convertToDouble +18074511805548081E146
+} 0x61a011f2d73116f4
+test expr-28.237 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -18074511805548081 E147 x -14166f8cfd5cb1_0000000000000000000000000000000000000000000000000000000000000001& E542
+    convertToDouble -18074511805548081E147
+} 0xe1d4166f8cfd5cb1
+test expr-28.238 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +97338774138954421 E-290 x 10d9b828199006_0000000000000000000000000000000000000000000000000000000000000001& E-907
+    convertToDouble +97338774138954421E-290
+} 0x0740d9b828199006
+test expr-28.239 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -88133809804950961 E-308 x -119710dc581911_000000000000000000000000000000000000000000000000000000000000001& E-967
+    convertToDouble -88133809804950961E-308
+} 0x83819710dc581911
+test expr-28.240 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +94080055902682397 E-243 x 11d467e94b856e_0000000000000000000000000000000000000000000000000000000000000001& E-751
+    convertToDouble +94080055902682397E-243
+} 0x1101d467e94b856e
+test expr-28.241 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -24691002732654881 E-115 x -159a2783ce70ab_000000000000000000000000000000000000000000000000000000000000001& E-328
+    convertToDouble -24691002732654881E-115
+} 0xab759a2783ce70ab
+test expr-28.242 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +52306490527514614 E49 x 13de005bd620de_111111111111111111111111111111111111111111111111111111111111111110& E218
+    convertToDouble +52306490527514614E49
+} 0x4d93de005bd620df
+test expr-28.243 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -26153245263757307 E49 x -13de005bd620de_111111111111111111111111111111111111111111111111111111111111111110& E217
+    convertToDouble -26153245263757307E49
+} 0xcd83de005bd620df
+test expr-28.244 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +55188692254193604 E165 x 1a999ddec72ac9_11111111111111111111111111111111111111111111111111111111111110& E603
+    convertToDouble +55188692254193604E165
+} 0x65aa999ddec72aca
+test expr-28.245 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -68985865317742005 E164 x -1a999ddec72ac9_11111111111111111111111111111111111111111111111111111111111110& E600
+    convertToDouble -68985865317742005E164
+} 0xe57a999ddec72aca
+test expr-28.246 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +27176258005319167 E-261 x 17c0747bd76fa0_11111111111111111111111111111111111111111111111111111111111111110& E-813
+    convertToDouble +27176258005319167E-261
+} 0x0d27c0747bd76fa1
+test expr-28.247 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -73169230107256116 E-248 x -122cea327fa99c_1111111111111111111111111111111111111111111111111111111111110& E-768
+    convertToDouble -73169230107256116E-248
+} 0x8ff22cea327fa99d
+test expr-28.248 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +91461537634070145 E-249 x 122cea327fa99c_1111111111111111111111111111111111111111111111111111111111110& E-771
+    convertToDouble +91461537634070145E-249
+} 0x0fc22cea327fa99d
+test expr-28.249 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -54352516010638334 E-261 x -17c0747bd76fa0_11111111111111111111111111111111111111111111111111111111111111110& E-812
+    convertToDouble -54352516010638334E-261
+} 0x8d37c0747bd76fa1
+test expr-28.250 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +586144289638535878 E280 x 11eccbd6f62709_0000000000000000000000000000000000000000000000000000000000000000001& E989
+    convertToDouble +586144289638535878E280
+} 0x7dc1eccbd6f62709
+test expr-28.251 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -601117006785295431 E245 x -1e8b3525b3737e_000000000000000000000000000000000000000000000000000000000000000001& E872
+    convertToDouble -601117006785295431E245
+} 0xf67e8b3525b3737e
+test expr-28.252 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +293072144819267939 E280 x 11eccbd6f62709_0000000000000000000000000000000000000000000000000000000000000000001& E988
+    convertToDouble +293072144819267939E280
+} 0x7db1eccbd6f62709
+test expr-28.253 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -953184713238516652 E272 x -138fd93f1f5342_00000000000000000000000000000000000000000000000000000000000000001& E963
+    convertToDouble -953184713238516652E272
+} 0xfc238fd93f1f5342
+test expr-28.254 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +902042358290366539 E-281 x 122dc01ca1cb8c_0000000000000000000000000000000000000000000000000000000000000000001& E-874
+    convertToDouble +902042358290366539E-281
+} 0x09522dc01ca1cb8c
+test expr-28.255 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -557035730189854663 E-294 x -13bfac6bc4767b_00000000000000000000000000000000000000000000000000000000000000000001& E-918
+    convertToDouble -557035730189854663E-294
+} 0x8693bfac6bc4767b
+test expr-28.256 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +902042358290366539 E-280 x 16b93023ca3e6f_0000000000000000000000000000000000000000000000000000000000000000001& E-871
+    convertToDouble +902042358290366539E-280
+} 0x0986b93023ca3e6f
+test expr-28.257 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -354944100507554393 E-238 x -19a91cece6ad07_000000000000000000000000000000000000000000000000000000000000000001& E-733
+    convertToDouble -354944100507554393E-238
+} 0x9229a91cece6ad07
+test expr-28.258 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +272104041512242479 E199 x 1f92bacb3cb40b_11111111111111111111111111111111111111111111111111111111111111111111110& E718
+    convertToDouble +272104041512242479E199
+} 0x6cdf92bacb3cb40c
+test expr-28.259 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -816312124536727437 E199 x -17ae0c186d8708_11111111111111111111111111111111111111111111111111111111111111111111110& E720
+    convertToDouble -816312124536727437E199
+} 0xecf7ae0c186d8709
+test expr-28.260 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +544208083024484958 E199 x 1f92bacb3cb40b_11111111111111111111111111111111111111111111111111111111111111111111110& E719
+    convertToDouble +544208083024484958E199
+} 0x6cef92bacb3cb40c
+test expr-28.261 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -792644927852378159 E78 x -17bff336d8ff05_111111111111111111111111111111111111111111111111111111111111111111110& E318
+    convertToDouble -792644927852378159E78
+} 0xd3d7bff336d8ff06
+test expr-28.262 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -679406450132979175 E-263 x -17c0747bd76fa0_11111111111111111111111111111111111111111111111111111111111111110& E-815
+    convertToDouble -679406450132979175E-263
+} 0x8d07c0747bd76fa1
+test expr-28.263 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +543525160106383340 E-262 x 17c0747bd76fa0_11111111111111111111111111111111111111111111111111111111111111110& E-812
+    convertToDouble +543525160106383340E-262
+} 0x0d37c0747bd76fa1
+test expr-28.264 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +7400253695682920196 E215 x 1dca94e3990085_00000000000000000000000000000000000000000000000000000000000000000000001& E776
+    convertToDouble +7400253695682920196E215
+} 0x707dca94e3990085
+test expr-28.265 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -1850063423920730049 E215 x -1dca94e3990085_00000000000000000000000000000000000000000000000000000000000000000000001& E774
+    convertToDouble -1850063423920730049E215
+} 0xf05dca94e3990085
+test expr-28.266 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +3700126847841460098 E215 x 1dca94e3990085_00000000000000000000000000000000000000000000000000000000000000000000001& E775
+    convertToDouble +3700126847841460098E215
+} 0x706dca94e3990085
+test expr-28.267 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -9250317119603650245 E214 x -1dca94e3990085_00000000000000000000000000000000000000000000000000000000000000000000001& E773
+    convertToDouble -9250317119603650245E214
+} 0xf04dca94e3990085
+test expr-28.268 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +8396094300569779681 E-252 x 1ab223efcee35a_0000000000000000000000000000000000000000000000000000000000000000000000001& E-775
+    convertToDouble +8396094300569779681E-252
+} 0x0f8ab223efcee35a
+test expr-28.269 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -3507665085003296281 E-75 x -160499b881ea50_00000000000000000000000000000000000000000000000000000000000000000000001& E-188
+    convertToDouble -3507665085003296281E-75
+} 0xb4360499b881ea50
+test expr-28.270 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +7015330170006592562 E-75 x 160499b881ea50_00000000000000000000000000000000000000000000000000000000000000000000001& E-187
+    convertToDouble +7015330170006592562E-75
+} 0x34460499b881ea50
+test expr-28.271 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -7015330170006592562 E-74 x -1b85c026a264e4_00000000000000000000000000000000000000000000000000000000000000000000001& E-184
+    convertToDouble -7015330170006592562E-74
+} 0xb47b85c026a264e4
+test expr-28.272 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +7185620434951919351 E205 x 18d92d2bcc7a80_1111111111111111111111111111111111111111111111111111111111111111111111110& E743
+    convertToDouble +7185620434951919351E205
+} 0x6e68d92d2bcc7a81
+test expr-28.273 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -1360520207561212395 E198 x -1f92bacb3cb40b_11111111111111111111111111111111111111111111111111111111111111111111110& E717
+    convertToDouble -1360520207561212395E198
+} 0xeccf92bacb3cb40c
+test expr-28.274 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +2178999185345151731 E-184 x 19b2c4d2a82335_1111111111111111111111111111111111111111111111111111111111111111111110& E-551
+    convertToDouble +2178999185345151731E-184
+} 0x1d89b2c4d2a82336
+test expr-28.275 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -8691089486201567102 E-218 x -1a9c42e5b6d89e_1111111111111111111111111111111111111111111111111111111111111111111110& E-662
+    convertToDouble -8691089486201567102E-218
+} 0x969a9c42e5b6d89f
+test expr-28.276 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +4345544743100783551 E-218 x 1a9c42e5b6d89e_1111111111111111111111111111111111111111111111111111111111111111111110& E-663
+    convertToDouble +4345544743100783551E-218
+} 0x168a9c42e5b6d89f
+test expr-28.277 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -4357998370690303462 E-184 x -19b2c4d2a82335_1111111111111111111111111111111111111111111111111111111111111111111110& E-550
+    convertToDouble -4357998370690303462E-184
+} 0x9d99b2c4d2a82336
+test expr-28.278 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +59825267349106892461 E177 x 199c476d7868df_000000000000000000000000000000000000000000000000000000000000000000000001& E653
+    convertToDouble +59825267349106892461E177
+} 0x68c99c476d7868df
+test expr-28.279 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -62259110684423957791 E47 x -1d8f2cfc20d6e8_0000000000000000000000000000000000000000000000000000000000000000000000001& E221
+    convertToDouble -62259110684423957791E47
+} 0xcdcd8f2cfc20d6e8
+test expr-28.280 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +58380168477038565599 E265 x 1f686e9efbe48d_00000000000000000000000000000000000000000000000000000000000000000000000001& E945
+    convertToDouble +58380168477038565599E265
+} 0x7b0f686e9efbe48d
+test expr-28.281 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -62259110684423957791 E48 x -12797c1d948651_0000000000000000000000000000000000000000000000000000000000000000000000001& E225
+    convertToDouble -62259110684423957791E48
+} 0xce02797c1d948651
+test expr-28.282 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -33584377202279118724 E-252 x -1ab223efcee35a_0000000000000000000000000000000000000000000000000000000000000000000000001& E-773
+    convertToDouble -33584377202279118724E-252
+} 0x8faab223efcee35a
+test expr-28.283 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -57484963479615354808 E205 x -18d92d2bcc7a80_1111111111111111111111111111111111111111111111111111111111111111111111110& E746
+    convertToDouble -57484963479615354808E205
+} 0xee98d92d2bcc7a81
+test expr-28.284 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +71856204349519193510 E204 x 18d92d2bcc7a80_1111111111111111111111111111111111111111111111111111111111111111111111110& E743
+    convertToDouble +71856204349519193510E204
+} 0x6e68d92d2bcc7a81
+test expr-28.285 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -14371240869903838702 E205 x -18d92d2bcc7a80_1111111111111111111111111111111111111111111111111111111111111111111111110& E744
+    convertToDouble -14371240869903838702E205
+} 0xee78d92d2bcc7a81
+test expr-28.286 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +36992084760177624177 E-318 x 18c5f9551c2f99_111111111111111111111111111111111111111111111111111111111111111111111110& E-992
+    convertToDouble +36992084760177624177E-318
+} 0x01f8c5f9551c2f9a
+test expr-28.287 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -73984169520355248354 E-318 x -18c5f9551c2f99_111111111111111111111111111111111111111111111111111111111111111111111110& E-991
+    convertToDouble -73984169520355248354E-318
+} 0x8208c5f9551c2f9a
+test expr-28.288 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +99257763227713890244 E-115 x 15338a554b9ce0_11111111111111111111111111111111111111111111111111111111111111111111110& E-316
+    convertToDouble +99257763227713890244E-115
+} 0x2c35338a554b9ce1
+test expr-28.289 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -87336362425182547697 E-280 x -1130304e7d9c32_11111111111111111111111111111111111111111111111111111111111111111111110& E-864
+    convertToDouble -87336362425182547697E-280
+} 0x89f130304e7d9c33
+test expr-28.290 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +7 E289 x 1cbb547777a284_10000000001& E962
+    convertToDouble +7E289
+} 0x7c1cbb547777a285
+test expr-28.291 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -3 E153 x -1ca3d8e6d80cba_100000001& E509
+    convertToDouble -3E153
+} 0xdfcca3d8e6d80cbb
+test expr-28.292 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +6 E153 x 1ca3d8e6d80cba_100000001& E510
+    convertToDouble +6E153
+} 0x5fdca3d8e6d80cbb
+test expr-28.293 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -5 E243 x -176ec98994f488_10000001& E809
+    convertToDouble -5E243
+} 0xf2876ec98994f489
+test expr-28.294 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +7 E-161 x 1f7e0db3799aa2_10000000001& E-533
+    convertToDouble +7E-161
+} 0x1eaf7e0db3799aa3
+test expr-28.295 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -7 E-172 x -15a4337446ef2a_1000000001& E-569
+    convertToDouble -7E-172
+} 0x9c65a4337446ef2b
+test expr-28.296 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +8 E-63 x 1a53fc9631d10c_10000001& E-207
+    convertToDouble +8E-63
+} 0x330a53fc9631d10d
+test expr-28.297 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -7 E-113 x -158c47e6eea282_10000001& E-373
+    convertToDouble -7E-113
+} 0xa8a58c47e6eea283
+test expr-28.298 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +8 E126 x 17a2ecc414a03f_0111111111110& E421
+    convertToDouble +8E126
+} 0x5a47a2ecc414a03f
+test expr-28.299 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -4 E126 x -17a2ecc414a03f_0111111111110& E420
+    convertToDouble -4E126
+} 0xda37a2ecc414a03f
+test expr-28.300 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +5 E125 x 17a2ecc414a03f_0111111111110& E417
+    convertToDouble +5E125
+} 0x5a07a2ecc414a03f
+test expr-28.301 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -1 E126 x -17a2ecc414a03f_0111111111110& E418
+    convertToDouble -1E126
+} 0xda17a2ecc414a03f
+test expr-28.302 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +8 E-163 x 1708d0f84d3de7_011111110& E-539
+    convertToDouble +8E-163
+} 0x1e4708d0f84d3de7
+test expr-28.303 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -1 E-163 x -1708d0f84d3de7_011111110& E-542
+    convertToDouble -1E-163
+} 0x9e1708d0f84d3de7
+test expr-28.304 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +2 E-163 x 1708d0f84d3de7_011111110& E-541
+    convertToDouble +2E-163
+} 0x1e2708d0f84d3de7
+test expr-28.305 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -4 E-163 x -1708d0f84d3de7_011111110& E-540
+    convertToDouble -4E-163
+} 0x9e3708d0f84d3de7
+test expr-28.306 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +51 E195 x 15d51d249dca42_1000000000001& E653
+    convertToDouble +51E195
+} 0x68c5d51d249dca43
+test expr-28.307 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -37 E46 x -1033d7eca0adee_100000000000001& E158
+    convertToDouble -37E46
+} 0xc9d033d7eca0adef
+test expr-28.308 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +74 E46 x 1033d7eca0adee_100000000000001& E159
+    convertToDouble +74E46
+} 0x49e033d7eca0adef
+test expr-28.309 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -56 E289 x -1cbb547777a284_10000000001& E965
+    convertToDouble -56E289
+} 0xfc4cbb547777a285
+test expr-28.310 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +69 E-145 x 158a41b31c9a9a_100000000001& E-476
+    convertToDouble +69E-145
+} 0x22358a41b31c9a9b
+test expr-28.311 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -70 E-162 x -1f7e0db3799aa2_10000000001& E-533
+    convertToDouble -70E-162
+} 0x9eaf7e0db3799aa3
+test expr-28.312 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +56 E-161 x 1f7e0db3799aa2_10000000001& E-530
+    convertToDouble +56E-161
+} 0x1edf7e0db3799aa3
+test expr-28.313 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -21 E-303 x -1ccd59caa6a750_10000000001& E-1003
+    convertToDouble -21E-303
+} 0x814ccd59caa6a751
+test expr-28.314 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +34 E-276 x 12d5a4350d30ff_011111111110& E-912
+    convertToDouble +34E-276
+} 0x06f2d5a4350d30ff
+test expr-28.315 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -68 E-276 x -12d5a4350d30ff_011111111110& E-911
+    convertToDouble -68E-276
+} 0x8702d5a4350d30ff
+test expr-28.316 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +85 E-277 x 12d5a4350d30ff_011111111110& E-914
+    convertToDouble +85E-277
+} 0x06d2d5a4350d30ff
+test expr-28.317 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -87 E-274 x -12d36cf48e7abd_011111111111110& E-904
+    convertToDouble -87E-274
+} 0x8772d36cf48e7abd
+test expr-28.318 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +829 E102 x 17221a79cdd1d8_1000000000000001& E348
+    convertToDouble +829E102
+} 0x55b7221a79cdd1d9
+test expr-28.319 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -623 E100 x -1640a62f3a83de_10000000000000000001& E341
+    convertToDouble -623E100
+} 0xd54640a62f3a83df
+test expr-28.320 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +723 E-162 x 145457ee24abd2_1000000000000001& E-529
+    convertToDouble +723E-162
+} 0x1ee45457ee24abd3
+test expr-28.321 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -457 E-102 x -1ffc81bc29f02a_100000000000000001& E-331
+    convertToDouble -457E-102
+} 0xab4ffc81bc29f02b
+test expr-28.322 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +914 E-102 x 1ffc81bc29f02a_100000000000000001& E-330
+    convertToDouble +914E-102
+} 0x2b5ffc81bc29f02b
+test expr-28.323 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -323 E-135 x -1d589ae4d70218_10000000000001& E-441
+    convertToDouble -323E-135
+} 0xa46d589ae4d70219
+test expr-28.324 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +151 E176 x 1dcf7df8f573b7_0111111111111111110& E591
+    convertToDouble +151E176
+} 0x64edcf7df8f573b7
+test expr-28.325 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -302 E176 x -1dcf7df8f573b7_0111111111111111110& E592
+    convertToDouble -302E176
+} 0xe4fdcf7df8f573b7
+test expr-28.326 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +921 E90 x 1c420a45fd70ff_0111111111111110& E308
+    convertToDouble +921E90
+} 0x533c420a45fd70ff
+test expr-28.327 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -604 E176 x -1dcf7df8f573b7_0111111111111111110& E593
+    convertToDouble -604E176
+} 0xe50dcf7df8f573b7
+test expr-28.328 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +823 E-206 x 14a48933c208ad_0111111111111110& E-675
+    convertToDouble +823E-206
+} 0x15c4a48933c208ad
+test expr-28.329 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -463 E-114 x -11d0c83f6378a5_011111111111110& E-370
+    convertToDouble -463E-114
+} 0xa8d1d0c83f6378a5
+test expr-28.330 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +348 E-274 x 12d36cf48e7abd_011111111111110& E-902
+    convertToDouble +348E-274
+} 0x0792d36cf48e7abd
+test expr-28.331 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +9968 E100 x 1640a62f3a83de_10000000000000000001& E345
+    convertToDouble +9968E100
+} 0x558640a62f3a83df
+test expr-28.332 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -6230 E99 x -1640a62f3a83de_10000000000000000001& E341
+    convertToDouble -6230E99
+} 0xd54640a62f3a83df
+test expr-28.333 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +1246 E100 x 1640a62f3a83de_10000000000000000001& E342
+    convertToDouble +1246E100
+} 0x555640a62f3a83df
+test expr-28.334 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +6676 E-296 x 15519ac5142aaa_1000000000000000000001& E-971
+    convertToDouble +6676E-296
+} 0x0345519ac5142aab
+test expr-28.335 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -8345 E-297 x -15519ac5142aaa_1000000000000000000001& E-974
+    convertToDouble -8345E-297
+} 0x8315519ac5142aab
+test expr-28.336 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +1669 E-296 x 15519ac5142aaa_1000000000000000000001& E-973
+    convertToDouble +1669E-296
+} 0x0325519ac5142aab
+test expr-28.337 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -3338 E-296 x -15519ac5142aaa_1000000000000000000001& E-972
+    convertToDouble -3338E-296
+} 0x8335519ac5142aab
+test expr-28.338 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +3257 E58 x 1444b34a6fb3eb_01111111111111111110& E204
+    convertToDouble +3257E58
+} 0x4cb444b34a6fb3eb
+test expr-28.339 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -6514 E58 x -1444b34a6fb3eb_01111111111111111110& E205
+    convertToDouble -6514E58
+} 0xccc444b34a6fb3eb
+test expr-28.340 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +2416 E176 x 1dcf7df8f573b7_0111111111111111110& E595
+    convertToDouble +2416E176
+} 0x652dcf7df8f573b7
+test expr-28.341 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +8085 E-63 x 19fbf3c19b9a79_0111111111111111110& E-197
+    convertToDouble +8085E-63
+} 0x33a9fbf3c19b9a79
+test expr-28.342 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -3234 E-62 x -19fbf3c19b9a79_0111111111111111110& E-195
+    convertToDouble -3234E-62
+} 0xb3c9fbf3c19b9a79
+test expr-28.343 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +1617 E-62 x 19fbf3c19b9a79_0111111111111111110& E-196
+    convertToDouble +1617E-62
+} 0x33b9fbf3c19b9a79
+test expr-28.344 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -6468 E-62 x -19fbf3c19b9a79_0111111111111111110& E-194
+    convertToDouble -6468E-62
+} 0xb3d9fbf3c19b9a79
+test expr-28.345 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +53418 E111 x 15b1051df943a8_1000000000000000000001& E384
+    convertToDouble +53418E111
+} 0x57f5b1051df943a9
+test expr-28.346 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -60513 E160 x -15043b64e56c72_1000000000000000000001& E547
+    convertToDouble -60513E160
+} 0xe225043b64e56c73
+test expr-28.347 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +26709 E111 x 15b1051df943a8_1000000000000000000001& E383
+    convertToDouble +26709E111
+} 0x57e5b1051df943a9
+test expr-28.348 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -99447 E166 x -10782189b336ae_1000000000000000000001& E568
+    convertToDouble -99447E166
+} 0xe370782189b336af
+test expr-28.349 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +12549 E48 x 10c52fe6dc6a1b_011111111111111111111110& E173
+    convertToDouble +12549E48
+} 0x4ac0c52fe6dc6a1b
+test expr-28.350 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -25098 E48 x -10c52fe6dc6a1b_011111111111111111111110& E174
+    convertToDouble -25098E48
+} 0xcad0c52fe6dc6a1b
+test expr-28.351 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +50196 E48 x 10c52fe6dc6a1b_011111111111111111111110& E175
+    convertToDouble +50196E48
+} 0x4ae0c52fe6dc6a1b
+test expr-28.352 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -62745 E47 x -10c52fe6dc6a1b_011111111111111111111110& E172
+    convertToDouble -62745E47
+} 0xcab0c52fe6dc6a1b
+test expr-28.353 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +83771 E-73 x 1ce886fb5ffd6d_0111111111111111111110& E-227
+    convertToDouble +83771E-73
+} 0x31cce886fb5ffd6d
+test expr-28.354 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -97451 E-167 x -1c0f220fb1c70d_01111111111111111111110& E-539
+    convertToDouble -97451E-167
+} 0x9e4c0f220fb1c70d
+test expr-28.355 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +86637 E-203 x 10943edb4e81db_0111111111111111111110& E-658
+    convertToDouble +86637E-203
+} 0x16d0943edb4e81db
+test expr-28.356 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -75569 E-254 x -15a462d91c6ab3_0111111111111111111111111110& E-828
+    convertToDouble -75569E-254
+} 0x8c35a462d91c6ab3
+test expr-28.357 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +473806 E83 x 17d15bf3186080_1000000000000000000000001& E294
+    convertToDouble +473806E83
+} 0x5257d15bf3186081
+test expr-28.358 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -947612 E83 x -17d15bf3186080_1000000000000000000000001& E295
+    convertToDouble -947612E83
+} 0xd267d15bf3186081
+test expr-28.359 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +292369 E76 x 18a85eb277e644_100000000000000000000000001& E270
+    convertToDouble +292369E76
+} 0x50d8a85eb277e645
+test expr-28.360 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -584738 E76 x -18a85eb277e644_100000000000000000000000001& E271
+    convertToDouble -584738E76
+} 0xd0e8a85eb277e645
+test expr-28.361 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +933587 E-140 x 1b248728b9c116_100000000000000000000000001& E-446
+    convertToDouble +933587E-140
+} 0x241b248728b9c117
+test expr-28.362 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -720919 E-14 x -1ef696965cbf04_10000000000000000000000001& E-28
+    convertToDouble -720919E-14
+} 0xbe3ef696965cbf05
+test expr-28.363 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +535001 E-149 x 10b38e07c745ae_1000000000000000000000001& E-476
+    convertToDouble +535001E-149
+} 0x2230b38e07c745af
+test expr-28.364 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -890521 E-235 x -114828ee39c852_1000000000000000000000001& E-761
+    convertToDouble -890521E-235
+} 0x90614828ee39c853
+test expr-28.365 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +548057 E81 x 11a1d9135cca53_0111111111111111111111110& E288
+    convertToDouble +548057E81
+} 0x51f1a1d9135cca53
+test expr-28.366 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -706181 E88 x -1b156ac4c2d1e5_0111111111111111111111110& E311
+    convertToDouble -706181E88
+} 0xd36b156ac4c2d1e5
+test expr-28.367 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +820997 E106 x 1b4f8b64fa125d_0111111111111111111111110& E371
+    convertToDouble +820997E106
+} 0x572b4f8b64fa125d
+test expr-28.368 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -320681 E63 x -17ca18a876c5ef_0111111111111111111111110& E227
+    convertToDouble -320681E63
+} 0xce27ca18a876c5ef
+test expr-28.369 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +928609 E-261 x 1be2dd66200bef_011111111111111111111111111110& E-848
+    convertToDouble +928609E-261
+} 0x0afbe2dd66200bef
+test expr-28.370 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -302276 E-254 x -15a462d91c6ab3_0111111111111111111111111110& E-826
+    convertToDouble -302276E-254
+} 0x8c55a462d91c6ab3
+test expr-28.371 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +151138 E-254 x 15a462d91c6ab3_0111111111111111111111111110& E-827
+    convertToDouble +151138E-254
+} 0x0c45a462d91c6ab3
+test expr-28.372 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +4691773 E45 x 19147b9330eaae_1000000000000000000000000001& E171
+    convertToDouble +4691773E45
+} 0x4aa9147b9330eaaf
+test expr-28.373 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -9383546 E45 x -19147b9330eaae_1000000000000000000000000001& E172
+    convertToDouble -9383546E45
+} 0xcab9147b9330eaaf
+test expr-28.374 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +3059949 E-243 x 13ecf22ea07862_10000000000000000000000000001& E-786
+    convertToDouble +3059949E-243
+} 0x0ed3ecf22ea07863
+test expr-28.375 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -6119898 E-243 x -13ecf22ea07862_10000000000000000000000000001& E-785
+    convertToDouble -6119898E-243
+} 0x8ee3ecf22ea07863
+test expr-28.376 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +5356626 E-213 x 1b84252abdf6ba_100000000000000000000000001& E-686
+    convertToDouble +5356626E-213
+} 0x151b84252abdf6bb
+test expr-28.377 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -4877378 E-199 x -11cd5cd90cb200_100000000000000000000000001& E-639
+    convertToDouble -4877378E-199
+} 0x9801cd5cd90cb201
+test expr-28.378 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +7716693 E223 x 1972d9d2cff683_01111111111111111111111111110& E763
+    convertToDouble +7716693E223
+} 0x6fa972d9d2cff683
+test expr-28.379 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -5452869 E109 x -16247b136fecc3_01111111111111111111111111110& E384
+    convertToDouble -5452869E109
+} 0xd7f6247b136fecc3
+test expr-28.380 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +4590831 E156 x 14689b4a5fa201_011111111111111111111111111110& E540
+    convertToDouble +4590831E156
+} 0x61b4689b4a5fa201
+test expr-28.381 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -9181662 E156 x -14689b4a5fa201_011111111111111111111111111110& E541
+    convertToDouble -9181662E156
+} 0xe1c4689b4a5fa201
+test expr-28.382 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -3714436 E-261 x -1be2dd66200bef_011111111111111111111111111110& E-846
+    convertToDouble -3714436E-261
+} 0x8b1be2dd66200bef
+test expr-28.383 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +4643045 E-262 x 1be2dd66200bef_011111111111111111111111111110& E-849
+    convertToDouble +4643045E-262
+} 0x0aebe2dd66200bef
+test expr-28.384 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -7428872 E-261 x -1be2dd66200bef_011111111111111111111111111110& E-845
+    convertToDouble -7428872E-261
+} 0x8b2be2dd66200bef
+test expr-28.385 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +52942146 E130 x 16c31d08af89c2_10000000000000000000000000000001& E457
+    convertToDouble +52942146E130
+} 0x5c86c31d08af89c3
+test expr-28.386 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -27966061 E145 x -155bcf72fd10f8_1000000000000000000000000000000001& E506
+    convertToDouble -27966061E145
+} 0xdf955bcf72fd10f9
+test expr-28.387 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +26471073 E130 x 16c31d08af89c2_10000000000000000000000000000001& E456
+    convertToDouble +26471073E130
+} 0x5c76c31d08af89c3
+test expr-28.388 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -55932122 E145 x -155bcf72fd10f8_1000000000000000000000000000000001& E507
+    convertToDouble -55932122E145
+} 0xdfa55bcf72fd10f9
+test expr-28.389 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +95412548 E-99 x 18e0bfb98864c8_100000000000000000000000000000001& E-303
+    convertToDouble +95412548E-99
+} 0x2d08e0bfb98864c9
+test expr-28.390 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -47706274 E-99 x -18e0bfb98864c8_100000000000000000000000000000001& E-304
+    convertToDouble -47706274E-99
+} 0xacf8e0bfb98864c9
+test expr-28.391 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +23853137 E-99 x 18e0bfb98864c8_100000000000000000000000000000001& E-305
+    convertToDouble +23853137E-99
+} 0x2ce8e0bfb98864c9
+test expr-28.392 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -78493654 E-301 x -140d76077b648e_10000000000000000000000000000001& E-974
+    convertToDouble -78493654E-301
+} 0x83140d76077b648f
+test expr-28.393 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +65346417 E29 x 13aa1ad778f23b_0111111111111111111111111111110& E122
+    convertToDouble +65346417E29
+} 0x4793aa1ad778f23b
+test expr-28.394 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -51083099 E167 x -14a75eb58df47b_0111111111111111111111111111110& E580
+    convertToDouble -51083099E167
+} 0xe434a75eb58df47b
+test expr-28.395 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +89396333 E264 x 1526f061ca9053_0111111111111111111111111111111110& E903
+    convertToDouble +89396333E264
+} 0x786526f061ca9053
+test expr-28.396 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -84863171 E114 x -106e98f5ec8f37_0111111111111111111111111111111110& E405
+    convertToDouble -84863171E114
+} 0xd9406e98f5ec8f37
+test expr-28.397 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +59540836 E-251 x 10430c2d075c07_011111111111111111111111111111110& E-808
+    convertToDouble +59540836E-251
+} 0x0d70430c2d075c07
+test expr-28.398 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -74426045 E-252 x -10430c2d075c07_011111111111111111111111111111110& E-811
+    convertToDouble -74426045E-252
+} 0x8d40430c2d075c07
+test expr-28.399 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +14885209 E-251 x 10430c2d075c07_011111111111111111111111111111110& E-810
+    convertToDouble +14885209E-251
+} 0x0d50430c2d075c07
+test expr-28.400 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -29770418 E-251 x -10430c2d075c07_011111111111111111111111111111110& E-809
+    convertToDouble -29770418E-251
+} 0x8d60430c2d075c07
+test expr-28.401 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +982161308 E122 x 11b6231e18c5ca_100000000000000000000000000000000000000001& E435
+    convertToDouble +982161308E122
+} 0x5b21b6231e18c5cb
+test expr-28.402 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -245540327 E122 x -11b6231e18c5ca_100000000000000000000000000000000000000001& E433
+    convertToDouble -245540327E122
+} 0xdb01b6231e18c5cb
+test expr-28.403 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +491080654 E122 x 11b6231e18c5ca_100000000000000000000000000000000000000001& E434
+    convertToDouble +491080654E122
+} 0x5b11b6231e18c5cb
+test expr-28.404 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +525452622 E-310 x 12045136ce0340_1000000000000000000000000000000000001& E-1001
+    convertToDouble +525452622E-310
+} 0x0162045136ce0341
+test expr-28.405 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -771837113 E-134 x -14e61f991c4ed0_100000000000000000000000000000000001& E-416
+    convertToDouble -771837113E-134
+} 0xa5f4e61f991c4ed1
+test expr-28.406 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +820858081 E-150 x 14050669985a86_10000000000000000000000000000000001& E-469
+    convertToDouble +820858081E-150
+} 0x22a4050669985a87
+test expr-28.407 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -262726311 E-310 x -12045136ce0340_1000000000000000000000000000000000001& E-1002
+    convertToDouble -262726311E-310
+} 0x8152045136ce0341
+test expr-28.408 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +923091487 E209 x 10bc60e6896717_011111111111111111111111111111111110& E724
+    convertToDouble +923091487E209
+} 0x6d30bc60e6896717
+test expr-28.409 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -653777767 E273 x -120223f2b3a881_0111111111111111111111111111111111111110& E936
+    convertToDouble -653777767E273
+} 0xfa720223f2b3a881
+test expr-28.410 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +842116236 E-53 x 1809c5732cdc7f_0111111111111111111111111111111110& E-147
+    convertToDouble +842116236E-53
+} 0x36c809c5732cdc7f
+test expr-28.411 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -741111169 E-202 x -15a3e1d1b73099_01111111111111111111111111111111110& E-642
+    convertToDouble -741111169E-202
+} 0x97d5a3e1d1b73099
+test expr-28.412 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +839507247 E-284 x 129a1effc50859_0111111111111111111111111111111110& E-914
+    convertToDouble +839507247E-284
+} 0x06d29a1effc50859
+test expr-28.413 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -951487269 E-264 x -1c92befccb5f59_0111111111111111111111111111111110& E-848
+    convertToDouble -951487269E-264
+} 0x8afc92befccb5f59
+test expr-28.414 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -9821613080 E121 x -11b6231e18c5ca_100000000000000000000000000000000000000001& E435
+    convertToDouble -9821613080E121
+} 0xdb21b6231e18c5cb
+test expr-28.415 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +6677856011 E-31 x 193a6d11077292_100000000000000000000000000000000000001& E-71
+    convertToDouble +6677856011E-31
+} 0x3b893a6d11077293
+test expr-28.416 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -3573796826 E-266 x -112be2041a79fc_100000000000000000000000000000000000001& E-852
+    convertToDouble -3573796826E-266
+} 0x8ab12be2041a79fd
+test expr-28.417 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +7147593652 E-266 x 112be2041a79fc_100000000000000000000000000000000000001& E-851
+    convertToDouble +7147593652E-266
+} 0x0ac12be2041a79fd
+test expr-28.418 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -9981396317 E-181 x -1edbd94cb50054_100000000000000000000000000000000000001& E-569
+    convertToDouble -9981396317E-181
+} 0x9c6edbd94cb50055
+test expr-28.419 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +3268888835 E272 x 120223f2b3a881_0111111111111111111111111111111111111110& E935
+    convertToDouble +3268888835E272
+} 0x7a620223f2b3a881
+test expr-28.420 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -2615111068 E273 x -120223f2b3a881_0111111111111111111111111111111111111110& E938
+    convertToDouble -2615111068E273
+} 0xfa920223f2b3a881
+test expr-28.421 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +1307555534 E273 x 120223f2b3a881_0111111111111111111111111111111111111110& E937
+    convertToDouble +1307555534E273
+} 0x7a820223f2b3a881
+test expr-28.422 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +2990671154 E-190 x 13db11ac608107_01111111111111111111111111111111111111110& E-600
+    convertToDouble +2990671154E-190
+} 0x1a73db11ac608107
+test expr-28.423 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -1495335577 E-190 x -13db11ac608107_01111111111111111111111111111111111111110& E-601
+    convertToDouble -1495335577E-190
+} 0x9a63db11ac608107
+test expr-28.424 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +5981342308 E-190 x 13db11ac608107_01111111111111111111111111111111111111110& E-599
+    convertToDouble +5981342308E-190
+} 0x1a83db11ac608107
+test expr-28.425 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -7476677885 E-191 x -13db11ac608107_01111111111111111111111111111111111111110& E-602
+    convertToDouble -7476677885E-191
+} 0x9a53db11ac608107
+test expr-28.426 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +82259684194 E-202 x 12c3e72d179606_1000000000000000000000000000000000000000001& E-635
+    convertToDouble +82259684194E-202
+} 0x1842c3e72d179607
+test expr-28.427 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -93227267727 E-49 x -1960fe08d5847e_100000000000000000000000000000000000000001& E-127
+    convertToDouble -93227267727E-49
+} 0xb80960fe08d5847f
+test expr-28.428 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +41129842097 E-202 x 12c3e72d179606_1000000000000000000000000000000000000000001& E-636
+    convertToDouble +41129842097E-202
+} 0x1832c3e72d179607
+test expr-28.429 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -47584241418 E-314 x -14e25dd3747e96_10000000000000000000000000000000000000001& E-1008
+    convertToDouble -47584241418E-314
+} 0x80f4e25dd3747e97
+test expr-28.430 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -79360293406 E92 x -1c58a00bb31863_01111111111111111111111111111111111111110& E341
+    convertToDouble -79360293406E92
+} 0xd54c58a00bb31863
+test expr-28.431 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +57332259349 E225 x 120811f528378b_01111111111111111111111111111111111111110& E783
+    convertToDouble +57332259349E225
+} 0x70e20811f528378b
+test expr-28.432 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -57202326162 E111 x -1626f1c480545b_01111111111111111111111111111111111111110& E404
+    convertToDouble -57202326162E111
+} 0xd93626f1c480545b
+test expr-28.433 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +86860597053 E-206 x 103b77d2b969d9_0111111111111111111111111111111111111111110& E-648
+    convertToDouble +86860597053E-206
+} 0x17703b77d2b969d9
+test expr-28.434 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -53827010643 E-200 x -132fa69a69bd6d_0111111111111111111111111111111111111111110& E-629
+    convertToDouble -53827010643E-200
+} 0x98a32fa69a69bd6d
+test expr-28.435 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +53587107423 E-61 x 100a19a3ffd981_011111111111111111111111111111111111111111110& E-167
+    convertToDouble +53587107423E-61
+} 0x35800a19a3ffd981
+test expr-28.436 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +635007636765 E200 x 1824e73a4f030e_100000000000000000000000000000000000000000001& E703
+    convertToDouble +635007636765E200
+} 0x6be824e73a4f030f
+test expr-28.437 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +508006109412 E201 x 1824e73a4f030e_100000000000000000000000000000000000000000001& E706
+    convertToDouble +508006109412E201
+} 0x6c1824e73a4f030f
+test expr-28.438 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -254003054706 E201 x -1824e73a4f030e_100000000000000000000000000000000000000000001& E705
+    convertToDouble -254003054706E201
+} 0xec0824e73a4f030f
+test expr-28.439 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +561029718715 E-72 x 1cd96a6972a14a_100000000000000000000000000000000000000000001& E-201
+    convertToDouble +561029718715E-72
+} 0x336cd96a6972a14b
+test expr-28.440 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -897647549944 E-71 x -1cd96a6972a14a_100000000000000000000000000000000000000000001& E-197
+    convertToDouble -897647549944E-71
+} 0xb3acd96a6972a14b
+test expr-28.441 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +112205943743 E-71 x 1cd96a6972a14a_100000000000000000000000000000000000000000001& E-200
+    convertToDouble +112205943743E-71
+} 0x337cd96a6972a14b
+test expr-28.442 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -873947086081 E-236 x -19e117541d04e6_1000000000000000000000000000000000000000000001& E-745
+    convertToDouble -873947086081E-236
+} 0x9169e117541d04e7
+test expr-28.443 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +809184709177 E116 x 1de27e59fb0679_011111111111111111111111111111111111111111110& E424
+    convertToDouble +809184709177E116
+} 0x5a7de27e59fb0679
+test expr-28.444 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -573112917422 E81 x -11958b36c5102b_01111111111111111111111111111111111111111111110& E308
+    convertToDouble -573112917422E81
+} 0xd331958b36c5102b
+test expr-28.445 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +286556458711 E81 x 11958b36c5102b_01111111111111111111111111111111111111111111110& E307
+    convertToDouble +286556458711E81
+} 0x5321958b36c5102b
+test expr-28.446 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +952805821491 E-259 x 1551767ef8a9a3_011111111111111111111111111111111111111111110& E-821
+    convertToDouble +952805821491E-259
+} 0x0ca551767ef8a9a3
+test expr-28.447 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -132189992873 E-44 x -1b746cf242410b_011111111111111111111111111111111111111111110& E-110
+    convertToDouble -132189992873E-44
+} 0xb91b746cf242410b
+test expr-28.448 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -173696038493 E-144 x -1f8fefbb3249d3_011111111111111111111111111111111111111111110& E-442
+    convertToDouble -173696038493E-144
+} 0xa45f8fefbb3249d3
+test expr-28.449 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +1831132757599 E-107 x 138e6edd48f2a2_1000000000000000000000000000000000000000000000001& E-315
+    convertToDouble +1831132757599E-107
+} 0x2c438e6edd48f2a3
+test expr-28.450 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -9155663787995 E-108 x -138e6edd48f2a2_1000000000000000000000000000000000000000000000001& E-316
+    convertToDouble -9155663787995E-108
+} 0xac338e6edd48f2a3
+test expr-28.451 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +7324531030396 E-107 x 138e6edd48f2a2_1000000000000000000000000000000000000000000000001& E-313
+    convertToDouble +7324531030396E-107
+} 0x2c638e6edd48f2a3
+test expr-28.452 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -9277338894969 E-200 x -19d5a44fd99a6a_1000000000000000000000000000000000000000000000001& E-622
+    convertToDouble -9277338894969E-200
+} 0x9919d5a44fd99a6b
+test expr-28.453 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +8188292423973 E287 x 1390273bf8f983_0111111111111111111111111111111111111111111111110& E996
+    convertToDouble +8188292423973E287
+} 0x7e3390273bf8f983
+test expr-28.454 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -5672557437938 E59 x -148c2bd60a1523_011111111111111111111111111111111111111111111110& E238
+    convertToDouble -5672557437938E59
+} 0xced48c2bd60a1523
+test expr-28.455 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +2836278718969 E59 x 148c2bd60a1523_011111111111111111111111111111111111111111111110& E237
+    convertToDouble +2836278718969E59
+} 0x4ec48c2bd60a1523
+test expr-28.456 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -9995153153494 E54 x -17ba37c4fbe993_01111111111111111111111111111111111111111111110& E222
+    convertToDouble -9995153153494E54
+} 0xcdd7ba37c4fbe993
+test expr-28.457 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +9224786422069 E-291 x 14ee5d56b32957_011111111111111111111111111111111111111111111111110& E-924
+    convertToDouble +9224786422069E-291
+} 0x0634ee5d56b32957
+test expr-28.458 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -3142213164987 E-294 x -1d3409dfbca26f_011111111111111111111111111111111111111111111111110& E-936
+    convertToDouble -3142213164987E-294
+} 0x857d3409dfbca26f
+test expr-28.459 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +6284426329974 E-294 x 1d3409dfbca26f_011111111111111111111111111111111111111111111111110& E-935
+    convertToDouble +6284426329974E-294
+} 0x058d3409dfbca26f
+test expr-28.460 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -8340483752889 E-301 x -10419183e44b91_01111111111111111111111111111111111111111111111110& E-957
+    convertToDouble -8340483752889E-301
+} 0x8420419183e44b91
+test expr-28.461 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +67039371486466 E89 x 17f203339c9628_10000000000000000000000000000000000000000000000000001& E341
+    convertToDouble +67039371486466E89
+} 0x5547f203339c9629
+test expr-28.462 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -62150786615239 E197 x -12e79a035b9714_1000000000000000000000000000000000000000000000000001& E700
+    convertToDouble -62150786615239E197
+} 0xebb2e79a035b9715
+test expr-28.463 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +33519685743233 E89 x 17f203339c9628_10000000000000000000000000000000000000000000000000001& E340
+    convertToDouble +33519685743233E89
+} 0x5537f203339c9629
+test expr-28.464 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -52563419496999 E156 x -1bdb17625bf6e6_1000000000000000000000000000000000000000000000000001& E563
+    convertToDouble -52563419496999E156
+} 0xe32bdb17625bf6e7
+test expr-28.465 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +32599460466991 E-65 x 1f395d4c779d8e_1000000000000000000000000000000000000000000000000001& E-172
+    convertToDouble +32599460466991E-65
+} 0x353f395d4c779d8f
+test expr-28.466 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -41010988798007 E-133 x -152e1c9e04ee06_100000000000000000000000000000000000000000000000001& E-397
+    convertToDouble -41010988798007E-133
+} 0xa7252e1c9e04ee07
+test expr-28.467 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +65198920933982 E-65 x 1f395d4c779d8e_1000000000000000000000000000000000000000000000000001& E-171
+    convertToDouble +65198920933982E-65
+} 0x354f395d4c779d8f
+test expr-28.468 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -82021977596014 E-133 x -152e1c9e04ee06_100000000000000000000000000000000000000000000000001& E-396
+    convertToDouble -82021977596014E-133
+} 0xa7352e1c9e04ee07
+test expr-28.469 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +80527976643809 E61 x 1c7c5aea080a49_0111111111111111111111111111111111111111111111111110& E248
+    convertToDouble +80527976643809E61
+} 0x4f7c7c5aea080a49
+test expr-28.470 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -74712611505209 E158 x -1eeebe9ea010f3_011111111111111111111111111111111111111111111111110& E570
+    convertToDouble -74712611505209E158
+} 0xe39eeebe9ea010f3
+test expr-28.471 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +53390939710959 E261 x 18ac6d426a1cb1_0111111111111111111111111111111111111111111111111110& E912
+    convertToDouble +53390939710959E261
+} 0x78f8ac6d426a1cb1
+test expr-28.472 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -69277302659155 E225 x -1547166a3a2b0f_011111111111111111111111111111111111111111111111110& E793
+    convertToDouble -69277302659155E225
+} 0xf18547166a3a2b0f
+test expr-28.473 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +46202199371337 E-72 x 128f9edfbd341f_0111111111111111111111111111111111111111111111111111111110& E-194
+    convertToDouble +46202199371337E-72
+} 0x33d28f9edfbd341f
+test expr-28.474 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -23438635467783 E-179 x -1ba485b99e47af_0111111111111111111111111111111111111111111111111110& E-551
+    convertToDouble -23438635467783E-179
+} 0x9d8ba485b99e47af
+test expr-28.475 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +41921560615349 E-67 x 19b2a5c4041e4b_0111111111111111111111111111111111111111111111111110& E-178
+    convertToDouble +41921560615349E-67
+} 0x34d9b2a5c4041e4b
+test expr-28.476 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -92404398742674 E-72 x -128f9edfbd341f_0111111111111111111111111111111111111111111111111111111110& E-193
+    convertToDouble -92404398742674E-72
+} 0xb3e28f9edfbd341f
+test expr-28.477 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +738545606647197 E124 x 13d8886a766a20_100000000000000000000000000000000000000000000000000001& E461
+    convertToDouble +738545606647197E124
+} 0x5cc3d8886a766a21
+test expr-28.478 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -972708181182949 E117 x -15ed1f039cebfe_1000000000000000000000000000000000000000000000000000001& E438
+    convertToDouble -972708181182949E117
+} 0xdb55ed1f039cebff
+test expr-28.479 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -837992143580825 E87 x -17f203339c9628_10000000000000000000000000000000000000000000000000001& E338
+    convertToDouble -837992143580825E87
+} 0xd517f203339c9629
+test expr-28.480 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +609610927149051 E-255 x 104273b18918b0_100000000000000000000000000000000000000000000000000000001& E-798
+    convertToDouble +609610927149051E-255
+} 0x0e104273b18918b1
+test expr-28.481 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -475603213226859 E-41 x -178cfcab31064c_10000000000000000000000000000000000000000000000000000001& E-88
+    convertToDouble -475603213226859E-41
+} 0xba778cfcab31064d
+test expr-28.482 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +563002800671023 E-177 x 1035e7b5183922_10000000000000000000000000000000000000000000000000000001& E-539
+    convertToDouble +563002800671023E-177
+} 0x1e4035e7b5183923
+test expr-28.483 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -951206426453718 E-41 x -178cfcab31064c_10000000000000000000000000000000000000000000000000000001& E-87
+    convertToDouble -951206426453718E-41
+} 0xba878cfcab31064d
+test expr-28.484 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +805416432656519 E202 x 175d226331d039_01111111111111111111111111111111111111111111111111111110& E720
+    convertToDouble +805416432656519E202
+} 0x6cf75d226331d039
+test expr-28.485 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -530658674694337 E159 x -112a13daa46fe3_0111111111111111111111111111111111111111111111111111110& E577
+    convertToDouble -530658674694337E159
+} 0xe4012a13daa46fe3
+test expr-28.486 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +946574173863918 E208 x 1a2fbffdb7580b_011111111111111111111111111111111111111111111111111110& E740
+    convertToDouble +946574173863918E208
+} 0x6e3a2fbffdb7580b
+test expr-28.487 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -318329953318553 E113 x -178358811cbc95_011111111111111111111111111111111111111111111111111110& E423
+    convertToDouble -318329953318553E113
+} 0xda678358811cbc95
+test expr-28.488 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -462021993713370 E-73 x -128f9edfbd341f_0111111111111111111111111111111111111111111111111111111110& E-194
+    convertToDouble -462021993713370E-73
+} 0xb3d28f9edfbd341f
+test expr-28.489 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +369617594970696 E-72 x 128f9edfbd341f_0111111111111111111111111111111111111111111111111111111110& E-191
+    convertToDouble +369617594970696E-72
+} 0x34028f9edfbd341f
+test expr-28.490 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +3666156212014994 E233 x 1a37935f3b71c8_100000000000000000000000000000000000000000000000000000001& E825
+    convertToDouble +3666156212014994E233
+} 0x738a37935f3b71c9
+test expr-28.491 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -1833078106007497 E233 x -1a37935f3b71c8_100000000000000000000000000000000000000000000000000000001& E824
+    convertToDouble -1833078106007497E233
+} 0xf37a37935f3b71c9
+test expr-28.492 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +8301790508624232 E174 x 1dcfee6690ffc6_100000000000000000000000000000000000000000000000000000001& E630
+    convertToDouble +8301790508624232E174
+} 0x675dcfee6690ffc7
+test expr-28.493 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -1037723813578029 E174 x -1dcfee6690ffc6_100000000000000000000000000000000000000000000000000000001& E627
+    convertToDouble -1037723813578029E174
+} 0xe72dcfee6690ffc7
+test expr-28.494 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +7297662880581139 E-286 x 18ac8c79e1ff18_1000000000000000000000000000000000000000000000000000000000001& E-898
+    convertToDouble +7297662880581139E-286
+} 0x07d8ac8c79e1ff19
+test expr-28.495 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -5106185698912191 E-276 x -141934d77659be_1000000000000000000000000000000000000000000000000000000000001& E-865
+    convertToDouble -5106185698912191E-276
+} 0x89e41934d77659bf
+test expr-28.496 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +7487252720986826 E-165 x 18823a57adbef8_100000000000000000000000000000000000000000000000000000000000001& E-496
+    convertToDouble +7487252720986826E-165
+} 0x20f8823a57adbef9
+test expr-28.497 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -3743626360493413 E-165 x -18823a57adbef8_100000000000000000000000000000000000000000000000000000000000001& E-497
+    convertToDouble -3743626360493413E-165
+} 0xa0e8823a57adbef9
+test expr-28.498 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +3773057430100257 E230 x 1ba10d818fdafd_0111111111111111111111111111111111111111111111111111111110& E815
+    convertToDouble +3773057430100257E230
+} 0x72eba10d818fdafd
+test expr-28.499 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -7546114860200514 E230 x -1ba10d818fdafd_0111111111111111111111111111111111111111111111111111111110& E816
+    convertToDouble -7546114860200514E230
+} 0xf2fba10d818fdafd
+test expr-28.500 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +4321222892463822 E58 x 18750ea732fdad_011111111111111111111111111111111111111111111111111111110& E244
+    convertToDouble +4321222892463822E58
+} 0x4f38750ea732fdad
+test expr-28.501 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -7793560217139653 E51 x -1280461b856ec5_0111111111111111111111111111111111111111111111111111111110& E222
+    convertToDouble -7793560217139653E51
+} 0xcdd280461b856ec5
+test expr-28.502 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +26525993941010681 E112 x 187dcbf6ad5cf8_10000000000000000000000000000000000000000000000000000000000001& E426
+    convertToDouble +26525993941010681E112
+} 0x5a987dcbf6ad5cf9
+test expr-28.503 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -53051987882021362 E112 x -187dcbf6ad5cf8_10000000000000000000000000000000000000000000000000000000000001& E427
+    convertToDouble -53051987882021362E112
+} 0xdaa87dcbf6ad5cf9
+test expr-28.504 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +72844871414247907 E77 x 1bf00baf60b70c_100000000000000000000000000000000000000000000000000000000001& E311
+    convertToDouble +72844871414247907E77
+} 0x536bf00baf60b70d
+test expr-28.505 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -88839359596763261 E105 x -1133b1a33a1108_100000000000000000000000000000000000000000000000000000000001& E405
+    convertToDouble -88839359596763261E105
+} 0xd94133b1a33a1109
+test expr-28.506 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +18718131802467065 E-166 x 18823a57adbef8_100000000000000000000000000000000000000000000000000000000000001& E-498
+    convertToDouble +18718131802467065E-166
+} 0x20d8823a57adbef9
+test expr-28.507 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -14974505441973652 E-165 x -18823a57adbef8_100000000000000000000000000000000000000000000000000000000000001& E-495
+    convertToDouble -14974505441973652E-165
+} 0xa108823a57adbef9
+test expr-28.508 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +73429396004640239 E106 x 11c5cb19ef3451_01111111111111111111111111111111111111111111111111111111111110& E408
+    convertToDouble +73429396004640239E106
+} 0x5971c5cb19ef3451
+test expr-28.509 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -58483921078398283 E57 x -108ce499519ce3_0111111111111111111111111111111111111111111111111111111111111110& E245
+    convertToDouble -58483921078398283E57
+} 0xcf408ce499519ce3
+test expr-28.510 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +41391519190645203 E165 x 13f33667156017_011111111111111111111111111111111111111111111111111111111111110& E603
+    convertToDouble +41391519190645203E165
+} 0x65a3f33667156017
+test expr-28.511 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -82783038381290406 E165 x -13f33667156017_011111111111111111111111111111111111111111111111111111111111110& E604
+    convertToDouble -82783038381290406E165
+} 0xe5b3f33667156017
+test expr-28.512 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +58767043776702677 E-163 x 12c92fee3a3867_0111111111111111111111111111111111111111111111111111111111110& E-486
+    convertToDouble +58767043776702677E-163
+} 0x2192c92fee3a3867
+test expr-28.513 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -90506231831231999 E-129 x -1bdc4114397ff3_01111111111111111111111111111111111111111111111111111111111110& E-373
+    convertToDouble -90506231831231999E-129
+} 0xa8abdc4114397ff3
+test expr-28.514 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +64409240769861689 E-159 x 192238f7987779_011111111111111111111111111111111111111111111111111111111111110& E-473
+    convertToDouble +64409240769861689E-159
+} 0x22692238f7987779
+test expr-28.515 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -77305427432277771 E-190 x -1e978b7780b613_0111111111111111111111111111111111111111111111111111111111110& E-576
+    convertToDouble -77305427432277771E-190
+} 0x9bfe978b7780b613
+test expr-28.516 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +476592356619258326 E273 x 1873cf8ee72812_10000000000000000000000000000000000000000000000000000000000000001& E965
+    convertToDouble +476592356619258326E273
+} 0x7c4873cf8ee72813
+test expr-28.517 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -953184713238516652 E273 x -1873cf8ee72812_10000000000000000000000000000000000000000000000000000000000000001& E966
+    convertToDouble -953184713238516652E273
+} 0xfc5873cf8ee72813
+test expr-28.518 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +899810892172646163 E283 x 1adf51fa055e02_100000000000000000000000000000000000000000000000000000000000000000001& E999
+    convertToDouble +899810892172646163E283
+} 0x7e6adf51fa055e03
+test expr-28.519 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -929167076892018333 E187 x -1da2c42fce2bc4_10000000000000000000000000000000000000000000000000000000000000000001& E680
+    convertToDouble -929167076892018333E187
+} 0xea7da2c42fce2bc5
+test expr-28.520 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +647761278967534239 E-312 x 1a7a2476ec0b3e_10000000000000000000000000000000000000000000000000000000000000001& E-978
+    convertToDouble +647761278967534239E-312
+} 0x02da7a2476ec0b3f
+test expr-28.521 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -644290479820542942 E-180 x -128d1407dfa832_10000000000000000000000000000000000000000000000000000000000000001& E-539
+    convertToDouble -644290479820542942E-180
+} 0x9e428d1407dfa833
+test expr-28.522 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +926145344610700019 E-225 x 1307a67f1f69fe_10000000000000000000000000000000000000000000000000000000000000000001& E-688
+    convertToDouble +926145344610700019E-225
+} 0x14f307a67f1f69ff
+test expr-28.523 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -958507931896511964 E-246 x -17406753df2f0c_10000000000000000000000000000000000000000000000000000000000000001& E-758
+    convertToDouble -958507931896511964E-246
+} 0x9097406753df2f0d
+test expr-28.524 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +272104041512242479 E200 x 13bbb4bf05f087_011111111111111111111111111111111111111111111111111111111111111111111110& E722
+    convertToDouble +272104041512242479E200
+} 0x6d13bbb4bf05f087
+test expr-28.525 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -792644927852378159 E79 x -1daff0048f3ec7_011111111111111111111111111111111111111111111111111111111111111111110& E321
+    convertToDouble -792644927852378159E79
+} 0xd40daff0048f3ec7
+test expr-28.526 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +544208083024484958 E200 x 13bbb4bf05f087_011111111111111111111111111111111111111111111111111111111111111111111110& E723
+    convertToDouble +544208083024484958E200
+} 0x6d23bbb4bf05f087
+test expr-28.527 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -929963218616126365 E290 x -108dcc0c505461_01111111111111111111111111111111111111111111111111111111111111110& E1023
+    convertToDouble -929963218616126365E290
+} 0xffe08dcc0c505461
+test expr-28.528 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +305574339166810102 E-219 x 17f399fe02c4b9_011111111111111111111111111111111111111111111111111111111111111110& E-670
+    convertToDouble +305574339166810102E-219
+} 0x1617f399fe02c4b9
+test expr-28.529 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -152787169583405051 E-219 x -17f399fe02c4b9_011111111111111111111111111111111111111111111111111111111111111110& E-671
+    convertToDouble -152787169583405051E-219
+} 0x9607f399fe02c4b9
+test expr-28.530 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +611148678333620204 E-219 x 17f399fe02c4b9_011111111111111111111111111111111111111111111111111111111111111110& E-669
+    convertToDouble +611148678333620204E-219
+} 0x1627f399fe02c4b9
+test expr-28.531 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -763935847917025255 E-220 x -17f399fe02c4b9_011111111111111111111111111111111111111111111111111111111111111110& E-672
+    convertToDouble -763935847917025255E-220
+} 0x95f7f399fe02c4b9
+test expr-28.532 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +7439550220920798612 E158 x 177fe14f40159a_10000000000000000000000000000000000000000000000000000000000000000000001& E587
+    convertToDouble +7439550220920798612E158
+} 0x64a77fe14f40159b
+test expr-28.533 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -3719775110460399306 E158 x -177fe14f40159a_10000000000000000000000000000000000000000000000000000000000000000000001& E586
+    convertToDouble -3719775110460399306E158
+} 0xe4977fe14f40159b
+test expr-28.534 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +9299437776150998265 E157 x 177fe14f40159a_10000000000000000000000000000000000000000000000000000000000000000000001& E584
+    convertToDouble +9299437776150998265E157
+} 0x64777fe14f40159b
+test expr-28.535 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -7120190517612959703 E120 x -13220dcd5899fc_1000000000000000000000000000000000000000000000000000000000000000000000001& E461
+    convertToDouble -7120190517612959703E120
+} 0xdcc3220dcd5899fd
+test expr-28.536 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +3507665085003296281 E-73 x 11339818257f0e_100000000000000000000000000000000000000000000000000000000000000000000001& E-181
+    convertToDouble +3507665085003296281E-73
+} 0x34a1339818257f0f
+test expr-28.537 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -7015330170006592562 E-73 x -11339818257f0e_100000000000000000000000000000000000000000000000000000000000000000000001& E-180
+    convertToDouble -7015330170006592562E-73
+} 0xb4b1339818257f0f
+test expr-28.538 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -6684428762278255956 E-294 x -1d9f82a1a6b1b8_10000000000000000000000000000000000000000000000000000000000000000001& E-915
+    convertToDouble -6684428762278255956E-294
+} 0x86cd9f82a1a6b1b9
+test expr-28.539 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -1088416166048969916 E200 x -13bbb4bf05f087_011111111111111111111111111111111111111111111111111111111111111111111110& E724
+    convertToDouble -1088416166048969916E200
+} 0xed33bbb4bf05f087
+test expr-28.540 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -8707329328391759328 E200 x -13bbb4bf05f087_011111111111111111111111111111111111111111111111111111111111111111111110& E727
+    convertToDouble -8707329328391759328E200
+} 0xed63bbb4bf05f087
+test expr-28.541 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +4439021781608558002 E-65 x 1038168b71e2c9_01111111111111111111111111111111111111111111111111111111111111111110& E-154
+    convertToDouble +4439021781608558002E-65
+} 0x365038168b71e2c9
+test expr-28.542 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -8878043563217116004 E-65 x -1038168b71e2c9_01111111111111111111111111111111111111111111111111111111111111111110& E-153
+    convertToDouble -8878043563217116004E-65
+} 0xb66038168b71e2c9
+test expr-28.543 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +2219510890804279001 E-65 x 1038168b71e2c9_01111111111111111111111111111111111111111111111111111111111111111110& E-155
+    convertToDouble +2219510890804279001E-65
+} 0x364038168b71e2c9
+test expr-28.544 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +33051223951904955802 E55 x 1762068a24fd54_1000000000000000000000000000000000000000000000000000000000000000000000001& E247
+    convertToDouble +33051223951904955802E55
+} 0x4f6762068a24fd55
+test expr-28.545 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -56961524140903677624 E120 x -13220dcd5899fc_1000000000000000000000000000000000000000000000000000000000000000000000001& E464
+    convertToDouble -56961524140903677624E120
+} 0xdcf3220dcd5899fd
+test expr-28.546 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +71201905176129597030 E119 x 13220dcd5899fc_1000000000000000000000000000000000000000000000000000000000000000000000001& E461
+    convertToDouble +71201905176129597030E119
+} 0x5cc3220dcd5899fd
+test expr-28.547 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +14030660340013185124 E-73 x 11339818257f0e_100000000000000000000000000000000000000000000000000000000000000000000001& E-179
+    convertToDouble +14030660340013185124E-73
+} 0x34c1339818257f0f
+test expr-28.548 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -17538325425016481405 E-74 x -11339818257f0e_100000000000000000000000000000000000000000000000000000000000000000000001& E-182
+    convertToDouble -17538325425016481405E-74
+} 0xb491339818257f0f
+test expr-28.549 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +67536228609141569109 E-133 x 10a1b35cf2a635_01111111111111111111111111111111111111111111111111111111111111111111110& E-376
+    convertToDouble +67536228609141569109E-133
+} 0x2870a1b35cf2a635
+test expr-28.550 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -35620497849450218807 E-306 x -15b22082529425_0111111111111111111111111111111111111111111111111111111111111111111111110& E-952
+    convertToDouble -35620497849450218807E-306
+} 0x8475b22082529425
+test expr-28.551 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN +66550376797582521751 E-126 x 13897c0ede6c69_01111111111111111111111111111111111111111111111111111111111111111111110& E-353
+    convertToDouble +66550376797582521751E-126
+} 0x29e3897c0ede6c69
+test expr-28.552 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b d UN -71240995698900437614 E-306 x -15b22082529425_0111111111111111111111111111111111111111111111111111111111111111111111110& E-951
+    convertToDouble -71240995698900437614E-306
+} 0x8485b22082529425
+test expr-28.553 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +3 E24 x 13da329b633647_0001& E81
+    convertToDouble +3E24
+} 0x4503da329b633647
+test expr-28.554 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -6 E24 x -13da329b633647_0001& E82
+    convertToDouble -6E24
+} 0xc513da329b633647
+test expr-28.555 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +6 E26 x 1f04ef12cb04cf_0001& E88
+    convertToDouble +6E26
+} 0x457f04ef12cb04cf
+test expr-28.556 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -7 E25 x -1cf389cd46047d_0000001& E85
+    convertToDouble -7E25
+} 0xc54cf389cd46047d
+test expr-28.557 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +1 E-14 x 16849b86a12b9b_00000001& E-47
+    convertToDouble +1E-14
+} 0x3d06849b86a12b9b
+test expr-28.558 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -2 E-14 x -16849b86a12b9b_00000001& E-46
+    convertToDouble -2E-14
+} 0xbd16849b86a12b9b
+test expr-28.559 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +4 E-14 x 16849b86a12b9b_00000001& E-45
+    convertToDouble +4E-14
+} 0x3d26849b86a12b9b
+test expr-28.560 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -8 E-14 x -16849b86a12b9b_00000001& E-44
+    convertToDouble -8E-14
+} 0xbd36849b86a12b9b
+test expr-28.561 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +5 E26 x 19d971e4fe8401_1110& E88
+    convertToDouble +5E26
+} 0x4579d971e4fe8402
+test expr-28.562 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -8 E27 x -19d971e4fe8401_1110& E92
+    convertToDouble -8E27
+} 0xc5b9d971e4fe8402
+test expr-28.563 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +1 E27 x 19d971e4fe8401_1110& E89
+    convertToDouble +1E27
+} 0x4589d971e4fe8402
+test expr-28.564 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -4 E27 x -19d971e4fe8401_1110& E91
+    convertToDouble -4E27
+} 0xc5a9d971e4fe8402
+test expr-28.565 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +9 E-13 x 1faa7ab552a551_111110& E-41
+    convertToDouble +9E-13
+} 0x3d6faa7ab552a552
+test expr-28.566 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -7 E-20 x -14a90ceafff9de_11110& E-64
+    convertToDouble -7E-20
+} 0xbbf4a90ceafff9df
+test expr-28.567 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +56 E25 x 1cf389cd46047d_0000001& E88
+    convertToDouble +56E25
+} 0x457cf389cd46047d
+test expr-28.568 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -70 E24 x -1cf389cd46047d_0000001& E85
+    convertToDouble -70E24
+} 0xc54cf389cd46047d
+test expr-28.569 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +51 E26 x 107a9f01fbda8e_0000001& E92
+    convertToDouble +51E26
+} 0x45b07a9f01fbda8e
+test expr-28.570 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +71 E-17 x 19949819f693d7_00000000001& E-51
+    convertToDouble +71E-17
+} 0x3cc9949819f693d7
+test expr-28.571 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -31 E-5 x -1450efdc9c4da9_00000000001& E-12
+    convertToDouble -31E-5
+} 0xbf3450efdc9c4da9
+test expr-28.572 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +62 E-5 x 1450efdc9c4da9_00000000001& E-11
+    convertToDouble +62E-5
+} 0x3f4450efdc9c4da9
+test expr-28.573 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -94 E-8 x -1f8a89dc374df5_0000000001& E-21
+    convertToDouble -94E-8
+} 0xbeaf8a89dc374df5
+test expr-28.574 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +67 E27 x 1b0fa33bba7231_11111110& E95
+    convertToDouble +67E27
+} 0x45eb0fa33bba7232
+test expr-28.575 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -81 E24 x -10c01ab31bb5cb_1111110& E86
+    convertToDouble -81E24
+} 0xc550c01ab31bb5cc
+test expr-28.576 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +54 E23 x 11ddfa58a6173f_111110& E82
+    convertToDouble +54E23
+} 0x4511ddfa58a61740
+test expr-28.577 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -54 E25 x -1bead72a838453_111110& E88
+    convertToDouble -54E25
+} 0xc57bead72a838454
+test expr-28.578 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +63 E-22 x 1dc03b8fd70169_11111111110& E-68
+    convertToDouble +63E-22
+} 0x3bbdc03b8fd7016a
+test expr-28.579 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -63 E-23 x -17ccfc73126787_11111111110& E-71
+    convertToDouble -63E-23
+} 0xbb87ccfc73126788
+test expr-28.580 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +43 E-4 x 119ce075f6fd21_111111110& E-8
+    convertToDouble +43E-4
+} 0x3f719ce075f6fd22
+test expr-28.581 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -86 E-4 x -119ce075f6fd21_111111110& E-7
+    convertToDouble -86E-4
+} 0xbf819ce075f6fd22
+test expr-28.582 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +942 E26 x 1306069e8681f3_00000000001& E96
+    convertToDouble +942E26
+} 0x45f306069e8681f3
+test expr-28.583 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -471 E25 x -1e700a973d9cb8_0000000001& E91
+    convertToDouble -471E25
+} 0xc5ae700a973d9cb8
+test expr-28.584 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +803 E24 x 14c1cee9cd666b_000000000001& E89
+    convertToDouble +803E24
+} 0x4584c1cee9cd666b
+test expr-28.585 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -471 E26 x -1306069e8681f3_00000000001& E95
+    convertToDouble -471E26
+} 0xc5e306069e8681f3
+test expr-28.586 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -409 E-21 x -1e2dcaa4115622_000000000001& E-62
+    convertToDouble -409E-21
+} 0xbc1e2dcaa4115622
+test expr-28.587 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +818 E-21 x 1e2dcaa4115622_000000000001& E-61
+    convertToDouble +818E-21
+} 0x3c2e2dcaa4115622
+test expr-28.588 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -867 E-8 x -122eabba029aba_000000000001& E-17
+    convertToDouble -867E-8
+} 0xbee22eabba029aba
+test expr-28.589 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +538 E27 x 1b297cad9f70b5_1111111111111110& E98
+    convertToDouble +538E27
+} 0x461b297cad9f70b6
+test expr-28.590 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -857 E24 x -16272678ba603b_11111111110& E89
+    convertToDouble -857E24
+} 0xc586272678ba603c
+test expr-28.591 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +269 E27 x 1b297cad9f70b5_1111111111111110& E97
+    convertToDouble +269E27
+} 0x460b297cad9f70b6
+test expr-28.592 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -403 E26 x -1046ec1e31dd85_1111111110& E95
+    convertToDouble -403E26
+} 0xc5e046ec1e31dd86
+test expr-28.593 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +959 E-7 x 1923bd746a3527_11111111111110& E-14
+    convertToDouble +959E-7
+} 0x3f1923bd746a3528
+test expr-28.594 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -959 E-6 x -1f6cacd184c271_1111111111110& E-11
+    convertToDouble -959E-6
+} 0xbf4f6cacd184c272
+test expr-28.595 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +373 E-27 x 1cdc06b20ef182_1111111111110& E-82
+    convertToDouble +373E-27
+} 0x3adcdc06b20ef183
+test expr-28.596 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -746 E-27 x -1cdc06b20ef182_1111111111110& E-81
+    convertToDouble -746E-27
+} 0xbaecdc06b20ef183
+test expr-28.597 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +4069 E24 x 1a4b9887fbfe7a_0000000000001& E91
+    convertToDouble +4069E24
+} 0x45aa4b9887fbfe7a
+test expr-28.598 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -4069 E23 x -150946d32ffec8_0000000000001& E88
+    convertToDouble -4069E23
+} 0xc5750946d32ffec8
+test expr-28.599 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -8138 E24 x -1a4b9887fbfe7a_0000000000001& E92
+    convertToDouble -8138E24
+} 0xc5ba4b9887fbfe7a
+test expr-28.600 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +8294 E-15 x 123d1b5eb1d778_000000000000000001& E-37
+    convertToDouble +8294E-15
+} 0x3da23d1b5eb1d778
+test expr-28.601 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -4147 E-14 x -16cc62365e4d56_00000000000000001& E-35
+    convertToDouble -4147E-14
+} 0xbdc6cc62365e4d56
+test expr-28.602 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +4147 E-15 x 123d1b5eb1d778_000000000000000001& E-38
+    convertToDouble +4147E-15
+} 0x3d923d1b5eb1d778
+test expr-28.603 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -8294 E-14 x -16cc62365e4d56_00000000000000001& E-34
+    convertToDouble -8294E-14
+} 0xbdd6cc62365e4d56
+test expr-28.604 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +538 E27 x 1b297cad9f70b5_1111111111111110& E98
+    convertToDouble +538E27
+} 0x461b297cad9f70b6
+test expr-28.605 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -2690 E26 x -1b297cad9f70b5_1111111111111110& E97
+    convertToDouble -2690E26
+} 0xc60b297cad9f70b6
+test expr-28.606 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +269 E27 x 1b297cad9f70b5_1111111111111110& E97
+    convertToDouble +269E27
+} 0x460b297cad9f70b6
+test expr-28.607 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -2152 E27 x -1b297cad9f70b5_1111111111111110& E100
+    convertToDouble -2152E27
+} 0xc63b297cad9f70b6
+test expr-28.608 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +1721 E-17 x 136071dcae4564_111111111111110& E-46
+    convertToDouble +1721E-17
+} 0x3d136071dcae4565
+test expr-28.609 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -7979 E-27 x -134ac304747faf_111111111111110& E-77
+    convertToDouble -7979E-27
+} 0xbb234ac304747fb0
+test expr-28.610 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +6884 E-17 x 136071dcae4564_111111111111110& E-44
+    convertToDouble +6884E-17
+} 0x3d336071dcae4565
+test expr-28.611 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -8605 E-18 x -136071dcae4564_111111111111110& E-47
+    convertToDouble -8605E-18
+} 0xbd036071dcae4565
+test expr-28.612 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +82854 E27 x 10570ed9e3cecc_00000000000000001& E106
+    convertToDouble +82854E27
+} 0x4690570ed9e3cecc
+test expr-28.613 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -55684 E24 x -167d9735144ae3_00000000000000001& E95
+    convertToDouble -55684E24
+} 0xc5e67d9735144ae3
+test expr-28.614 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +27842 E24 x 167d9735144ae3_00000000000000001& E94
+    convertToDouble +27842E24
+} 0x45d67d9735144ae3
+test expr-28.615 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -48959 E25 x -18b7cd6ca56f85_00000000000000001& E98
+    convertToDouble -48959E25
+} 0xc618b7cd6ca56f85
+test expr-28.616 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +81921 E-17 x 1cd2c9a6cdd003_000000000000000000001& E-41
+    convertToDouble +81921E-17
+} 0x3d6cd2c9a6cdd003
+test expr-28.617 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -76207 E-8 x -18f8b4dd16f1df_0000000000000000001& E-11
+    convertToDouble -76207E-8
+} 0xbf48f8b4dd16f1df
+test expr-28.618 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +4147 E-15 x 123d1b5eb1d778_000000000000000001& E-38
+    convertToDouble +4147E-15
+} 0x3d923d1b5eb1d778
+test expr-28.619 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -41470 E-16 x -123d1b5eb1d778_000000000000000001& E-38
+    convertToDouble -41470E-16
+} 0xbd923d1b5eb1d778
+test expr-28.620 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +89309 E24 x 12092ac5f2019e_1111111111111111110& E96
+    convertToDouble +89309E24
+} 0x45f2092ac5f2019f
+test expr-28.621 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +75859 E26 x 17efd75a2938eb_1111111111111111111110& E102
+    convertToDouble +75859E26
+} 0x4657efd75a2938ec
+test expr-28.622 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -75859 E25 x -132645e1ba93ef_1111111111111111111110& E99
+    convertToDouble -75859E25
+} 0xc6232645e1ba93f0
+test expr-28.623 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +14257 E-23 x 150a246ecd44f2_1111111111111111110& E-63
+    convertToDouble +14257E-23
+} 0x3c050a246ecd44f3
+test expr-28.624 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -28514 E-23 x -150a246ecd44f2_1111111111111111110& E-62
+    convertToDouble -28514E-23
+} 0xbc150a246ecd44f3
+test expr-28.625 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +57028 E-23 x 150a246ecd44f2_1111111111111111110& E-61
+    convertToDouble +57028E-23
+} 0x3c250a246ecd44f3
+test expr-28.626 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -71285 E-24 x -150a246ecd44f2_1111111111111111110& E-64
+    convertToDouble -71285E-24
+} 0xbbf50a246ecd44f3
+test expr-28.627 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +344863 E27 x 1100c873963d6d_00000000000000000001& E108
+    convertToDouble +344863E27
+} 0x46b100c873963d6d
+test expr-28.628 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -951735 E27 x -17764ad224e24a_000000000000000000001& E109
+    convertToDouble -951735E27
+} 0xc6c7764ad224e24a
+test expr-28.629 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +200677 E23 x 1035e73135b834_0000000000000000001& E94
+    convertToDouble +200677E23
+} 0x45d035e73135b834
+test expr-28.630 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -401354 E24 x -144360fd832641_0000000000000000001& E98
+    convertToDouble -401354E24
+} 0xc6144360fd832641
+test expr-28.631 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +839604 E-11 x 119b96f36ec68b_00000000000000000000000001& E-17
+    convertToDouble +839604E-11
+} 0x3ee19b96f36ec68b
+test expr-28.632 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -209901 E-11 x -119b96f36ec68b_00000000000000000000000001& E-19
+    convertToDouble -209901E-11
+} 0xbec19b96f36ec68b
+test expr-28.633 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +419802 E-11 x 119b96f36ec68b_00000000000000000000000001& E-18
+    convertToDouble +419802E-11
+} 0x3ed19b96f36ec68b
+test expr-28.634 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -537734 E-24 x -13d6c1088ae40e_0000000000000000000001& E-61
+    convertToDouble -537734E-24
+} 0xbc23d6c1088ae40e
+test expr-28.635 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +910308 E26 x 11f3e1839eeab0_11111111111111111111110& E106
+    convertToDouble +910308E26
+} 0x4691f3e1839eeab1
+test expr-28.636 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -227577 E26 x -11f3e1839eeab0_11111111111111111111110& E104
+    convertToDouble -227577E26
+} 0xc671f3e1839eeab1
+test expr-28.637 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +455154 E26 x 11f3e1839eeab0_11111111111111111111110& E105
+    convertToDouble +455154E26
+} 0x4681f3e1839eeab1
+test expr-28.638 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -531013 E25 x -10c17d25834171_11111111111111111111110& E102
+    convertToDouble -531013E25
+} 0xc650c17d25834172
+test expr-28.639 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +963019 E-21 x 11592429784914_11111111111111111111110& E-50
+    convertToDouble +963019E-21
+} 0x3cd1592429784915
+test expr-28.640 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -519827 E-13 x -1be872a8b30d7c_11111111111111111111110& E-25
+    convertToDouble -519827E-13
+} 0xbe6be872a8b30d7d
+test expr-28.641 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +623402 E-27 x 178d2c97bde2a0_11111111111111111111110& E-71
+    convertToDouble +623402E-27
+} 0x3b878d2c97bde2a1
+test expr-28.642 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -311701 E-27 x -178d2c97bde2a0_11111111111111111111110& E-72
+    convertToDouble -311701E-27
+} 0xbb778d2c97bde2a1
+test expr-28.643 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +9613651 E26 x 17b31116270d9b_000000000000000000000001& E109
+    convertToDouble +9613651E26
+} 0x46c7b31116270d9b
+test expr-28.644 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -9191316 E23 x -1733bfae0801fd_0000000000000000000001& E99
+    convertToDouble -9191316E23
+} 0xc62733bfae0801fd
+test expr-28.645 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +4595658 E23 x 1733bfae0801fd_0000000000000000000001& E98
+    convertToDouble +4595658E23
+} 0x461733bfae0801fd
+test expr-28.646 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -2297829 E23 x -1733bfae0801fd_0000000000000000000001& E97
+    convertToDouble -2297829E23
+} 0xc60733bfae0801fd
+test expr-28.647 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -1679208 E-11 x -119b96f36ec68b_00000000000000000000000001& E-16
+    convertToDouble -1679208E-11
+} 0xbef19b96f36ec68b
+test expr-28.648 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +3379223 E27 x 14d3794ce2fc25_1111111111111111111111110& E111
+    convertToDouble +3379223E27
+} 0x46e4d3794ce2fc26
+test expr-28.649 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -6758446 E27 x -14d3794ce2fc25_1111111111111111111111110& E112
+    convertToDouble -6758446E27
+} 0xc6f4d3794ce2fc26
+test expr-28.650 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +5444097 E-21 x 18849dd33c95ae_11111111111111111111111111110& E-48
+    convertToDouble +5444097E-21
+} 0x3cf8849dd33c95af
+test expr-28.651 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -8399969 E-27 x -13d5783e85fcf7_1111111111111111111111110& E-67
+    convertToDouble -8399969E-27
+} 0xbbc3d5783e85fcf8
+test expr-28.652 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +8366487 E-16 x 1cbf3d630403af_1111111111111111111111110& E-31
+    convertToDouble +8366487E-16
+} 0x3e0cbf3d630403b0
+test expr-28.653 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -8366487 E-15 x -11f7865de2824d_11111111111111111111111110& E-27
+    convertToDouble -8366487E-15
+} 0xbe41f7865de2824e
+test expr-28.654 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +65060671 E25 x 1009e7d474572a_0000000000000000000000000001& E109
+    convertToDouble +65060671E25
+} 0x46c009e7d474572a
+test expr-28.655 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +65212389 E23 x 1493d098d37657_000000000000000000000000001& E102
+    convertToDouble +65212389E23
+} 0x465493d098d37657
+test expr-28.656 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +55544957 E-13 x 174c1826f3010c_00000000000000000000000000001& E-18
+    convertToDouble +55544957E-13
+} 0x3ed74c1826f3010c
+test expr-28.657 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -51040905 E-20 x -11f55b23c8bf2d_0000000000000000000000000001& E-41
+    convertToDouble -51040905E-20
+} 0xbd61f55b23c8bf2d
+test expr-28.658 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +99585767 E-22 x 166cba8699f0f2_0000000000000000000000000001& E-47
+    convertToDouble +99585767E-22
+} 0x3d066cba8699f0f2
+test expr-28.659 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -99585767 E-23 x -11f095387b2728_0000000000000000000000000001& E-50
+    convertToDouble -99585767E-23
+} 0xbcd1f095387b2728
+test expr-28.660 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +40978393 E26 x 1941401cca2bfd_1111111111111111111111111110& E111
+    convertToDouble +40978393E26
+} 0x46e941401cca2bfe
+test expr-28.661 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -67488159 E24 x -1a9e90059d12db_11111111111111111111111111110& E105
+    convertToDouble -67488159E24
+} 0xc68a9e90059d12dc
+test expr-28.662 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +69005339 E23 x 15c634f6ef1f95_111111111111111111111111110& E102
+    convertToDouble +69005339E23
+} 0x4655c634f6ef1f96
+test expr-28.663 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -81956786 E26 x -1941401cca2bfd_1111111111111111111111111110& E112
+    convertToDouble -81956786E26
+} 0xc6f941401cca2bfe
+test expr-28.664 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -87105552 E-21 x -18849dd33c95ae_11111111111111111111111111110& E-44
+    convertToDouble -87105552E-21
+} 0xbd38849dd33c95af
+test expr-28.665 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +10888194 E-21 x 18849dd33c95ae_11111111111111111111111111110& E-47
+    convertToDouble +10888194E-21
+} 0x3d08849dd33c95af
+test expr-28.666 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -21776388 E-21 x -18849dd33c95ae_11111111111111111111111111110& E-46
+    convertToDouble -21776388E-21
+} 0xbd18849dd33c95af
+test expr-28.667 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +635806667 E27 x 1e9cec176c96f8_000000000000000000000000000000001& E118
+    convertToDouble +635806667E27
+} 0x475e9cec176c96f8
+test expr-28.668 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -670026614 E25 x -14a593f89f4194_00000000000000000000000000000001& E112
+    convertToDouble -670026614E25
+} 0xc6f4a593f89f4194
+test expr-28.669 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +335013307 E26 x 19cef8f6c711f9_0000000000000000000000000000001& E114
+    convertToDouble +335013307E26
+} 0x4719cef8f6c711f9
+test expr-28.670 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -335013307 E25 x -14a593f89f4194_00000000000000000000000000000001& E111
+    convertToDouble -335013307E25
+} 0xc6e4a593f89f4194
+test expr-28.671 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +371790617 E-24 x 1aca538c61ba9c_000000000000000000000000000000001& E-52
+    convertToDouble +371790617E-24
+} 0x3cbaca538c61ba9c
+test expr-28.672 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -371790617 E-25 x -156ea93d1afbb0_0000000000000000000000000000000001& E-55
+    convertToDouble -371790617E-25
+} 0xbc856ea93d1afbb0
+test expr-28.673 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +743581234 E-24 x 1aca538c61ba9c_000000000000000000000000000000001& E-51
+    convertToDouble +743581234E-24
+} 0x3ccaca538c61ba9c
+test expr-28.674 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -743581234 E-25 x -156ea93d1afbb0_0000000000000000000000000000000001& E-54
+    convertToDouble -743581234E-25
+} 0xbc956ea93d1afbb0
+test expr-28.675 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +202464477 E24 x 13f6ec0435ce24_111111111111111111111111111110& E107
+    convertToDouble +202464477E24
+} 0x46a3f6ec0435ce25
+test expr-28.676 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -404928954 E24 x -13f6ec0435ce24_111111111111111111111111111110& E108
+    convertToDouble -404928954E24
+} 0xc6b3f6ec0435ce25
+test expr-28.677 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +997853758 E27 x 1805bfa33b98fa_111111111111111111111111111110& E119
+    convertToDouble +997853758E27
+} 0x476805bfa33b98fb
+test expr-28.678 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -997853758 E26 x -1337cc829613fb_111111111111111111111111111110& E116
+    convertToDouble -997853758E26
+} 0xc73337cc829613fc
+test expr-28.679 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +405498418 E-17 x 116a8093df66a6_111111111111111111111111111111110& E-28
+    convertToDouble +405498418E-17
+} 0x3e316a8093df66a7
+test expr-28.680 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -582579084 E-14 x -186f653140a658_111111111111111111111111111111110& E-18
+    convertToDouble -582579084E-14
+} 0xbed86f653140a659
+test expr-28.681 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +608247627 E-18 x 14e633e4a5ae61_111111111111111111111111111111110& E-31
+    convertToDouble +608247627E-18
+} 0x3e04e633e4a5ae62
+test expr-28.682 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -291289542 E-14 x -186f653140a658_111111111111111111111111111111110& E-19
+    convertToDouble -291289542E-14
+} 0xbec86f653140a659
+test expr-28.683 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -9537100005 E26 x -16f5b11191713a_000000000000000000000000000000001& E119
+    convertToDouble -9537100005E26
+} 0xc766f5b11191713a
+test expr-28.684 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +6358066670 E27 x 1322138ea3de5b_000000000000000000000000000000001& E122
+    convertToDouble +6358066670E27
+} 0x479322138ea3de5b
+test expr-28.685 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -1271613334 E27 x -1e9cec176c96f8_000000000000000000000000000000001& E119
+    convertToDouble -1271613334E27
+} 0xc76e9cec176c96f8
+test expr-28.686 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +5229646999 E-16 x 118c3b89731f3d_000000000000000000000000000000000001& E-21
+    convertToDouble +5229646999E-16
+} 0x3ea18c3b89731f3d
+test expr-28.687 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +5229646999 E-17 x 1c13927584fec8_00000000000000000000000000000000001& E-25
+    convertToDouble +5229646999E-17
+} 0x3e6c13927584fec8
+test expr-28.688 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +4429943614 E24 x 1b4d37fa06864a_1111111111111111111111111111111110& E111
+    convertToDouble +4429943614E24
+} 0x46eb4d37fa06864b
+test expr-28.689 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -8859887228 E24 x -1b4d37fa06864a_1111111111111111111111111111111110& E112
+    convertToDouble -8859887228E24
+} 0xc6fb4d37fa06864b
+test expr-28.690 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +2214971807 E24 x 1b4d37fa06864a_1111111111111111111111111111111110& E110
+    convertToDouble +2214971807E24
+} 0x46db4d37fa06864b
+test expr-28.691 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -4176887093 E26 x -141c692c5bd07a_111111111111111111111111111111110& E118
+    convertToDouble -4176887093E26
+} 0xc7541c692c5bd07b
+test expr-28.692 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +4003495257 E-20 x 16026b2e07ec06_111111111111111111111111111111111110& E-35
+    convertToDouble +4003495257E-20
+} 0x3dc6026b2e07ec07
+test expr-28.693 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -4361901637 E-23 x -188e29a9d7c5b8_11111111111111111111111111111111110& E-45
+    convertToDouble -4361901637E-23
+} 0xbd288e29a9d7c5b9
+test expr-28.694 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +8723803274 E-23 x 188e29a9d7c5b8_11111111111111111111111111111111110& E-44
+    convertToDouble +8723803274E-23
+} 0x3d388e29a9d7c5b9
+test expr-28.695 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -8006990514 E-20 x -16026b2e07ec06_111111111111111111111111111111111110& E-34
+    convertToDouble -8006990514E-20
+} 0xbdd6026b2e07ec07
+test expr-28.696 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +72835110098 E27 x 1b65c41711fb6d_0000000000000000000000000000000000001& E125
+    convertToDouble +72835110098E27
+} 0x47cb65c41711fb6d
+test expr-28.697 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -36417555049 E27 x -1b65c41711fb6d_0000000000000000000000000000000000001& E124
+    convertToDouble -36417555049E27
+} 0xc7bb65c41711fb6d
+test expr-28.698 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +84279630104 E25 x 144a221b1cf62e_000000000000000000000000000000000001& E119
+    convertToDouble +84279630104E25
+} 0x47644a221b1cf62e
+test expr-28.699 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -84279630104 E24 x -103b4e7c172b58_000000000000000000000000000000000001& E116
+    convertToDouble -84279630104E24
+} 0xc7303b4e7c172b58
+test expr-28.700 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +21206176437 E-27 x 1872f563ae0cc9_0000000000000000000000000000000000001& E-56
+    convertToDouble +21206176437E-27
+} 0x3c7872f563ae0cc9
+test expr-28.701 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -66461566917 E-22 x -1d3ae83e4322b3_00000000000000000000000000000000000001& E-38
+    convertToDouble -66461566917E-22
+} 0xbd9d3ae83e4322b3
+test expr-28.702 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +64808355539 E-16 x 1b2ebe83265fbf_00000000000000000000000000000000000001& E-18
+    convertToDouble +64808355539E-16
+} 0x3edb2ebe83265fbf
+test expr-28.703 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -84932679673 E-19 x -123d39339f1bf6_00000000000000000000000000000000000001& E-27
+    convertToDouble -84932679673E-19
+} 0xbe423d39339f1bf6
+test expr-28.704 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +65205430094 E26 x 139f3e5d7fd76a_1111111111111111111111111111111111110& E122
+    convertToDouble +65205430094E26
+} 0x47939f3e5d7fd76b
+test expr-28.705 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -68384463429 E25 x -107684982f634e_1111111111111111111111111111111111111110& E119
+    convertToDouble -68384463429E25
+} 0xc7607684982f634f
+test expr-28.706 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +32602715047 E26 x 139f3e5d7fd76a_1111111111111111111111111111111111110& E121
+    convertToDouble +32602715047E26
+} 0x47839f3e5d7fd76b
+test expr-28.707 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -62662203426 E27 x -1792269424688d_111111111111111111111111111111111110& E125
+    convertToDouble -62662203426E27
+} 0xc7c792269424688e
+test expr-28.708 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +58784444678 E-18 x 1f8f45c64b4682_111111111111111111111111111111111111110& E-25
+    convertToDouble +58784444678E-18
+} 0x3e6f8f45c64b4683
+test expr-28.709 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -50980203373 E-21 x -1c06d366394440_11111111111111111111111111111111111111111110& E-35
+    convertToDouble -50980203373E-21
+} 0xbdcc06d366394441
+test expr-28.710 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +29392222339 E-18 x 1f8f45c64b4682_111111111111111111111111111111111111110& E-26
+    convertToDouble +29392222339E-18
+} 0x3e5f8f45c64b4683
+test expr-28.711 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -75529940323 E-27 x -15c5203c0aad52_1111111111111111111111111111111111111110& E-54
+    convertToDouble -75529940323E-27
+} 0xbc95c5203c0aad53
+test expr-28.712 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -937495906299 E26 x -11a1e0ebb6af11_000000000000000000000000000000000000000001& E126
+    convertToDouble -937495906299E26
+} 0xc7d1a1e0ebb6af11
+test expr-28.713 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +842642485799 E-20 x 121879decdd7cb_000000000000000000000000000000000000000001& E-27
+    convertToDouble +842642485799E-20
+} 0x3e421879decdd7cb
+test expr-28.714 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -387824150699 E-23 x -110e8302245571_00000000000000000000000000000000000000001& E-38
+    convertToDouble -387824150699E-23
+} 0xbd910e8302245571
+test expr-28.715 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +924948814726 E-27 x 10a992d1fc6ded_00000000000000000000000000000000000000001& E-50
+    convertToDouble +924948814726E-27
+} 0x3cd0a992d1fc6ded
+test expr-28.716 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -775648301398 E-23 x -110e8302245571_00000000000000000000000000000000000000001& E-37
+    convertToDouble -775648301398E-23
+} 0xbda10e8302245571
+test expr-28.717 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +547075707432 E25 x 107684982f634e_1111111111111111111111111111111111111110& E122
+    convertToDouble +547075707432E25
+} 0x47907684982f634f
+test expr-28.718 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +683844634290 E24 x 107684982f634e_1111111111111111111111111111111111111110& E119
+    convertToDouble +683844634290E24
+} 0x47607684982f634f
+test expr-28.719 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -136768926858 E25 x -107684982f634e_1111111111111111111111111111111111111110& E120
+    convertToDouble -136768926858E25
+} 0xc7707684982f634f
+test expr-28.720 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +509802033730 E-22 x 1c06d366394440_11111111111111111111111111111111111111111110& E-35
+    convertToDouble +509802033730E-22
+} 0x3dcc06d366394441
+test expr-28.721 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +101960406746 E-21 x 1c06d366394440_11111111111111111111111111111111111111111110& E-34
+    convertToDouble +101960406746E-21
+} 0x3ddc06d366394441
+test expr-28.722 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -815683253968 E-21 x -1c06d366394440_11111111111111111111111111111111111111111110& E-31
+    convertToDouble -815683253968E-21
+} 0xbe0c06d366394441
+test expr-28.723 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +7344124123524 E24 x 1619b519dd6833_00000000000000000000000000000000000000000001& E122
+    convertToDouble +7344124123524E24
+} 0x479619b519dd6833
+test expr-28.724 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -9180155154405 E23 x -1619b519dd6833_00000000000000000000000000000000000000000001& E119
+    convertToDouble -9180155154405E23
+} 0xc76619b519dd6833
+test expr-28.725 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +6479463327323 E27 x 130a9b3e9bd05e_00000000000000000000000000000000000000000001& E132
+    convertToDouble +6479463327323E27
+} 0x48330a9b3e9bd05e
+test expr-28.726 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -1836031030881 E24 x -1619b519dd6833_00000000000000000000000000000000000000000001& E120
+    convertToDouble -1836031030881E24
+} 0xc77619b519dd6833
+test expr-28.727 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +4337269293039 E-19 x 1d1b5f354c63d6_00000000000000000000000000000000000000000001& E-22
+    convertToDouble +4337269293039E-19
+} 0x3e9d1b5f354c63d6
+test expr-28.728 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -4599163554373 E-23 x -1948bf4d34088d_00000000000000000000000000000000000000000001& E-35
+    convertToDouble -4599163554373E-23
+} 0xbdc948bf4d34088d
+test expr-28.729 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +9198327108746 E-23 x 1948bf4d34088d_00000000000000000000000000000000000000000001& E-34
+    convertToDouble +9198327108746E-23
+} 0x3dd948bf4d34088d
+test expr-28.730 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +4812803938347 E27 x 1c4980a4ee94ce_111111111111111111111111111111111111111111110& E131
+    convertToDouble +4812803938347E27
+} 0x482c4980a4ee94cf
+test expr-28.731 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -8412030890011 E23 x -14405075e52db9_11111111111111111111111111111111111111111110& E119
+    convertToDouble -8412030890011E23
+} 0xc764405075e52dba
+test expr-28.732 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +9625607876694 E27 x 1c4980a4ee94ce_111111111111111111111111111111111111111111110& E132
+    convertToDouble +9625607876694E27
+} 0x483c4980a4ee94cf
+test expr-28.733 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -4739968828249 E24 x -1c87140cdf8a1d_1111111111111111111111111111111111111111110& E121
+    convertToDouble -4739968828249E24
+} 0xc78c87140cdf8a1e
+test expr-28.734 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +9697183891673 E-23 x 1aa7c959b6a666_11111111111111111111111111111111111111111111110& E-34
+    convertToDouble +9697183891673E-23
+} 0x3ddaa7c959b6a667
+test expr-28.735 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -7368108517543 E-20 x -13c7535bbd85a1_1111111111111111111111111111111111111111111110& E-24
+    convertToDouble -7368108517543E-20
+} 0xbe73c7535bbd85a2
+test expr-28.736 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +51461358161422 E25 x 18326f87d4cae0_0000000000000000000000000000000000000000000000001& E128
+    convertToDouble +51461358161422E25
+} 0x47f8326f87d4cae0
+test expr-28.737 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -77192037242133 E26 x -16af488f577e32_0000000000000000000000000000000000000000000000001& E132
+    convertToDouble -77192037242133E26
+} 0xc836af488f577e32
+test expr-28.738 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +77192037242133 E25 x 1225d3a5df9828_0000000000000000000000000000000000000000000000001& E129
+    convertToDouble +77192037242133E25
+} 0x480225d3a5df9828
+test expr-28.739 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -51461358161422 E27 x -12e767221e3e7f_0000000000000000000000000000000000000000000000001& E135
+    convertToDouble -51461358161422E27
+} 0xc862e767221e3e7f
+test expr-28.740 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +43999661561541 E-21 x 179f4476d372a3_0000000000000000000000000000000000000000000000001& E-25
+    convertToDouble +43999661561541E-21
+} 0x3e679f4476d372a3
+test expr-28.741 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -87999323123082 E-21 x -179f4476d372a3_0000000000000000000000000000000000000000000000001& E-24
+    convertToDouble -87999323123082E-21
+} 0xbe779f4476d372a3
+test expr-28.742 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +48374886826137 E-26 x 110538f23350d5_00000000000000000000000000000000000000000000001& E-41
+    convertToDouble +48374886826137E-26
+} 0x3d610538f23350d5
+test expr-28.743 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -57684246567111 E-23 x -13d1f5c1b8a912_00000000000000000000000000000000000000000000001& E-31
+    convertToDouble -57684246567111E-23
+} 0xbe03d1f5c1b8a912
+test expr-28.744 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +87192805957686 E23 x 1a3d16e55a9664_1111111111111111111111111111111111111111111110& E122
+    convertToDouble +87192805957686E23
+} 0x479a3d16e55a9665
+test expr-28.745 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -75108713005913 E24 x -1c40b4baa79655_11111111111111111111111111111111111111111111110& E125
+    convertToDouble -75108713005913E24
+} 0xc7cc40b4baa79656
+test expr-28.746 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +64233110587487 E27 x 179873e38669a6_1111111111111111111111111111111111111111111110& E135
+    convertToDouble +64233110587487E27
+} 0x48679873e38669a7
+test expr-28.747 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -77577471133384 E-23 x -1aa7c959b6a666_11111111111111111111111111111111111111111111110& E-31
+    convertToDouble -77577471133384E-23
+} 0xbe0aa7c959b6a667
+test expr-28.748 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +48485919458365 E-24 x 1aa7c959b6a666_11111111111111111111111111111111111111111111110& E-35
+    convertToDouble +48485919458365E-24
+} 0x3dcaa7c959b6a667
+test expr-28.749 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -56908598265713 E-26 x -1405deef4bdef5_111111111111111111111111111111111111111111111110& E-41
+    convertToDouble -56908598265713E-26
+} 0xbd6405deef4bdef6
+test expr-28.750 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +589722294620133 E23 x 162ed1b287caef_00000000000000000000000000000000000000000000000001& E125
+    convertToDouble +589722294620133E23
+} 0x47c62ed1b287caef
+test expr-28.751 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +652835804449289 E-22 x 118640e490b087_0000000000000000000000000000000000000000000000000001& E-24
+    convertToDouble +652835804449289E-22
+} 0x3e718640e490b087
+test expr-28.752 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -656415363936202 E-23 x -1c315cfe25d201_00000000000000000000000000000000000000000000000001& E-28
+    convertToDouble -656415363936202E-23
+} 0xbe3c315cfe25d201
+test expr-28.753 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +579336749585745 E-25 x 1fd9709d9aeb19_00000000000000000000000000000000000000000000000001& E-35
+    convertToDouble +579336749585745E-25
+} 0x3dcfd9709d9aeb19
+test expr-28.754 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -381292764980839 E-26 x -10c4f9921c3f8f_00000000000000000000000000000000000000000000000001& E-38
+    convertToDouble -381292764980839E-26
+} 0xbd90c4f9921c3f8f
+test expr-28.755 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +965265859649698 E23 x 12279607edcb0c_1111111111111111111111111111111111111111111111110& E126
+    convertToDouble +965265859649698E23
+} 0x47d2279607edcb0d
+test expr-28.756 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -848925235434882 E27 x -137d88ba4b43e3_1111111111111111111111111111111111111111111111111110& E139
+    convertToDouble -848925235434882E27
+} 0xc8a37d88ba4b43e4
+test expr-28.757 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +536177612222491 E23 x 142b33dd3acafd_11111111111111111111111111111111111111111111111110& E125
+    convertToDouble +536177612222491E23
+} 0x47c42b33dd3acafe
+test expr-28.758 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -424462617717441 E27 x -137d88ba4b43e3_1111111111111111111111111111111111111111111111111110& E138
+    convertToDouble -424462617717441E27
+} 0xc8937d88ba4b43e4
+test expr-28.759 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +276009279888989 E-27 x 136c242313c288_111111111111111111111111111111111111111111111111110& E-42
+    convertToDouble +276009279888989E-27
+} 0x3d536c242313c289
+test expr-28.760 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -608927158043691 E-26 x -1ac7e909c22f09_11111111111111111111111111111111111111111111111110& E-38
+    convertToDouble -608927158043691E-26
+} 0xbd9ac7e909c22f0a
+test expr-28.761 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +552018559777978 E-27 x 136c242313c288_111111111111111111111111111111111111111111111111110& E-41
+    convertToDouble +552018559777978E-27
+} 0x3d636c242313c289
+test expr-28.762 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -425678377667758 E-22 x -16da7aa49bdcd5_1111111111111111111111111111111111111111111111110& E-25
+    convertToDouble -425678377667758E-22
+} 0xbe66da7aa49bdcd6
+test expr-28.763 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +8013702726927119 E26 x 126607f8f1b29e_00000000000000000000000000000000000000000000000000001& E139
+    convertToDouble +8013702726927119E26
+} 0x48a26607f8f1b29e
+test expr-28.764 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +8862627962362001 E27 x 196f3b0e7787c2_00000000000000000000000000000000000000000000000000001& E142
+    convertToDouble +8862627962362001E27
+} 0x48d96f3b0e7787c2
+test expr-28.765 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -5068007907757162 E26 x -17456a27848397_00000000000000000000000000000000000000000000000000001& E138
+    convertToDouble -5068007907757162E26
+} 0xc897456a27848397
+test expr-28.766 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -7379714799828406 E-23 x -13cf4d2839e036_00000000000000000000000000000000000000000000000000001& E-24
+    convertToDouble -7379714799828406E-23
+} 0xbe73cf4d2839e036
+test expr-28.767 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +4114538064016107 E-27 x 12188eda98010c_0000000000000000000000000000000000000000000000000001& E-38
+    convertToDouble +4114538064016107E-27
+} 0x3d92188eda98010c
+test expr-28.768 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -3689857399914203 E-23 x -13cf4d2839e036_00000000000000000000000000000000000000000000000000001& E-25
+    convertToDouble -3689857399914203E-23
+} 0xbe63cf4d2839e036
+test expr-28.769 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +5575954851815478 E23 x 1a37cfbf2ffdb5_1111111111111111111111111111111111111111111111111110& E128
+    convertToDouble +5575954851815478E23
+} 0x47fa37cfbf2ffdb6
+test expr-28.770 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +3395700941739528 E27 x 137d88ba4b43e3_1111111111111111111111111111111111111111111111111110& E141
+    convertToDouble +3395700941739528E27
+} 0x48c37d88ba4b43e4
+test expr-28.771 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +4115535777581961 E-23 x 1618596be30fe4_111111111111111111111111111111111111111111111111111110& E-25
+    convertToDouble +4115535777581961E-23
+} 0x3e6618596be30fe5
+test expr-28.772 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -8231071555163922 E-23 x -1618596be30fe4_111111111111111111111111111111111111111111111111111110& E-24
+    convertToDouble -8231071555163922E-23
+} 0xbe7618596be30fe5
+test expr-28.773 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +6550246696190871 E-26 x 1201538b0f8c69_111111111111111111111111111111111111111111111111111110& E-34
+    convertToDouble +6550246696190871E-26
+} 0x3dd201538b0f8c6a
+test expr-28.774 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -68083046403986701 E27 x -186c70ba8ba28d_000000000000000000000000000000000000000000000000000000001& E145
+    convertToDouble -68083046403986701E27
+} 0xc9086c70ba8ba28d
+test expr-28.775 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +43566388595783643 E27 x 1f41e1bf48b03f_111111111111111111111111111111111111111111111111111111110& E144
+    convertToDouble +43566388595783643E27
+} 0x48ff41e1bf48b040
+test expr-28.776 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -87132777191567286 E27 x -1f41e1bf48b03f_111111111111111111111111111111111111111111111111111111110& E145
+    convertToDouble -87132777191567286E27
+} 0xc90f41e1bf48b040
+test expr-28.777 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +59644881059342141 E25 x 1b6338d9d8ae38_11111111111111111111111111111111111111111111111111111110& E138
+    convertToDouble +59644881059342141E25
+} 0x489b6338d9d8ae39
+test expr-28.778 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -83852770718576667 E23 x -18a4619ed6f442_111111111111111111111111111111111111111111111111111111110& E132
+    convertToDouble -83852770718576667E23
+} 0xc838a4619ed6f443
+test expr-28.779 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +99482967418206961 E-25 x 155d224bfed7ac_11111111111111111111111111111111111111111111111111111111110& E-27
+    convertToDouble +99482967418206961E-25
+} 0x3e455d224bfed7ad
+test expr-28.780 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -99482967418206961 E-26 x -11174ea3324623_11111111111111111111111111111111111111111111111111111111110& E-30
+    convertToDouble -99482967418206961E-26
+} 0xbe11174ea3324624
+test expr-28.781 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +87446669969994614 E-27 x 1809832942376d_11111111111111111111111111111111111111111111111111111110& E-34
+    convertToDouble +87446669969994614E-27
+} 0x3dd809832942376e
+test expr-28.782 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -43723334984997307 E-27 x -1809832942376d_11111111111111111111111111111111111111111111111111111110& E-35
+    convertToDouble -43723334984997307E-27
+} 0xbdc809832942376e
+test expr-28.783 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +5 E24 x 108b2a2c280290_1001& E82
+    convertToDouble +5E24
+} 0x45108b2a2c280291
+test expr-28.784 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -8 E25 x -108b2a2c280290_1001& E86
+    convertToDouble -8E25
+} 0xc5508b2a2c280291
+test expr-28.785 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +1 E25 x 108b2a2c280290_1001& E83
+    convertToDouble +1E25
+} 0x45208b2a2c280291
+test expr-28.786 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -4 E25 x -108b2a2c280290_1001& E85
+    convertToDouble -4E25
+} 0xc5408b2a2c280291
+test expr-28.787 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +2 E-5 x 14f8b588e368f0_100001& E-16
+    convertToDouble +2E-5
+} 0x3ef4f8b588e368f1
+test expr-28.788 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -5 E-6 x -14f8b588e368f0_100001& E-18
+    convertToDouble -5E-6
+} 0xbed4f8b588e368f1
+test expr-28.789 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +4 E-5 x 14f8b588e368f0_100001& E-15
+    convertToDouble +4E-5
+} 0x3f04f8b588e368f1
+test expr-28.790 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -3 E-20 x -11b578c96db19a_100001& E-65
+    convertToDouble -3E-20
+} 0xbbe1b578c96db19b
+test expr-28.791 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +3 E27 x 1363156bbee301_0110& E91
+    convertToDouble +3E27
+} 0x45a363156bbee301
+test expr-28.792 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -9 E26 x -1743b34e18439b_010& E89
+    convertToDouble -9E26
+} 0xc58743b34e18439b
+test expr-28.793 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +7 E25 x 1cf389cd46047d_00& E85
+    convertToDouble +7E25
+} 0x454cf389cd46047d
+test expr-28.794 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -6 E27 x -1363156bbee301_0110& E92
+    convertToDouble -6E27
+} 0xc5b363156bbee301
+test expr-28.795 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +2 E-21 x 12e3b40a0e9b4f_0111110& E-69
+    convertToDouble +2E-21
+} 0x3ba2e3b40a0e9b4f
+test expr-28.796 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -5 E-22 x -12e3b40a0e9b4f_0111110& E-71
+    convertToDouble -5E-22
+} 0xbb82e3b40a0e9b4f
+test expr-28.797 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -4 E-21 x -12e3b40a0e9b4f_0111110& E-68
+    convertToDouble -4E-21
+} 0xbbb2e3b40a0e9b4f
+test expr-28.798 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +87 E25 x 167d2d5406637c_10001& E89
+    convertToDouble +87E25
+} 0x45867d2d5406637d
+test expr-28.799 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -97 E24 x -140f232256e982_1000000001& E86
+    convertToDouble -97E24
+} 0xc5540f232256e983
+test expr-28.800 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +82 E-24 x 18c87154dff6c6_1000000001& E-74
+    convertToDouble +82E-24
+} 0x3b58c87154dff6c7
+test expr-28.801 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -41 E-24 x -18c87154dff6c6_1000000001& E-75
+    convertToDouble -41E-24
+} 0xbb48c87154dff6c7
+test expr-28.802 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +76 E-23 x 1cb644dc1633c0_10000001& E-71
+    convertToDouble +76E-23
+} 0x3b8cb644dc1633c1
+test expr-28.803 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +83 E25 x 15747ab143e353_011111111110& E89
+    convertToDouble +83E25
+} 0x4585747ab143e353
+test expr-28.804 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -50 E27 x -1431e0fae6d721_0111110& E95
+    convertToDouble -50E27
+} 0xc5e431e0fae6d721
+test expr-28.805 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +25 E27 x 1431e0fae6d721_0111110& E94
+    convertToDouble +25E27
+} 0x45d431e0fae6d721
+test expr-28.806 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -99 E27 x -13fe2e171cda19_011110& E96
+    convertToDouble -99E27
+} 0xc5f3fe2e171cda19
+test expr-28.807 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +97 E-10 x 14d4a1a3157dc7_011111110& E-27
+    convertToDouble +97E-10
+} 0x3e44d4a1a3157dc7
+test expr-28.808 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -57 E-20 x -15077f6f3242e7_011111110& E-61
+    convertToDouble -57E-20
+} 0xbc25077f6f3242e7
+test expr-28.809 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +997 E23 x 149e12f51c1a3c_10000000001& E86
+    convertToDouble +997E23
+} 0x45549e12f51c1a3d
+test expr-28.810 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +776 E24 x 140f232256e982_1000000001& E89
+    convertToDouble +776E24
+} 0x45840f232256e983
+test expr-28.811 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -388 E24 x -140f232256e982_1000000001& E88
+    convertToDouble -388E24
+} 0xc5740f232256e983
+test expr-28.812 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +521 E-10 x 1bf891c92c0890_100000000001& E-25
+    convertToDouble +521E-10
+} 0x3e6bf891c92c0891
+test expr-28.813 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -506 E-26 x -1877fa0260beb2_10000000001& E-78
+    convertToDouble -506E-26
+} 0xbb1877fa0260beb3
+test expr-28.814 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +739 E-10 x 13d65e8c76722c_10000000001& E-24
+    convertToDouble +739E-10
+} 0x3e73d65e8c76722d
+test expr-28.815 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -867 E-7 x -16ba56a8834168_100000000001& E-14
+    convertToDouble -867E-7
+} 0xbf16ba56a8834169
+test expr-28.816 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -415 E24 x -15747ab143e353_011111111110& E88
+    convertToDouble -415E24
+} 0xc575747ab143e353
+test expr-28.817 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +332 E25 x 15747ab143e353_011111111110& E91
+    convertToDouble +332E25
+} 0x45a5747ab143e353
+test expr-28.818 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -664 E25 x -15747ab143e353_011111111110& E92
+    convertToDouble -664E25
+} 0xc5b5747ab143e353
+test expr-28.819 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +291 E-13 x 1ffeebfc8b81b5_01111111111110& E-36
+    convertToDouble +291E-13
+} 0x3dbffeebfc8b81b5
+test expr-28.820 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -982 E-8 x -14981285e98e79_0111111111110& E-17
+    convertToDouble -982E-8
+} 0xbee4981285e98e79
+test expr-28.821 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +582 E-13 x 1ffeebfc8b81b5_01111111111110& E-35
+    convertToDouble +582E-13
+} 0x3dcffeebfc8b81b5
+test expr-28.822 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -491 E-8 x -14981285e98e79_0111111111110& E-18
+    convertToDouble -491E-8
+} 0xbed4981285e98e79
+test expr-28.823 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +4574 E26 x 1717c1a612f954_100000000001& E98
+    convertToDouble +4574E26
+} 0x461717c1a612f955
+test expr-28.824 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -8609 E26 x -15bb6f942546ee_1000000000001& E99
+    convertToDouble -8609E26
+} 0xc625bb6f942546ef
+test expr-28.825 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +2287 E26 x 1717c1a612f954_100000000001& E97
+    convertToDouble +2287E26
+} 0x460717c1a612f955
+test expr-28.826 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -4818 E24 x -1f22b65eb419a0_10000000001& E91
+    convertToDouble -4818E24
+} 0xc5af22b65eb419a1
+test expr-28.827 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +6529 E-8 x 111d89a8b5c142_100000000000001& E-14
+    convertToDouble +6529E-8
+} 0x3f111d89a8b5c143
+test expr-28.828 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -8151 E-21 x -12cb804b61b898_1000000000000001& E-57
+    convertToDouble -8151E-21
+} 0xbc62cb804b61b899
+test expr-28.829 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +1557 E-12 x 1abfc227ab1026_10000000000001& E-30
+    convertToDouble +1557E-12
+} 0x3e1abfc227ab1027
+test expr-28.830 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -2573 E-18 x -172cef1ebbca44_10000000000001& E-49
+    convertToDouble -2573E-18
+} 0xbce72cef1ebbca45
+test expr-28.831 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +4929 E-16 x 1157a604ed019f_0111111111111110& E-41
+    convertToDouble +4929E-16
+} 0x3d6157a604ed019f
+test expr-28.832 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -3053 E-22 x -1686f435fe6b6b_011111111111110& E-62
+    convertToDouble -3053E-22
+} 0xbc1686f435fe6b6b
+test expr-28.833 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +9858 E-16 x 1157a604ed019f_0111111111111110& E-40
+    convertToDouble +9858E-16
+} 0x3d7157a604ed019f
+test expr-28.834 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -7767 E-11 x -14d971170ed055_011111111111110& E-24
+    convertToDouble -7767E-11
+} 0xbe74d971170ed055
+test expr-28.835 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +54339 E26 x 1125782ec15cbe_100000000000000001& E102
+    convertToDouble +54339E26
+} 0x465125782ec15cbf
+test expr-28.836 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -62409 E25 x -1f822c980d4bb2_100000000000000001& E98
+    convertToDouble -62409E25
+} 0xc61f822c980d4bb3
+test expr-28.837 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +32819 E27 x 19e3be885fc16a_100000000000001& E104
+    convertToDouble +32819E27
+} 0x4679e3be885fc16b
+test expr-28.838 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -89849 E27 x -11b8371b6dda04_1000000000000001& E106
+    convertToDouble -89849E27
+} 0xc691b8371b6dda05
+test expr-28.839 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +63876 E-20 x 1703856844bdbe_1000000000000000000001& E-51
+    convertToDouble +63876E-20
+} 0x3cc703856844bdbf
+test expr-28.840 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -15969 E-20 x -1703856844bdbe_1000000000000000000001& E-53
+    convertToDouble -15969E-20
+} 0xbca703856844bdbf
+test expr-28.841 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +31938 E-20 x 1703856844bdbe_1000000000000000000001& E-52
+    convertToDouble +31938E-20
+} 0x3cb703856844bdbf
+test expr-28.842 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -79845 E-21 x -1703856844bdbe_1000000000000000000001& E-54
+    convertToDouble -79845E-21
+} 0xbc9703856844bdbf
+test expr-28.843 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +89306 E27 x 119cccff237e17_011111111111110& E106
+    convertToDouble +89306E27
+} 0x46919cccff237e17
+test expr-28.844 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -25487 E24 x -1496968ba07117_01111111111110& E94
+    convertToDouble -25487E24
+} 0xc5d496968ba07117
+test expr-28.845 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +79889 E24 x 10222a1c7e27d3_01111111111110& E96
+    convertToDouble +79889E24
+} 0x45f0222a1c7e27d3
+test expr-28.846 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -97379 E26 x -1eba3685911519_011111111111111110& E102
+    convertToDouble -97379E26
+} 0xc65eba3685911519
+test expr-28.847 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +81002 E-8 x 1a8af0b45d9531_0111111111111111110& E-11
+    convertToDouble +81002E-8
+} 0x3f4a8af0b45d9531
+test expr-28.848 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -43149 E-25 x -146064de6ecbed_011111111111111110& E-68
+    convertToDouble -43149E-25
+} 0xbbb46064de6ecbed
+test expr-28.849 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +40501 E-8 x 1a8af0b45d9531_0111111111111111110& E-12
+    convertToDouble +40501E-8
+} 0x3f3a8af0b45d9531
+test expr-28.850 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -60318 E-10 x -194c988f217e51_011111111111111110& E-18
+    convertToDouble -60318E-10
+} 0xbed94c988f217e51
+test expr-28.851 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -648299 E27 x -1ff6af0bf00100_10000000000000000001& E108
+    convertToDouble -648299E27
+} 0xc6bff6af0bf00101
+test expr-28.852 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +780649 E24 x 13b4d36f9edd18_10000000000000000001& E99
+    convertToDouble +780649E24
+} 0x4623b4d36f9edd19
+test expr-28.853 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +720919 E-14 x 1ef696965cbf04_10000000000000000000000001& E-28
+    convertToDouble +720919E-14
+} 0x3e3ef696965cbf05
+test expr-28.854 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -629703 E-11 x -1a69626d2629d0_1000000000000000000000001& E-18
+    convertToDouble -629703E-11
+} 0xbeda69626d2629d1
+test expr-28.855 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +557913 E24 x 1c2adb44b394bf_01111111111111111110& E98
+    convertToDouble +557913E24
+} 0x461c2adb44b394bf
+test expr-28.856 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -847899 E23 x -111f88fb93dce9_011111111111111111110& E96
+    convertToDouble -847899E23
+} 0xc5f11f88fb93dce9
+test expr-28.857 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +565445 E27 x 1be0eb55770d4d_0111111111111111110& E108
+    convertToDouble +565445E27
+} 0x46bbe0eb55770d4d
+test expr-28.858 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -736531 E24 x -1297b853d64ac7_01111111111111111110& E99
+    convertToDouble -736531E24
+} 0xc62297b853d64ac7
+test expr-28.859 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +680013 E-19 x 13240293e95c3b_01111111111111111111110& E-44
+    convertToDouble +680013E-19
+} 0x3d33240293e95c3b
+test expr-28.860 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -529981 E-10 x -1bc948d999ac11_011111111111111111110& E-15
+    convertToDouble -529981E-10
+} 0xbf0bc948d999ac11
+test expr-28.861 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +382923 E-23 x 11a8c1c10a1fc5_011111111111111111110& E-58
+    convertToDouble +382923E-23
+} 0x3c51a8c1c10a1fc5
+test expr-28.862 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -633614 E-18 x -164b166995a9b7_011111111111111111110& E-41
+    convertToDouble -633614E-18
+} 0xbd664b166995a9b7
+test expr-28.863 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +2165479 E27 x 1ab10c016c34b8_100000000000000000000001& E110
+    convertToDouble +2165479E27
+} 0x46dab10c016c34b9
+test expr-28.864 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -8661916 E27 x -1ab10c016c34b8_100000000000000000000001& E112
+    convertToDouble -8661916E27
+} 0xc6fab10c016c34b9
+test expr-28.865 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +4330958 E27 x 1ab10c016c34b8_100000000000000000000001& E111
+    convertToDouble +4330958E27
+} 0x46eab10c016c34b9
+test expr-28.866 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -9391993 E22 x -12f78bec748c98_1000000000000000000001& E96
+    convertToDouble -9391993E22
+} 0xc5f2f78bec748c99
+test expr-28.867 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -5767352 E-14 x -1ef696965cbf04_10000000000000000000000001& E-25
+    convertToDouble -5767352E-14
+} 0xbe6ef696965cbf05
+test expr-28.868 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +7209190 E-15 x 1ef696965cbf04_10000000000000000000000001& E-28
+    convertToDouble +7209190E-15
+} 0x3e3ef696965cbf05
+test expr-28.869 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -1441838 E-14 x -1ef696965cbf04_10000000000000000000000001& E-27
+    convertToDouble -1441838E-14
+} 0xbe4ef696965cbf05
+test expr-28.870 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +8478990 E22 x 111f88fb93dce9_011111111111111111110& E96
+    convertToDouble +8478990E22
+} 0x45f11f88fb93dce9
+test expr-28.871 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +1473062 E24 x 1297b853d64ac7_01111111111111111110& E100
+    convertToDouble +1473062E24
+} 0x463297b853d64ac7
+test expr-28.872 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +8366487 E-14 x 167567f55b22e1_0111111111111111111111110& E-24
+    convertToDouble +8366487E-14
+} 0x3e767567f55b22e1
+test expr-28.873 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -8399969 E-25 x -1efd8be1b15b43_011111111111111111111110& E-61
+    convertToDouble -8399969E-25
+} 0xbc2efd8be1b15b43
+test expr-28.874 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +9366737 E-12 x 13a4ba87ddc13f_011111111111111111111110& E-17
+    convertToDouble +9366737E-12
+} 0x3ee3a4ba87ddc13f
+test expr-28.875 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -9406141 E-13 x -1f8fd047c84d49_0111111111111111111111110& E-21
+    convertToDouble -9406141E-13
+} 0xbeaf8fd047c84d49
+test expr-28.876 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +65970979 E24 x 1a055dd68f3e3c_1000000000000000000000000001& E105
+    convertToDouble +65970979E24
+} 0x468a055dd68f3e3d
+test expr-28.877 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -65060671 E26 x -140c61c9916cf4_100000000000000000000000001& E112
+    convertToDouble -65060671E26
+} 0xc6f40c61c9916cf5
+test expr-28.878 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +54923002 E27 x 1527d37d8b38ea_10000000000000000000000001& E115
+    convertToDouble +54923002E27
+} 0x472527d37d8b38eb
+test expr-28.879 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -63846927 E25 x -1f7a9d79dad9b4_10000000000000000000000001& E108
+    convertToDouble -63846927E25
+} 0xc6bf7a9d79dad9b5
+test expr-28.880 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +99585767 E-21 x 1c07e928406d2e_100000000000000000000000001& E-44
+    convertToDouble +99585767E-21
+} 0x3d3c07e928406d2f
+test expr-28.881 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +67488159 E25 x 10a31a03822bc9_011111111111111111111111111110& E109
+    convertToDouble +67488159E25
+} 0x46c0a31a03822bc9
+test expr-28.882 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -69005339 E24 x -1b37c234aae77b_011111111111111111111111110& E105
+    convertToDouble -69005339E24
+} 0xc68b37c234aae77b
+test expr-28.883 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +81956786 E27 x 1f919023fcb6fd_0111111111111111111111111110& E115
+    convertToDouble +81956786E27
+} 0x472f919023fcb6fd
+test expr-28.884 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -40978393 E27 x -1f919023fcb6fd_0111111111111111111111111110& E114
+    convertToDouble -40978393E27
+} 0xc71f919023fcb6fd
+test expr-28.885 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +77505754 E-12 x 145152b6f85e09_0111111111111111111111111110& E-14
+    convertToDouble +77505754E-12
+} 0x3f145152b6f85e09
+test expr-28.886 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -38752877 E-12 x -145152b6f85e09_0111111111111111111111111110& E-15
+    convertToDouble -38752877E-12
+} 0xbf045152b6f85e09
+test expr-28.887 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +82772981 E-15 x 16381dae63505f_0111111111111111111111111111110& E-24
+    convertToDouble +82772981E-15
+} 0x3e76381dae63505f
+test expr-28.888 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -95593517 E-25 x -160ad862d8537d_0111111111111111111111111110& E-57
+    convertToDouble -95593517E-25
+} 0xbc660ad862d8537d
+test expr-28.889 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +200036989 E25 x 18a80dedbc575e_10000000000000000000000000001& E110
+    convertToDouble +200036989E25
+} 0x46d8a80dedbc575f
+test expr-28.890 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -772686455 E27 x -129a0c45ceca7a_1000000000000000000000000000001& E119
+    convertToDouble -772686455E27
+} 0xc7629a0c45ceca7b
+test expr-28.891 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +859139907 E23 x 10f18c4dd0ffe2_10000000000000000000000000001& E106
+    convertToDouble +859139907E23
+} 0x4690f18c4dd0ffe3
+test expr-28.892 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -400073978 E25 x -18a80dedbc575e_10000000000000000000000000001& E111
+    convertToDouble -400073978E25
+} 0xc6e8a80dedbc575f
+test expr-28.893 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +569014327 E-14 x 17ddbeac19d3b2_100000000000000000000000000001& E-18
+    convertToDouble +569014327E-14
+} 0x3ed7ddbeac19d3b3
+test expr-28.894 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -794263862 E-15 x -1aa6acb41dfc52_1000000000000000000000000000001& E-21
+    convertToDouble -794263862E-15
+} 0xbeaaa6acb41dfc53
+test expr-28.895 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +397131931 E-15 x 1aa6acb41dfc52_1000000000000000000000000000001& E-22
+    convertToDouble +397131931E-15
+} 0x3e9aa6acb41dfc53
+test expr-28.896 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -380398957 E-16 x -146c29d8331024_100000000000000000000000000001& E-25
+    convertToDouble -380398957E-16
+} 0xbe646c29d8331025
+test expr-28.897 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +567366773 E27 x 1b5155dd5417f9_0111111111111111111111111111110& E118
+    convertToDouble +567366773E27
+} 0x475b5155dd5417f9
+test expr-28.898 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -337440795 E24 x -10a31a03822bc9_011111111111111111111111111110& E108
+    convertToDouble -337440795E24
+} 0xc6b0a31a03822bc9
+test expr-28.899 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +134976318 E25 x 10a31a03822bc9_011111111111111111111111111110& E110
+    convertToDouble +134976318E25
+} 0x46d0a31a03822bc9
+test expr-28.900 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -269952636 E25 x -10a31a03822bc9_011111111111111111111111111110& E111
+    convertToDouble -269952636E25
+} 0xc6e0a31a03822bc9
+test expr-28.901 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +932080597 E-20 x 147f25b4941e5b_0111111111111111111111111111110& E-37
+    convertToDouble +932080597E-20
+} 0x3da47f25b4941e5b
+test expr-28.902 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -331091924 E-15 x -16381dae63505f_0111111111111111111111111111110& E-22
+    convertToDouble -331091924E-15
+} 0xbe96381dae63505f
+test expr-28.903 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -413864905 E-16 x -16381dae63505f_0111111111111111111111111111110& E-25
+    convertToDouble -413864905E-16
+} 0xbe66381dae63505f
+test expr-28.904 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +8539246247 E26 x 148eb7813eaeba_10000000000000000000000000000001& E119
+    convertToDouble +8539246247E26
+} 0x47648eb7813eaebb
+test expr-28.905 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -5859139791 E26 x -1c35f28719d478_10000000000000000000000000000001& E118
+    convertToDouble -5859139791E26
+} 0xc75c35f28719d479
+test expr-28.906 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +6105010149 E24 x 12d000fb2b138a_1000000000000000000000000000000001& E112
+    convertToDouble +6105010149E24
+} 0x46f2d000fb2b138b
+test expr-28.907 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -3090745820 E27 x -129a0c45ceca7a_1000000000000000000000000000001& E121
+    convertToDouble -3090745820E27
+} 0xc7829a0c45ceca7b
+test expr-28.908 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +3470877773 E-20 x 1314d381f2c31e_1000000000000000000000000000000001& E-35
+    convertToDouble +3470877773E-20
+} 0x3dc314d381f2c31f
+test expr-28.909 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -6136309089 E-27 x -1c4c799fab4328_1000000000000000000000000000000001& E-58
+    convertToDouble -6136309089E-27
+} 0xbc5c4c799fab4329
+test expr-28.910 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +8917758713 E-19 x 1ea424bda7d7f4_100000000000000000000000000000001& E-31
+    convertToDouble +8917758713E-19
+} 0x3e0ea424bda7d7f5
+test expr-28.911 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -6941755546 E-20 x -1314d381f2c31e_1000000000000000000000000000000001& E-34
+    convertToDouble -6941755546E-20
+} 0xbdd314d381f2c31f
+test expr-28.912 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +9194900535 E25 x 11b56f9c090dfb_011111111111111111111111111111111110& E116
+    convertToDouble +9194900535E25
+} 0x4731b56f9c090dfb
+test expr-28.913 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -1838980107 E26 x -11b56f9c090dfb_011111111111111111111111111111111110& E117
+    convertToDouble -1838980107E26
+} 0xc741b56f9c090dfb
+test expr-28.914 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +7355920428 E26 x 11b56f9c090dfb_011111111111111111111111111111111110& E119
+    convertToDouble +7355920428E26
+} 0x4761b56f9c090dfb
+test expr-28.915 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -3677960214 E26 x -11b56f9c090dfb_011111111111111111111111111111111110& E118
+    convertToDouble -3677960214E26
+} 0xc751b56f9c090dfb
+test expr-28.916 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +8473634343 E-17 x 16bf0984b232b7_0111111111111111111111111111111110& E-24
+    convertToDouble +8473634343E-17
+} 0x3e76bf0984b232b7
+test expr-28.917 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -8870766274 E-16 x -1dc3ee22137269_0111111111111111111111111111111110& E-21
+    convertToDouble -8870766274E-16
+} 0xbeadc3ee22137269
+test expr-28.918 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +4435383137 E-16 x 1dc3ee22137269_0111111111111111111111111111111110& E-22
+    convertToDouble +4435383137E-16
+} 0x3e9dc3ee22137269
+test expr-28.919 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -9598990129 E-15 x -14216b286031e7_01111111111111111111111111111111110& E-17
+    convertToDouble -9598990129E-15
+} 0xbee4216b286031e7
+test expr-28.920 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +71563496764 E26 x 15890d1ef6a0da_10000000000000000000000000000000000001& E122
+    convertToDouble +71563496764E26
+} 0x4795890d1ef6a0db
+test expr-28.921 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -89454370955 E25 x -15890d1ef6a0da_10000000000000000000000000000000000001& E119
+    convertToDouble -89454370955E25
+} 0xc765890d1ef6a0db
+test expr-28.922 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +17890874191 E26 x 15890d1ef6a0da_10000000000000000000000000000000000001& E120
+    convertToDouble +17890874191E26
+} 0x4775890d1ef6a0db
+test expr-28.923 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -35781748382 E26 x -15890d1ef6a0da_10000000000000000000000000000000000001& E121
+    convertToDouble -35781748382E26
+} 0xc785890d1ef6a0db
+test expr-28.924 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +57973447842 E-19 x 18e63f7cf5313c_1000000000000000000000000000000000000001& E-28
+    convertToDouble +57973447842E-19
+} 0x3e38e63f7cf5313d
+test expr-28.925 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -28986723921 E-19 x -18e63f7cf5313c_1000000000000000000000000000000000000001& E-29
+    convertToDouble -28986723921E-19
+} 0xbe28e63f7cf5313d
+test expr-28.926 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +76822711313 E-19 x 107f5f8b3bf818_100000000000000000000000000000000001& E-27
+    convertToDouble +76822711313E-19
+} 0x3e407f5f8b3bf819
+test expr-28.927 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -97699466874 E-20 x -10c8de34de806e_10000000000000000000000000000000001& E-30
+    convertToDouble -97699466874E-20
+} 0xbe10c8de34de806f
+test expr-28.928 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +67748656762 E27 x 197bf5559b31fd_01111111111111111111111111111111111110& E125
+    convertToDouble +67748656762E27
+} 0x47c97bf5559b31fd
+test expr-28.929 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -19394840991 E24 x -1de1ea791a6e7d_0111111111111111111111111111111111110& E113
+    convertToDouble -19394840991E24
+} 0xc70de1ea791a6e7d
+test expr-28.930 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +38789681982 E24 x 1de1ea791a6e7d_0111111111111111111111111111111111110& E114
+    convertToDouble +38789681982E24
+} 0x471de1ea791a6e7d
+test expr-28.931 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -33874328381 E27 x -197bf5559b31fd_01111111111111111111111111111111111110& E124
+    convertToDouble -33874328381E27
+} 0xc7b97bf5559b31fd
+test expr-28.932 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +54323763886 E-27 x 1f50c5c63e5441_0111111111111111111111111111111111110& E-55
+    convertToDouble +54323763886E-27
+} 0x3c8f50c5c63e5441
+test expr-28.933 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -58987193887 E-20 x -14449185a4c829_011111111111111111111111111111111111110& E-31
+    convertToDouble -58987193887E-20
+} 0xbe04449185a4c829
+test expr-28.934 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +27161881943 E-27 x 1f50c5c63e5441_0111111111111111111111111111111111110& E-56
+    convertToDouble +27161881943E-27
+} 0x3c7f50c5c63e5441
+test expr-28.935 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -93042648033 E-19 x -13fb12dc023fd3_0111111111111111111111111111111111110& E-27
+    convertToDouble -93042648033E-19
+} 0xbe43fb12dc023fd3
+test expr-28.936 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +520831059055 E27 x 187d469cb69dd0_10000000000000000000000000000000000000001& E128
+    convertToDouble +520831059055E27
+} 0x47f87d469cb69dd1
+test expr-28.937 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -768124264394 E25 x -171d6a019edae8_1000000000000000000000000000000000000001& E122
+    convertToDouble -768124264394E25
+} 0xc7971d6a019edae9
+test expr-28.938 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +384062132197 E25 x 171d6a019edae8_1000000000000000000000000000000000000001& E121
+    convertToDouble +384062132197E25
+} 0x47871d6a019edae9
+test expr-28.939 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +765337749889 E-25 x 158ad6f5d0a854_100000000000000000000000000000000000000001& E-44
+    convertToDouble +765337749889E-25
+} 0x3d358ad6f5d0a855
+test expr-28.940 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +794368912771 E25 x 17e79872f2f7ef_01111111111111111111111111111111111111110& E122
+    convertToDouble +794368912771E25
+} 0x4797e79872f2f7ef
+test expr-28.941 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -994162090146 E23 x -132598f85e658b_011111111111111111111111111111111111110& E116
+    convertToDouble -994162090146E23
+} 0xc7332598f85e658b
+test expr-28.942 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +781652779431 E26 x 1d670adf52038f_01111111111111111111111111111111111110& E125
+    convertToDouble +781652779431E26
+} 0x47cd670adf52038f
+test expr-28.943 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +910077190046 E-26 x 147e3ce1871d79_01111111111111111111111111111111111111110& E-47
+    convertToDouble +910077190046E-26
+} 0x3d047e3ce1871d79
+test expr-28.944 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -455038595023 E-26 x -147e3ce1871d79_01111111111111111111111111111111111111110& E-48
+    convertToDouble -455038595023E-26
+} 0xbcf47e3ce1871d79
+test expr-28.945 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +471897551096 E-20 x 14449185a4c829_011111111111111111111111111111111111110& E-28
+    convertToDouble +471897551096E-20
+} 0x3e34449185a4c829
+test expr-28.946 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -906698409911 E-21 x -1f27674f7d5745_0111111111111111111111111111111111111110& E-31
+    convertToDouble -906698409911E-21
+} 0xbe0f27674f7d5745
+test expr-28.947 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +8854128003935 E25 x 10a71b8948faac_100000000000000000000000000000000000000001& E126
+    convertToDouble +8854128003935E25
+} 0x47d0a71b8948faad
+test expr-28.948 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -8146122716299 E27 x -17f0762ac05654_1000000000000000000000000000000000000000001& E132
+    convertToDouble -8146122716299E27
+} 0xc837f0762ac05655
+test expr-28.949 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +7083302403148 E26 x 10a71b8948faac_100000000000000000000000000000000000000001& E129
+    convertToDouble +7083302403148E26
+} 0x4800a71b8948faad
+test expr-28.950 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -3541651201574 E26 x -10a71b8948faac_100000000000000000000000000000000000000001& E128
+    convertToDouble -3541651201574E26
+} 0xc7f0a71b8948faad
+test expr-28.951 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +8394920649291 E-25 x 1d8978e8c1cc78_100000000000000000000000000000000000000000001& E-41
+    convertToDouble +8394920649291E-25
+} 0x3d6d8978e8c1cc79
+test expr-28.952 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -7657975756753 E-22 x -1a5006d695fef0_1000000000000000000000000000000000000000000001& E-31
+    convertToDouble -7657975756753E-22
+} 0xbe0a5006d695fef1
+test expr-28.953 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +5473834002228 E-20 x 1d632e1f745624_100000000000000000000000000000000000000000001& E-25
+    convertToDouble +5473834002228E-20
+} 0x3e6d632e1f745625
+test expr-28.954 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -6842292502785 E-21 x -1d632e1f745624_100000000000000000000000000000000000000000001& E-28
+    convertToDouble -6842292502785E-21
+} 0xbe3d632e1f745625
+test expr-28.955 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -2109568884597 E25 x -1fbdc386609b13_011111111111111111111111111111111111111110& E123
+    convertToDouble -2109568884597E25
+} 0xc7afbdc386609b13
+test expr-28.956 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +8438275538388 E25 x 1fbdc386609b13_011111111111111111111111111111111111111110& E125
+    convertToDouble +8438275538388E25
+} 0x47cfbdc386609b13
+test expr-28.957 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -4219137769194 E25 x -1fbdc386609b13_011111111111111111111111111111111111111110& E124
+    convertToDouble -4219137769194E25
+} 0xc7bfbdc386609b13
+test expr-28.958 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +3200141789841 E-25 x 1684dcea3829f7_0111111111111111111111111111111111111111110& E-42
+    convertToDouble +3200141789841E-25
+} 0x3d5684dcea3829f7
+test expr-28.959 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -8655689322607 E-22 x -1dbd9ff5dc8991_011111111111111111111111111111111111111110& E-31
+    convertToDouble -8655689322607E-22
+} 0xbe0dbd9ff5dc8991
+test expr-28.960 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +6400283579682 E-25 x 1684dcea3829f7_0111111111111111111111111111111111111111110& E-41
+    convertToDouble +6400283579682E-25
+} 0x3d6684dcea3829f7
+test expr-28.961 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -8837719634493 E-21 x -12fa9676d2585b_011111111111111111111111111111111111111110& E-27
+    convertToDouble -8837719634493E-21
+} 0xbe42fa9676d2585b
+test expr-28.962 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +19428217075297 E24 x 1d3b7a1d154aba_10000000000000000000000000000000000000000000001& E123
+    convertToDouble +19428217075297E24
+} 0x47ad3b7a1d154abb
+test expr-28.963 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -38856434150594 E24 x -1d3b7a1d154aba_10000000000000000000000000000000000000000000001& E124
+    convertToDouble -38856434150594E24
+} 0xc7bd3b7a1d154abb
+test expr-28.964 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +77712868301188 E24 x 1d3b7a1d154aba_10000000000000000000000000000000000000000000001& E125
+    convertToDouble +77712868301188E24
+} 0x47cd3b7a1d154abb
+test expr-28.965 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -77192037242133 E27 x -1c5b1ab32d5dbe_1000000000000000000000000000000000000000000000001& E135
+    convertToDouble -77192037242133E27
+} 0xc86c5b1ab32d5dbf
+test expr-28.966 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +76579757567530 E-23 x 1a5006d695fef0_1000000000000000000000000000000000000000000001& E-31
+    convertToDouble +76579757567530E-23
+} 0x3e0a5006d695fef1
+test expr-28.967 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +15315951513506 E-22 x 1a5006d695fef0_1000000000000000000000000000000000000000000001& E-30
+    convertToDouble +15315951513506E-22
+} 0x3e1a5006d695fef1
+test expr-28.968 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -38289878783765 E-23 x -1a5006d695fef0_1000000000000000000000000000000000000000000001& E-32
+    convertToDouble -38289878783765E-23
+} 0xbdfa5006d695fef1
+test expr-28.969 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +49378033925202 E25 x 1737aa2567167b_0111111111111111111111111111111111111111111110& E128
+    convertToDouble +49378033925202E25
+} 0x47f737aa2567167b
+test expr-28.970 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -50940527102367 E24 x -132964f2944b05_0111111111111111111111111111111111111111111111110& E125
+    convertToDouble -50940527102367E24
+} 0xc7c32964f2944b05
+test expr-28.971 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +98756067850404 E25 x 1737aa2567167b_0111111111111111111111111111111111111111111110& E129
+    convertToDouble +98756067850404E25
+} 0x480737aa2567167b
+test expr-28.972 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -99589397544892 E26 x -1d4446075c4933_0111111111111111111111111111111111111111111110& E132
+    convertToDouble -99589397544892E26
+} 0xc83d4446075c4933
+test expr-28.973 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -56908598265713 E-25 x -190756ab1ed6b3_011111111111111111111111111111111111111111111110& E-38
+    convertToDouble -56908598265713E-25
+} 0xbd990756ab1ed6b3
+test expr-28.974 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +97470695699657 E-22 x 14ee821710e655_01111111111111111111111111111111111111111111110& E-27
+    convertToDouble +97470695699657E-22
+} 0x3e44ee821710e655
+test expr-28.975 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -35851901247343 E-25 x -1f8921657e1581_0111111111111111111111111111111111111111111110& E-39
+    convertToDouble -35851901247343E-25
+} 0xbd8f8921657e1581
+test expr-28.976 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +154384074484266 E27 x 1c5b1ab32d5dbe_1000000000000000000000000000000000000000000000001& E136
+    convertToDouble +154384074484266E27
+} 0x487c5b1ab32d5dbf
+test expr-28.977 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -308768148968532 E27 x -1c5b1ab32d5dbe_1000000000000000000000000000000000000000000000001& E137
+    convertToDouble -308768148968532E27
+} 0xc88c5b1ab32d5dbf
+test expr-28.978 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +910990389005985 E23 x 112242592ae54a_100000000000000000000000000000000000000000000001& E126
+    convertToDouble +910990389005985E23
+} 0x47d12242592ae54b
+test expr-28.979 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +271742424169201 E-27 x 131f46bcf7b452_10000000000000000000000000000000000000000000000001& E-42
+    convertToDouble +271742424169201E-27
+} 0x3d531f46bcf7b453
+test expr-28.980 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -543484848338402 E-27 x -131f46bcf7b452_10000000000000000000000000000000000000000000000001& E-41
+    convertToDouble -543484848338402E-27
+} 0xbd631f46bcf7b453
+test expr-28.981 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +162192083357563 E-26 x 1c887b68658760_1000000000000000000000000000000000000000000000001& E-40
+    convertToDouble +162192083357563E-26
+} 0x3d7c887b68658761
+test expr-28.982 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -869254552770081 E-23 x -12aac70665485e_1000000000000000000000000000000000000000000000000001& E-27
+    convertToDouble -869254552770081E-23
+} 0xbe42aac70665485f
+test expr-28.983 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +664831007626046 E24 x 1f429cb67eb075_011111111111111111111111111111111111111111111111110& E128
+    convertToDouble +664831007626046E24
+} 0x47ff429cb67eb075
+test expr-28.984 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -332415503813023 E24 x -1f429cb67eb075_011111111111111111111111111111111111111111111111110& E127
+    convertToDouble -332415503813023E24
+} 0xc7ef429cb67eb075
+test expr-28.985 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +943701829041427 E24 x 162fb2e38ee461_01111111111111111111111111111111111111111111111110& E129
+    convertToDouble +943701829041427E24
+} 0x48062fb2e38ee461
+test expr-28.986 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -101881054204734 E24 x -132964f2944b05_0111111111111111111111111111111111111111111111110& E126
+    convertToDouble -101881054204734E24
+} 0xc7d32964f2944b05
+test expr-28.987 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +828027839666967 E-27 x 1d2236349da3cd_011111111111111111111111111111111111111111111111110& E-41
+    convertToDouble +828027839666967E-27
+} 0x3d6d2236349da3cd
+test expr-28.988 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -280276135608777 E-27 x -13b901892fd0bf_0111111111111111111111111111111111111111111111110& E-42
+    convertToDouble -280276135608777E-27
+} 0xbd53b901892fd0bf
+test expr-28.989 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +212839188833879 E-21 x 1c91194dc2d40b_0111111111111111111111111111111111111111111111110& E-23
+    convertToDouble +212839188833879E-21
+} 0x3e8c91194dc2d40b
+test expr-28.990 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -113817196531426 E-25 x -190756ab1ed6b3_011111111111111111111111111111111111111111111110& E-37
+    convertToDouble -113817196531426E-25
+} 0xbda90756ab1ed6b3
+test expr-28.991 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +9711553197796883 E27 x 1bdeec25c0f03e_10000000000000000000000000000000000000000000000000001& E142
+    convertToDouble +9711553197796883E27
+} 0x48dbdeec25c0f03f
+test expr-28.992 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -2739849386524269 E26 x -19295ade212370_1000000000000000000000000000000000000000000000000001& E137
+    convertToDouble -2739849386524269E26
+} 0xc889295ade212371
+test expr-28.993 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +5479698773048538 E26 x 19295ade212370_1000000000000000000000000000000000000000000000000001& E138
+    convertToDouble +5479698773048538E26
+} 0x4899295ade212371
+test expr-28.994 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +6124568318523113 E-25 x 150b3a2e0aff14_1000000000000000000000000000000000000000000000000000001& E-31
+    convertToDouble +6124568318523113E-25
+} 0x3e050b3a2e0aff15
+test expr-28.995 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -1139777988171071 E-24 x -1394cbee428ea4_10000000000000000000000000000000000000000000000000001& E-30
+    convertToDouble -1139777988171071E-24
+} 0xbe1394cbee428ea5
+test expr-28.996 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +6322612303128019 E-27 x 1bcea0ec21e250_1000000000000000000000000000000000000000000000000000001& E-38
+    convertToDouble +6322612303128019E-27
+} 0x3d9bcea0ec21e251
+test expr-28.997 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -2955864564844617 E-25 x -1450030e26c6dc_10000000000000000000000000000000000000000000000000001& E-32
+    convertToDouble -2955864564844617E-25
+} 0xbdf450030e26c6dd
+test expr-28.998 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -9994029144998961 E25 x -125b2b7fed4a61_0111111111111111111111111111111111111111111111111110& E136
+    convertToDouble -9994029144998961E25
+} 0xc8725b2b7fed4a61
+test expr-28.999 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -2971238324022087 E27 x -110dd7a301db67_0111111111111111111111111111111111111111111111111110& E141
+    convertToDouble -2971238324022087E27
+} 0xc8c10dd7a301db67
+test expr-28.1000 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -1656055679333934 E-27 x -1d2236349da3cd_011111111111111111111111111111111111111111111111110& E-40
+    convertToDouble -1656055679333934E-27
+} 0xbd7d2236349da3cd
+test expr-28.1001 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -1445488709150234 E-26 x -1fc960c59526c7_0111111111111111111111111111111111111111111111110& E-37
+    convertToDouble -1445488709150234E-26
+} 0xbdafc960c59526c7
+test expr-28.1002 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +55824717499885172 E27 x 1406b0cd17fd56_1000000000000000000000000000000000000000000000000000000001& E145
+    convertToDouble +55824717499885172E27
+} 0x490406b0cd17fd57
+test expr-28.1003 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -69780896874856465 E26 x -1406b0cd17fd56_1000000000000000000000000000000000000000000000000000000001& E142
+    convertToDouble -69780896874856465E26
+} 0xc8d406b0cd17fd57
+test expr-28.1004 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +84161538867545199 E25 x 13529217bdce6c_10000000000000000000000000000000000000000000000000000000001& E139
+    convertToDouble +84161538867545199E25
+} 0x48a3529217bdce6d
+test expr-28.1005 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -27912358749942586 E27 x -1406b0cd17fd56_1000000000000000000000000000000000000000000000000000000001& E144
+    convertToDouble -27912358749942586E27
+} 0xc8f406b0cd17fd57
+test expr-28.1006 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +24711112462926331 E-25 x 153a07f6040d22_100000000000000000000000000000000000000000000000000000001& E-29
+    convertToDouble +24711112462926331E-25
+} 0x3e253a07f6040d23
+test expr-28.1007 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -12645224606256038 E-27 x -1bcea0ec21e250_1000000000000000000000000000000000000000000000000000001& E-37
+    convertToDouble -12645224606256038E-27
+} 0xbdabcea0ec21e251
+test expr-28.1008 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -12249136637046226 E-25 x -150b3a2e0aff14_1000000000000000000000000000000000000000000000000000001& E-30
+    convertToDouble -12249136637046226E-25
+} 0xbe150b3a2e0aff15
+test expr-28.1009 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +74874448287465757 E27 x 1adc21d1d50b09_01111111111111111111111111111111111111111111111111111110& E145
+    convertToDouble +74874448287465757E27
+} 0x490adc21d1d50b09
+test expr-28.1010 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -35642836832753303 E24 x -1a2fac2b421f53_0111111111111111111111111111111111111111111111111111110& E134
+    convertToDouble -35642836832753303E24
+} 0xc85a2fac2b421f53
+test expr-28.1011 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -71285673665506606 E24 x -1a2fac2b421f53_0111111111111111111111111111111111111111111111111111110& E135
+    convertToDouble -71285673665506606E24
+} 0xc86a2fac2b421f53
+test expr-28.1012 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +43723334984997307 E-26 x 1e0be3f392c549_01111111111111111111111111111111111111111111111111111110& E-32
+    convertToDouble +43723334984997307E-26
+} 0x3dfe0be3f392c549
+test expr-28.1013 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN +10182419849537963 E-24 x 15ddd831ebbe53_011111111111111111111111111111111111111111111111111110& E-27
+    convertToDouble +10182419849537963E-24
+} 0x3e45ddd831ebbe53
+test expr-28.1014 {input floating-point conversion} {ieeeFloatingPoint} {
+    # Ad2b dieee UN -93501703572661982 E-26 x -10103f97ea6e13_0111111111111111111111111111111111111111111111111110& E-30
+    convertToDouble -93501703572661982E-26
+} 0xbe10103f97ea6e13
+
+test expr-29.1 {smallest representible number} {ieeeFloatingPoint} {
+    list [catch {convertToDouble 4.9406564584124654e-324} result] \
+       $result \
+       [catch {convertToDouble 2.4703282292062327e-324} result] \
+       $result \
+       [catch {convertToDouble 2.47032822920623e-324} result] \
+       $result
+} {0 0x0000000000000001 0 0x0000000000000001 0 0x0000000000000000}
+test expr-29.2 {smallest representible number} {ieeeFloatingPoint} {
+    list [catch {convertToDouble -4.9406564584124654e-324} result] \
+       $result \
+       [catch {convertToDouble -2.4703282292062327e-324} result] \
+       $result \
+       [catch {convertToDouble -2.47032822920623e-324} result] \
+       $result
+} {0 0x8000000000000001 0 0x8000000000000001 0 0x8000000000000000}
+test expr-29.3 {silent underflow on input conversion} {ieeeFloatingPoint} {
+    set v ?
+    list [scan 2.47032822920623e-324 %g v] $v
+} {1 0.0}
+test expr-29.4 {silent underflow on input conversion} {ieeeFloatingPoint} {
+    set v ?
+    list [scan -2.47032822920623e-324 %g v] $v
+} {1 -0.0}
+
+test expr-30.1 {largest representible number} {ieeeFloatingPoint} {
+    list [catch {convertToDouble 1.7976931348623155e+308} result] \
+       $result \
+       [catch {convertToDouble 1.7976931348623157e+308} result] \
+       $result \
+       [catch {convertToDouble 1.7976931348623159e+308} result] \
+       $result
+} {0 0x7feffffffffffffe 0 0x7fefffffffffffff 0 0x7ff0000000000000}
+test expr-30.2 {largest representible number} {ieeeFloatingPoint} {
+    list [catch {convertToDouble -1.7976931348623155e+308} result] \
+       $result \
+       [catch {convertToDouble -1.7976931348623157e+308} result] \
+       $result \
+       [catch {convertToDouble -1.7976931348623159e+308} result] \
+       $result
+} {0 0xffeffffffffffffe 0 0xffefffffffffffff 0 0xfff0000000000000}
+test expr-30.3 {silent overflow on input conversion} {ieeeFloatingPoint} {
+    set v ?
+    list [scan 1.7976931348623159e+308 %f v] $v
+} {1 Inf}
+test expr-30.4 {silent overflow on input conversion} {ieeeFloatingPoint} {
+    set v ?
+    list [scan -1.7976931348623159e+308 %f v] $v
+} {1 -Inf}
+
+# bool() tests (TIP #182)
+set i 0
+foreach s {yes true on} {
+    test expr-31.$i.0 {boolean conversion} {expr bool($s)} 1
+    test expr-31.$i.1 {boolean conversion} {expr bool(!$s)} 0
+    test expr-31.$i.2 {boolean conversion} {expr bool("$s")} 1
+    test expr-31.$i.3 {boolean conversion} {expr bool(!"$s")} 0
+    set j 1
+    while {$j < [string length $s]-1} {
+       test expr-31.$i.4.$j {boolean conversion} {
+           expr bool([string range $s 0 $j])
+       } 1
+       test expr-31.$i.5.$j {boolean conversion} {
+           expr bool("[string range $s 0 $j]")
+       } 1
+       incr j
+    }
+    incr i
+}
+test expr-31.0.4.0 {boolean conversion} {expr bool(y)} 1
+test expr-31.0.5.0 {boolean conversion} {expr bool("y")} 1
+test expr-31.1.4.0 {boolean conversion} {expr bool(t)} 1
+test expr-31.1.5.0 {boolean conversion} {expr bool("t")} 1
+test expr-31.2.4.0 {boolean conversion} -body {
+    expr bool(o)
+} -returnCodes error -match glob -result *
+test expr-31.2.5.0 {boolean conversion} -body {
+    expr bool("o")
+} -returnCodes error -match glob -result *
+foreach s {no false off} {
+    test expr-31.$i.0 {boolean conversion} {expr bool($s)} 0
+    test expr-31.$i.1 {boolean conversion} {expr bool(!$s)} 1
+    test expr-31.$i.2 {boolean conversion} {expr bool("$s")} 0
+    test expr-31.$i.3 {boolean conversion} {expr bool(!"$s")} 1
+    set j 1
+    while {$j < [string length $s]-1} {
+       test expr-31.$i.4.$j {boolean conversion} {
+           expr bool([string range $s 0 $j])
+       } 0
+       test expr-31.$i.5.$j {boolean conversion} {
+           expr bool("[string range $s 0 $j]")
+       } 0
+       incr j
+    }
+    incr i
+}
+test expr-31.3.4.0 {boolean conversion} {expr bool(n)} 0
+test expr-31.3.5.0 {boolean conversion} {expr bool("n")} 0
+test expr-31.4.4.0 {boolean conversion} {expr bool(f)} 0
+test expr-31.4.5.0 {boolean conversion} {expr bool("f")} 0
+test expr-31.6  {boolean conversion} {expr bool(-1 + 1)} 0
+test expr-31.7  {boolean conversion} {expr bool(0 + 1)} 1
+test expr-31.8  {boolean conversion} {expr bool(0.0)} 0
+test expr-31.9  {boolean conversion} {expr bool(0x0)} 0
+test expr-31.10 {boolean conversion} {expr bool(wide(0))} 0
+test expr-31.11 {boolean conversion} {expr bool(5.0)} 1
+test expr-31.12 {boolean conversion} {expr bool(5)} 1
+test expr-31.13 {boolean conversion} {expr bool(0x5)} 1
+test expr-31.14 {boolean conversion} {expr bool(wide(5))} 1
+test expr-31.15 {boolean conversion} -body {
+    expr bool("fred")
+} -returnCodes error -match glob -result *
+
+test expr-32.1 {expr mod basics} {
+    set mod_nums [list \
+        {-3 1} {-3 2} {-3 3} {-3 4} {-3 5} \
+        {-3 -1} {-3 -2} {-3 -3} {-3 -4} {-3 -5} \
+        {-2 1} {-2 2} {-2 3} {-2 4} {-2 5} \
+        {-2 -1} {-2 -2} {-2 -3} {-2 -4} {-2 -5} \
+        {-1 1} {-1 2} {-1 3} {-1 4} {-1 5} \
+        {-1 -1} {-1 -2} {-1 -3} {-1 -4} {-1 -5} \
+        {0 -100} {0 -1} {0 1} {0 100} \
+        {1 1} {1 2} {1 3} {1 4} {1 5} \
+        {1 -1} {1 -2} {1 -3} {1 -4} {1 -5} \
+        {2 1} {2 2} {2 3} {2 4} {2 5} \
+        {2 -1} {2 -2} {2 -3} {2 -4} {2 -5} \
+        {3 1} {3 2} {3 3} {3 4} {3 5} \
+        {3 -1} {3 -2} {3 -3} {3 -4} {3 -5} \
+        ]
+    set results [list]
+    foreach pair $mod_nums {
+        set dividend [lindex $pair 0]
+        set divisor [lindex $pair 1]
+        lappend results [expr {$dividend % $divisor}]
+    }
+    set results
+} [list \
+    0 1 0 1 2 \
+    0 -1 0 -3 -3 \
+    0 0 1 2 3 \
+    0 0 -2 -2 -2 \
+    0 1 2 3 4 \
+    0 -1 -1 -1 -1 \
+    0 0 0 0 \
+    0 1 1 1 1 \
+    0 -1 -2 -3 -4 \
+    0 0 2 2 2 \
+    0 0 -1 -2 -3 \
+    0 1 0 3 3 \
+    0 -1 0 -1 -2 \
+    ]
+
+test expr-32.2 {expr div basics} {
+    set mod_nums [list \
+        {-3 1} {-3 2} {-3 3} {-3 4} {-3 5} \
+        {-3 -1} {-3 -2} {-3 -3} {-3 -4} {-3 -5} \
+        {-2 1} {-2 2} {-2 3} {-2 4} {-2 5} \
+        {-2 -1} {-2 -2} {-2 -3} {-2 -4} {-2 -5} \
+        {-1 1} {-1 2} {-1 3} {-1 4} {-1 5} \
+        {-1 -1} {-1 -2} {-1 -3} {-1 -4} {-1 -5} \
+        {0 -100} {0 -1} {0 1} {0 100} \
+        {1 1} {1 2} {1 3} {1 4} {1 5} \
+        {1 -1} {1 -2} {1 -3} {1 -4} {1 -5} \
+        {2 1} {2 2} {2 3} {2 4} {2 5} \
+        {2 -1} {2 -2} {2 -3} {2 -4} {2 -5} \
+        {3 1} {3 2} {3 3} {3 4} {3 5} \
+        {3 -1} {3 -2} {3 -3} {3 -4} {3 -5} \
+        ]
+    set results [list]
+    foreach pair $mod_nums {
+        set dividend [lindex $pair 0]
+        set divisor [lindex $pair 1]
+        lappend results [expr {$dividend / $divisor}]
+    }
+    set results
+} [list \
+    -3 -2 -1 -1 -1 \
+    3 1 1 0 0 \
+    -2 -1 -1 -1 -1 \
+    2 1 0 0 0 \
+    -1 -1 -1 -1 -1 \
+    1 0 0 0 0 \
+    0 0 0 0 \
+    1 0 0 0 0 \
+    -1 -1 -1 -1 -1 \
+    2 1 0 0 0 \
+    -2 -1 -1 -1 -1 \
+    3 1 1 0 0 \
+    -3 -2 -1 -1 -1 \
+    ]
+
+test expr-32.3 {Bug 1585704} {
+    expr 1%(1<<63)
+} 1
+test expr-32.4 {Bug 1585704} {
+    expr -1%(1<<63)
+} [expr (1<<63)-1]
+test expr-32.5 {Bug 1585704} {
+    expr (1<<32)%(1<<63)
+} [expr 1<<32]
+test expr-32.6 {Bug 1585704} {
+    expr -(1<<32)%(1<<63)
+} [expr (1<<63)-(1<<32)]
+test expr-32.7 {bignum regression} {
+    expr {0%(1<<63)}
+} 0
+test expr-32.8 {bignum regression} {
+    expr {0%-(1<<63)}
+} 0
+test expr-32.9 {bignum regression} {
+    expr {0%-(1+(1<<63))}
+} 0
+
+test expr-33.1 {parse largest long value} longIs32bit {
+    set max_long_str 2147483647
+    set max_long_hex "0x7FFFFFFF "
+
+    # Convert to integer (long, not wide) internal rep
+    set max_long 2147483647
+    string is integer $max_long
+
+    list \
+        [expr {" $max_long_str "}] \
+        [expr {$max_long_str + 0}] \
+        [expr {$max_long + 0}] \
+        [expr {2147483647 + 0}] \
+        [expr {$max_long == $max_long_hex}] \
+        [expr {int(2147483647 + 1) < 0}] \
+
+} {2147483647 2147483647 2147483647 2147483647 1 1}
+test expr-33.2 {parse smallest long value} longIs32bit {
+    set min_long_str -2147483648
+    set min_long_hex "-0x80000000 "
+
+    set min_long -2147483648
+    # This will convert to integer (not wide) internal rep
+    string is integer $min_long
+
+    # Note: If the final expression returns 0 then the
+    # expression literal is being promoted to a wide type
+    # when it should be parsed as a long type.
+    list \
+        [expr {" $min_long_str "}] \
+        [expr {$min_long_str + 0}] \
+        [expr {$min_long + 0}] \
+        [expr {-2147483648 + 0}] \
+        [expr {$min_long == $min_long_hex}] \
+        [expr {int(-2147483648 - 1) == 0x7FFFFFFF}] \
+
+} {-2147483648 -2147483648 -2147483648 -2147483648 1 1}
+test expr-33.3 {parse largest wide value} wideIs64bit {
+    set max_wide_str 9223372036854775807
+    set max_wide_hex "0x7FFFFFFFFFFFFFFF "
+
+    # Convert to wide integer
+    set max_wide 9223372036854775807
+    string is integer $max_wide
+
+    list \
+        [expr {" $max_wide_str "}] \
+        [expr {$max_wide_str + 0}] \
+        [expr {$max_wide + 0}] \
+        [expr {9223372036854775807 + 0}] \
+        [expr {$max_wide == $max_wide_hex}] \
+        [expr {wide(9223372036854775807 + 1) < 0}] \
+
+} {9223372036854775807 9223372036854775807 9223372036854775807 9223372036854775807 1 1}
+test expr-33.4 {parse smallest wide value} wideIs64bit {
+    set min_wide_str -9223372036854775808
+    set min_wide_hex "-0x8000000000000000 "
+
+    set min_wide -9223372036854775808
+    # Convert to wide integer
+    string is integer $min_wide
+
+    # Note: If the final expression returns 0 then the
+    # wide integer is not being parsed correctly with
+    # the leading - sign.
+    list \
+        [expr {" $min_wide_str "}] \
+        [expr {$min_wide_str + 0}] \
+        [expr {$min_wide + 0}] \
+        [expr {-9223372036854775808 + 0}] \
+        [expr {$min_wide == $min_wide_hex}] \
+        [expr {wide(-9223372036854775808 - 1) == 0x7FFFFFFFFFFFFFFF}] \
+
+} {-9223372036854775808 -9223372036854775808 -9223372036854775808 -9223372036854775808 1 1}
+
+set min -2147483648
+set max 2147483647
+
+test expr-34.1 {expr edge cases} {
+    expr {$min / $min}
+} {1}
+test expr-34.2 {expr edge cases} {
+    expr {$min % $min}
+} {0}
+test expr-34.3 {expr edge cases} {
+    expr {$min / ($min + 1)}
+} {1}
+test expr-34.4 {expr edge cases} {
+    expr {$min % ($min + 1)}
+} {-1}
+test expr-34.5 {expr edge cases} {
+    expr {$min / ($min + 2)}
+} {1}
+test expr-34.6 {expr edge cases} {
+    expr {$min % ($min + 2)}
+} {-2}
+test expr-34.7 {expr edge cases} {
+    expr {$min / ($min + 3)}
+} {1}
+test expr-34.8 {expr edge cases} {
+    expr {$min % ($min + 3)}
+} {-3}
+test expr-34.9 {expr edge cases} {
+    expr {$min / -3}
+} {715827882}
+test expr-34.10 {expr edge cases} {
+    expr {$min % -3}
+} {-2}
+test expr-34.11 {expr edge cases} {
+    expr {$min / -2}
+} {1073741824}
+test expr-34.12 {expr edge cases} {
+    expr {$min % -2}
+} {0}
+test expr-34.13 {expr edge cases} longIs32bit {
+    expr {int($min / -1)}
+} {-2147483648}
+test expr-34.14 {expr edge cases} {
+    expr {$min % -1}
+} {0}
+test expr-34.15 {expr edge cases} longIs32bit {
+    expr {int($min * -1)}
+} $min
+test expr-34.16 {expr edge cases} longIs32bit {
+    expr {int(-$min)}
+} $min
+test expr-34.17 {expr edge cases} {
+    expr {$min / 1}
+} $min
+test expr-34.18 {expr edge cases} {
+    expr {$min % 1}
+} {0}
+test expr-34.19 {expr edge cases} {
+    expr {$min / 2}
+} {-1073741824}
+test expr-34.20 {expr edge cases} {
+    expr {$min % 2}
+} {0}
+test expr-34.21 {expr edge cases} {
+    expr {$min / 3}
+} {-715827883}
+test expr-34.22 {expr edge cases} {
+    expr {$min % 3}
+} {1}
+test expr-34.23 {expr edge cases} {
+    expr {$min / ($max - 3)}
+} {-2}
+test expr-34.24 {expr edge cases} {
+    expr {$min % ($max - 3)}
+} {2147483640}
+test expr-34.25 {expr edge cases} {
+    expr {$min / ($max - 2)}
+} {-2}
+test expr-34.26 {expr edge cases} {
+    expr {$min % ($max - 2)}
+} {2147483642}
+test expr-34.27 {expr edge cases} {
+    expr {$min / ($max - 1)}
+} {-2}
+test expr-34.28 {expr edge cases} {
+    expr {$min % ($max - 1)}
+} {2147483644}
+test expr-34.29 {expr edge cases} {
+    expr {$min / $max}
+} {-2}
+test expr-34.30 {expr edge cases} {
+    expr {$min % $max}
+} {2147483646}
+test expr-34.31 {expr edge cases} {
+    expr {$max / $max}
+} {1}
+test expr-34.32 {expr edge cases} {
+    expr {$max % $max}
+} {0}
+test expr-34.33 {expr edge cases} {
+    expr {$max / ($max - 1)}
+} {1}
+test expr-34.34 {expr edge cases} {
+    expr {$max % ($max - 1)}
+} {1}
+test expr-34.35 {expr edge cases} {
+    expr {$max / ($max - 2)}
+} {1}
+test expr-34.36 {expr edge cases} {
+    expr {$max % ($max - 2)}
+} {2}
+test expr-34.37 {expr edge cases} {
+    expr {$max / ($max - 3)}
+} {1}
+test expr-34.38 {expr edge cases} {
+    expr {$max % ($max - 3)}
+} {3}
+test expr-34.39 {expr edge cases} {
+    expr {$max / 3}
+} {715827882}
+test expr-34.40 {expr edge cases} {
+    expr {$max % 3}
+} {1}
+test expr-34.41 {expr edge cases} {
+    expr {$max / 2}
+} {1073741823}
+test expr-34.42 {expr edge cases} {
+    expr {$max % 2}
+} {1}
+test expr-34.43 {expr edge cases} {
+    expr {$max / 1}
+} $max
+test expr-34.44 {expr edge cases} {
+    expr {$max % 1}
+} {0}
+test expr-34.45 {expr edge cases} {
+    expr {$max / -1}
+} "-$max"
+test expr-34.46 {expr edge cases} {
+    expr {$max % -1}
+} {0}
+test expr-34.47 {expr edge cases} {
+    expr {$max / -2}
+} {-1073741824}
+test expr-34.48 {expr edge cases} {
+    expr {$max % -2}
+} {-1}
+test expr-34.49 {expr edge cases} {
+    expr {$max / -3}
+} {-715827883}
+test expr-34.50 {expr edge cases} {
+    expr {$max % -3}
+} {-2}
+test expr-34.51 {expr edge cases} {
+    expr {$max / ($min + 3)}
+} {-2}
+test expr-34.52 {expr edge cases} {
+    expr {$max % ($min + 3)}
+} {-2147483643}
+test expr-34.53 {expr edge cases} {
+    expr {$max / ($min + 2)}
+} {-2}
+test expr-34.54 {expr edge cases} {
+    expr {$max % ($min + 2)}
+} {-2147483645}
+test expr-34.55 {expr edge cases} {
+    expr {$max / ($min + 1)}
+} {-1}
+test expr-34.56 {expr edge cases} {
+    expr {$max % ($min + 1)}
+} {0}
+test expr-34.57 {expr edge cases} {
+    expr {$max / $min}
+} {-1}
+test expr-34.58 {expr edge cases} {
+    expr {$max % $min}
+} {-1}
+test expr-34.59 {expr edge cases} {
+    expr {($min + 1) / ($max - 1)}
+} {-2}
+test expr-34.60 {expr edge cases} {
+    expr {($min + 1) % ($max - 1)}
+} {2147483645}
+test expr-34.61 {expr edge cases} {
+    expr {($max - 1) / ($min + 1)}
+} {-1}
+test expr-34.62 {expr edge cases} {
+    expr {($max - 1) % ($min + 1)}
+} {-1}
+test expr-34.63 {expr edge cases} {
+    expr {($max - 1) / $min}
+} {-1}
+test expr-34.64 {expr edge cases} {
+    expr {($max - 1) % $min}
+} {-2}
+test expr-34.65 {expr edge cases} {
+    expr {($max - 2) / $min}
+} {-1}
+test expr-34.66 {expr edge cases} {
+    expr {($max - 2) % $min}
+} {-3}
+test expr-34.67 {expr edge cases} {
+    expr {($max - 3) / $min}
+} {-1}
+test expr-34.68 {expr edge cases} {
+    expr {($max - 3) % $min}
+} {-4}
+test expr-34.69 {expr edge cases} {
+    expr {-3 / $min}
+} {0}
+test expr-34.70 {expr edge cases} {
+    expr {-3 % $min}
+} {-3}
+test expr-34.71 {expr edge cases} {
+    expr {-2 / $min}
+} {0}
+test expr-34.72 {expr edge cases} {
+    expr {-2 % $min}
+} {-2}
+test expr-34.73 {expr edge cases} {
+    expr {-1 / $min}
+} {0}
+test expr-34.74 {expr edge cases} {
+    expr {-1 % $min}
+} {-1}
+test expr-34.75 {expr edge cases} {
+    expr {0 / $min}
+} {0}
+test expr-34.76 {expr edge cases} {
+    expr {0 % $min}
+} {0}
+test expr-34.77 {expr edge cases} {
+    expr {0 / ($min + 1)}
+} {0}
+test expr-34.78 {expr edge cases} {
+    expr {0 % ($min + 1)}
+} {0}
+test expr-34.79 {expr edge cases} {
+    expr {1 / $min}
+} {-1}
+test expr-34.80 {expr edge cases} {
+    expr {1 % $min}
+} {-2147483647}
+test expr-34.81 {expr edge cases} {
+    expr {1 / ($min + 1)}
+} {-1}
+test expr-34.82 {expr edge cases} {
+    expr {1 % ($min + 1)}
+} {-2147483646}
+test expr-34.83 {expr edge cases} {
+    expr {2 / $min}
+} {-1}
+test expr-34.84 {expr edge cases} {
+    expr {2 % $min}
+} {-2147483646}
+test expr-34.85 {expr edge cases} {
+    expr {2 / ($min + 1)}
+} {-1}
+test expr-34.86 {expr edge cases} {
+    expr {2 % ($min + 1)}
+} {-2147483645}
+test expr-34.87 {expr edge cases} {
+    expr {3 / $min}
+} {-1}
+test expr-34.88 {expr edge cases} {
+    expr {3 % $min}
+} {-2147483645}
+test expr-34.89 {expr edge cases} {
+    expr {3 / ($min + 1)}
+} {-1}
+test expr-34.90 {expr edge cases} {
+    expr {3 % ($min + 1)}
+} {-2147483644}
+
+# Euclidean property:
+# quotient * divisor + remainder = dividend
+
+test expr-35.1 {expr edge cases} {
+    set dividend $max
+    set divisor 2
+    set q [expr {$dividend / $divisor}]
+    set r [expr {$dividend % $divisor}]
+    list $q * $divisor + $r = [expr {($divisor * $q) + $r}]
+} {1073741823 * 2 + 1 = 2147483647}
+test expr-35.2 {expr edge cases} {
+    set dividend [expr {$max - 1}]
+    set divisor 2
+    set q [expr {$dividend / $divisor}]
+    set r [expr {$dividend % $divisor}]
+    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
+} {1073741823 * 2 + 0 = 2147483646}
+test expr-35.3 {expr edge cases} {
+    set dividend [expr {$max - 2}]
+    set divisor 2
+    set q [expr {$dividend / $divisor}]
+    set r [expr {$dividend % $divisor}]
+    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
+} {1073741822 * 2 + 1 = 2147483645}
+test expr-35.4 {expr edge cases} {
+    set dividend $max
+    set divisor 3
+    set q [expr {$dividend / $divisor}]
+    set r [expr {$dividend % $divisor}]
+    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
+} {715827882 * 3 + 1 = 2147483647}
+test expr-35.5 {expr edge cases} {
+    set dividend [expr {$max - 1}]
+    set divisor 3
+    set q [expr {$dividend / $divisor}]
+    set r [expr {$dividend % $divisor}]
+    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
+} {715827882 * 3 + 0 = 2147483646}
+test expr-35.6 {expr edge cases} {
+    set dividend [expr {$max - 2}]
+    set divisor 3
+    set q [expr {$dividend / $divisor}]
+    set r [expr {$dividend % $divisor}]
+    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
+} {715827881 * 3 + 2 = 2147483645}
+test expr-35.7 {expr edge cases} {
+    set dividend $min
+    set divisor 2
+    set q [expr {$dividend / $divisor}]
+    set r [expr {$dividend % $divisor}]
+    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
+} {-1073741824 * 2 + 0 = -2147483648}
+test expr-35.8 {expr edge cases} {
+    set dividend [expr {$min + 1}]
+    set divisor 2
+    set q [expr {$dividend / $divisor}]
+    set r [expr {$dividend % $divisor}]
+    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
+} {-1073741824 * 2 + 1 = -2147483647}
+test expr-35.9 {expr edge cases} {
+    set dividend [expr {$min + 2}]
+    set divisor 2
+    set q [expr {$dividend / $divisor}]
+    set r [expr {$dividend % $divisor}]
+    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
+} {-1073741823 * 2 + 0 = -2147483646}
+test expr-35.10 {expr edge cases} {
+    # Two things could happen here. The multiplication
+    # could overflow a 32 bit type, so that when
+    # 1 is added it overflows again back to min.
+    # The multiplication could also use a wide type
+    # to hold ($min - 1) until 1 is added and
+    # the number becomes $min again.
+    set dividend $min
+    set divisor 3
+    set q [expr {$dividend / $divisor}]
+    set r [expr {$dividend % $divisor}]
+    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
+} {-715827883 * 3 + 1 = -2147483648}
+test expr-35.11 {expr edge cases} {
+    set dividend $min
+    set divisor -3
+    set q [expr {$dividend / $divisor}]
+    set r [expr {$dividend % $divisor}]
+    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
+} {715827882 * -3 + -2 = -2147483648}
+test expr-35.12 {expr edge cases} {
+    set dividend $min
+    set divisor $min
+    set q [expr {$dividend / $divisor}]
+    set r [expr {$dividend % $divisor}]
+    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
+} {1 * -2147483648 + 0 = -2147483648}
+test expr-35.13 {expr edge cases} {
+    set dividend $min
+    set divisor [expr {$min + 1}]
+    set q [expr {$dividend / $divisor}]
+    set r [expr {$dividend % $divisor}]
+    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
+} {1 * -2147483647 + -1 = -2147483648}
+test expr-35.14 {expr edge cases} {
+    set dividend $min
+    set divisor [expr {$min + 2}]
+    set q [expr {$dividend / $divisor}]
+    set r [expr {$dividend % $divisor}]
+    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
+} {1 * -2147483646 + -2 = -2147483648}
+
+# 64bit wide integer checks
+
+set min -9223372036854775808
+set max 9223372036854775807
+
+test expr-36.1 {expr edge cases} {wideIs64bit} {
+    expr {$min / $min}
+} {1}
+test expr-36.2 {expr edge cases} {wideIs64bit} {
+    expr {$min % $min}
+} {0}
+test expr-36.3 {expr edge cases} {wideIs64bit} {
+    expr {$min / ($min + 1)}
+} {1}
+test expr-36.4 {expr edge cases} {wideIs64bit} {
+    expr {$min % ($min + 1)}
+} {-1}
+test expr-36.5 {expr edge cases} {wideIs64bit} {
+    expr {$min / ($min + 2)}
+} {1}
+test expr-36.6 {expr edge cases} {wideIs64bit} {
+    expr {$min % ($min + 2)}
+} {-2}
+test expr-36.7 {expr edge cases} {wideIs64bit} {
+    expr {$min / ($min + 3)}
+} {1}
+test expr-36.8 {expr edge cases} {wideIs64bit} {
+    expr {$min % ($min + 3)}
+} {-3}
+test expr-36.9 {expr edge cases} {wideIs64bit} {
+    expr {$min / -3}
+} {3074457345618258602}
+test expr-36.10 {expr edge cases} {wideIs64bit} {
+    expr {$min % -3}
+} {-2}
+test expr-36.11 {expr edge cases} {wideIs64bit} {
+    expr {$min / -2}
+} {4611686018427387904}
+test expr-36.12 {expr edge cases} {wideIs64bit} {
+    expr {$min % -2}
+} {0}
+test expr-36.13 {expr edge cases} wideIs64bit {
+    expr {wide($min / -1)}
+} $min
+test expr-36.14 {expr edge cases} {wideIs64bit} {
+    expr {$min % -1}
+} {0}
+test expr-36.15 {expr edge cases} wideIs64bit {
+    expr {wide($min * -1)}
+} $min
+test expr-36.16 {expr edge cases} wideIs64bit {
+    expr {wide(-$min)}
+} $min
+test expr-36.17 {expr edge cases} {wideIs64bit} {
+    expr {$min / 1}
+} $min
+test expr-36.18 {expr edge cases} {wideIs64bit} {
+    expr {$min % 1}
+} {0}
+test expr-36.19 {expr edge cases} {wideIs64bit} {
+    expr {$min / 2}
+} {-4611686018427387904}
+test expr-36.20 {expr edge cases} {wideIs64bit} {
+    expr {$min % 2}
+} {0}
+test expr-36.21 {expr edge cases} {wideIs64bit} {
+    expr {$min / 3}
+} {-3074457345618258603}
+test expr-36.22 {expr edge cases} {wideIs64bit} {
+    expr {$min % 3}
+} {1}
+test expr-36.23 {expr edge cases} {wideIs64bit} {
+    expr {$min / ($max - 3)}
+} {-2}
+test expr-36.24 {expr edge cases} {wideIs64bit} {
+    expr {$min % ($max - 3)}
+} {9223372036854775800}
+test expr-36.25 {expr edge cases} {wideIs64bit} {
+    expr {$min / ($max - 2)}
+} {-2}
+test expr-36.26 {expr edge cases} {wideIs64bit} {
+    expr {$min % ($max - 2)}
+} {9223372036854775802}
+test expr-36.27 {expr edge cases} {wideIs64bit} {
+    expr {$min / ($max - 1)}
+} {-2}
+test expr-36.28 {expr edge cases} {wideIs64bit} {
+    expr {$min % ($max - 1)}
+} {9223372036854775804}
+test expr-36.29 {expr edge cases} {wideIs64bit} {
+    expr {$min / $max}
+} {-2}
+test expr-36.30 {expr edge cases} {wideIs64bit} {
+    expr {$min % $max}
+} {9223372036854775806}
+test expr-36.31 {expr edge cases} {wideIs64bit} {
+    expr {$max / $max}
+} {1}
+test expr-36.32 {expr edge cases} {wideIs64bit} {
+    expr {$max % $max}
+} {0}
+test expr-36.33 {expr edge cases} {wideIs64bit} {
+    expr {$max / ($max - 1)}
+} {1}
+test expr-36.34 {expr edge cases} {wideIs64bit} {
+    expr {$max % ($max - 1)}
+} {1}
+test expr-36.35 {expr edge cases} {wideIs64bit} {
+    expr {$max / ($max - 2)}
+} {1}
+test expr-36.36 {expr edge cases} {wideIs64bit} {
+    expr {$max % ($max - 2)}
+} {2}
+test expr-36.37 {expr edge cases} {wideIs64bit} {
+    expr {$max / ($max - 3)}
+} {1}
+test expr-36.38 {expr edge cases} {wideIs64bit} {
+    expr {$max % ($max - 3)}
+} {3}
+test expr-36.39 {expr edge cases} {wideIs64bit} {
+    expr {$max / 3}
+} {3074457345618258602}
+test expr-36.40 {expr edge cases} {wideIs64bit} {
+    expr {$max % 3}
+} {1}
+test expr-36.41 {expr edge cases} {wideIs64bit} {
+    expr {$max / 2}
+} {4611686018427387903}
+test expr-36.42 {expr edge cases} {wideIs64bit} {
+    expr {$max % 2}
+} {1}
+test expr-36.43 {expr edge cases} {wideIs64bit} {
+    expr {$max / 1}
+} $max
+test expr-36.44 {expr edge cases} {wideIs64bit} {
+    expr {$max % 1}
+} {0}
+test expr-36.45 {expr edge cases} {wideIs64bit} {
+    expr {$max / -1}
+} "-$max"
+test expr-36.46 {expr edge cases} {wideIs64bit} {
+    expr {$max % -1}
+} {0}
+test expr-36.47 {expr edge cases} {wideIs64bit} {
+    expr {$max / -2}
+} {-4611686018427387904}
+test expr-36.48 {expr edge cases} {wideIs64bit} {
+    expr {$max % -2}
+} {-1}
+test expr-36.49 {expr edge cases} {wideIs64bit} {
+    expr {$max / -3}
+} {-3074457345618258603}
+test expr-36.50 {expr edge cases} {wideIs64bit} {
+    expr {$max % -3}
+} {-2}
+test expr-36.51 {expr edge cases} {wideIs64bit} {
+    expr {$max / ($min + 3)}
+} {-2}
+test expr-36.52 {expr edge cases} {wideIs64bit} {
+    expr {$max % ($min + 3)}
+} {-9223372036854775803}
+test expr-36.53 {expr edge cases} {wideIs64bit} {
+    expr {$max / ($min + 2)}
+} {-2}
+test expr-36.54 {expr edge cases} {wideIs64bit} {
+    expr {$max % ($min + 2)}
+} {-9223372036854775805}
+test expr-36.55 {expr edge cases} {wideIs64bit} {
+    expr {$max / ($min + 1)}
+} {-1}
+test expr-36.56 {expr edge cases} {wideIs64bit} {
+    expr {$max % ($min + 1)}
+} {0}
+test expr-36.57 {expr edge cases} {wideIs64bit} {
+    expr {$max / $min}
+} {-1}
+test expr-36.58 {expr edge cases} {wideIs64bit} {
+    expr {$max % $min}
+} {-1}
+test expr-36.59 {expr edge cases} {wideIs64bit} {
+    expr {($min + 1) / ($max - 1)}
+} {-2}
+test expr-36.60 {expr edge cases} {wideIs64bit} {
+    expr {($min + 1) % ($max - 1)}
+} {9223372036854775805}
+test expr-36.61 {expr edge cases} {wideIs64bit} {
+    expr {($max - 1) / ($min + 1)}
+} {-1}
+test expr-36.62 {expr edge cases} {wideIs64bit} {
+    expr {($max - 1) % ($min + 1)}
+} {-1}
+test expr-36.63 {expr edge cases} {wideIs64bit} {
+    expr {($max - 1) / $min}
+} {-1}
+test expr-36.64 {expr edge cases} {wideIs64bit} {
+    expr {($max - 1) % $min}
+} {-2}
+test expr-36.65 {expr edge cases} {wideIs64bit} {
+    expr {($max - 2) / $min}
+} {-1}
+test expr-36.66 {expr edge cases} {wideIs64bit} {
+    expr {($max - 2) % $min}
+} {-3}
+test expr-36.67 {expr edge cases} {wideIs64bit} {
+    expr {($max - 3) / $min}
+} {-1}
+test expr-36.68 {expr edge cases} {wideIs64bit} {
+    expr {($max - 3) % $min}
+} {-4}
+test expr-36.69 {expr edge cases} {wideIs64bit} {
+    expr {-3 / $min}
+} {0}
+test expr-36.70 {expr edge cases} {wideIs64bit} {
+    expr {-3 % $min}
+} {-3}
+test expr-36.71 {expr edge cases} {wideIs64bit} {
+    expr {-2 / $min}
+} {0}
+test expr-36.72 {expr edge cases} {wideIs64bit} {
+    expr {-2 % $min}
+} {-2}
+test expr-36.73 {expr edge cases} {wideIs64bit} {
+    expr {-1 / $min}
+} {0}
+test expr-36.74 {expr edge cases} {wideIs64bit} {
+    expr {-1 % $min}
+} {-1}
+test expr-36.75 {expr edge cases} {wideIs64bit} {
+    expr {0 / $min}
+} {0}
+test expr-36.76 {expr edge cases} {wideIs64bit} {
+    expr {0 % $min}
+} {0}
+test expr-36.77 {expr edge cases} {wideIs64bit} {
+    expr {0 / ($min + 1)}
+} {0}
+test expr-36.78 {expr edge cases} {wideIs64bit} {
+    expr {0 % ($min + 1)}
+} {0}
+test expr-36.79 {expr edge cases} {wideIs64bit} {
+    expr {1 / $min}
+} {-1}
+test expr-36.80 {expr edge cases} {wideIs64bit} {
+    expr {1 % $min}
+} {-9223372036854775807}
+test expr-36.81 {expr edge cases} {wideIs64bit} {
+    expr {1 / ($min + 1)}
+} {-1}
+test expr-36.82 {expr edge cases} {wideIs64bit} {
+    expr {1 % ($min + 1)}
+} {-9223372036854775806}
+test expr-36.83 {expr edge cases} {wideIs64bit} {
+    expr {2 / $min}
+} {-1}
+test expr-36.84 {expr edge cases} {wideIs64bit} {
+    expr {2 % $min}
+} {-9223372036854775806}
+test expr-36.85 {expr edge cases} {wideIs64bit} {
+    expr {2 / ($min + 1)}
+} {-1}
+test expr-36.86 {expr edge cases} {wideIs64bit} {
+    expr {2 % ($min + 1)}
+} {-9223372036854775805}
+test expr-36.87 {expr edge cases} {wideIs64bit} {
+    expr {3 / $min}
+} {-1}
+test expr-36.88 {expr edge cases} {wideIs64bit} {
+    expr {3 % $min}
+} {-9223372036854775805}
+test expr-36.89 {expr edge cases} {wideIs64bit} {
+    expr {3 / ($min + 1)}
+} {-1}
+test expr-36.90 {expr edge cases} {wideIs64bit} {
+    expr {3 % ($min + 1)}
+} {-9223372036854775804}
+
+test expr-37.1 {expr edge cases} {wideIs64bit} {
+    set dividend $max
+    set divisor 2
+    set q [expr {$dividend / $divisor}]
+    set r [expr {$dividend % $divisor}]
+    list $q * $divisor + $r = [expr {($divisor * $q) + $r}]
+} {4611686018427387903 * 2 + 1 = 9223372036854775807}
+test expr-37.2 {expr edge cases} {wideIs64bit} {
+    set dividend [expr {$max - 1}]
+    set divisor 2
+    set q [expr {$dividend / $divisor}]
+    set r [expr {$dividend % $divisor}]
+    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
+} {4611686018427387903 * 2 + 0 = 9223372036854775806}
+test expr-37.3 {expr edge cases} {wideIs64bit} {
+    set dividend [expr {$max - 2}]
+    set divisor 2
+    set q [expr {$dividend / $divisor}]
+    set r [expr {$dividend % $divisor}]
+    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
+} {4611686018427387902 * 2 + 1 = 9223372036854775805}
+test expr-37.4 {expr edge cases} {wideIs64bit} {
+    set dividend $max
+    set divisor 3
+    set q [expr {$dividend / $divisor}]
+    set r [expr {$dividend % $divisor}]
+    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
+} {3074457345618258602 * 3 + 1 = 9223372036854775807}
+test expr-37.5 {expr edge cases} {wideIs64bit} {
+    set dividend [expr {$max - 1}]
+    set divisor 3
+    set q [expr {$dividend / $divisor}]
+    set r [expr {$dividend % $divisor}]
+    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
+} {3074457345618258602 * 3 + 0 = 9223372036854775806}
+test expr-37.6 {expr edge cases} {wideIs64bit} {
+    set dividend [expr {$max - 2}]
+    set divisor 3
+    set q [expr {$dividend / $divisor}]
+    set r [expr {$dividend % $divisor}]
+    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
+} {3074457345618258601 * 3 + 2 = 9223372036854775805}
+test expr-37.7 {expr edge cases} {wideIs64bit} {
+    set dividend $min
+    set divisor 2
+    set q [expr {$dividend / $divisor}]
+    set r [expr {$dividend % $divisor}]
+    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
+} {-4611686018427387904 * 2 + 0 = -9223372036854775808}
+test expr-37.8 {expr edge cases} {wideIs64bit} {
+    set dividend [expr {$min + 1}]
+    set divisor 2
+    set q [expr {$dividend / $divisor}]
+    set r [expr {$dividend % $divisor}]
+    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
+} {-4611686018427387904 * 2 + 1 = -9223372036854775807}
+test expr-37.9 {expr edge cases} {wideIs64bit} {
+    set dividend [expr {$min + 2}]
+    set divisor 2
+    set q [expr {$dividend / $divisor}]
+    set r [expr {$dividend % $divisor}]
+    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
+} {-4611686018427387903 * 2 + 0 = -9223372036854775806}
+test expr-37.10 {expr edge cases} {wideIs64bit} {
+    # Multiplication overflows 64 bit type here,
+    # so when the 1 is added it overflows
+    # again and we end up back at min.
+    set dividend $min
+    set divisor 3
+    set q [expr {$dividend / $divisor}]
+    set r [expr {$dividend % $divisor}]
+    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
+} {-3074457345618258603 * 3 + 1 = -9223372036854775808}
+test expr-37.11 {expr edge cases} {wideIs64bit} {
+    set dividend $min
+    set divisor -3
+    set q [expr {$dividend / $divisor}]
+    set r [expr {$dividend % $divisor}]
+    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
+} {3074457345618258602 * -3 + -2 = -9223372036854775808}
+test expr-37.12 {expr edge cases} {wideIs64bit} {
+    set dividend $min
+    set divisor $min
+    set q [expr {$dividend / $divisor}]
+    set r [expr {$dividend % $divisor}]
+    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
+} {1 * -9223372036854775808 + 0 = -9223372036854775808}
+test expr-37.13 {expr edge cases} {wideIs64bit} {
+    set dividend $min
+    set divisor [expr {$min + 1}]
+    set q [expr {$dividend / $divisor}]
+    set r [expr {$dividend % $divisor}]
+    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
+} {1 * -9223372036854775807 + -1 = -9223372036854775808}
+test expr-37.14 {expr edge cases} {wideIs64bit} {
+    set dividend $min
+    set divisor [expr {$min + 2}]
+    set q [expr {$dividend / $divisor}]
+    set r [expr {$dividend % $divisor}]
+    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
+} {1 * -9223372036854775806 + -2 = -9223372036854775808}
+
+test expr-38.1 {abs of smallest 32-bit integer [Bug 1241572]} {wideIs64bit} {
+    expr {abs(-2147483648)}
+} 2147483648
+test expr-38.2 {abs and -0 [Bug 1893815]} {
+    expr {abs(-0)}
+} 0
+test expr-38.3 {abs and -0 [Bug 1893815]} {
+    expr {abs(-0.0)}
+} 0.0
+test expr-38.4 {abs and -0 [Bug 1893815]} {
+    expr {abs(-1e-324)}
+} 0.0
+test expr-38.5 {abs and -0 [Bug 1893815]} {
+    ::tcl::mathfunc::abs -0
+} 0
+test expr-38.6 {abs and -0 [Bug 1893815]} {
+    ::tcl::mathfunc::abs -0.0
+} 0.0
+test expr-38.7 {abs and -0 [Bug 1893815]} {
+    ::tcl::mathfunc::abs -1e-324
+} 0.0
+test expr-38.8 {abs and 0.0 [Bug 2954959]} {
+    ::tcl::mathfunc::abs 0.0
+} 0.0
+test expr-38.9 {abs and 0.0 [Bug 2954959]} {
+    expr {abs(0.0)}
+} 0.0
+test expr-38.10 {abs and -0x0 [Bug 2954959]} {
+    expr {abs(-0x0)}
+} 0
+test expr-38.11 {abs and 0x0 [Bug 2954959]} {
+    ::tcl::mathfunc::abs {     0x0}
+} {    0x0}
+test expr-38.12 {abs and -0x0 [Bug 2954959]} {
+    ::tcl::mathfunc::abs {     -0x0}
+} 0
+test expr-38.13 {abs and 0.0 [Bug 2954959]} {
+    ::tcl::mathfunc::abs 1e-324
+} 1e-324
+test expr-38.14 {abs and INT64_MIN special-case} {
+    ::tcl::mathfunc::abs -9223372036854775808
+} 9223372036854775808
+test expr-38.15 {abs and INT128_MIN special-case} {
+    ::tcl::mathfunc::abs -170141183460469231731687303715884105728
+} 170141183460469231731687303715884105728
+
+testConstraint testexprlongobj   [llength [info commands testexprlongobj]]
+testConstraint testexprdoubleobj [llength [info commands testexprdoubleobj]]
+
+test expr-39.1 {Check that Tcl_ExprLongObj doesn't modify interpreter result if no error} testexprlongobj {
+    testexprlongobj 4+1
+} {This is a result: 5}
+#Check for [Bug 1109484]
+test expr-39.2 {Tcl_ExprLongObj handles wide ints gracefully} testexprlongobj {
+    testexprlongobj wide(1)+2
+} {This is a result: 3}
+
+test expr-39.3 {Tcl_ExprLongObj on the empty string} \
+    -constraints {testexprlongobj}\
+    -body {testexprlongobj ""} \
+    -match glob \
+    -returnCodes error -result *
+test expr-39.4 {Tcl_ExprLongObj coerces doubles} testexprlongobj {
+    testexprlongobj 3+.14159
+} {This is a result: 3}
+test expr-39.5 {Tcl_ExprLongObj handles overflows} {testexprlongobj longIs32bit} {
+    testexprlongobj 0x80000000
+} {This is a result: -2147483648}
+test expr-39.6 {Tcl_ExprLongObj handles overflows} {testexprlongobj longIs32bit} {
+    testexprlongobj 0xffffffff
+} {This is a result: -1}
+test expr-39.7 {Tcl_ExprLongObj handles overflows} \
+    -constraints {testexprlongobj longIs32bit} \
+    -match glob \
+    -body {
+       list [catch {testexprlongobj 0x100000000} result] $result
+    } \
+    -result {1 {integer value too large to represent*}}
+test expr-39.8 {Tcl_ExprLongObj handles overflows} testexprlongobj {
+    testexprlongobj -0x80000000
+} {This is a result: -2147483648}
+test expr-39.9 {Tcl_ExprLongObj handles overflows} {testexprlongobj longIs32bit} {
+    testexprlongobj -0xffffffff
+} {This is a result: 1}
+test expr-39.10 {Tcl_ExprLongObj handles overflows} \
+    -constraints {testexprlongobj longIs32bit} \
+    -match glob \
+    -body {
+       list [catch {testexprlongobj -0x100000000} result] $result
+    } \
+    -result {1 {integer value too large to represent*}}
+test expr-39.11 {Tcl_ExprLongObj handles overflows} {testexprlongobj longIs32bit} {
+    testexprlongobj 2147483648.
+} {This is a result: -2147483648}
+test expr-39.12 {Tcl_ExprLongObj handles overflows} {testexprlongobj longIs32bit} {
+    testexprlongobj 4294967295.
+} {This is a result: -1}
+test expr-39.13 {Tcl_ExprLongObj handles overflows} \
+    -constraints {testexprlongobj longIs32bit} \
+    -match glob \
+    -body {
+       list [catch {testexprlongobj 4294967296.} result] $result
+    } \
+    -result {1 {integer value too large to represent*}}
+test expr-39.14 {Tcl_ExprLongObj handles overflows} testexprlongobj {
+    testexprlongobj -2147483648.
+} {This is a result: -2147483648}
+test expr-39.15 {Tcl_ExprLongObj handles overflows} {testexprlongobj longIs32bit} {
+    testexprlongobj -4294967295.
+} {This is a result: 1}
+test expr-39.16 {Tcl_ExprLongObj handles overflows} \
+    -constraints {testexprlongobj longIs32bit} \
+    -match glob \
+    -body {
+       list [catch {testexprlongobj 4294967296.} result] $result
+    } \
+    -result {1 {integer value too large to represent*}}
+
+test expr-39.17 {Check that Tcl_ExprDoubleObj doesn't modify interpreter result if no error} testexprdoubleobj {
+    testexprdoubleobj 4.+1.
+} {This is a result: 5.0}
+#Check for [Bug 1109484]
+test expr-39.18 {Tcl_ExprDoubleObj on the empty string} \
+    -constraints {testexprdoubleobj} \
+    -match glob \
+    -body {testexprdoubleobj ""} \
+    -returnCodes error -result *
+test expr-39.19 {Tcl_ExprDoubleObj coerces wides} testexprdoubleobj {
+    testexprdoubleobj 1[string repeat 0 17]
+} {This is a result: 1e+17}
+test expr-39.20 {Tcl_ExprDoubleObj coerces bignums} testexprdoubleobj {
+    testexprdoubleobj 1[string repeat 0 38]
+} {This is a result: 1e+38}
+test expr-39.21 {Tcl_ExprDoubleObj handles overflows} \
+    testexprdoubleobj&&ieeeFloatingPoint {
+       testexprdoubleobj 17976931348623157[string repeat 0 292].
+    } {This is a result: 1.7976931348623157e+308}
+test expr-39.22 {Tcl_ExprDoubleObj handles overflows that look like int} \
+    testexprdoubleobj&&ieeeFloatingPoint {
+       testexprdoubleobj 17976931348623157[string repeat 0 292]
+    } {This is a result: 1.7976931348623157e+308}
+test expr-39.23 {Tcl_ExprDoubleObj handles overflows} \
+    testexprdoubleobj&&ieeeFloatingPoint {
+       testexprdoubleobj 17976931348623165[string repeat 0 292].
+    } {This is a result: Inf}
+test expr-39.24 {Tcl_ExprDoubleObj handles overflows that look like int} \
+    testexprdoubleobj&&ieeeFloatingPoint {
+       testexprdoubleobj 17976931348623165[string repeat 0 292]
+    } {This is a result: Inf}
+test expr-39.25 {Tcl_ExprDoubleObj and NaN} \
+    {testexprdoubleobj ieeeFloatingPoint} {
+       list [catch {testexprdoubleobj 0.0/0.0} result] $result
+    } {1 {domain error: argument not in valid range}}
+
+test expr-40.1 {large octal shift} {
+    expr 0o100000000000000000000000000000000
+} [expr 0x1000000000000000000000000]
+test expr-40.2 {large octal shift} {
+    expr 0o100000000000000000000000000000001
+} [expr 0x1000000000000000000000001]
+
+test expr-41.1 {exponent overflow} {
+    expr 1.0e2147483630
+} Inf
+test expr-41.2 {exponent underflow} {
+    expr 1.0e-2147483630
+} 0.0
+
+test expr-41.3 {exponent overflow} {
+    expr 1e2147483647
+} Inf
+test expr-41.4 {exponent overflow} {
+    expr 1e2147483648
+} Inf
+test expr-41.5 {exponent overflow} {
+    expr 100e2147483645
+} Inf
+test expr-41.6 {exponent overflow} {
+    expr 100e2147483646
+} Inf
+test expr-41.7 {exponent overflow} {
+    expr 1.0e2147483647
+} Inf
+test expr-41.8 {exponent overflow} {
+    expr 1.0e2147483648
+} Inf
+test expr-41.9 {exponent overflow} {
+    expr 1.2e2147483647
+} Inf
+test expr-41.10 {exponent overflow} {
+    expr 1.2e2147483648
+} Inf
+
+test expr-41.11 {exponent overflow} {
+    expr 1e-2147483648
+} 0.0
+test expr-41.12 {exponent overflow} {
+    expr 1e-2147483649
+} 0.0
+test expr-41.13 {exponent overflow} {
+    expr 100e-2147483650
+} 0.0
+test expr-41.14 {exponent overflow} {
+    expr 100e-2147483651
+} 0.0
+test expr-41.15 {exponent overflow} {
+    expr 1.0e-2147483648
+} 0.0
+test expr-41.16 {exponent overflow} {
+    expr 1.0e-2147483649
+} 0.0
+test expr-41.17 {exponent overflow} {
+    expr 1.23e-2147483646
+} 0.0
+test expr-41.18 {exponent overflow} {
+    expr 1.23e-2147483647
+} 0.0
+
+test expr-41.19 {numSigDigs == 0} {
+    expr 0e309
+} 0.0
+test expr-41.20 {numSigDigs == 0} {
+    expr 0e310
+} 0.0
+test expr-41.21 {negative zero, large exponent} {
+    expr -0e309
+} -0.0
+test expr-41.22 {negative zero, large exponent} {
+    expr -0e310
+} -0.0
+test expr-41.23 {floating point overflow on significand (Bug 1de6b0629e)} {
+    expr 123[string repeat 0 309]1e-310
+} 123.0
+
+test expr-42.1 {denormals} ieeeFloatingPoint {
+    expr 7e-324
+} 5e-324
+
+# TIP 114
+
+test expr-43.1 {0b notation} {
+    expr 0b0
+} 0
+test expr-43.2 {0b notation} {
+    expr 0b1
+} 1
+test expr-43.3 {0b notation} {
+    expr 0b10
+} 2
+test expr-43.4 {0b notation} {
+    expr 0b11
+} 3
+test expr-43.5 {0b notation} {
+    expr 0b100
+} 4
+test expr-43.6 {0b notation} {
+    expr 0b101
+} 5
+test expr-43.7 {0b notation} {
+    expr 0b1000
+} 8
+test expr-43.8 {0b notation} {
+    expr 0b1001
+} 9
+test expr-43.9 {0b notation} {
+    expr 0b1[string repeat 0 31]
+} 2147483648
+test expr-43.10 {0b notation} {
+    expr 0b1[string repeat 0 30]1
+} 2147483649
+test expr-43.11 {0b notation} {
+    expr 0b[string repeat 1 64]
+} 18446744073709551615
+test expr-43.12 {0b notation} {
+    expr 0b1[string repeat 0 64]
+} 18446744073709551616
+test expr-43.13 {0b notation} {
+    expr 0b1[string repeat 0 63]1
+} 18446744073709551617
+
+test expr-44.1 {0o notation} {
+    expr 0o0
+} 0
+test expr-44.2 {0o notation} {
+    expr 0o1
+} 1
+test expr-44.3 {0o notation} {
+    expr 0o7
+} 7
+test expr-44.4 {0o notation} {
+    expr 0o10
+} 8
+test expr-44.5 {0o notation} {
+    expr 0o11
+} 9
+test expr-44.6 {0o notation} {
+    expr 0o100
+} 64
+test expr-44.7 {0o notation} {
+    expr 0o101
+} 65
+test expr-44.8 {0o notation} {
+    expr 0o1000
+} 512
+test expr-44.9 {0o notation} {
+    expr 0o1001
+} 513
+test expr-44.10 {0o notation} {
+    expr 0o1[string repeat 7 21]
+} 18446744073709551615
+test expr-44.11 {0o notation} {
+    expr 0o2[string repeat 0 21]
+} 18446744073709551616
+test expr-44.12 {0o notation} {
+    expr 0o2[string repeat 0 20]1
+} 18446744073709551617
+
+# TIP 237 again
+
+test expr-45.1 {entier} {
+    expr entier(0)
+} 0
+test expr-45.2 {entier} {
+    expr entier(0.5)
+} 0
+test expr-45.3 {entier} {
+    expr entier(1.0)
+} 1
+test expr-45.4 {entier} {
+    expr entier(1.5)
+} 1
+test expr-45.5 {entier} {
+    expr entier(2.0)
+} 2
+test expr-45.6 {entier} {
+    expr entier(1e+22)
+} 10000000000000000000000
+test expr-45.7 {entier} {
+    list [catch {expr entier(Inf)} result] $result
+} {1 {integer value too large to represent}}
+test expr-45.8 {entier} ieeeFloatingPoint {
+    list [catch {expr {entier($ieeeValues(NaN))}} result] $result
+} {1 {floating point value is Not a Number}}
+test expr-45.9 {entier} ieeeFloatingPoint {
+    list [catch {expr {entier($ieeeValues(-NaN))}} result] $result
+} {1 {floating point value is Not a Number}}
+
+test expr-46.1 {round() rounds to +-infinity} {
+    expr round(0.5)
+} 1
+test expr-46.2 {round() rounds to +-infinity} {
+    expr round(1.5)
+} 2
+test expr-46.3 {round() rounds to +-infinity} {
+    expr round(-0.5)
+} -1
+test expr-46.4 {round() rounds to +-infinity} {
+    expr round(-1.5)
+} -2
+test expr-46.5 {round() overflow} {
+    expr round(9.2233720368547758e+018)
+} 9223372036854775808
+test expr-46.6 {round() overflow} {
+    expr round(-9.2233720368547758e+018)
+} -9223372036854775808
+test expr-46.7 {round() bad value} -body {
+    set x trash
+    expr {round($x)}
+} -returnCodes error -match glob -result *
+test expr-46.8 {round() already an integer} {
+    set x 123456789012
+    incr x
+    expr round($x)
+} 123456789013
+test expr-46.9 {round() boundary case - 1/2 - 1 ulp} {
+    set x 0.25
+    set bit 0.125
+    while 1 {
+       set newx [expr {$x + $bit}]
+       if { $newx == $x || $newx == 0.5 } break
+       set x $newx
+       set bit [expr { $bit / 2.0 }]
+    }
+    expr {round($x)}
+} 0
+test expr-46.10 {round() boundary case - 1/2 + 1 ulp} {
+    set x 0.75
+    set bit 0.125
+    while 1 {
+       set newx [expr {$x - $bit}]
+       if { $newx == $x || $newx == 0.5 } break
+       set x $newx
+       set bit [expr { $bit / 2.0 }]
+    }
+    expr {round($x)}
+} 1
+test expr-46.11 {round() boundary case - -1/2 - 1 ulp} {
+    set x -0.75
+    set bit 0.125
+    while 1 {
+       set newx [expr {$x + $bit}]
+       if { $newx == $x || $newx == -0.5 } break
+       set x $newx
+       set bit [expr { $bit / 2.0 }]
+    }
+    expr {round($x)}
+} -1
+test expr-46.12 {round() boundary case - -1/2 + 1 ulp} {
+    set x -0.25
+    set bit 0.125
+    while 1 {
+       set newx [expr {$x - $bit}]
+       if { $newx == $x || $newx == -0.5 } break
+       set x $newx
+       set bit [expr { $bit / 2.0 }]
+    }
+    expr {round($x)}
+} 0
+test expr-46.13 {round() boundary case - round down} {
+    expr {round(2147483647 - 0.51)}
+} 2147483646
+
+test expr-46.14 {round() boundary case - round up} {
+    expr {round(2147483647 - 0.50)}
+} 2147483647
+
+test expr-46.15 {round() boundary case - round up to wide} {
+    expr {round(2147483647 + 0.50)}
+} [expr {wide(2147483647) + 1}]
+
+test expr-46.16 {round() boundary case - round up} {
+    expr {round(-2147483648 + 0.51)}
+} -2147483647
+
+test expr-46.17 {round() boundary case - round down} {
+    expr {round(-2147483648 + 0.50)}
+} -2147483648
+test expr-46.18 {round() boundary case - round down to wide} {
+    expr {round(-2147483648 - 0.50)}
+} [expr {wide(-2147483648) - 1}]
+
+test expr-46.19 {round() handling of long/bignum boundary} {
+    expr {round(double(0x7fffffffffffffff))}
+} 9223372036854775808
+
+test expr-47.1 {isqrt() - arg count} {
+    list [catch {expr {isqrt(1,2)}} result] $result
+} {1 {too many arguments for math function "isqrt"}}
+
+test expr-47.2 {isqrt() - non-number} {
+    list [catch {expr {isqrt({rubbish})}} result] $result
+} {1 {expected number but got "rubbish"}}
+
+test expr-47.3 {isqrt() - NaN} ieeeFloatingPoint {
+    list [catch {expr {isqrt(NaN)}} result] $result
+} {1 {floating point value is Not a Number}}
+
+test expr-47.4 {isqrt() of negative floating point number} {
+    list [catch {expr {isqrt(-1.0)}} result] $result
+} {1 {square root of negative argument}}
+
+test expr-47.5 {isqrt() of floating point zero} {
+    expr isqrt(0.0)
+} 0
+
+test expr-47.6 {isqrt() of exact floating point numbers} {
+    set trouble {}
+    for {set i 0} {$i < 16} {incr i} {
+       set root [expr {1 << $i}]
+       set rm1 [expr {$root - 1}]
+       set arg [expr {pow(2., (2 * $i))}]
+       if {isqrt($arg-1) != $rm1} {
+           append trouble "i = " $i ": isqrt( " $arg "-1) != " $rm1 "\n"
+       }
+       if {isqrt($arg) != $root} {
+           append trouble "i = " $i ": isqrt( " $arg ") != " $root "\n"
+       }
+       if {isqrt($arg+1) != $root} {
+           append trouble "i = " $i ": isqrt( " $arg "+1) != " $root "\n"
+       }
+    }
+    set trouble
+} {}
+
+test expr-47.7 {isqrt() of exact floating point numbers} ieeeFloatingPoint {
+    set trouble {}
+    for {set i 17} {$i < 27} {incr i} {
+       set root [expr {1 << $i}]
+       set rm1 [expr {$root - 1}]
+       set arg [expr {pow(2., (2 * $i))}]
+       if {isqrt($arg-1.0) != $rm1} {
+           append trouble "i = " $i ": isqrt( " $arg "-1) != " $rm1 "\n"
+       }
+       if {isqrt($arg) != $root} {
+           append trouble "i = " $i ": isqrt( " $arg ") != " $root "\n"
+       }
+       if {isqrt($arg+1.0) != $root} {
+           append trouble "i = " $i ": isqrt( " $arg "+1) != " $root "\n"
+       }
+    }
+    set trouble
+} {}
+
+test expr-47.8 {isqrt of inexact floating point number} ieeeFloatingPoint {
+    expr isqrt(2[string repeat 0 34])
+} 141421356237309504
+
+test expr-47.9 {isqrt of negative int} {
+    list [catch {expr isqrt(-1)} result] $result
+} {1 {square root of negative argument}}
+
+test expr-47.10 {isqrt of negative bignum} {
+    list [catch {expr isqrt(-1[string repeat 0 1000])} result] $result
+} {1 {square root of negative argument}}
+
+test expr-47.11 {isqrt of zero} {
+    expr {isqrt(0)}
+} 0
+
+test expr-47.12 {isqrt of various sizes of integer} {
+    set faults 0
+    set trouble {}
+    for {set i 0} {$faults < 10 && $i <= 1024} {incr i} {
+       set root [expr {1 << $i}]
+       set rm1 [expr {$root - 1}]
+       set arg [expr {1 << (2 * $i)}]
+       set tval [expr {isqrt($arg-1)}]
+       if {$tval != $rm1} {
+           append trouble "i = " $i ": isqrt(" $arg "-1) == " $tval \
+               " != " $rm1 "\n"
+           incr faults
+       }
+       set tval [expr {isqrt($arg)}]
+       if {$tval != $root} {
+           append trouble "i = " $i ": isqrt(" $arg ") == " $tval \
+               " != " $root "\n"
+           incr faults
+       }
+       set tval [expr {isqrt($arg+1)}]
+       if {$tval != $root} {
+           append trouble "i = " $i ": isqrt(" $arg "+1) == " $tval \
+               " != " $root "\n"
+           incr faults
+       }
+    }
+    set trouble
+} {}
+
+test expr-47.13 {isqrt and floating point rounding (Bug 2143288)} {
+    set trouble {}
+    set faults 0
+    for {set i 0} {$i < 29 && $faults < 10} {incr i} {
+       for {set j 0} {$j <= $i} {incr j} {
+           set k [expr {isqrt((1<<56)+(1<<$i)+(1<<$j))}]
+           if {$k != (1<<28)} {
+               append trouble "i = $i, j = $j, k = $k\n"
+               incr faults
+           }
+       }
+       set k [expr {isqrt((1<<56)+(1<<29)+(1<<$i))}]
+       if {$k != (1<<28)+1} {
+           append trouble "i = $i, k = $k\n"
+           incr faults
+       }
+    }
+    set trouble
+} {}
+
+test expr-48.1 {Bug 1770224} {
+    expr {-0x8000000000000001 >> 0x8000000000000000}
+} -1
+
+test expr-49.1 {Bug 2823282} {
+    coroutine foo apply {{} {set expr expr; $expr {[yield]}}}
+    foo 1
+} 1
+
+test expr-50.1 {test sqrt() of bignums with non-Inf answer} {
+    expr {sqrt("1[string repeat 0 616]") == 1e308}
+} 1
+
+test expr-51.1 {test round-to-even on input} {
+    expr 6.9294956446009195e15
+} 6929495644600920.0
+
+test expr-52.1 {
+       comparison with empty string does not generate string representation
+} {
+       set a [list one two three]
+       list [expr {$a eq {}}] [expr {$a < {}}] [expr {$a > {}}] [
+               string match {*no string representation*} [
+               ::tcl::unsupported::representation $a]]
+} {0 0 1 1}
+
+
+
+# cleanup
+if {[info exists a]} {
+    unset a
+}
+catch {unset min}
+catch {unset max}
+::tcltest::cleanupTests
+return
+
+# Local Variables:
+# mode: tcl
+# End: