Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/tcl8.5.2/tests/expr.test @ 68

Last change on this file since 68 was 25, checked in by landauf, 16 years ago

added tcl to libs

File size: 322.6 KB
Line 
1# Commands covered: expr
2#
3# This file contains a collection of tests for one or more of the Tcl
4# built-in commands. Sourcing this file into Tcl runs the tests and
5# generates output for errors.  No output means no errors were found.
6#
7# Copyright (c) 1996-1997 Sun Microsystems, Inc.
8# Copyright (c) 1998-2000 by Scriptics Corporation.
9#
10# See the file "license.terms" for information on usage and redistribution
11# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
12#
13# RCS: @(#) $Id: expr.test,v 1.72 2008/03/10 16:18:55 dgp Exp $
14
15if {[lsearch [namespace children] ::tcltest] == -1} {
16    package require tcltest 2.1
17    namespace import -force ::tcltest::*
18}
19
20testConstraint testmathfunctions [expr {
21    ([catch {expr T1()} msg] != 1) || ($msg ne {invalid command name "tcl::mathfunc::T1"})
22}]
23
24# Determine if "long int" type is a 32 bit number and if the wide
25# type is a 64 bit number on this machine.
26
27testConstraint longIs32bit [expr {int(0x80000000) < 0}]
28testConstraint longIs64bit [expr {int(0x8000000000000000) < 0}]
29testConstraint wideIs64bit \
30        [expr {(wide(0x80000000) > 0) && (wide(0x8000000000000000) < 0)}]
31
32# Big test for correct ordering of data in [expr]
33
34proc testIEEE {} {
35    variable ieeeValues
36    binary scan [binary format dd -1.0 1.0] c* c
37    switch -exact -- $c {
38        {0 0 0 0 0 0 -16 -65 0 0 0 0 0 0 -16 63} {
39            # little endian
40            binary scan \x00\x00\x00\x00\x00\x00\xf0\xff d \
41                ieeeValues(-Infinity)
42            binary scan \x00\x00\x00\x00\x00\x00\xf0\xbf d \
43                ieeeValues(-Normal)
44            binary scan \x00\x00\x00\x00\x00\x00\x08\x80 d \
45                ieeeValues(-Subnormal)
46            binary scan \x00\x00\x00\x00\x00\x00\x00\x80 d \
47                ieeeValues(-0)
48            binary scan \x00\x00\x00\x00\x00\x00\x00\x00 d \
49                ieeeValues(+0)
50            binary scan \x00\x00\x00\x00\x00\x00\x08\x00 d \
51                ieeeValues(+Subnormal)
52            binary scan \x00\x00\x00\x00\x00\x00\xf0\x3f d \
53                ieeeValues(+Normal)
54            binary scan \x00\x00\x00\x00\x00\x00\xf0\x7f d \
55                ieeeValues(+Infinity)
56            binary scan \x00\x00\x00\x00\x00\x00\xf8\x7f d \
57                ieeeValues(NaN)
58            binary scan \x00\x00\x00\x00\x00\x00\xf8\xff d \
59                ieeeValues(-NaN)
60            set ieeeValues(littleEndian) 1
61            return 1
62        }
63        {-65 -16 0 0 0 0 0 0 63 -16 0 0 0 0 0 0} {
64            binary scan \xff\xf0\x00\x00\x00\x00\x00\x00 d \
65                ieeeValues(-Infinity)
66            binary scan \xbf\xf0\x00\x00\x00\x00\x00\x00 d \
67                ieeeValues(-Normal)
68            binary scan \x80\x08\x00\x00\x00\x00\x00\x00 d \
69                ieeeValues(-Subnormal)
70            binary scan \x80\x00\x00\x00\x00\x00\x00\x00 d \
71                ieeeValues(-0)
72            binary scan \x00\x00\x00\x00\x00\x00\x00\x00 d \
73                ieeeValues(+0)
74            binary scan \x00\x08\x00\x00\x00\x00\x00\x00 d \
75                ieeeValues(+Subnormal)
76            binary scan \x3f\xf0\x00\x00\x00\x00\x00\x00 d \
77                ieeeValues(+Normal)
78            binary scan \x7f\xf0\x00\x00\x00\x00\x00\x00 d \
79                ieeeValues(+Infinity)
80            binary scan \x7f\xf8\x00\x00\x00\x00\x00\x00 d \
81                ieeeValues(NaN)
82            binary scan \xff\xf8\x00\x00\x00\x00\x00\x00 d \
83                ieeeValues(-NaN)
84            set ieeeValues(littleEndian) 0
85            return 1
86        }
87        default {
88            return 0
89        }
90    }
91}
92
93testConstraint ieeeFloatingPoint [testIEEE]
94# procedures used below
95
96proc put_hello_char {c} {
97    global a
98    append a [format %c $c]
99    return $c
100}
101proc hello_world {} {
102    global a
103    set a ""
104    set L1 [set l0 [set h_1 [set q 0]]]
105    for {put_hello_char [expr [put_hello_char [expr [set h 7]*10+2]]+29]} {$l0?[put_hello_char $l0]
106        :!$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"])]
107        ?[set ll [set l0 [expr 54<<1]]]:$ll==108&&$L1<3?
108        [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"])]]]]
109        :[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
110        ?[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"])]]}
111        expr {$L1!=1<<3?[incr q [expr ([string length "abc"]-[string length "abc"])-1]]:[set h_1 [set ll $h1]]}
112    }
113    set a
114}
115
116proc 12days {a b c} {
117    global xxx
118    expr {1<$a?[expr {$a<3?[12days -79 -13 [string range $c [12days -87 \
119        [expr 1-$b] [string range $c [12days -86 0 [string range $c 1 end]] \
120        end]] end]]:1};expr {$a<$b?[12days [expr $a+1] $b $c]:3};expr {[12days \
121        -94 [expr $a-27] $c]&&$a==2?$b<13?[12days 2 [expr $b+1] "%s %d %d\n"]:9
122        :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' ')# \}'+\}##(!!/"]
123        :$a<-50?[string compare [format %c $b] [string index $c 0]]==0?[append \
124        xxx [string index $c 31];scan [string index $c 31] %c x;set x]
125        :[12days -65 $b [string range $c 1 end]]:[12days [expr ([string compare \
126        [string index $c 0] "/"]==0)+$a] $b [string range $c 1 end]]:0<$a
127        ?[12days 2 2 "%s"]:[string compare [string index $c 0] "/"]==0||
128        [12days 0 [12days -61 [scan [string index $c 0] %c x; set x] \
129        "!ek;dc i@bK'(q)-\[w\]*%n+r3#l,\{\}:\nuwloca-O;m .vpbks,fxntdCeghiry"] \
130        [string range $c 1 end]]}
131}
132proc do_twelve_days {} {
133    global xxx
134    set xxx ""
135    12days 1 1 1
136    set result [string length $xxx]
137    unset xxx
138    return $result
139}
140
141# start of tests
142
143catch {unset a b i x}
144
145test expr-1.1 {TclCompileExprCmd: no expression} {
146    list [catch {expr  } msg] $msg
147} {1 {wrong # args: should be "expr arg ?arg ...?"}}
148test expr-1.2 {TclCompileExprCmd: one expression word} {
149    expr -25
150} -25
151test expr-1.3 {TclCompileExprCmd: two expression words} {
152    expr -8.2   -6
153} -14.2
154test expr-1.4 {TclCompileExprCmd: five expression words} {
155    expr 20 - 5 +10 -7
156} 18
157test expr-1.5 {TclCompileExprCmd: quoted expression word} {
158    expr "0005"
159} 5
160test expr-1.6 {TclCompileExprCmd: quoted expression word} {
161    catch {expr "0005"zxy} msg
162    set msg
163} {extra characters after close-quote}
164test expr-1.7 {TclCompileExprCmd: expression word in braces} {
165    expr {-0005}
166} -5
167test expr-1.8 {TclCompileExprCmd: expression word in braces} {
168    expr {{-0x1234}}
169} -4660
170test expr-1.9 {TclCompileExprCmd: expression word in braces} {
171    catch {expr {-0005}foo} msg
172    set msg
173} {extra characters after close-brace}
174test expr-1.10 {TclCompileExprCmd: other expression word in braces} {
175    expr 4*[llength "6 2"]
176} 8
177test expr-1.11 {TclCompileExprCmd: expression word terminated by ;} {
178    expr 4*[llength "6 2"];
179} 8
180test expr-1.12 {TclCompileExprCmd: inlined expr (in "catch") inside other catch} {
181    set a xxx
182    catch {
183        # Might not be a number
184        set a [expr 10*$a]
185    }
186} 1
187test expr-1.13 {TclCompileExprCmd: second level of substitutions in expr not in braces with single var reference} {
188    set a xxx
189    set x 27;  set bool {$x};  if $bool {set a foo}
190    set a
191} foo
192test expr-1.14 {TclCompileExprCmd: second level of substitutions in expr with comparison as top-level operator} {
193    set a xxx
194    set x 2;  set b {$x};  set a [expr $b == 2]
195    set a
196} 1
197test expr-1.15 {TclCompileExprCmd: second level of substitutions in expr with comparison as top-level operator} {
198    set a xxx
199    set x 2;  set b {$x};  set a [expr $b eq 2]
200    set a
201} 1
202
203test expr-2.1 {TclCompileExpr: are builtin functions registered?} {
204    expr double(5*[llength "6 2"])
205} 10.0
206test expr-2.2 {TclCompileExpr: error in expr} -body {
207    expr 2***3
208} -returnCodes error -match glob -result *
209test expr-2.3 {TclCompileExpr: junk after legal expr} -body {
210    expr 7*[llength "a b"]foo
211} -returnCodes error -match glob -result *
212test expr-2.4 {TclCompileExpr: numeric expr string rep == formatted int rep} {
213    expr {0001}
214} 1
215
216test expr-3.1 {CompileCondExpr: just lor expr} {expr 3||0} 1
217test expr-3.2 {CompileCondExpr: error in lor expr} -body {
218    expr x||3
219} -returnCodes error -match glob -result *
220test expr-3.3 {CompileCondExpr: test true arm} {expr 3>2?44:66} 44
221test expr-3.4 {CompileCondExpr: error compiling true arm} -body {
222    expr 3>2?2***3:66
223} -returnCodes error -match glob -result *
224test expr-3.5 {CompileCondExpr: test false arm} {expr 2>3?44:66} 66
225test expr-3.6 {CompileCondExpr: error compiling false arm} -body {
226    expr 2>3?44:2***3
227} -returnCodes error -match glob -result *
228test expr-3.7 {CompileCondExpr: long arms & nested cond exprs} {
229    hello_world
230} {Hello world}
231test expr-3.8 {CompileCondExpr: long arms & nested cond exprs} unix {
232    # Fails with a stack overflow on threaded Windows builds
233    do_twelve_days
234} 2358
235
236test expr-4.1 {CompileLorExpr: just land expr} {expr 1.3&&3.3} 1
237test expr-4.2 {CompileLorExpr: error in land expr} -body {
238    expr x&&3
239} -returnCodes error -match glob -result *
240test expr-4.3 {CompileLorExpr: simple lor exprs} {expr 0||1.0} 1
241test expr-4.4 {CompileLorExpr: simple lor exprs} {expr 3.0||0.0} 1
242test expr-4.5 {CompileLorExpr: simple lor exprs} {expr 0||0||1} 1
243test expr-4.6 {CompileLorExpr: error compiling lor arm} -body {
244    expr 2***3||4.0
245} -returnCodes error -match glob -result *
246test expr-4.7 {CompileLorExpr: error compiling lor arm} -body {
247    expr 1.3||2***3
248} -returnCodes error -match glob -result *
249test expr-4.8 {CompileLorExpr: error compiling lor arms} {
250    list [catch {expr {"a"||"b"}} msg] $msg
251} {1 {expected boolean value but got "a"}}
252test expr-4.9 {CompileLorExpr: long lor arm} {
253    set a "abcdefghijkl"
254    set i 7
255    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]]}
256} 1
257test expr-4.10 {CompileLorExpr: error compiling ! operand} {
258    list [catch {expr {!"a"}} msg] $msg
259} {1 {can't use non-numeric string as operand of "!"}}
260test expr-4.11 {CompileLorExpr: error compiling land arms} {
261    list [catch {expr {"a"||0}} msg] $msg
262} {1 {expected boolean value but got "a"}}
263test expr-4.12 {CompileLorExpr: error compiling land arms} {
264    list [catch {expr {0||"a"}} msg] $msg
265} {1 {expected boolean value but got "a"}}
266
267test expr-5.1 {CompileLandExpr: just bitor expr} {expr 7|0x13} 23
268test expr-5.2 {CompileLandExpr: error in bitor expr} -body {
269    expr x|3
270} -returnCodes error -match glob -result *
271test expr-5.3 {CompileLandExpr: simple land exprs} {expr 0&&1.0} 0
272test expr-5.4 {CompileLandExpr: simple land exprs} {expr 0&&0} 0
273test expr-5.5 {CompileLandExpr: simple land exprs} {expr 3.0&&1.2} 1
274test expr-5.6 {CompileLandExpr: simple land exprs} {expr 1&&1&&2} 1
275test expr-5.7 {CompileLandExpr: error compiling land arm} -body {
276    expr 2***3&&4.0
277} -returnCodes error -match glob -result *
278test expr-5.8 {CompileLandExpr: error compiling land arm} -body {
279    expr 1.3&&2***3
280} -returnCodes error -match glob -result *
281test expr-5.9 {CompileLandExpr: error compiling land arm} {
282    list [catch {expr {"a"&&"b"}} msg] $msg
283} {1 {expected boolean value but got "a"}}
284test expr-5.10 {CompileLandExpr: long land arms} {
285    set a "abcdefghijkl"
286    set i 7
287    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]]}
288} 1
289
290test expr-6.1 {CompileBitXorExpr: just bitand expr} {expr 7&0x13} 3
291test expr-6.2 {CompileBitXorExpr: error in bitand expr} -body {
292    expr x|3
293} -returnCodes error -match glob -result *
294test expr-6.3 {CompileBitXorExpr: simple bitxor exprs} {expr 7^0x13} 20
295test expr-6.4 {CompileBitXorExpr: simple bitxor exprs} {expr 3^0x10} 19
296test expr-6.5 {CompileBitXorExpr: simple bitxor exprs} {expr 0^7} 7
297test expr-6.6 {CompileBitXorExpr: simple bitxor exprs} {expr -1^7} -8
298test expr-6.7 {CompileBitXorExpr: error compiling bitxor arm} -body {
299    expr 2***3|6
300} -returnCodes error -match glob -result *
301test expr-6.8 {CompileBitXorExpr: error compiling bitxor arm} -body {
302    expr 2^x
303} -returnCodes error -match glob -result *
304test expr-6.9 {CompileBitXorExpr: runtime error in bitxor arm} {
305    list [catch {expr {24.0^3}} msg] $msg
306} {1 {can't use floating-point value as operand of "^"}}
307test expr-6.10 {CompileBitXorExpr: runtime error in bitxor arm} {
308    list [catch {expr {"a"^"b"}} msg] $msg
309} {1 {can't use non-numeric string as operand of "^"}}
310
311test expr-7.1 {CompileBitAndExpr: just equality expr} {expr 3==2} 0
312test expr-7.2 {CompileBitAndExpr: just equality expr} {expr 2.0==2} 1
313test expr-7.3 {CompileBitAndExpr: just equality expr} {expr 3.2!=2.2} 1
314test expr-7.4 {CompileBitAndExpr: just equality expr} {expr {"abc" == "abd"}} 0
315test expr-7.5 {CompileBitAndExpr: error in equality expr} -body {
316    expr x==3
317} -returnCodes error -match glob -result *
318test expr-7.6 {CompileBitAndExpr: simple bitand exprs} {expr 7&0x13} 3
319test expr-7.7 {CompileBitAndExpr: simple bitand exprs} {expr 0xf2&0x53} 82
320test expr-7.8 {CompileBitAndExpr: simple bitand exprs} {expr 3&6} 2
321test expr-7.9 {CompileBitAndExpr: simple bitand exprs} {expr -1&-7} -7
322test expr-7.10 {CompileBitAndExpr: error compiling bitand arm} -body {
323    expr 2***3&6
324} -returnCodes error -match glob -result *
325test expr-7.11 {CompileBitAndExpr: error compiling bitand arm} -body {
326    expr 2&x
327} -returnCodes error -match glob -result *
328test expr-7.12 {CompileBitAndExpr: runtime error in bitand arm} {
329    list [catch {expr {24.0&3}} msg] $msg
330} {1 {can't use floating-point value as operand of "&"}}
331test expr-7.13 {CompileBitAndExpr: runtime error in bitand arm} {
332    list [catch {expr {"a"&"b"}} msg] $msg
333} {1 {can't use non-numeric string as operand of "&"}}
334test expr-7.14 {CompileBitAndExpr: equality expr} {expr 3eq2} 0
335test expr-7.18 {CompileBitAndExpr: equality expr} {expr {"abc" eq "abd"}} 0
336test expr-7.20 {CompileBitAndExpr: error in equality expr} -body {
337    expr xne3
338} -returnCodes error -match glob -result *
339
340test expr-8.1 {CompileEqualityExpr: just relational expr} {expr 3>=2} 1
341test expr-8.2 {CompileEqualityExpr: just relational expr} {expr 2<=2.1} 1
342test expr-8.3 {CompileEqualityExpr: just relational expr} {expr 3.2>"2.2"} 1
343test expr-8.4 {CompileEqualityExpr: just relational expr} {expr {"0y"<"0x12"}} 0
344test expr-8.5 {CompileEqualityExpr: error in relational expr} -body {
345    expr x>3
346} -returnCodes error -match glob -result *
347test expr-8.6 {CompileEqualityExpr: simple equality exprs} {expr 7==0x13} 0
348test expr-8.7 {CompileEqualityExpr: simple equality exprs} {expr -0xf2!=0x53} 1
349test expr-8.8 {CompileEqualityExpr: simple equality exprs} {expr {"12398712938788234-1298379" != ""}} 1
350test expr-8.9 {CompileEqualityExpr: simple equality exprs} {expr -1!="abc"} 1
351test expr-8.10 {CompileEqualityExpr: error compiling equality arm} -body {
352    expr 2***3==6
353} -returnCodes error -match glob -result *
354test expr-8.11 {CompileEqualityExpr: error compiling equality arm} -body {
355    expr 2!=x
356} -returnCodes error -match glob -result *
357test expr-8.12 {CompileBitAndExpr: equality expr} {expr {"a"eq"a"}} 1
358test expr-8.13 {CompileBitAndExpr: equality expr} {expr {"\374" eq "ü"}} 1
359test expr-8.14 {CompileBitAndExpr: equality expr} {expr 3eq2} 0
360test expr-8.15 {CompileBitAndExpr: equality expr} {expr 2.0eq2} 0
361test expr-8.16 {CompileBitAndExpr: equality expr} {expr 3.2ne2.2} 1
362test expr-8.17 {CompileBitAndExpr: equality expr} {expr 01eq1} 0
363test expr-8.18 {CompileBitAndExpr: equality expr} {expr {"abc" eq "abd"}} 0
364test expr-8.19 {CompileBitAndExpr: equality expr} {expr {"abc" ne "abd"}} 1
365test expr-8.20 {CompileBitAndExpr: error in equality expr} -body {
366    expr x ne3
367} -returnCodes error -match glob -result *
368test expr-8.21 {CompileBitAndExpr: error in equality expr} -body {
369    # These should be ""ed to avoid the error
370    expr a eq b
371} -returnCodes error -match glob -result *
372test expr-8.22 {CompileBitAndExpr: error in equality expr} -body {
373    expr {false eqfalse}
374} -returnCodes error -match glob -result *
375test expr-8.23 {CompileBitAndExpr: error in equality expr} -body {
376    expr {false nefalse}
377} -returnCodes error -match glob -result *
378test expr-8.24 {CompileEqualityExpr: simple equality exprs} {
379    set x 12398712938788234
380    expr {$x == 100}
381} 0
382test expr-8.25 {CompileEqualityExpr: simple equality exprs} {
383    expr {"0x12 " == "0x12"}
384} 1
385test expr-8.26 {CompileEqualityExpr: simple equality exprs} {
386    expr {"0x12 " eq "0x12"}
387} 0
388test expr-8.27 {CompileEqualityExpr: simple equality exprs} {
389    expr {"1.0e100000000" == "0.0"}
390} 0
391test expr-8.28 {CompileEqualityExpr: just relational expr} {
392    expr {"0y" == "0x0"}
393} 0
394test expr-8.29 {CompileEqualityExpr: just relational expr} {
395    # Compare original strings from variables.
396    set v1 "0y"
397    set v2 "0x12"
398    expr {$v1 < $v2}
399} 0
400test expr-8.30 {CompileEqualityExpr: simple equality exprs} {
401    expr {"fake" != "bob"}
402} 1
403test expr-8.31 {expr edge cases} -body {
404    expr {1e}
405} -returnCodes error -match glob -result *
406test expr-8.32 {expr edge cases} -body {
407    expr {1E}
408} -returnCodes error -match glob -result *
409test expr-8.33 {expr edge cases} -body {
410    expr {1e+}
411} -returnCodes error -match glob -result *
412test expr-8.34 {expr edge cases} -body {
413    expr {1E+}
414} -returnCodes error -match glob -result *
415test expr-8.35 {expr edge cases} -body {
416    expr {1ea}
417} -returnCodes error -match glob -result *
418
419test expr-9.1 {CompileRelationalExpr: just shift expr} {expr 3<<2} 12
420test expr-9.2 {CompileRelationalExpr: just shift expr} {expr 0xff>>2} 63
421test expr-9.3 {CompileRelationalExpr: just shift expr} {expr -1>>2} -1
422test expr-9.4 {CompileRelationalExpr: just shift expr} {expr {1<<3}} 8
423test expr-9.5a {CompileRelationalExpr: shift expr producing LONG_MIN} longIs64bit {
424    expr {int(1<<63)}
425} -9223372036854775808
426test expr-9.5b {CompileRelationalExpr: shift expr producing LONG_MIN} longIs32bit {
427    expr {int(1<<31)}
428} -2147483648
429test expr-9.6 {CompileRelationalExpr: error in shift expr} -body {
430    expr x>>3
431} -returnCodes error -match glob -result *
432test expr-9.7 {CompileRelationalExpr: simple relational exprs} {expr 0xff>=+0x3} 1
433test expr-9.8 {CompileRelationalExpr: simple relational exprs} {expr -0xf2<0x3} 1
434test expr-9.9 {CompileRelationalExpr: error compiling relational arm} -body {
435    expr 2***3>6
436} -returnCodes error -match glob -result *
437test expr-9.10 {CompileRelationalExpr: error compiling relational arm} -body {
438    expr 2<x
439} -returnCodes error -match glob -result *
440
441test expr-10.1 {CompileShiftExpr: just add expr} {expr 4+-2} 2
442test expr-10.2 {CompileShiftExpr: just add expr} {expr 0xff-2} 253
443test expr-10.3 {CompileShiftExpr: just add expr} {expr -1--2} 1
444test expr-10.4 {CompileShiftExpr: just add expr} {expr 1-0o123} -82
445test expr-10.5 {CompileShiftExpr: error in add expr} -body {
446    expr x+3
447} -returnCodes error -match glob -result *
448test expr-10.6 {CompileShiftExpr: simple shift exprs} {expr 0xff>>0x3} 31
449test expr-10.7 {CompileShiftExpr: simple shift exprs} {expr -0xf2<<0x3} -1936
450test expr-10.8 {CompileShiftExpr: error compiling shift arm} -body {
451    expr 2***3>>6
452} -returnCodes error -match glob -result *
453test expr-10.9 {CompileShiftExpr: error compiling shift arm} -body {
454    expr 2<<x
455} -returnCodes error -match glob -result *
456test expr-10.10 {CompileShiftExpr: runtime error} {
457    list [catch {expr {24.0>>43}} msg] $msg
458} {1 {can't use floating-point value as operand of ">>"}}
459test expr-10.11 {CompileShiftExpr: runtime error} {
460    list [catch {expr {"a"<<"b"}} msg] $msg
461} {1 {can't use non-numeric string as operand of "<<"}}
462
463test expr-11.1 {CompileAddExpr: just multiply expr} {expr 4*-2} -8
464test expr-11.2 {CompileAddExpr: just multiply expr} {expr 0xff%2} 1
465test expr-11.3 {CompileAddExpr: just multiply expr} {expr -1/2} -1
466test expr-11.4 {CompileAddExpr: just multiply expr} {expr 7891%0o123} 6
467test expr-11.5 {CompileAddExpr: error in multiply expr} -body {
468    expr x*3
469} -returnCodes error -match glob -result *
470test expr-11.6 {CompileAddExpr: simple add exprs} {expr 0xff++0x3} 258
471test expr-11.7 {CompileAddExpr: simple add exprs} {expr -0xf2--0x3} -239
472test expr-11.8 {CompileAddExpr: error compiling add arm} -body {
473    expr 2***3+6
474} -returnCodes error -match glob -result *
475test expr-11.9 {CompileAddExpr: error compiling add arm} -body {
476    expr 2-x
477} -returnCodes error -match glob -result *
478test expr-11.10 {CompileAddExpr: runtime error} {
479    list [catch {expr {24.0+"xx"}} msg] $msg
480} {1 {can't use non-numeric string as operand of "+"}}
481test expr-11.11 {CompileAddExpr: runtime error} {
482    list [catch {expr {"a"-"b"}} msg] $msg
483} {1 {can't use non-numeric string as operand of "-"}}
484test expr-11.12 {CompileAddExpr: runtime error} {
485    list [catch {expr {3/0}} msg] $msg
486} {1 {divide by zero}}
487test expr-11.13a {CompileAddExpr: runtime error} !ieeeFloatingPoint {
488    list [catch {expr {2.3/0.0}} msg] $msg
489} {1 {divide by zero}}
490test expr-11.13b {CompileAddExpr: runtime error} ieeeFloatingPoint {
491    list [catch {expr {2.3/0.0}} msg] $msg
492} {0 Inf}
493
494test expr-12.1 {CompileMultiplyExpr: just unary expr} {expr ~4} -5
495test expr-12.2 {CompileMultiplyExpr: just unary expr} {expr --5} 5
496test expr-12.3 {CompileMultiplyExpr: just unary expr} {expr !27} 0
497test expr-12.4 {CompileMultiplyExpr: just unary expr} {expr ~0xff00ff} -16711936
498test expr-12.5 {CompileMultiplyExpr: error in unary expr} -body {
499    expr ~x
500} -returnCodes error -match glob -result *
501test expr-12.6 {CompileMultiplyExpr: simple multiply exprs} {expr 0xff*0x3} 765
502test expr-12.7 {CompileMultiplyExpr: simple multiply exprs} {expr -0xf2%-0x3} -2
503test expr-12.8 {CompileMultiplyExpr: error compiling multiply arm} -body {
504    expr 2*3%%6
505} -returnCodes error -match glob -result *
506test expr-12.9 {CompileMultiplyExpr: error compiling multiply arm} -body {
507    expr 2*x
508} -returnCodes error -match glob -result *
509test expr-12.10 {CompileMultiplyExpr: runtime error} {
510    list [catch {expr {24.0*"xx"}} msg] $msg
511} {1 {can't use non-numeric string as operand of "*"}}
512test expr-12.11 {CompileMultiplyExpr: runtime error} {
513    list [catch {expr {"a"/"b"}} msg] $msg
514} {1 {can't use non-numeric string as operand of "/"}}
515
516test expr-13.1 {CompileUnaryExpr: unary exprs} {expr -0xff} -255
517test expr-13.2 {CompileUnaryExpr: unary exprs} {expr +0o00123} 83
518test expr-13.3 {CompileUnaryExpr: unary exprs} {expr +--++36} 36
519test expr-13.4 {CompileUnaryExpr: unary exprs} {expr !2} 0
520test expr-13.5 {CompileUnaryExpr: unary exprs} {expr +--+-62.0} -62.0
521test expr-13.6 {CompileUnaryExpr: unary exprs} {expr !0.0} 1
522test expr-13.7 {CompileUnaryExpr: unary exprs} {expr !0xef} 0
523test expr-13.8 {CompileUnaryExpr: error compiling unary expr} -body {
524    expr ~x
525} -returnCodes error -match glob -result *
526test expr-13.9 {CompileUnaryExpr: error compiling unary expr} -body {
527    expr !1.x
528} -returnCodes error -match glob -result *
529test expr-13.10 {CompileUnaryExpr: runtime error} {
530    list [catch {expr {~"xx"}} msg] $msg
531} {1 {can't use non-numeric string as operand of "~"}}
532test expr-13.11 {CompileUnaryExpr: runtime error} {
533    list [catch {expr ~4.0} msg] $msg
534} {1 {can't use floating-point value as operand of "~"}}
535test expr-13.12 {CompileUnaryExpr: just primary expr} {expr 0x123} 291
536test expr-13.13 {CompileUnaryExpr: just primary expr} {
537    set a 27
538    expr $a
539} 27
540test expr-13.14 {CompileUnaryExpr: just primary expr} {
541    expr double(27)
542} 27.0
543test expr-13.15 {CompileUnaryExpr: just primary expr} {expr "123"} 123
544test expr-13.16 {CompileUnaryExpr: error in primary expr} {
545    catch {expr [set]} msg
546    set msg
547} {wrong # args: should be "set varName ?newValue?"}
548test expr-13.17 {CompileUnaryExpr: negating non-numeric boolean literals} {
549    set a1 yes; set a0 no; set b1 true; set b0 false
550    list [expr {!$a1}] [expr {!$a0}] [expr {!$b1}] [expr {!$b0}]
551} {0 1 0 1}
552
553test expr-14.1 {CompilePrimaryExpr: literal primary} {expr 1} 1
554test expr-14.2 {CompilePrimaryExpr: literal primary} {expr 123} 123
555test expr-14.3 {CompilePrimaryExpr: literal primary} {expr 0xff} 255
556test expr-14.4 {CompilePrimaryExpr: literal primary} {expr 0o0010} 8
557test expr-14.5 {CompilePrimaryExpr: literal primary} {expr 62.0} 62.0
558test expr-14.6 {CompilePrimaryExpr: literal primary} {
559    expr 3.1400000
560} 3.14
561test expr-14.7 {CompilePrimaryExpr: literal primary} {expr {{abcde}<{abcdef}}} 1
562test expr-14.8 {CompilePrimaryExpr: literal primary} {expr {{abc\
563def} < {abcdef}}} 1
564test expr-14.9 {CompilePrimaryExpr: literal primary} {expr {{abc\tde} > {abc\tdef}}} 0
565test expr-14.10 {CompilePrimaryExpr: literal primary} {expr {{123}}} 123
566test expr-14.11 {CompilePrimaryExpr: var reference primary} {
567    set i 789
568    list [expr {$i}] [expr $i]
569} {789 789}
570test expr-14.12 {CompilePrimaryExpr: var reference primary} {
571    set i {789}    ;# test expr's aggressive conversion to numeric semantics
572    list [expr {$i}] [expr $i]
573} {789 789}
574test expr-14.13 {CompilePrimaryExpr: var reference primary} {
575    catch {unset a}
576    set a(foo) foo
577    set a(bar) bar
578    set a(123) 123
579    set result ""
580    lappend result [expr $a(123)] [expr {$a(bar)<$a(foo)}]
581    catch {unset a}
582    set result
583} {123 1}
584test expr-14.14 {CompilePrimaryExpr: var reference primary} {
585    set i 123    ;# test "$var.0" floating point conversion hack
586    list [expr $i] [expr $i.0] [expr $i.0/12.0]
587} {123 123.0 10.25}
588test expr-14.15 {CompilePrimaryExpr: var reference primary} {
589    set i 123
590    catch {expr $i.2} msg
591    set msg
592} 123.2
593test expr-14.16 {CompilePrimaryExpr: error compiling var reference primary} -body {
594    expr {$a(foo}
595} -returnCodes error -match glob -result *
596test expr-14.17 {CompilePrimaryExpr: string primary that looks like var ref} -body {
597    expr $
598} -returnCodes error -match glob -result *
599test expr-14.18 {CompilePrimaryExpr: quoted string primary} {
600    expr "21"
601} 21
602test expr-14.19 {CompilePrimaryExpr: quoted string primary} {
603    set i 123
604    set x 456
605    expr "$i+$x"
606} 579
607test expr-14.20 {CompilePrimaryExpr: quoted string primary} {
608    set i 3
609    set x 6
610    expr 2+"$i.$x"
611} 5.6
612test expr-14.21 {CompilePrimaryExpr: error in quoted string primary} {
613    catch {expr "[set]"} msg
614    set msg
615} {wrong # args: should be "set varName ?newValue?"}
616test expr-14.22 {CompilePrimaryExpr: subcommand primary} {
617    expr {[set i 123; set i]}
618} 123
619test expr-14.23 {CompilePrimaryExpr: error in subcommand primary} -body {
620    catch {expr {[set]}} msg
621    set ::errorInfo
622} -match glob -result {wrong # args: should be "set varName ?newValue?"
623    while *ing
624"set"*}
625test expr-14.24 {CompilePrimaryExpr: error in subcommand primary} -body {
626    expr {[set i}
627} -returnCodes error -match glob -result *
628test expr-14.25 {CompilePrimaryExpr: math function primary} {
629    format %.6g [expr exp(1.0)]
630} 2.71828
631test expr-14.26 {CompilePrimaryExpr: math function primary} {
632    format %.6g [expr pow(2.0+0.1,3.0+0.1)]
633} 9.97424
634test expr-14.27 {CompilePrimaryExpr: error in math function primary} -body {
635    expr sinh::(2.0)
636} -returnCodes error -match glob -result *
637test expr-14.28 {CompilePrimaryExpr: subexpression primary} {
638    expr 2+(3*4)
639} 14
640test expr-14.29 {CompilePrimaryExpr: error in subexpression primary} -body {
641    catch {expr 2+(3*[set])} msg
642    set ::errorInfo
643} -match glob -result {wrong # args: should be "set varName ?newValue?"
644    while *ing
645"set"*}
646test expr-14.30 {CompilePrimaryExpr: missing paren in subexpression primary} -body {
647    expr 2+(3*(4+5)
648} -returnCodes error -match glob -result *
649test expr-14.31 {CompilePrimaryExpr: just var ref in subexpression primary} {
650    set i "5+10"
651    list "[expr $i] == 15" "[expr ($i)] == 15" "[eval expr ($i)] == 15"
652} {{15 == 15} {15 == 15} {15 == 15}}
653test expr-14.32 {CompilePrimaryExpr: unexpected token} -body {
654    expr @
655} -returnCodes error -match glob -result *
656
657test expr-15.1 {CompileMathFuncCall: missing parenthesis} -body {
658    expr sinh2.0)
659} -returnCodes error -match glob -result *
660test expr-15.2 {CompileMathFuncCall: unknown math function} -body {
661    catch {expr whazzathuh(1)} msg
662    set ::errorInfo
663} -match glob -result {* "*whazzathuh"
664    while *ing
665"expr whazzathuh(1)"}
666test expr-15.3 {CompileMathFuncCall: too many arguments} -body {
667    catch {expr sin(1,2,3)} msg
668    set ::errorInfo
669} -match glob -result {too many arguments for math function*
670    while *ing
671"expr sin(1,2,3)"}
672test expr-15.4 {CompileMathFuncCall: ')' found before last required arg} -body {
673    catch {expr sin()} msg
674    set ::errorInfo
675} -match glob -result {too few arguments for math function*
676    while *ing
677"expr sin()"}
678test expr-15.5 {CompileMathFuncCall: too few arguments} -body {
679    catch {expr pow(1)} msg
680    set ::errorInfo
681} -match glob -result {too few arguments for math function*
682    while *ing
683"expr pow(1)"}
684test expr-15.6 {CompileMathFuncCall: missing ')'} -body {
685    expr sin(1
686} -returnCodes error -match glob -result *
687test expr-15.7 {CompileMathFuncCall: call registered math function} {testmathfunctions} {
688    expr 2*T1()
689} 246
690test expr-15.8 {CompileMathFuncCall: call registered math function} {testmathfunctions} {
691    expr T2()*3
692} 1035
693test expr-15.9 {CompileMathFuncCall: call registered math function} {testmathfunctions} {
694    expr T3(21, 37)
695} 37
696test expr-15.10 {CompileMathFuncCall: call registered math function} {testmathfunctions} {
697    expr T3(21.2, 37)
698} 37.0
699test expr-15.11 {CompileMathFuncCall: call registered math function} {testmathfunctions} {
700    expr T3(-21.2, -17.5)
701} -17.5
702test expr-15.12 {ExprCallMathFunc: call registered math function} {testmathfunctions} {
703    expr T3(21, wide(37))
704} 37
705test expr=15.13 {ExprCallMathFunc: call registered math function} {testmathfunctions} {
706    expr T3(wide(21), 37)
707} 37
708test expr=15.14 {ExprCallMathFunc: call registered math function} {testmathfunctions} {
709    expr T3(wide(21), wide(37))
710} 37
711test expr-15.15 {ExprCallMathFunc: call registered math function} {testmathfunctions} {
712    expr T3(21.0, wide(37))
713} 37.0
714test expr-15.16 {ExprCallMathFunc: call registered math function} {testmathfunctions} {
715    expr T3(wide(21), 37.0)
716} 37.0
717test expr-15.17 {ExprCallMathFunc: non-numeric arg} -constraints {
718    testmathfunctions
719} -body {
720    expr T3(0,"a")
721} -returnCodes error -result {argument to math function didn't have numeric value}
722
723
724test expr-16.1 {GetToken: checks whether integer token starting with "0x" (e.g., "0x$") is invalid} {
725    catch {unset a}
726    set a(VALUE) ff15
727    set i 123
728    if {[expr 0x$a(VALUE)] & 16} {
729        set i {}
730    }
731    set i
732} {}
733test expr-16.2 {GetToken: check for string literal in braces} {
734    expr {{1}}
735} {1}
736
737# Check "expr" and computed command names.
738
739test expr-17.1 {expr and computed command names} {
740    set i 0
741    set z expr
742    $z 1+2
743} 3
744
745# Check correct conversion of operands to numbers: If the string looks like
746# an integer, convert to integer. Otherwise, if the string looks like a
747# double, convert to double.
748
749test expr-18.1 {expr and conversion of operands to numbers} {
750    set x [lindex 11 0]
751    catch {expr int($x)}
752    expr {$x}
753} 11
754test expr-18.2 {whitespace strings should not be == 0 (buggy strtod)} {
755    expr {" "}
756} { }
757
758# Check "expr" and interpreter result object resetting before appending
759# an error msg during evaluation of exprs not in {}s
760
761test expr-19.1 {expr and interpreter result object resetting} {
762    proc p {} {
763        set t  10.0
764        set x  2.0
765        set dx 0.2
766        set f  {$dx-$x/10}
767        set g  {-$x/5}
768        set center 1.0
769        set x  [expr $x-$center]
770        set dx [expr $dx+$g]
771        set x  [expr $x+$f+$center]
772        set x  [expr $x+$f+$center]
773        set y  [expr round($x)]
774    }
775    p
776} 3
777
778# Test for incorrect "double evaluation" semantics
779
780test expr-20.1 {wrong brace matching} {
781    catch {unset l}
782    catch {unset r}
783    catch {unset q}
784    catch {unset cmd}
785    catch {unset a}
786    set l "\{"; set r "\}"; set q "\""
787    set cmd "expr $l$q|$q == $q$r$q$r"
788    list [catch $cmd a] $a
789} {1 {extra characters after close-brace}}
790test expr-20.2 {double invocation of variable traces} -body {
791    set exprtracecounter 0
792    proc exprtraceproc {args} {
793       upvar #0 exprtracecounter counter
794       set argc [llength $args]
795       set extraargs [lrange $args 0 [expr {$argc - 4}]]
796       set name [lindex $args [expr {$argc - 3}]]
797       upvar 1 $name var
798       if {[incr counter] % 2 == 1} {
799           set var "$counter oops [concat $extraargs]"
800       } else {
801           set var "$counter + [concat $extraargs]"
802       }
803    }
804    trace variable exprtracevar r [list exprtraceproc 10]
805    list [catch {expr "$exprtracevar + 20"} a] $a \
806        [catch {expr "$exprtracevar + 20"} b] $b \
807        [unset exprtracevar exprtracecounter]
808} -match glob -result {1 * 0 32 {}}
809test expr-20.3 {broken substitution of integer digits} {
810    # fails with 8.0.x, but not 8.1b2
811    list [set a 000; expr 0x1$a] [set a 1; expr ${a}000]
812} {4096 1000}
813test expr-20.4 {proper double evaluation compilation, error case} {
814    catch {unset a}; # make sure $a doesn't exist
815    list [catch {expr 1?{$a}:0} msg] $msg
816} {1 {can't read "a": no such variable}}
817test expr-20.5 {proper double evaluation compilation, working case} {
818    set a yellow
819    expr 1?{$a}:0
820} yellow
821test expr-20.6 {handling of compile error in trial compile} {
822    list [catch {expr + {[incr]}} msg] $msg
823} {1 {wrong # args: should be "incr varName ?increment?"}}
824test expr-20.7 {handling of compile error in runtime case} {
825    list [catch {expr + {[error foo]}} msg] $msg
826} {1 foo}
827
828# Test for non-numeric boolean literal handling
829test expr-21.1  {non-numeric boolean literals} {expr false } false
830test expr-21.2  {non-numeric boolean literals} {expr true  } true
831test expr-21.3  {non-numeric boolean literals} {expr off   } off
832test expr-21.4  {non-numeric boolean literals} {expr on    } on
833test expr-21.5  {non-numeric boolean literals} {expr no    } no
834test expr-21.6  {non-numeric boolean literals} {expr yes   } yes
835test expr-21.7  {non-numeric boolean literals} {expr !false} 1
836test expr-21.8  {non-numeric boolean literals} {expr !true } 0
837test expr-21.9  {non-numeric boolean literals} {expr !off  } 1
838test expr-21.10 {non-numeric boolean literals} {expr !on   } 0
839test expr-21.11 {non-numeric boolean literals} {expr !no   } 1
840test expr-21.12 {non-numeric boolean literals} {expr !yes  } 0
841test expr-21.13 {non-numeric boolean literals} -body {
842    expr !truef
843} -returnCodes error -match glob -result *
844test expr-21.14 {non-numeric boolean literals} {
845    list [catch {expr !"truef"} err] $err
846} {1 {can't use non-numeric string as operand of "!"}}
847test expr-21.15 {non-numeric boolean variables} {
848    set v truef
849    list [catch {expr {!$v}} err] $err
850} {1 {can't use non-numeric string as operand of "!"}}
851test expr-21.16 {non-numeric boolean variables} {
852    set v "true "
853    list [catch {expr {!$v}} err] $err
854} {1 {can't use non-numeric string as operand of "!"}}
855test expr-21.17 {non-numeric boolean variables} {
856    set v "tru"
857    list [catch {expr {!$v}} err] $err
858} {0 0}
859test expr-21.18 {non-numeric boolean variables} {
860    set v "fal"
861    list [catch {expr {!$v}} err] $err
862} {0 1}
863test expr-21.19 {non-numeric boolean variables} {
864    set v "y"
865    list [catch {expr {!$v}} err] $err
866} {0 0}
867test expr-21.20 {non-numeric boolean variables} {
868    set v "of"
869    list [catch {expr {!$v}} err] $err
870} {0 1}
871test expr-21.21 {non-numeric boolean variables} {
872    set v "o"
873    list [catch {expr {!$v}} err] $err
874} {1 {can't use non-numeric string as operand of "!"}}
875test expr-21.22 {non-numeric boolean variables} {
876    set v ""
877    list [catch {expr {!$v}} err] $err
878} {1 {can't use empty string as operand of "!"}}
879
880# Test for non-numeric float handling.
881test expr-22.1 {non-numeric floats} {
882    list [catch {expr {NaN + 1}} msg] $msg
883} {1 {can't use non-numeric floating-point value as operand of "+"}}
884test expr-22.2 {non-numeric floats} !ieeeFloatingPoint {
885    list [catch {expr {Inf + 1}} msg] $msg
886} {1 {can't use infinite floating-point value as operand of "+"}}
887test expr-22.3 {non-numeric floats} {
888    set nan NaN
889    list [catch {expr {$nan + 1}} msg] $msg
890} {1 {can't use non-numeric floating-point value as operand of "+"}}
891test expr-22.4 {non-numeric floats} !ieeeFloatingPoint {
892    set inf Inf
893    list [catch {expr {$inf + 1}} msg] $msg
894} {1 {can't use infinite floating-point value as operand of "+"}}
895test expr-22.5 {non-numeric floats} {
896    list [catch {expr NaN} msg] $msg
897} {1 {domain error: argument not in valid range}}
898test expr-22.6 {non-numeric floats} !ieeeFloatingPoint {
899    list [catch {expr Inf} msg] $msg
900} {1 {floating-point value too large to represent}}
901test expr-22.7 {non-numeric floats} {
902    list [catch {expr {1 / NaN}} msg] $msg
903} {1 {can't use non-numeric floating-point value as operand of "/"}}
904test expr-22.8 {non-numeric floats} !ieeeFloatingPoint {
905    list [catch {expr {1 / Inf}} msg] $msg
906} {1 {can't use infinite floating-point value as operand of "/"}}
907# Make sure [Bug 761471] stays fixed.
908test expr-22.9 {non-numeric floats: shared object equality and NaN} {
909    set x NaN
910    expr {$x == $x}
911} 0
912
913# Tests for exponentiation handling
914test expr-23.1 {CompileExponentialExpr: just exponential expr} {expr 4**2} 16
915test expr-23.2 {CompileExponentialExpr: just exponential expr} {expr 0xff**2} 65025
916test expr-23.3 {CompileExponentialExpr: just exponential expr} {expr -1**2} 1
917test expr-23.4 {CompileExponentialExpr: just exponential expr} {expr 18**07} 612220032
918test expr-23.5 {CompileExponentialExpr: error in exponential expr} -body {
919    expr x**3
920} -returnCodes error -match glob -result *
921test expr-23.6 {CompileExponentialExpr: simple expo exprs} {expr 0xff**0x3} 16581375
922test expr-23.7 {CompileExponentialExpr: error compiling expo arm} -body {
923    expr (-3-)**6
924} -returnCodes error -match glob -result *
925test expr-23.8 {CompileExponentialExpr: error compiling expo arm} -body {
926    expr 2**x
927} -returnCodes error -match glob -result *
928test expr-23.9 {CompileExponentialExpr: runtime error} {
929    list [catch {expr {24.0**"xx"}} msg] $msg
930} {1 {can't use non-numeric string as operand of "**"}}
931test expr-23.10 {CompileExponentialExpr: runtime error} {
932    list [catch {expr {"a"**2}} msg] $msg
933} {1 {can't use non-numeric string as operand of "**"}}
934test expr-23.11 {CompileExponentialExpr: runtime error} {
935    list [catch {expr {0**-1}} msg] $msg
936} {1 {exponentiation of zero by negative power}}
937test expr-23.12 {CompileExponentialExpr: runtime error} {
938    list [catch {expr {0.0**-1.0}} msg] $msg
939} {1 {exponentiation of zero by negative power}}
940test expr-23.13 {CompileExponentialExpr: runtime error} {
941    list [catch {expr {wide(0)**wide(-1)}} msg] $msg
942} {1 {exponentiation of zero by negative power}}
943test expr-23.14 {INST_EXPON: special cases} {expr {0**1}} 0
944test expr-23.15 {INST_EXPON: special cases} {expr {0**0}} 1
945test expr-23.16 {INST_EXPON: special cases} {expr {-2**-1}} 0
946test expr-23.17 {INST_EXPON: special cases} {expr {-2**0}} 1
947test expr-23.18 {INST_EXPON: special cases} {expr {-1**1}} -1
948test expr-23.19 {INST_EXPON: special cases} {expr {-1**0}} 1
949test expr-23.20 {INST_EXPON: special cases} {expr {-1**2}} 1
950test expr-23.21 {INST_EXPON: special cases} {expr {-1**-1}} -1
951test expr-23.22 {INST_EXPON: special cases} {expr {1**1234567}} 1
952test expr-23.23 {INST_EXPON: special cases} {expr {2**-2}} 0
953test expr-23.24 {INST_EXPON: special cases} {expr {wide(0)**wide(1)}} 0
954test expr-23.25 {INST_EXPON: special cases} {expr {wide(0)**wide(0)}} 1
955test expr-23.26 {INST_EXPON: special cases} {expr {wide(-2)**wide(-1)}} 0
956test expr-23.27 {INST_EXPON: special cases} {expr {wide(-2)**wide(0)}} 1
957test expr-23.28 {INST_EXPON: special cases} {expr {wide(-1)**wide(1)}} -1
958test expr-23.29 {INST_EXPON: special cases} {expr {wide(-1)**wide(0)}} 1
959test expr-23.30 {INST_EXPON: special cases} {expr {wide(-1)**wide(2)}} 1
960test expr-23.31 {INST_EXPON: special cases} {expr {wide(-1)**wide(-1)}} -1
961test expr-23.32 {INST_EXPON: special cases} {expr {wide(1)**wide(1234567)}} 1
962test expr-23.33 {INST_EXPON: special cases} {expr {wide(2)**wide(-2)}} 0
963test expr-23.34 {INST_EXPON: special cases} {expr {2**0}} 1
964test expr-23.35 {INST_EXPON: special cases} {expr {wide(2)**0}} 1
965test expr-23.36 {INST_EXPON: big integer} {expr {10**17}} 1[string repeat 0 17]
966test expr-23.37 {INST_EXPON: big integer} {expr {10**18}} 1[string repeat 0 18]
967test expr-23.38 {INST_EXPON: big integer} {expr {10**19}} 1[string repeat 0 19]
968test expr-23.39 {INST_EXPON: big integer} {
969    expr 1[string repeat 0 30]**2
970} 1[string repeat 0 60]
971test expr-23.40 {INST_EXPON: overflow to big integer} {expr {(-10)**3}} -1000
972test expr-23.41 {INST_EXPON: overflow to big integer} {expr 2**64} [expr 1<<64]
973test expr-23.42 {INST_EXPON: overflow to big integer} {expr 4**32} [expr 1<<64]
974test expr-23.43 {INST_EXPON: overflow to big integer} {expr 16**16} [expr 1<<64]
975test expr-23.44 {INST_EXPON: overflow to big integer} {expr 256**8} [expr 1<<64]
976test expr-23.45 {INST_EXPON: Bug 1555371} {expr 2**1} 2
977test expr-23.46 {INST_EXPON: Bug 1561260} -body {
978    expr 5**28
979} -match glob -result *5
980test expr-23.47 {INST_EXPON: Bug 1561260} {
981    expr 2**32*5**32
982} 1[string repeat 0 32]
983test expr-23.48 {INST_EXPON: TIP 274: right assoc} {
984expr 2**3**4
985} 2417851639229258349412352
986test expr-23.49 {INST_EXPON: optimize powers of 2} {
987    set trouble {test powers of 2}
988    for {set tval 0} {$tval <= 66} {incr tval} {
989        set is [expr {2 ** $tval}]
990        set sb [expr {1 << $tval}]
991        if {$is != $sb} {
992            append trouble \n "2**" $tval " is " $is " should be " $sb
993        }
994        if {$tval >= 1} {
995            set is [expr {-2 ** $tval}]
996            set sb [expr {1 << $tval}]
997            if {$tval & 1} {
998                set sb [expr {-$sb}]
999            }
1000            if {$is != $sb} {
1001                append trouble \n "-2**" $tval " is " $is " should be " $sb
1002            }
1003        }
1004    }
1005    set trouble
1006} {test powers of 2}
1007test expr-23.50 {INST_EXPON: small powers of 32-bit integers} {
1008    set trouble {test small powers of 32-bit ints}
1009    for {set base 3} {$base <= 45} {incr base} {
1010        set sb $base
1011        set sbm [expr {-$base}]
1012        for {set expt 2} {$expt <= 8} {incr expt} {
1013            set sb [expr {$sb * $base}]
1014            set is [expr {$base ** $expt}]
1015            if {$sb != $is} {
1016                append trouble \n $base ** $expt " is " $is " should be " $sb
1017            }
1018            set sbm [expr {-$sbm * $base}]
1019            set ism [expr {(-$base) ** $expt}]
1020            if {$sbm != $ism} {
1021                append trouble \n - $base ** $expt " is " $ism \
1022                    " should be " $sbm
1023            }
1024        }
1025    }
1026    set trouble
1027} {test small powers of 32-bit ints}
1028test expr-23.51 {INST_EXPON: intermediate powers of 32-bit integers} {
1029    set trouble {test intermediate powers of 32-bit ints}
1030    for {set base 3} {$base <= 11} {incr base} {
1031        set sb [expr {$base ** 8}]
1032        set sbm $sb
1033        for {set expt 9} {$expt <= 21} {incr expt} {
1034            set sb [expr {$sb * $base}]
1035            set sbm [expr {$sbm * -$base}]
1036            set is [expr {$base ** $expt}]
1037            set ism [expr {-$base ** $expt}]
1038            if {$sb != $is} {
1039                append trouble \n $base ** $expt " is " $is " should be " $sb
1040            }
1041            if {$sbm != $ism} {
1042                append trouble \n - $base ** $expt " is " $ism  \
1043                    " should be " $sbm
1044            }
1045        }
1046    }
1047    set trouble
1048} {test intermediate powers of 32-bit ints}
1049test expr-23.52 {INST_EXPON: small integer powers with 64-bit results} {
1050    set trouble {test small int powers with 64-bit results}
1051    for {set exp 2} {$exp <= 16} {incr exp} {
1052        set base [expr {entier(pow(double(0x7fffffffffffffff),(1.0/$exp)))}]
1053        set sb 1
1054        set sbm 1
1055        for {set i 0} {$i < $exp} {incr i} {
1056            set sb [expr {$sb * $base}]
1057            set sbm [expr {$sbm * -$base}]
1058        }
1059        set is [expr {$base ** $exp}]
1060        set ism [expr {-$base ** $exp}]
1061        if {$sb != $is} {
1062            append trouble \n $base ** $exp " is " $is " should be " $sb
1063        }
1064        if {$sbm != $ism} {
1065            append trouble \n - $base ** $exp " is " $ism " should be " $sbm
1066        }
1067        incr base
1068        set sb 1
1069        set sbm 1
1070        for {set i 0} {$i < $exp} {incr i} {
1071            set sb [expr {$sb * $base}]
1072            set sbm [expr {$sbm * -$base}]
1073        }
1074        set is [expr {$base ** $exp}]
1075        set ism [expr {-$base ** $exp}]
1076        if {$sb != $is} {
1077            append trouble \n $base ** $exp " is " $is " should be " $sb
1078        }
1079        if {$sbm != $ism} {
1080            append trouble \n - $base ** $exp " is " $ism " should be " $sbm
1081        }
1082    }
1083    set trouble
1084} {test small int powers with 64-bit results}
1085test expr-23.53 {INST_EXPON: intermediate powers of 64-bit integers} {
1086    set trouble {test intermediate powers of 64-bit ints}
1087    for {set base 3} {$base <= 13} {incr base} {
1088        set sb [expr {$base ** 15}]
1089        set sbm [expr {-$sb}]
1090        for {set expt 16} {$expt <= 39} {incr expt} {
1091            set sb [expr {$sb * $base}]
1092            set sbm [expr {$sbm * -$base}]
1093            set is [expr {$base ** $expt}]
1094            set ism [expr {-$base ** $expt}]
1095            if {$sb != $is} {
1096                append trouble \n $base ** $expt " is " $is " should be " $sb
1097            }
1098            if {$sbm != $ism} {
1099                append trouble \n - $base ** $expt " is " $ism  \
1100                    " should be " $sbm
1101            }
1102        }
1103    }
1104    set trouble
1105} {test intermediate powers of 64-bit ints}
1106       
1107# Some compilers get this wrong; ensure that we work around it correctly
1108test expr-24.1 {expr edge cases; shifting} {expr int(5)>>32} 0
1109test expr-24.2 {expr edge cases; shifting} {expr int(5)>>63} 0
1110test expr-24.3 {expr edge cases; shifting} {expr wide(5)>>32} 0
1111test expr-24.4 {expr edge cases; shifting} {expr wide(5)>>63} 0
1112test expr-24.5 {expr edge cases; shifting} longIs32bit {expr int(5<<32)} 0
1113test expr-24.6 {expr edge cases; shifting} longIs32bit {expr int(5<<63)} 0
1114test expr-24.7 {expr edge cases; shifting} {expr wide(5)<<32} 21474836480
1115test expr-24.8 {expr edge cases; shifting} {expr wide(10<<63)} 0
1116test expr-24.9 {expr edge cases; shifting} {expr 5>>32} 0
1117
1118test expr-24.10 {INST_LSHIFT: Bug 1567222} {expr 500000000000000<<28} 134217728000000000000000
1119
1120# List membership tests
1121test expr-25.1 {'in' operator} {expr {"a" in "a b c"}} 1
1122test expr-25.2 {'in' operator} {expr {"a" in "b a c"}} 1
1123test expr-25.3 {'in' operator} {expr {"a" in "b c a"}} 1
1124test expr-25.4 {'in' operator} {expr {"a" in ""}} 0
1125test expr-25.5 {'in' operator} {expr {"" in {a b c ""}}} 1
1126test expr-25.6 {'in' operator} {expr {"" in "a b c"}} 0
1127test expr-25.7 {'in' operator} {expr {"" in ""}} 0
1128
1129test expr-26.1 {'ni' operator} {expr {"a" ni "a b c"}} 0
1130test expr-26.2 {'ni' operator} {expr {"a" ni "b a c"}} 0
1131test expr-26.3 {'ni' operator} {expr {"a" ni "b c a"}} 0
1132test expr-26.4 {'ni' operator} {expr {"a" ni ""}} 1
1133test expr-26.5 {'ni' operator} {expr {"" ni {a b c ""}}} 0
1134test expr-26.6 {'ni' operator} {expr {"" ni "a b c"}} 1
1135test expr-26.7 {'ni' operator} {expr {"" ni ""}} 1
1136
1137foreach op {< <= == != > >=} {
1138    proc test$op {a b} [list expr "\$a $op \$b"]
1139}
1140
1141test expr-27.1 {expr - correct ordering - not compiled} ieeeFloatingPoint {
1142    set problems {}
1143    # Ordering should be: -Infinity < -Normal < Subnormal < -0
1144    #                     < +0 < +Subnormal < +Normal < +Infinity
1145    # with equality within each class.
1146    set names {
1147        -Infinity -Normal -Subnormal -0 +0 +Subnormal +Normal +Infinity
1148    }
1149    set weights {
1150        -3 -2 -1 0 0 1 2 3
1151    }
1152    foreach name1 $names weight1 $weights {
1153        foreach name2 $names weight2 $weights {
1154            foreach op {< <= == != >= >} {
1155                set shouldBe [expr "$weight1 $op $weight2"]
1156                set is [expr "\$ieeeValues($name1) $op \$ieeeValues($name2)"]
1157                if { $is != $shouldBe } {
1158                    append problems $name1 { } $op { } $name2 \
1159                        ":result is " $is ", should be $shouldBe" \n
1160                }
1161            }
1162        }
1163    }
1164    set problems
1165} {}
1166test expr-27.2 {expr - correct ordering - compiled} ieeeFloatingPoint {
1167    set problems {}
1168    # Ordering should be: -Infinity < -Normal < Subnormal < -0
1169    #                     < +0 < +Subnormal < +Normal < +Infinity
1170    # with equality within each class.
1171    set names {
1172        -Infinity -Normal -Subnormal -0 +0 +Subnormal +Normal +Infinity
1173    }
1174    set weights {
1175        -3 -2 -1 0 0 1 2 3
1176    }
1177    foreach name1 $names weight1 $weights {
1178        foreach name2 $names weight2 $weights {
1179            foreach op {< <= == != >= >} {
1180                set shouldBe [expr "$weight1 $op $weight2"]
1181                set is [test$op $ieeeValues($name1) $ieeeValues($name2)]
1182                if { $is != $shouldBe } {
1183                    append problems $name1 { } $op { } $name2 \
1184                        ":result is " $is ", should be $shouldBe" \n
1185                }
1186            }
1187        }
1188    }
1189    set problems
1190} {}
1191test expr-27.3 {expr - NaN is unordered - not compiled} {
1192    set problems {}
1193    set names {
1194        -Infinity -Normal -Subnormal -0 +0 +Subnormal +Normal +Infinity NaN
1195    }
1196    foreach name1 $names {
1197        foreach op {< <= == != >= >} sb {0 0 0 1 0 0} {
1198            if "(\$ieeeValues($name1) $op \$ieeeValues(NaN)) != $sb " {
1199                append problems $name1 { } $op { } NaN \
1200                    ": result is 1, should be $sb" \n
1201            }
1202            if "(\$ieeeValues(NaN) $op \$ieeeValues($name1)) != $sb" {
1203                append problems NaN { } $op { } $name1 \
1204                    ": result is 1, should be $sb" \n
1205            }
1206        }
1207    }
1208    set problems
1209} {}
1210test expr-27.4 {expr - NaN is unordered - compiled} {
1211    set problems {}
1212    set names {
1213        -Infinity -Normal -Subnormal -0 +0 +Subnormal +Normal +Infinity NaN
1214    }
1215    foreach name1 $names {
1216        foreach op {< <= == != >= >} sb {0 0 0 1 0 0} {
1217            if { [test$op $ieeeValues($name1) $ieeeValues(NaN)] != $sb } {
1218                append problems $ieeeValues($name1) { } $op { } $ieeeValues(NaN) \
1219                    ": result is 1, should be $sb" \n
1220            }
1221            if { [test$op $ieeeValues(NaN) $ieeeValues($name1)] != $sb } {
1222                append problems NaN { } $op { } $ieeeValues($name1) \
1223                    ": result is 1, should be $sb" \n
1224            }
1225        }
1226    }
1227    set problems
1228} {}
1229
1230proc convertToDouble { x } {
1231    variable ieeeValues
1232    binary scan [binary format d $x] c* bytes
1233    set result 0x
1234    if { $ieeeValues(littleEndian) } {
1235        for { set i 7 } { $i >= 0 } { incr i -1 } {
1236            append result [format %02x [expr { [lindex $bytes $i] & 0xff }]]
1237        }
1238    } else {
1239        foreach byte $bytes {
1240            append result [format %02x [expr { $byte & 0xff }]]
1241        }
1242    }
1243    return $result
1244}
1245
1246test expr-28.1 {input floating-point conversion} {ieeeFloatingPoint} {
1247    # Ad2b d ALL 0 E0 OK 00000000000000 E-1023
1248    convertToDouble 0E0
1249} 0x0000000000000000
1250test expr-28.2 {input floating-point conversion} {ieeeFloatingPoint} {
1251    # Ad2b d ALL -0 E0 OK -0000000000000 E-1023
1252    convertToDouble -0E0
1253} 0x8000000000000000
1254test expr-28.3 {input floating-point conversion} {ieeeFloatingPoint} {
1255    # Ad2b d ALL 1 E0 OK 10000000000000 E0
1256    convertToDouble 1E0
1257} 0x3ff0000000000000
1258test expr-28.4 {input floating-point conversion} {ieeeFloatingPoint} {
1259    # Ad2b d ALL 15 E-1 OK 18000000000000 E0
1260    convertToDouble 15E-1
1261} 0x3ff8000000000000
1262test expr-28.5 {input floating-point conversion} {ieeeFloatingPoint} {
1263    # Ad2b d ALL 125 E-2 OK 14000000000000 E0
1264    convertToDouble 125E-2
1265} 0x3ff4000000000000
1266test expr-28.6 {input floating-point conversion} {ieeeFloatingPoint} {
1267    # Ad2b d ALL 1125 E-3 OK 12000000000000 E0
1268    convertToDouble 1125E-3
1269} 0x3ff2000000000000
1270test expr-28.7 {input floating-point conversion} {ieeeFloatingPoint} {
1271    # Ad2b d ALL 10625 E-4 OK 11000000000000 E0
1272    convertToDouble 10625E-4
1273} 0x3ff1000000000000
1274test expr-28.8 {input floating-point conversion} {ieeeFloatingPoint} {
1275    # Ad2b d ALL 103125 E-5 OK 10800000000000 E0
1276    convertToDouble 103125E-5
1277} 0x3ff0800000000000
1278test expr-28.9 {input floating-point conversion} {ieeeFloatingPoint} {
1279    # Ad2b d ALL 1015625 E-6 OK 10400000000000 E0
1280    convertToDouble 1015625E-6
1281} 0x3ff0400000000000
1282test expr-28.10 {input floating-point conversion} {ieeeFloatingPoint} {
1283    # Ad2b d ALL 10078125 E-7 OK 10200000000000 E0
1284    convertToDouble 10078125E-7
1285} 0x3ff0200000000000
1286test expr-28.11 {input floating-point conversion} {ieeeFloatingPoint} {
1287    # Ad2b d ALL 100390625 E-8 OK 10100000000000 E0
1288    convertToDouble 100390625E-8
1289} 0x3ff0100000000000
1290test expr-28.12 {input floating-point conversion} {ieeeFloatingPoint} {
1291    # Ad2b dieee ALL 1001953125 E-9 OK 10080000000000 E0
1292    convertToDouble 1001953125E-9
1293} 0x3ff0080000000000
1294test expr-28.13 {input floating-point conversion} {ieeeFloatingPoint} {
1295    # Ad2b dieee ALL 10009765625 E-10 OK 10040000000000 E0
1296    convertToDouble 10009765625E-10
1297} 0x3ff0040000000000
1298test expr-28.14 {input floating-point conversion} {ieeeFloatingPoint} {
1299    # Ad2b dieee ALL 100048828125 E-11 OK 10020000000000 E0
1300    convertToDouble 100048828125E-11
1301} 0x3ff0020000000000
1302test expr-28.15 {input floating-point conversion} {ieeeFloatingPoint} {
1303    # Ad2b dieee ALL 1000244140625 E-12 OK 10010000000000 E0
1304    convertToDouble 1000244140625E-12
1305} 0x3ff0010000000000
1306test expr-28.16 {input floating-point conversion} {ieeeFloatingPoint} {
1307    # Ad2b dieee ALL 10001220703125 E-13 OK 10008000000000 E0
1308    convertToDouble 10001220703125E-13
1309} 0x3ff0008000000000
1310test expr-28.17 {input floating-point conversion} {ieeeFloatingPoint} {
1311    # Ad2b dieee ALL 100006103515625 E-14 OK 10004000000000 E0
1312    convertToDouble 100006103515625E-14
1313} 0x3ff0004000000000
1314test expr-28.18 {input floating-point conversion} {ieeeFloatingPoint} {
1315    # Ad2b dieee ALL 1000030517578125 E-15 OK 10002000000000 E0
1316    convertToDouble 1000030517578125E-15
1317} 0x3ff0002000000000
1318test expr-28.19 {input floating-point conversion} {ieeeFloatingPoint} {
1319    # Ad2b dieee ALL 10000152587890625 E-16 OK 10001000000000 E0
1320    convertToDouble 10000152587890625E-16
1321} 0x3ff0001000000000
1322test expr-28.20 {input floating-point conversion} {ieeeFloatingPoint} {
1323    # Ad2b d UN +8 E153 x 1317e5ef3ab327_0000000001& E511
1324    convertToDouble +8E153
1325} 0x5fe317e5ef3ab327
1326test expr-28.21 {input floating-point conversion} {ieeeFloatingPoint} {
1327    # Ad2b d UN -1 E153 x -1317e5ef3ab327_0000000001& E508
1328    convertToDouble -1E153
1329} 0xdfb317e5ef3ab327
1330test expr-28.22 {input floating-point conversion} {ieeeFloatingPoint} {
1331    # Ad2b d UN +9 E306 x 19a2028368022e_00000000001& E1019
1332    convertToDouble +9E306
1333} 0x7fa9a2028368022e
1334test expr-28.23 {input floating-point conversion} {ieeeFloatingPoint} {
1335    # Ad2b d UN -2 E153 x -1317e5ef3ab327_0000000001& E509
1336    convertToDouble -2E153
1337} 0xdfc317e5ef3ab327
1338test expr-28.24 {input floating-point conversion} {ieeeFloatingPoint} {
1339    # Ad2b d UN +7 E-304 x 1eb8e84fa0b278_00000000001& E-1008
1340    convertToDouble +7E-304
1341} 0x00feb8e84fa0b278
1342test expr-28.25 {input floating-point conversion} {ieeeFloatingPoint} {
1343    # Ad2b d UN -3 E-49 x -1c0f92a6276c9d_000000001& E-162
1344    convertToDouble -3E-49
1345} 0xb5dc0f92a6276c9d
1346test expr-28.26 {input floating-point conversion} {ieeeFloatingPoint} {
1347    # Ad2b d UN +7 E-303 x 13339131c46f8b_00000000001& E-1004
1348    convertToDouble +7E-303
1349} 0x0133339131c46f8b
1350test expr-28.27 {input floating-point conversion} {ieeeFloatingPoint} {
1351    # Ad2b d UN -6 E-49 x -1c0f92a6276c9d_000000001& E-161
1352    convertToDouble -6E-49
1353} 0xb5ec0f92a6276c9d
1354test expr-28.28 {input floating-point conversion} {ieeeFloatingPoint} {
1355    # Ad2b d UN +9 E43 x 102498ea6df0c3_11111111110& E146
1356    convertToDouble +9E43
1357} 0x49102498ea6df0c4
1358test expr-28.29 {input floating-point conversion} {ieeeFloatingPoint} {
1359    # Ad2b d UN -9 E44 x -142dbf25096cf4_1111111110& E149
1360    convertToDouble -9E44
1361} 0xc9442dbf25096cf5
1362test expr-28.30 {input floating-point conversion} {ieeeFloatingPoint} {
1363    # Ad2b d UN +8 E303 x 1754e31cd072d9_1111111110& E1009
1364    convertToDouble +8E303
1365} 0x7f0754e31cd072da
1366test expr-28.31 {input floating-point conversion} {ieeeFloatingPoint} {
1367    # Ad2b d UN -1 E303 x -1754e31cd072d9_1111111110& E1006
1368    convertToDouble -1E303
1369} 0xfed754e31cd072da
1370test expr-28.32 {input floating-point conversion} {ieeeFloatingPoint} {
1371    # Ad2b d UN +7 E-287 x 1551603777f798_111111110& E-951
1372    convertToDouble +7E-287
1373} 0x048551603777f799
1374test expr-28.33 {input floating-point conversion} {ieeeFloatingPoint} {
1375    # Ad2b d UN -2 E-204 x -1410d9f9b2f7f2_11111110& E-677
1376    convertToDouble -2E-204
1377} 0x95a410d9f9b2f7f3
1378test expr-28.34 {input floating-point conversion} {ieeeFloatingPoint} {
1379    # Ad2b d UN +2 E-205 x 100d7b2e28c65b_11111110& E-680
1380    convertToDouble +2E-205
1381} 0x15700d7b2e28c65c
1382test expr-28.35 {input floating-point conversion} {ieeeFloatingPoint} {
1383    # Ad2b d UN -9 E-47 x -10711fed5b19a3_11111110& E-153
1384    convertToDouble -9E-47
1385} 0xb660711fed5b19a4
1386test expr-28.36 {input floating-point conversion} {ieeeFloatingPoint} {
1387    # Ad2b d UN +34 E195 x 1d1c26db7d0dae_000000000001& E652
1388    convertToDouble +34E195
1389} 0x68bd1c26db7d0dae
1390test expr-28.37 {input floating-point conversion} {ieeeFloatingPoint} {
1391    # Ad2b d UN -68 E195 x -1d1c26db7d0dae_000000000001& E653
1392    convertToDouble -68E195
1393} 0xe8cd1c26db7d0dae
1394test expr-28.38 {input floating-point conversion} {ieeeFloatingPoint} {
1395    # Ad2b d UN +85 E194 x 1d1c26db7d0dae_000000000001& E650
1396    convertToDouble +85E194
1397} 0x689d1c26db7d0dae
1398test expr-28.39 {input floating-point conversion} {ieeeFloatingPoint} {
1399    # Ad2b d UN -67 E97 x -139ac1ce2cc95f_000000000001& E328
1400    convertToDouble -67E97
1401} 0xd4739ac1ce2cc95f
1402test expr-28.40 {input floating-point conversion} {ieeeFloatingPoint} {
1403    # Ad2b d UN +93 E-234 x 127b2e4f210075_0000000000000001& E-771
1404    convertToDouble +93E-234
1405} 0x0fc27b2e4f210075
1406test expr-28.41 {input floating-point conversion} {ieeeFloatingPoint} {
1407    # Ad2b d UN -19 E-87 x -12e5f5dfa4fe9d_00000000000001& E-285
1408    convertToDouble -19E-87
1409} 0xae22e5f5dfa4fe9d
1410test expr-28.42 {input floating-point conversion} {ieeeFloatingPoint} {
1411    # Ad2b d UN +38 E-87 x 12e5f5dfa4fe9d_00000000000001& E-284
1412    convertToDouble +38E-87
1413} 0x2e32e5f5dfa4fe9d
1414test expr-28.43 {input floating-point conversion} {ieeeFloatingPoint} {
1415    # Ad2b d UN -38 E-88 x -1e3cbc9907fdc8_00000000000001& E-288
1416    convertToDouble -38E-88
1417} 0xadfe3cbc9907fdc8
1418test expr-28.44 {input floating-point conversion} {ieeeFloatingPoint} {
1419    # Ad2b d UN -69 E220 x -1e8aa8823a5db3_11111111110& E736
1420    convertToDouble -69E220
1421} 0xedfe8aa8823a5db4
1422test expr-28.45 {input floating-point conversion} {ieeeFloatingPoint} {
1423    # Ad2b d UN +18 E43 x 102498ea6df0c3_11111111110& E147
1424    convertToDouble +18E43
1425} 0x49202498ea6df0c4
1426test expr-28.46 {input floating-point conversion} {ieeeFloatingPoint} {
1427    # Ad2b d UN -36 E43 x -102498ea6df0c3_11111111110& E148
1428    convertToDouble -36E43
1429} 0xc9302498ea6df0c4
1430test expr-28.47 {input floating-point conversion} {ieeeFloatingPoint} {
1431    # Ad2b d UN +61 E-99 x 10ad836f269a16_11111111111110& E-323
1432    convertToDouble +61E-99
1433} 0x2bc0ad836f269a17
1434test expr-28.48 {input floating-point conversion} {ieeeFloatingPoint} {
1435    # Ad2b d UN -43 E-92 x -1c0794d9d40e95_111111111111110& E-301
1436    convertToDouble -43E-92
1437} 0xad2c0794d9d40e96
1438test expr-28.49 {input floating-point conversion} {ieeeFloatingPoint} {
1439    # Ad2b d UN +86 E-92 x 1c0794d9d40e95_111111111111110& E-300
1440    convertToDouble +86E-92
1441} 0x2d3c0794d9d40e96
1442test expr-28.50 {input floating-point conversion} {ieeeFloatingPoint} {
1443    # Ad2b d UN -51 E-74 x -1cd5bee57763e5_1111111111111110& E-241
1444    convertToDouble -51E-74
1445} 0xb0ecd5bee57763e6
1446test expr-28.51 {input floating-point conversion} {ieeeFloatingPoint} {
1447    # Ad2b d UN +283 E85 x 16c309024bab4b_00000000000000001& E290
1448    convertToDouble +283E85
1449} 0x5216c309024bab4b
1450test expr-28.52 {input floating-point conversion} {ieeeFloatingPoint} {
1451    # Ad2b d UN -566 E85 x -16c309024bab4b_00000000000000001& E291
1452    convertToDouble -566E85
1453} 0xd226c309024bab4b
1454test expr-28.53 {input floating-point conversion} {ieeeFloatingPoint} {
1455    # Ad2b d UN +589 E187 x 1526be9c22eb17_00000000000000001& E630
1456    convertToDouble +589E187
1457} 0x675526be9c22eb17
1458test expr-28.54 {input floating-point conversion} {ieeeFloatingPoint} {
1459    # Ad2b d UN -839 E143 x -1ae03f245703e2_000000000000001& E484
1460    convertToDouble -839E143
1461} 0xde3ae03f245703e2
1462test expr-28.55 {input floating-point conversion} {ieeeFloatingPoint} {
1463    # Ad2b d UN -744 E-234 x -127b2e4f210075_0000000000000001& E-768
1464    convertToDouble -744E-234
1465} 0x8ff27b2e4f210075
1466test expr-28.56 {input floating-point conversion} {ieeeFloatingPoint} {
1467    # Ad2b d UN +930 E-235 x 127b2e4f210075_0000000000000001& E-771
1468    convertToDouble +930E-235
1469} 0x0fc27b2e4f210075
1470test expr-28.57 {input floating-point conversion} {ieeeFloatingPoint} {
1471    # Ad2b d UN -186 E-234 x -127b2e4f210075_0000000000000001& E-770
1472    convertToDouble -186E-234
1473} 0x8fd27b2e4f210075
1474test expr-28.58 {input floating-point conversion} {ieeeFloatingPoint} {
1475    # Ad2b d UN +604 E175 x 17d93193f78fc5_1111111111111111110& E590
1476    convertToDouble +604E175
1477} 0x64d7d93193f78fc6
1478test expr-28.59 {input floating-point conversion} {ieeeFloatingPoint} {
1479    # Ad2b d UN -302 E175 x -17d93193f78fc5_1111111111111111110& E589
1480    convertToDouble -302E175
1481} 0xe4c7d93193f78fc6
1482test expr-28.60 {input floating-point conversion} {ieeeFloatingPoint} {
1483    # Ad2b d UN +755 E174 x 17d93193f78fc5_1111111111111111110& E587
1484    convertToDouble +755E174
1485} 0x64a7d93193f78fc6
1486test expr-28.61 {input floating-point conversion} {ieeeFloatingPoint} {
1487    # Ad2b d UN -151 E175 x -17d93193f78fc5_1111111111111111110& E588
1488    convertToDouble -151E175
1489} 0xe4b7d93193f78fc6
1490test expr-28.62 {input floating-point conversion} {ieeeFloatingPoint} {
1491    # Ad2b d UN +662 E-213 x 1bdb90e62a8cbc_1111111111111110& E-699
1492    convertToDouble +662E-213
1493} 0x144bdb90e62a8cbd
1494test expr-28.63 {input floating-point conversion} {ieeeFloatingPoint} {
1495    # Ad2b d UN -408 E-74 x -1cd5bee57763e5_1111111111111110& E-238
1496    convertToDouble -408E-74
1497} 0xb11cd5bee57763e6
1498test expr-28.64 {input floating-point conversion} {ieeeFloatingPoint} {
1499    # Ad2b d UN +510 E-75 x 1cd5bee57763e5_1111111111111110& E-241
1500    convertToDouble +510E-75
1501} 0x30ecd5bee57763e6
1502test expr-28.65 {input floating-point conversion} {ieeeFloatingPoint} {
1503    # Ad2b d UN +6782 E55 x 159bd3ad46e346_0000000000000000001& E195
1504    convertToDouble +6782E55
1505} 0x4c259bd3ad46e346
1506test expr-28.66 {input floating-point conversion} {ieeeFloatingPoint} {
1507    # Ad2b d UN -2309 E92 x -1bac6f7d64d119_000000000000000001& E316
1508    convertToDouble -2309E92
1509} 0xd3bbac6f7d64d119
1510test expr-28.67 {input floating-point conversion} {ieeeFloatingPoint} {
1511    # Ad2b d UN +7963 E34 x 1df4170f0fdecc_00000000000000000001& E125
1512    convertToDouble +7963E34
1513} 0x47cdf4170f0fdecc
1514test expr-28.68 {input floating-point conversion} {ieeeFloatingPoint} {
1515    # Ad2b d UN -3391 E55 x -159bd3ad46e346_0000000000000000001& E194
1516    convertToDouble -3391E55
1517} 0xcc159bd3ad46e346
1518test expr-28.69 {input floating-point conversion} {ieeeFloatingPoint} {
1519    # Ad2b d UN +7903 E-96 x 107c2d27a5b989_0000000000000000001& E-306
1520    convertToDouble +7903E-96
1521} 0x2cd07c2d27a5b989
1522test expr-28.70 {input floating-point conversion} {ieeeFloatingPoint} {
1523    # Ad2b d UN -7611 E-226 x -119b8744033457_0000000000000000001& E-738
1524    convertToDouble -7611E-226
1525} 0x91d19b8744033457
1526test expr-28.71 {input floating-point conversion} {ieeeFloatingPoint} {
1527    # Ad2b d UN +4907 E-196 x 11e90a8711440f_000000000000000001& E-639
1528    convertToDouble +4907E-196
1529} 0x1801e90a8711440f
1530test expr-28.72 {input floating-point conversion} {ieeeFloatingPoint} {
1531    # Ad2b d UN -5547 E-311 x -13f190452a29f4_000000000000000001& E-1021
1532    convertToDouble -5547E-311
1533} 0x8023f190452a29f4
1534test expr-28.73 {input floating-point conversion} {ieeeFloatingPoint} {
1535    # Ad2b d UN +5311 E241 x 1f1ce3c887c25f_11111111111111111110& E812
1536    convertToDouble +5311E241
1537} 0x72bf1ce3c887c260
1538test expr-28.74 {input floating-point conversion} {ieeeFloatingPoint} {
1539    # Ad2b d UN -5311 E243 x -184e91f4aa0fda_11111111111111111110& E819
1540    convertToDouble -5311E243
1541} 0xf3284e91f4aa0fdb
1542test expr-28.75 {input floating-point conversion} {ieeeFloatingPoint} {
1543    # Ad2b d UN +5311 E242 x 13720e5d54d97b_11111111111111111110& E816
1544    convertToDouble +5311E242
1545} 0x72f3720e5d54d97c
1546test expr-28.76 {input floating-point conversion} {ieeeFloatingPoint} {
1547    # Ad2b d UN +9269 E-45 x 19d69455a53bd8_111111111111111111110& E-137
1548    convertToDouble +9269E-45
1549} 0x3769d69455a53bd9
1550test expr-28.77 {input floating-point conversion} {ieeeFloatingPoint} {
1551    # Ad2b d UN -8559 E-289 x -104a81d35952fe_11111111111111111110& E-947
1552    convertToDouble -8559E-289
1553} 0x84c04a81d35952ff
1554test expr-28.78 {input floating-point conversion} {ieeeFloatingPoint} {
1555    # Ad2b d UN +8699 E-276 x 12d2df246ecd2c_1111111111111111111110& E-904
1556    convertToDouble +8699E-276
1557} 0x0772d2df246ecd2d
1558test expr-28.79 {input floating-point conversion} {ieeeFloatingPoint} {
1559    # Ad2b d UN -8085 E-64 x -14c98fce16152d_1111111111111111110& E-200
1560    convertToDouble -8085E-64
1561} 0xb374c98fce16152e
1562test expr-28.80 {input floating-point conversion} {ieeeFloatingPoint} {
1563    # Ad2b d UN +74819 E201 x 1dd455061eb3f1_0000000000000000000001& E683
1564    convertToDouble +74819E201
1565} 0x6aadd455061eb3f1
1566test expr-28.81 {input floating-point conversion} {ieeeFloatingPoint} {
1567    # Ad2b d UN -82081 E41 x -170105df3d47cb_000000000000000000000000001& E152
1568    convertToDouble -82081E41
1569} 0xc9770105df3d47cb
1570test expr-28.82 {input floating-point conversion} {ieeeFloatingPoint} {
1571    # Ad2b d UN +51881 E37 x 17d2950dc76da4_000000000000000000001& E138
1572    convertToDouble +51881E37
1573} 0x4897d2950dc76da4
1574test expr-28.83 {input floating-point conversion} {ieeeFloatingPoint} {
1575    # Ad2b d UN -55061 E157 x -1394fc0f33536c_000000000000000000001& E537
1576    convertToDouble -55061E157
1577} 0xe18394fc0f33536c
1578test expr-28.84 {input floating-point conversion} {ieeeFloatingPoint} {
1579    # Ad2b d UN +77402 E-215 x 10492a4a8a37fd_0000000000000000000000001& E-698
1580    convertToDouble +77402E-215
1581} 0x1450492a4a8a37fd
1582test expr-28.85 {input floating-point conversion} {ieeeFloatingPoint} {
1583    # Ad2b d UN -33891 E-92 x -1592f9932c06bd_00000000000000000000001& E-291
1584    convertToDouble -33891E-92
1585} 0xadc592f9932c06bd
1586test expr-28.86 {input floating-point conversion} {ieeeFloatingPoint} {
1587    # Ad2b d UN +38701 E-215 x 10492a4a8a37fd_0000000000000000000000001& E-699
1588    convertToDouble +38701E-215
1589} 0x1440492a4a8a37fd
1590test expr-28.87 {input floating-point conversion} {ieeeFloatingPoint} {
1591    # Ad2b d UN -82139 E-76 x -1d0681489839d5_00000000000000000000001& E-237
1592    convertToDouble -82139E-76
1593} 0xb12d0681489839d5
1594test expr-28.88 {input floating-point conversion} {ieeeFloatingPoint} {
1595    # Ad2b dieee UN +75859 E25 x 132645e1ba93ef_11111111111111111111110& E99
1596    convertToDouble +75859E25
1597} 0x46232645e1ba93f0
1598test expr-28.89 {input floating-point conversion} {ieeeFloatingPoint} {
1599    # Ad2b d UN +89509 E140 x 16f02bee68670c_1111111111111111111110& E481
1600    convertToDouble +89509E140
1601} 0x5e06f02bee68670d
1602test expr-28.90 {input floating-point conversion} {ieeeFloatingPoint} {
1603    # Ad2b d UN -57533 E287 x -1272ed2307f569_1111111111111111111110& E969
1604    convertToDouble -57533E287
1605} 0xfc8272ed2307f56a
1606test expr-28.91 {input floating-point conversion} {ieeeFloatingPoint} {
1607    # Ad2b d UN +46073 E-32 x 12405b773fbdf2_11111111111111111111110& E-91
1608    convertToDouble +46073E-32
1609} 0x3a42405b773fbdf3
1610test expr-28.92 {input floating-point conversion} {ieeeFloatingPoint} {
1611    # Ad2b d UN -92146 E-32 x -12405b773fbdf2_11111111111111111111110& E-90
1612    convertToDouble -92146E-32
1613} 0xba52405b773fbdf3
1614test expr-28.93 {input floating-point conversion} {ieeeFloatingPoint} {
1615    # Ad2b d UN +83771 E-74 x 17206bfc4ccabd_11111111111111111111110& E-230
1616    convertToDouble +83771E-74
1617} 0x3197206bfc4ccabe
1618test expr-28.94 {input floating-point conversion} {ieeeFloatingPoint} {
1619    # Ad2b d UN -34796 E-276 x -12d2df246ecd2c_1111111111111111111110& E-902
1620    convertToDouble -34796E-276
1621} 0x8792d2df246ecd2d
1622test expr-28.95 {input floating-point conversion} {ieeeFloatingPoint} {
1623    # Ad2b d UN +584169 E229 x 1d657059dc79aa_00000000000000000000000000001& E779
1624    convertToDouble +584169E229
1625} 0x70ad657059dc79aa
1626test expr-28.96 {input floating-point conversion} {ieeeFloatingPoint} {
1627    # Ad2b d UN +164162 E41 x 170105df3d47cb_000000000000000000000000001& E153
1628    convertToDouble +164162E41
1629} 0x49870105df3d47cb
1630test expr-28.97 {input floating-point conversion} {ieeeFloatingPoint} {
1631    # Ad2b d UN -328324 E41 x -170105df3d47cb_000000000000000000000000001& E154
1632    convertToDouble -328324E41
1633} 0xc9970105df3d47cb
1634test expr-28.98 {input floating-point conversion} {ieeeFloatingPoint} {
1635    # Ad2b dieee UN +209901 E-11 x 119b96f36ec68b_00000000000000000000000001& E-19
1636    convertToDouble +209901E-11
1637} 0x3ec19b96f36ec68b
1638test expr-28.99 {input floating-point conversion} {ieeeFloatingPoint} {
1639    # Ad2b dieee UN -419802 E-11 x -119b96f36ec68b_00000000000000000000000001& E-18
1640    convertToDouble -419802E-11
1641} 0xbed19b96f36ec68b
1642test expr-28.100 {input floating-point conversion} {ieeeFloatingPoint} {
1643    # Ad2b d UN +940189 E-112 x 1b99d6240c1a28_00000000000000000000000001& E-353
1644    convertToDouble +940189E-112
1645} 0x29eb99d6240c1a28
1646test expr-28.101 {input floating-point conversion} {ieeeFloatingPoint} {
1647    # Ad2b d UN -892771 E-213 x -125818c7294f27_0000000000000000000000000001& E-688
1648    convertToDouble -892771E-213
1649} 0x94f25818c7294f27
1650test expr-28.102 {input floating-point conversion} {ieeeFloatingPoint} {
1651    # Ad2b d UN +757803 E120 x 11e968b555bb80_11111111111111111111111111110& E418
1652    convertToDouble +757803E120
1653} 0x5a11e968b555bb81
1654test expr-28.103 {input floating-point conversion} {ieeeFloatingPoint} {
1655    # Ad2b d UN -252601 E120 x -17e1e0f1c7a4ab_11111111111111111111111111110& E416
1656    convertToDouble -252601E120
1657} 0xd9f7e1e0f1c7a4ac
1658test expr-28.104 {input floating-point conversion} {ieeeFloatingPoint} {
1659    # Ad2b d UN +252601 E121 x 1dda592e398dd6_1111111111111111111111111110& E419
1660    convertToDouble +252601E121
1661} 0x5a2dda592e398dd7
1662test expr-28.105 {input floating-point conversion} {ieeeFloatingPoint} {
1663    # Ad2b d UN -505202 E120 x -17e1e0f1c7a4ab_11111111111111111111111111110& E417
1664    convertToDouble -505202E120
1665} 0xda07e1e0f1c7a4ac
1666test expr-28.106 {input floating-point conversion} {ieeeFloatingPoint} {
1667    # Ad2b d UN +970811 E-264 x 1dda6b965c9629_11111111111111111111111110& E-858
1668    convertToDouble +970811E-264
1669} 0x0a5dda6b965c962a
1670test expr-28.107 {input floating-point conversion} {ieeeFloatingPoint} {
1671    # Ad2b d UN -654839 E-60 x -100e7db3b3f241_111111111111111111111111110& E-180
1672    convertToDouble -654839E-60
1673} 0xb4b00e7db3b3f242
1674test expr-28.108 {input floating-point conversion} {ieeeFloatingPoint} {
1675    # Ad2b d UN +289767 E-178 x 1caad28f23a100_11111111111111111111111110& E-574
1676    convertToDouble +289767E-178
1677} 0x1c1caad28f23a101
1678test expr-28.109 {input floating-point conversion} {ieeeFloatingPoint} {
1679    # Ad2b d UN -579534 E-178 x -1caad28f23a100_11111111111111111111111110& E-573
1680    convertToDouble -579534E-178
1681} 0x9c2caad28f23a101
1682test expr-28.110 {input floating-point conversion} {ieeeFloatingPoint} {
1683    # Ad2b d UN -8823691 E130 x -1e597c0b94b7ae_00000000000000000000000000000001& E454
1684    convertToDouble -8823691E130
1685} 0xdc5e597c0b94b7ae
1686test expr-28.111 {input floating-point conversion} {ieeeFloatingPoint} {
1687    # Ad2b d UN +9346704 E229 x 1d657059dc79aa_00000000000000000000000000001& E783
1688    convertToDouble +9346704E229
1689} 0x70ed657059dc79aa
1690test expr-28.112 {input floating-point conversion} {ieeeFloatingPoint} {
1691    # Ad2b d UN -1168338 E229 x -1d657059dc79aa_00000000000000000000000000001& E780
1692    convertToDouble -1168338E229
1693} 0xf0bd657059dc79aa
1694test expr-28.113 {input floating-point conversion} {ieeeFloatingPoint} {
1695    # Ad2b d UN -6063369 E-136 x -1ae6148e3902b3_000000000000000000000000000001& E-430
1696    convertToDouble -6063369E-136
1697} 0xa51ae6148e3902b3
1698test expr-28.114 {input floating-point conversion} {ieeeFloatingPoint} {
1699    # Ad2b d UN +3865421 E-225 x 15d4fe53afec65_00000000000000000000000000001& E-726
1700    convertToDouble +3865421E-225
1701} 0x1295d4fe53afec65
1702test expr-28.115 {input floating-point conversion} {ieeeFloatingPoint} {
1703    # Ad2b d UN -5783893 E-127 x -17e5902ce0e151_000000000000000000000000000000001& E-400
1704    convertToDouble -5783893E-127
1705} 0xa6f7e5902ce0e151
1706test expr-28.116 {input floating-point conversion} {ieeeFloatingPoint} {
1707    # Ad2b d UN +2572231 E223 x 10f73be1dff9ac_111111111111111111111111111110& E762
1708    convertToDouble +2572231E223
1709} 0x6f90f73be1dff9ad
1710test expr-28.117 {input floating-point conversion} {ieeeFloatingPoint} {
1711    # Ad2b d UN -5144462 E223 x -10f73be1dff9ac_111111111111111111111111111110& E763
1712    convertToDouble -5144462E223
1713} 0xefa0f73be1dff9ad
1714test expr-28.118 {input floating-point conversion} {ieeeFloatingPoint} {
1715    # Ad2b d UN +1817623 E109 x 1d85f96f3fe659_11111111111111111111111111110& E382
1716    convertToDouble +1817623E109
1717} 0x57dd85f96f3fe65a
1718test expr-28.119 {input floating-point conversion} {ieeeFloatingPoint} {
1719    # Ad2b d UN +6431543 E-97 x 14f6493f34a0bc_11111111111111111111111111110& E-300
1720    convertToDouble +6431543E-97
1721} 0x2d34f6493f34a0bd
1722test expr-28.120 {input floating-point conversion} {ieeeFloatingPoint} {
1723    # Ad2b dieee UN -5444097 E-21 x -18849dd33c95ae_11111111111111111111111111110& E-48
1724    convertToDouble -5444097E-21
1725} 0xbcf8849dd33c95af
1726test expr-28.121 {input floating-point conversion} {ieeeFloatingPoint} {
1727    # Ad2b d UN +8076999 E-121 x 1fd332f7e2e3b2_11111111111111111111111111110& E-380
1728    convertToDouble +8076999E-121
1729} 0x283fd332f7e2e3b3
1730test expr-28.122 {input floating-point conversion} {ieeeFloatingPoint} {
1731    # Ad2b d UN -9997649 E-270 x -1425e9d29e558d_1111111111111111111111111110& E-874
1732    convertToDouble -9997649E-270
1733} 0x895425e9d29e558e
1734test expr-28.123 {input floating-point conversion} {ieeeFloatingPoint} {
1735    # Ad2b d UN +50609263 E157 x 1193aff1f1c8e3_000000000000000000000000000000001& E547
1736    convertToDouble +50609263E157
1737} 0x622193aff1f1c8e3
1738test expr-28.124 {input floating-point conversion} {ieeeFloatingPoint} {
1739    # Ad2b d UN +70589528 E130 x 1e597c0b94b7ae_00000000000000000000000000000001& E457
1740    convertToDouble +70589528E130
1741} 0x5c8e597c0b94b7ae
1742test expr-28.125 {input floating-point conversion} {ieeeFloatingPoint} {
1743    # Ad2b d UN -88236910 E129 x -1e597c0b94b7ae_00000000000000000000000000000001& E454
1744    convertToDouble -88236910E129
1745} 0xdc5e597c0b94b7ae
1746test expr-28.126 {input floating-point conversion} {ieeeFloatingPoint} {
1747    # Ad2b d UN +87575437 E-310 x 1805c19e680456_0000000000000000000000000000000000001& E-1004
1748    convertToDouble +87575437E-310
1749} 0x013805c19e680456
1750test expr-28.127 {input floating-point conversion} {ieeeFloatingPoint} {
1751    # Ad2b d UN -23135572 E-127 x -17e5902ce0e151_000000000000000000000000000000001& E-398
1752    convertToDouble -23135572E-127
1753} 0xa717e5902ce0e151
1754test expr-28.128 {input floating-point conversion} {ieeeFloatingPoint} {
1755    # Ad2b d UN +85900881 E177 x 14375b2214e1b4_111111111111111111111111111111110& E614
1756    convertToDouble +85900881E177
1757} 0x6654375b2214e1b5
1758test expr-28.129 {input floating-point conversion} {ieeeFloatingPoint} {
1759    # Ad2b d UN -84863171 E113 x -1a4a8e56474b8b_111111111111111111111111111111110& E401
1760    convertToDouble -84863171E113
1761} 0xd90a4a8e56474b8c
1762test expr-28.130 {input floating-point conversion} {ieeeFloatingPoint} {
1763    # Ad2b d UN +68761586 E232 x 1a662c350f37f2_1111111111111111111111111111110& E796
1764    convertToDouble +68761586E232
1765} 0x71ba662c350f37f3
1766test expr-28.131 {input floating-point conversion} {ieeeFloatingPoint} {
1767    # Ad2b d UN -50464069 E286 x -1948dd06de561e_1111111111111111111111111111110& E975
1768    convertToDouble -50464069E286
1769} 0xfce948dd06de561f
1770test expr-28.132 {input floating-point conversion} {ieeeFloatingPoint} {
1771    # Ad2b d UN +27869147 E-248 x 1dbbac6f83a820_111111111111111111111111111111111110& E-800
1772    convertToDouble +27869147E-248
1773} 0x0dfdbbac6f83a821
1774test expr-28.133 {input floating-point conversion} {ieeeFloatingPoint} {
1775    # Ad2b d UN -55738294 E-248 x -1dbbac6f83a820_111111111111111111111111111111111110& E-799
1776    convertToDouble -55738294E-248
1777} 0x8e0dbbac6f83a821
1778test expr-28.134 {input floating-point conversion} {ieeeFloatingPoint} {
1779    # Ad2b d UN +70176353 E-53 x 100683a21de854_1111111111111111111111111111111110& E-150
1780    convertToDouble +70176353E-53
1781} 0x36900683a21de855
1782test expr-28.135 {input floating-point conversion} {ieeeFloatingPoint} {
1783    # Ad2b d UN -80555086 E-32 x -1f29ca0ff893b0_111111111111111111111111111111110& E-81
1784    convertToDouble -80555086E-32
1785} 0xbaef29ca0ff893b1
1786test expr-28.136 {input floating-point conversion} {ieeeFloatingPoint} {
1787    # Ad2b d UN -491080654 E121 x -1c569e968e0944_00000000000000000000000000000000000000001& E430
1788    convertToDouble -491080654E121
1789} 0xdadc569e968e0944
1790test expr-28.137 {input floating-point conversion} {ieeeFloatingPoint} {
1791    # Ad2b d UN +526250918 E287 x 14997a298b2f2e_0000000000000000000000000000000000001& E982
1792    convertToDouble +526250918E287
1793} 0x7d54997a298b2f2e
1794test expr-28.138 {input floating-point conversion} {ieeeFloatingPoint} {
1795    # Ad2b d UN -245540327 E121 x -1c569e968e0944_00000000000000000000000000000000000000001& E429
1796    convertToDouble -245540327E121
1797} 0xdacc569e968e0944
1798test expr-28.139 {input floating-point conversion} {ieeeFloatingPoint} {
1799    # Ad2b d UN -175150874 E-310 x -1805c19e680456_0000000000000000000000000000000000001& E-1003
1800    convertToDouble -175150874E-310
1801} 0x814805c19e680456
1802test expr-28.140 {input floating-point conversion} {ieeeFloatingPoint} {
1803    # Ad2b d UN +350301748 E-310 x 1805c19e680456_0000000000000000000000000000000000001& E-1002
1804    convertToDouble +350301748E-310
1805} 0x015805c19e680456
1806test expr-28.141 {input floating-point conversion} {ieeeFloatingPoint} {
1807    # Ad2b d UN -437877185 E-311 x -1805c19e680456_0000000000000000000000000000000000001& E-1005
1808    convertToDouble -437877185E-311
1809} 0x812805c19e680456
1810test expr-28.142 {input floating-point conversion} {ieeeFloatingPoint} {
1811    # Ad2b d UN +458117166 E52 x 16ce94febdc7a4_1111111111111111111111111111111111110& E201
1812    convertToDouble +458117166E52
1813} 0x4c86ce94febdc7a5
1814test expr-28.143 {input floating-point conversion} {ieeeFloatingPoint} {
1815    # Ad2b d UN -916234332 E52 x -16ce94febdc7a4_1111111111111111111111111111111111110& E202
1816    convertToDouble -916234332E52
1817} 0xcc96ce94febdc7a5
1818test expr-28.144 {input floating-point conversion} {ieeeFloatingPoint} {
1819    # Ad2b d UN +229058583 E52 x 16ce94febdc7a4_1111111111111111111111111111111111110& E200
1820    convertToDouble +229058583E52
1821} 0x4c76ce94febdc7a5
1822test expr-28.145 {input floating-point conversion} {ieeeFloatingPoint} {
1823    # Ad2b d UN -525789935 E98 x -16ecdc2a58fc64_11111111111111111111111111111111110& E354
1824    convertToDouble -525789935E98
1825} 0xd616ecdc2a58fc65
1826test expr-28.146 {input floating-point conversion} {ieeeFloatingPoint} {
1827    # Ad2b d UN +282926897 E-227 x 1ff5a70d3d2fee_1111111111111111111111111111111111110& E-727
1828    convertToDouble +282926897E-227
1829} 0x128ff5a70d3d2fef
1830test expr-28.147 {input floating-point conversion} {ieeeFloatingPoint} {
1831    # Ad2b d UN -565853794 E-227 x -1ff5a70d3d2fee_1111111111111111111111111111111111110& E-726
1832    convertToDouble -565853794E-227
1833} 0x929ff5a70d3d2fef
1834test expr-28.148 {input floating-point conversion} {ieeeFloatingPoint} {
1835    # Ad2b d UN +667284113 E-240 x 109355f8050c01_111111111111111111111111111111111110& E-768
1836    convertToDouble +667284113E-240
1837} 0x0ff09355f8050c02
1838test expr-28.149 {input floating-point conversion} {ieeeFloatingPoint} {
1839    # Ad2b d UN -971212611 E-126 x -1397d3c9745d2e_111111111111111111111111111111111111110& E-389
1840    convertToDouble -971212611E-126
1841} 0xa7a397d3c9745d2f
1842test expr-28.150 {input floating-point conversion} {ieeeFloatingPoint} {
1843    # Ad2b d UN +9981396317 E-182 x 18afe10a2a66aa_0000000000000000000000000000000000000001& E-572
1844    convertToDouble +9981396317E-182
1845} 0x1c38afe10a2a66aa
1846test expr-28.151 {input floating-point conversion} {ieeeFloatingPoint} {
1847    # Ad2b d UN -5035231965 E-156 x -101891fc4717fd_00000000000000000000000000000000000001& E-486
1848    convertToDouble -5035231965E-156
1849} 0xa1901891fc4717fd
1850test expr-28.152 {input floating-point conversion} {ieeeFloatingPoint} {
1851    # Ad2b d UN +8336960483 E-153 x 1a06a1024b95e1_000000000000000000000000000000000000001& E-476
1852    convertToDouble +8336960483E-153
1853} 0x223a06a1024b95e1
1854test expr-28.153 {input floating-point conversion} {ieeeFloatingPoint} {
1855    # Ad2b d UN -8056371144 E-155 x -101891fc4717fd_00000000000000000000000000000000000001& E-482
1856    convertToDouble -8056371144E-155
1857} 0xa1d01891fc4717fd
1858test expr-28.154 {input floating-point conversion} {ieeeFloatingPoint} {
1859    # Ad2b d UN +6418488827 E79 x 1021f14ed7b3f9_11111111111111111111111111111111111111110& E295
1860    convertToDouble +6418488827E79
1861} 0x526021f14ed7b3fa
1862test expr-28.155 {input floating-point conversion} {ieeeFloatingPoint} {
1863    # Ad2b d UN -3981006983 E252 x -102ebaf189d5f1_1111111111111111111111111111111111111110& E869
1864    convertToDouble -3981006983E252
1865} 0xf6402ebaf189d5f2
1866test expr-28.156 {input floating-point conversion} {ieeeFloatingPoint} {
1867    # Ad2b d UN +7962013966 E252 x 102ebaf189d5f1_1111111111111111111111111111111111111110& E870
1868    convertToDouble +7962013966E252
1869} 0x76502ebaf189d5f2
1870test expr-28.157 {input floating-point conversion} {ieeeFloatingPoint} {
1871    # Ad2b d UN -4713898551 E261 x -11d8813536e0df_11111111111111111111111111111111111110& E899
1872    convertToDouble -4713898551E261
1873} 0xf821d8813536e0e0
1874test expr-28.158 {input floating-point conversion} {ieeeFloatingPoint} {
1875    # Ad2b d UN +8715380633 E-58 x 14614c3219891e_11111111111111111111111111111111111111110& E-160
1876    convertToDouble +8715380633E-58
1877} 0x35f4614c3219891f
1878test expr-28.159 {input floating-point conversion} {ieeeFloatingPoint} {
1879    # Ad2b d UN -9078555839 E-109 x -1fc575867314ed_111111111111111111111111111111111111111111110& E-330
1880    convertToDouble -9078555839E-109
1881} 0xab5fc575867314ee
1882test expr-28.160 {input floating-point conversion} {ieeeFloatingPoint} {
1883    # Ad2b d UN +9712126110 E-127 x 1397d3c9745d2e_111111111111111111111111111111111111110& E-389
1884    convertToDouble +9712126110E-127
1885} 0x27a397d3c9745d2f
1886test expr-28.161 {input floating-point conversion} {ieeeFloatingPoint} {
1887    # Ad2b d UN +42333842451 E201 x 10189a26df575f_000000000000000000000000000000000000000000001& E703
1888    convertToDouble +42333842451E201
1889} 0x6be0189a26df575f
1890test expr-28.162 {input floating-point conversion} {ieeeFloatingPoint} {
1891    # Ad2b d UN -84667684902 E201 x -10189a26df575f_000000000000000000000000000000000000000000001& E704
1892    convertToDouble -84667684902E201
1893} 0xebf0189a26df575f
1894test expr-28.163 {input floating-point conversion} {ieeeFloatingPoint} {
1895    # Ad2b d UN +23792120709 E-315 x 10b517dc5d3212_00000000000000000000000000000000000000001& E-1012
1896    convertToDouble +23792120709E-315
1897} 0x00b0b517dc5d3212
1898test expr-28.164 {input floating-point conversion} {ieeeFloatingPoint} {
1899    # Ad2b d UN -78564021519 E-227 x -1155515fd37265_00000000000000000000000000000000000000000001& E-718
1900    convertToDouble -78564021519E-227
1901} 0x931155515fd37265
1902test expr-28.165 {input floating-point conversion} {ieeeFloatingPoint} {
1903    # Ad2b d UN +71812054883 E-188 x 1747b46d78c6fe_00000000000000000000000000000000000000001& E-589
1904    convertToDouble +71812054883E-188
1905} 0x1b2747b46d78c6fe
1906test expr-28.166 {input floating-point conversion} {ieeeFloatingPoint} {
1907    # Ad2b d UN -30311163631 E-116 x -163ef6f560afe7_00000000000000000000000000000000000000001& E-351
1908    convertToDouble -30311163631E-116
1909} 0xaa063ef6f560afe7
1910test expr-28.167 {input floating-point conversion} {ieeeFloatingPoint} {
1911    # Ad2b d UN +71803914657 E292 x 10c0c44cdc2c05_11111111111111111111111111111111111111111110& E1006
1912    convertToDouble +71803914657E292
1913} 0x7ed0c0c44cdc2c06
1914test expr-28.168 {input floating-point conversion} {ieeeFloatingPoint} {
1915    # Ad2b d UN +36314223356 E-109 x 1fc575867314ed_111111111111111111111111111111111111111111110& E-328
1916    convertToDouble +36314223356E-109
1917} 0x2b7fc575867314ee
1918test expr-28.169 {input floating-point conversion} {ieeeFloatingPoint} {
1919    # Ad2b d UN +18157111678 E-109 x 1fc575867314ed_111111111111111111111111111111111111111111110& E-329
1920    convertToDouble +18157111678E-109
1921} 0x2b6fc575867314ee
1922test expr-28.170 {input floating-point conversion} {ieeeFloatingPoint} {
1923    # Ad2b d UN -45392779195 E-110 x -1fc575867314ed_111111111111111111111111111111111111111111110& E-331
1924    convertToDouble -45392779195E-110
1925} 0xab4fc575867314ee
1926test expr-28.171 {input floating-point conversion} {ieeeFloatingPoint} {
1927    # Ad2b d UN +778380362293 E218 x 19ab8261990292_0000000000000000000000000000000000000000000000000001& E763
1928    convertToDouble +778380362293E218
1929} 0x6fa9ab8261990292
1930test expr-28.172 {input floating-point conversion} {ieeeFloatingPoint} {
1931    # Ad2b d UN -685763015669 E280 x -15fd7aa44d9477_000000000000000000000000000000000000000000000001& E969
1932    convertToDouble -685763015669E280
1933} 0xfc85fd7aa44d9477
1934test expr-28.173 {input floating-point conversion} {ieeeFloatingPoint} {
1935    # Ad2b d UN +952918668151 E70 x 14177a9915fbf8_00000000000000000000000000000000000000000000001& E272
1936    convertToDouble +952918668151E70
1937} 0x50f4177a9915fbf8
1938test expr-28.174 {input floating-point conversion} {ieeeFloatingPoint} {
1939    # Ad2b d UN -548357443505 E32 x -13abde2775e9b5_0000000000000000000000000000000000000000000001& E145
1940    convertToDouble -548357443505E32
1941} 0xc903abde2775e9b5
1942test expr-28.175 {input floating-point conversion} {ieeeFloatingPoint} {
1943    # Ad2b d UN +384865004907 E-285 x 1aa65b58639e69_00000000000000000000000000000000000000000000001& E-909
1944    convertToDouble +384865004907E-285
1945} 0x072aa65b58639e69
1946test expr-28.176 {input floating-point conversion} {ieeeFloatingPoint} {
1947    # Ad2b d UN -769730009814 E-285 x -1aa65b58639e69_00000000000000000000000000000000000000000000001& E-908
1948    convertToDouble -769730009814E-285
1949} 0x873aa65b58639e69
1950test expr-28.177 {input floating-point conversion} {ieeeFloatingPoint} {
1951    # Ad2b d UN +697015418417 E-93 x 152847dad80453_0000000000000000000000000000000000000000000001& E-270
1952    convertToDouble +697015418417E-93
1953} 0x2f152847dad80453
1954test expr-28.178 {input floating-point conversion} {ieeeFloatingPoint} {
1955    # Ad2b d UN -915654049301 E-28 x -1a645598d05989_0000000000000000000000000000000000000000000001& E-54
1956    convertToDouble -915654049301E-28
1957} 0xbc9a645598d05989
1958test expr-28.179 {input floating-point conversion} {ieeeFloatingPoint} {
1959    # Ad2b d UN +178548656339 E169 x 1b89d67c5b6d24_111111111111111111111111111111111111111111110& E598
1960    convertToDouble +178548656339E169
1961} 0x655b89d67c5b6d25
1962test expr-28.180 {input floating-point conversion} {ieeeFloatingPoint} {
1963    # Ad2b d UN -742522891517 E259 x -1c1c352fc3c308_11111111111111111111111111111111111111111111110& E899
1964    convertToDouble -742522891517E259
1965} 0xf82c1c352fc3c309
1966test expr-28.181 {input floating-point conversion} {ieeeFloatingPoint} {
1967    # Ad2b d UN +742522891517 E258 x 167cf7596968d3_11111111111111111111111111111111111111111111110& E896
1968    convertToDouble +742522891517E258
1969} 0x77f67cf7596968d4
1970test expr-28.182 {input floating-point conversion} {ieeeFloatingPoint} {
1971    # Ad2b d UN -357097312678 E169 x -1b89d67c5b6d24_111111111111111111111111111111111111111111110& E599
1972    convertToDouble -357097312678E169
1973} 0xe56b89d67c5b6d25
1974test expr-28.183 {input floating-point conversion} {ieeeFloatingPoint} {
1975    # Ad2b d UN -3113521449172 E218 x -19ab8261990292_0000000000000000000000000000000000000000000000000001& E765
1976    convertToDouble -3113521449172E218
1977} 0xefc9ab8261990292
1978test expr-28.184 {input floating-point conversion} {ieeeFloatingPoint} {
1979    # Ad2b d UN +3891901811465 E217 x 19ab8261990292_0000000000000000000000000000000000000000000000000001& E762
1980    convertToDouble +3891901811465E217
1981} 0x6f99ab8261990292
1982test expr-28.185 {input floating-point conversion} {ieeeFloatingPoint} {
1983    # Ad2b d UN -1556760724586 E218 x -19ab8261990292_0000000000000000000000000000000000000000000000000001& E764
1984    convertToDouble -1556760724586E218
1985} 0xefb9ab8261990292
1986test expr-28.186 {input floating-point conversion} {ieeeFloatingPoint} {
1987    # Ad2b d UN +9997878507563 E-195 x 153db2fea1ea31_0000000000000000000000000000000000000000000000001& E-605
1988    convertToDouble +9997878507563E-195
1989} 0x1a253db2fea1ea31
1990test expr-28.187 {input floating-point conversion} {ieeeFloatingPoint} {
1991    # Ad2b d UN -7247563029154 E-319 x -10493f056e9ef3_0000000000000000000000000000000000000000000000001& E-1017
1992    convertToDouble -7247563029154E-319
1993} 0x8060493f056e9ef3
1994test expr-28.188 {input floating-point conversion} {ieeeFloatingPoint} {
1995    # Ad2b d UN +3623781514577 E-319 x 10493f056e9ef3_0000000000000000000000000000000000000000000000001& E-1018
1996    convertToDouble +3623781514577E-319
1997} 0x0050493f056e9ef3
1998test expr-28.189 {input floating-point conversion} {ieeeFloatingPoint} {
1999    # Ad2b d UN -3092446298323 E-200 x -113918353bbc47_0000000000000000000000000000000000000000000000001& E-623
2000    convertToDouble -3092446298323E-200
2001} 0x99013918353bbc47
2002test expr-28.190 {input floating-point conversion} {ieeeFloatingPoint} {
2003    # Ad2b d UN +6363857920591 E145 x 128a61cf9483b6_1111111111111111111111111111111111111111111111111110& E524
2004    convertToDouble +6363857920591E145
2005} 0x60b28a61cf9483b7
2006test expr-28.191 {input floating-point conversion} {ieeeFloatingPoint} {
2007    # Ad2b d UN -8233559360849 E94 x -11f324d11d4861_1111111111111111111111111111111111111111111111110& E355
2008    convertToDouble -8233559360849E94
2009} 0xd621f324d11d4862
2010test expr-28.192 {input floating-point conversion} {ieeeFloatingPoint} {
2011    # Ad2b d UN +2689845954547 E49 x 10bd2bfd34f98a_1111111111111111111111111111111111111111111111110& E204
2012    convertToDouble +2689845954547E49
2013} 0x4cb0bd2bfd34f98b
2014test expr-28.193 {input floating-point conversion} {ieeeFloatingPoint} {
2015    # Ad2b d UN -5379691909094 E49 x -10bd2bfd34f98a_1111111111111111111111111111111111111111111111110& E205
2016    convertToDouble -5379691909094E49
2017} 0xccc0bd2bfd34f98b
2018test expr-28.194 {input floating-point conversion} {ieeeFloatingPoint} {
2019    # Ad2b d UN +5560322501926 E-301 x 15acc2053064c1_11111111111111111111111111111111111111111111111110& E-958
2020    convertToDouble +5560322501926E-301
2021} 0x0415acc2053064c2
2022test expr-28.195 {input floating-point conversion} {ieeeFloatingPoint} {
2023    # Ad2b d UN -7812878489261 E-179 x -126dae7bbeda74_11111111111111111111111111111111111111111111111111110& E-552
2024    convertToDouble -7812878489261E-179
2025} 0x9d726dae7bbeda75
2026test expr-28.196 {input floating-point conversion} {ieeeFloatingPoint} {
2027    # Ad2b d UN +8439398533053 E-256 x 170cc285f2d209_1111111111111111111111111111111111111111111111110& E-808
2028    convertToDouble +8439398533053E-256
2029} 0x0d770cc285f2d20a
2030test expr-28.197 {input floating-point conversion} {ieeeFloatingPoint} {
2031    # Ad2b d UN -2780161250963 E-301 x -15acc2053064c1_11111111111111111111111111111111111111111111111110& E-959
2032    convertToDouble -2780161250963E-301
2033} 0x8405acc2053064c2
2034test expr-28.198 {input floating-point conversion} {ieeeFloatingPoint} {
2035    # Ad2b d UN -87605699161665 E155 x -12920f96e7f9ef_00000000000000000000000000000000000000000000000000001& E561
2036    convertToDouble -87605699161665E155
2037} 0xe302920f96e7f9ef
2038test expr-28.199 {input floating-point conversion} {ieeeFloatingPoint} {
2039    # Ad2b d UN -17521139832333 E156 x -12920f96e7f9ef_00000000000000000000000000000000000000000000000000001& E562
2040    convertToDouble -17521139832333E156
2041} 0xe312920f96e7f9ef
2042test expr-28.200 {input floating-point conversion} {ieeeFloatingPoint} {
2043    # Ad2b d UN -88218101363513 E-170 x -18395688592faf_0000000000000000000000000000000000000000000000000001& E-519
2044    convertToDouble -88218101363513E-170
2045} 0x9f88395688592faf
2046test expr-28.201 {input floating-point conversion} {ieeeFloatingPoint} {
2047    # Ad2b d UN +38639244311627 E-115 x 114ef3e205c817_0000000000000000000000000000000000000000000000000001& E-337
2048    convertToDouble +38639244311627E-115
2049} 0x2ae14ef3e205c817
2050test expr-28.202 {input floating-point conversion} {ieeeFloatingPoint} {
2051    # Ad2b d UN +35593959807306 E261 x 1072f3819c1320_11111111111111111111111111111111111111111111111111110& E912
2052    convertToDouble +35593959807306E261
2053} 0x78f072f3819c1321
2054test expr-28.203 {input floating-point conversion} {ieeeFloatingPoint} {
2055    # Ad2b d UN -53390939710959 E260 x -13bd243521b08d_11111111111111111111111111111111111111111111111111110& E909
2056    convertToDouble -53390939710959E260
2057} 0xf8c3bd243521b08e
2058test expr-28.204 {input floating-point conversion} {ieeeFloatingPoint} {
2059    # Ad2b d UN +71187919614612 E261 x 1072f3819c1320_11111111111111111111111111111111111111111111111111110& E913
2060    convertToDouble +71187919614612E261
2061} 0x790072f3819c1321
2062test expr-28.205 {input floating-point conversion} {ieeeFloatingPoint} {
2063    # Ad2b d UN -88984899518265 E260 x -1072f3819c1320_11111111111111111111111111111111111111111111111111110& E910
2064    convertToDouble -88984899518265E260
2065} 0xf8d072f3819c1321
2066test expr-28.206 {input floating-point conversion} {ieeeFloatingPoint} {
2067    # Ad2b d UN +77003665618895 E-73 x 18bf7e7fa6f029_111111111111111111111111111111111111111111111111111111110& E-197
2068    convertToDouble +77003665618895E-73
2069} 0x33a8bf7e7fa6f02a
2070test expr-28.207 {input floating-point conversion} {ieeeFloatingPoint} {
2071    # Ad2b d UN -15400733123779 E-72 x -18bf7e7fa6f029_111111111111111111111111111111111111111111111111111111110& E-196
2072    convertToDouble -15400733123779E-72
2073} 0xb3b8bf7e7fa6f02a
2074test expr-28.208 {input floating-point conversion} {ieeeFloatingPoint} {
2075    # Ad2b d UN +61602932495116 E-72 x 18bf7e7fa6f029_111111111111111111111111111111111111111111111111111111110& E-194
2076    convertToDouble +61602932495116E-72
2077} 0x33d8bf7e7fa6f02a
2078test expr-28.209 {input floating-point conversion} {ieeeFloatingPoint} {
2079    # Ad2b d UN -30801466247558 E-72 x -18bf7e7fa6f029_111111111111111111111111111111111111111111111111111111110& E-195
2080    convertToDouble -30801466247558E-72
2081} 0xb3c8bf7e7fa6f02a
2082test expr-28.210 {input floating-point conversion} {ieeeFloatingPoint} {
2083    # Ad2b d UN +834735494917063 E-300 x 1fc6c26f899dd1_0000000000000000000000000000000000000000000000000000000001& E-948
2084    convertToDouble +834735494917063E-300
2085} 0x04bfc6c26f899dd1
2086test expr-28.211 {input floating-point conversion} {ieeeFloatingPoint} {
2087    # Ad2b d UN -589795149206434 E-151 x -15f2df5e675a0f_0000000000000000000000000000000000000000000000000000000001& E-453
2088    convertToDouble -589795149206434E-151
2089} 0xa3a5f2df5e675a0f
2090test expr-28.212 {input floating-point conversion} {ieeeFloatingPoint} {
2091    # Ad2b d UN +475603213226859 E-42 x 12d73088f4050a_000000000000000000000000000000000000000000000000000000001& E-91
2092    convertToDouble +475603213226859E-42
2093} 0x3a42d73088f4050a
2094test expr-28.213 {input floating-point conversion} {ieeeFloatingPoint} {
2095    # Ad2b d UN -294897574603217 E-151 x -15f2df5e675a0f_0000000000000000000000000000000000000000000000000000000001& E-454
2096    convertToDouble -294897574603217E-151
2097} 0xa395f2df5e675a0f
2098test expr-28.214 {input floating-point conversion} {ieeeFloatingPoint} {
2099    # Ad2b d UN +850813008001913 E93 x 172f7a1831ad70_11111111111111111111111111111111111111111111111111111110& E358
2100    convertToDouble +850813008001913E93
2101} 0x56572f7a1831ad71
2102test expr-28.215 {input floating-point conversion} {ieeeFloatingPoint} {
2103    # Ad2b d UN -203449172043339 E185 x -1102b47e4af987_11111111111111111111111111111111111111111111111111111110& E662
2104    convertToDouble -203449172043339E185
2105} 0xe95102b47e4af988
2106test expr-28.216 {input floating-point conversion} {ieeeFloatingPoint} {
2107    # Ad2b d UN +406898344086678 E185 x 1102b47e4af987_11111111111111111111111111111111111111111111111111111110& E663
2108    convertToDouble +406898344086678E185
2109} 0x696102b47e4af988
2110test expr-28.217 {input floating-point conversion} {ieeeFloatingPoint} {
2111    # Ad2b d UN -813796688173356 E185 x -1102b47e4af987_11111111111111111111111111111111111111111111111111111110& E664
2112    convertToDouble -813796688173356E185
2113} 0xe97102b47e4af988
2114test expr-28.218 {input floating-point conversion} {ieeeFloatingPoint} {
2115    # Ad2b d UN +6045338514609393 E244 x 1f746182e6cd5d_00000000000000000000000000000000000000000000000000000000001& E862
2116    convertToDouble +6045338514609393E244
2117} 0x75df746182e6cd5d
2118test expr-28.219 {input floating-point conversion} {ieeeFloatingPoint} {
2119    # Ad2b d UN -5145963778954906 E142 x -1dfc11fbf46087_00000000000000000000000000000000000000000000000000000000001& E523
2120    convertToDouble -5145963778954906E142
2121} 0xe0adfc11fbf46087
2122test expr-28.220 {input floating-point conversion} {ieeeFloatingPoint} {
2123    # Ad2b d UN +2572981889477453 E142 x 1dfc11fbf46087_00000000000000000000000000000000000000000000000000000000001& E522
2124    convertToDouble +2572981889477453E142
2125} 0x609dfc11fbf46087
2126test expr-28.221 {input floating-point conversion} {ieeeFloatingPoint} {
2127    # Ad2b d UN -6965949469487146 E74 x -15e2c10ad970b0_0000000000000000000000000000000000000000000000000000000001& E298
2128    convertToDouble -6965949469487146E74
2129} 0xd295e2c10ad970b0
2130test expr-28.222 {input floating-point conversion} {ieeeFloatingPoint} {
2131    # Ad2b d UN +6182410494241627 E-119 x 11b96458445d07_0000000000000000000000000000000000000000000000000000000000001& E-343
2132    convertToDouble +6182410494241627E-119
2133} 0x2a81b96458445d07
2134test expr-28.223 {input floating-point conversion} {ieeeFloatingPoint} {
2135    # Ad2b d UN -8510309498186985 E-277 x -1acc46749dccfe_000000000000000000000000000000000000000000000000000000000001& E-868
2136    convertToDouble -8510309498186985E-277
2137} 0x89bacc46749dccfe
2138test expr-28.224 {input floating-point conversion} {ieeeFloatingPoint} {
2139    # Ad2b d UN +6647704637273331 E-212 x 13e07d2c0cb1e9_0000000000000000000000000000000000000000000000000000000000001& E-652
2140    convertToDouble +6647704637273331E-212
2141} 0x1733e07d2c0cb1e9
2142test expr-28.225 {input floating-point conversion} {ieeeFloatingPoint} {
2143    # Ad2b d UN -2215901545757777 E-212 x -1a80a6e566428c_000000000000000000000000000000000000000000000000000000000001& E-654
2144    convertToDouble -2215901545757777E-212
2145} 0x971a80a6e566428c
2146test expr-28.226 {input floating-point conversion} {ieeeFloatingPoint} {
2147    # Ad2b d UN +3771476185376383 E276 x 183010aba78a53_111111111111111111111111111111111111111111111111111111111110& E968
2148    convertToDouble +3771476185376383E276
2149} 0x7c783010aba78a54
2150test expr-28.227 {input floating-point conversion} {ieeeFloatingPoint} {
2151    # Ad2b d UN -3729901848043846 E212 x -1f7d6721f7f143_111111111111111111111111111111111111111111111111111111111110& E755
2152    convertToDouble -3729901848043846E212
2153} 0xef2f7d6721f7f144
2154test expr-28.228 {input floating-point conversion} {ieeeFloatingPoint} {
2155    # Ad2b d UN +3771476185376383 E277 x 1e3c14d6916ce8_111111111111111111111111111111111111111111111111111111111110& E971
2156    convertToDouble +3771476185376383E277
2157} 0x7cae3c14d6916ce9
2158test expr-28.229 {input floating-point conversion} {ieeeFloatingPoint} {
2159    # Ad2b d UN -9977830465649166 E119 x -15f6de9d5d6b5a_111111111111111111111111111111111111111111111111111111111110& E448
2160    convertToDouble -9977830465649166E119
2161} 0xdbf5f6de9d5d6b5b
2162test expr-28.230 {input floating-point conversion} {ieeeFloatingPoint} {
2163    # Ad2b d UN +8439928496349319 E-142 x 12483a0f125699_111111111111111111111111111111111111111111111111111111111110& E-419
2164    convertToDouble +8439928496349319E-142
2165} 0x25c2483a0f12569a
2166test expr-28.231 {input floating-point conversion} {ieeeFloatingPoint} {
2167    # Ad2b d UN -8204230082070882 E-59 x -1d460f4fca1d36_1111111111111111111111111111111111111111111111111111111110& E-144
2168    convertToDouble -8204230082070882E-59
2169} 0xb6fd460f4fca1d37
2170test expr-28.232 {input floating-point conversion} {ieeeFloatingPoint} {
2171    # Ad2b d UN +8853686434843997 E-244 x 157a340eb5d4f0_11111111111111111111111111111111111111111111111111111111110& E-758
2172    convertToDouble +8853686434843997E-244
2173} 0x10957a340eb5d4f1
2174test expr-28.233 {input floating-point conversion} {ieeeFloatingPoint} {
2175    # Ad2b d UN -5553274272288559 E-104 x -1c47d20a19d1ed_1111111111111111111111111111111111111111111111111111111110& E-294
2176    convertToDouble -5553274272288559E-104
2177} 0xad9c47d20a19d1ee
2178test expr-28.234 {input floating-point conversion} {ieeeFloatingPoint} {
2179    # Ad2b d UN +36149023611096162 E144 x 1491daad0ba280_0000000000000000000000000000000000000000000000000000000000000001& E533
2180    convertToDouble +36149023611096162E144
2181} 0x614491daad0ba280
2182test expr-28.235 {input floating-point conversion} {ieeeFloatingPoint} {
2183    # Ad2b d UN -36149023611096162 E147 x -14166f8cfd5cb1_0000000000000000000000000000000000000000000000000000000000000001& E543
2184    convertToDouble -36149023611096162E147
2185} 0xe1e4166f8cfd5cb1
2186test expr-28.236 {input floating-point conversion} {ieeeFloatingPoint} {
2187    # Ad2b d UN +18074511805548081 E146 x 1011f2d73116f4_0000000000000000000000000000000000000000000000000000000000000001& E539
2188    convertToDouble +18074511805548081E146
2189} 0x61a011f2d73116f4
2190test expr-28.237 {input floating-point conversion} {ieeeFloatingPoint} {
2191    # Ad2b d UN -18074511805548081 E147 x -14166f8cfd5cb1_0000000000000000000000000000000000000000000000000000000000000001& E542
2192    convertToDouble -18074511805548081E147
2193} 0xe1d4166f8cfd5cb1
2194test expr-28.238 {input floating-point conversion} {ieeeFloatingPoint} {
2195    # Ad2b d UN +97338774138954421 E-290 x 10d9b828199006_0000000000000000000000000000000000000000000000000000000000000001& E-907
2196    convertToDouble +97338774138954421E-290
2197} 0x0740d9b828199006
2198test expr-28.239 {input floating-point conversion} {ieeeFloatingPoint} {
2199    # Ad2b d UN -88133809804950961 E-308 x -119710dc581911_000000000000000000000000000000000000000000000000000000000000001& E-967
2200    convertToDouble -88133809804950961E-308
2201} 0x83819710dc581911
2202test expr-28.240 {input floating-point conversion} {ieeeFloatingPoint} {
2203    # Ad2b d UN +94080055902682397 E-243 x 11d467e94b856e_0000000000000000000000000000000000000000000000000000000000000001& E-751
2204    convertToDouble +94080055902682397E-243
2205} 0x1101d467e94b856e
2206test expr-28.241 {input floating-point conversion} {ieeeFloatingPoint} {
2207    # Ad2b d UN -24691002732654881 E-115 x -159a2783ce70ab_000000000000000000000000000000000000000000000000000000000000001& E-328
2208    convertToDouble -24691002732654881E-115
2209} 0xab759a2783ce70ab
2210test expr-28.242 {input floating-point conversion} {ieeeFloatingPoint} {
2211    # Ad2b d UN +52306490527514614 E49 x 13de005bd620de_111111111111111111111111111111111111111111111111111111111111111110& E218
2212    convertToDouble +52306490527514614E49
2213} 0x4d93de005bd620df
2214test expr-28.243 {input floating-point conversion} {ieeeFloatingPoint} {
2215    # Ad2b d UN -26153245263757307 E49 x -13de005bd620de_111111111111111111111111111111111111111111111111111111111111111110& E217
2216    convertToDouble -26153245263757307E49
2217} 0xcd83de005bd620df
2218test expr-28.244 {input floating-point conversion} {ieeeFloatingPoint} {
2219    # Ad2b d UN +55188692254193604 E165 x 1a999ddec72ac9_11111111111111111111111111111111111111111111111111111111111110& E603
2220    convertToDouble +55188692254193604E165
2221} 0x65aa999ddec72aca
2222test expr-28.245 {input floating-point conversion} {ieeeFloatingPoint} {
2223    # Ad2b d UN -68985865317742005 E164 x -1a999ddec72ac9_11111111111111111111111111111111111111111111111111111111111110& E600
2224    convertToDouble -68985865317742005E164
2225} 0xe57a999ddec72aca
2226test expr-28.246 {input floating-point conversion} {ieeeFloatingPoint} {
2227    # Ad2b d UN +27176258005319167 E-261 x 17c0747bd76fa0_11111111111111111111111111111111111111111111111111111111111111110& E-813
2228    convertToDouble +27176258005319167E-261
2229} 0x0d27c0747bd76fa1
2230test expr-28.247 {input floating-point conversion} {ieeeFloatingPoint} {
2231    # Ad2b d UN -73169230107256116 E-248 x -122cea327fa99c_1111111111111111111111111111111111111111111111111111111111110& E-768
2232    convertToDouble -73169230107256116E-248
2233} 0x8ff22cea327fa99d
2234test expr-28.248 {input floating-point conversion} {ieeeFloatingPoint} {
2235    # Ad2b d UN +91461537634070145 E-249 x 122cea327fa99c_1111111111111111111111111111111111111111111111111111111111110& E-771
2236    convertToDouble +91461537634070145E-249
2237} 0x0fc22cea327fa99d
2238test expr-28.249 {input floating-point conversion} {ieeeFloatingPoint} {
2239    # Ad2b d UN -54352516010638334 E-261 x -17c0747bd76fa0_11111111111111111111111111111111111111111111111111111111111111110& E-812
2240    convertToDouble -54352516010638334E-261
2241} 0x8d37c0747bd76fa1
2242test expr-28.250 {input floating-point conversion} {ieeeFloatingPoint} {
2243    # Ad2b d UN +586144289638535878 E280 x 11eccbd6f62709_0000000000000000000000000000000000000000000000000000000000000000001& E989
2244    convertToDouble +586144289638535878E280
2245} 0x7dc1eccbd6f62709
2246test expr-28.251 {input floating-point conversion} {ieeeFloatingPoint} {
2247    # Ad2b d UN -601117006785295431 E245 x -1e8b3525b3737e_000000000000000000000000000000000000000000000000000000000000000001& E872
2248    convertToDouble -601117006785295431E245
2249} 0xf67e8b3525b3737e
2250test expr-28.252 {input floating-point conversion} {ieeeFloatingPoint} {
2251    # Ad2b d UN +293072144819267939 E280 x 11eccbd6f62709_0000000000000000000000000000000000000000000000000000000000000000001& E988
2252    convertToDouble +293072144819267939E280
2253} 0x7db1eccbd6f62709
2254test expr-28.253 {input floating-point conversion} {ieeeFloatingPoint} {
2255    # Ad2b d UN -953184713238516652 E272 x -138fd93f1f5342_00000000000000000000000000000000000000000000000000000000000000001& E963
2256    convertToDouble -953184713238516652E272
2257} 0xfc238fd93f1f5342
2258test expr-28.254 {input floating-point conversion} {ieeeFloatingPoint} {
2259    # Ad2b d UN +902042358290366539 E-281 x 122dc01ca1cb8c_0000000000000000000000000000000000000000000000000000000000000000001& E-874
2260    convertToDouble +902042358290366539E-281
2261} 0x09522dc01ca1cb8c
2262test expr-28.255 {input floating-point conversion} {ieeeFloatingPoint} {
2263    # Ad2b d UN -557035730189854663 E-294 x -13bfac6bc4767b_00000000000000000000000000000000000000000000000000000000000000000001& E-918
2264    convertToDouble -557035730189854663E-294
2265} 0x8693bfac6bc4767b
2266test expr-28.256 {input floating-point conversion} {ieeeFloatingPoint} {
2267    # Ad2b d UN +902042358290366539 E-280 x 16b93023ca3e6f_0000000000000000000000000000000000000000000000000000000000000000001& E-871
2268    convertToDouble +902042358290366539E-280
2269} 0x0986b93023ca3e6f
2270test expr-28.257 {input floating-point conversion} {ieeeFloatingPoint} {
2271    # Ad2b d UN -354944100507554393 E-238 x -19a91cece6ad07_000000000000000000000000000000000000000000000000000000000000000001& E-733
2272    convertToDouble -354944100507554393E-238
2273} 0x9229a91cece6ad07
2274test expr-28.258 {input floating-point conversion} {ieeeFloatingPoint} {
2275    # Ad2b d UN +272104041512242479 E199 x 1f92bacb3cb40b_11111111111111111111111111111111111111111111111111111111111111111111110& E718
2276    convertToDouble +272104041512242479E199
2277} 0x6cdf92bacb3cb40c
2278test expr-28.259 {input floating-point conversion} {ieeeFloatingPoint} {
2279    # Ad2b d UN -816312124536727437 E199 x -17ae0c186d8708_11111111111111111111111111111111111111111111111111111111111111111111110& E720
2280    convertToDouble -816312124536727437E199
2281} 0xecf7ae0c186d8709
2282test expr-28.260 {input floating-point conversion} {ieeeFloatingPoint} {
2283    # Ad2b d UN +544208083024484958 E199 x 1f92bacb3cb40b_11111111111111111111111111111111111111111111111111111111111111111111110& E719
2284    convertToDouble +544208083024484958E199
2285} 0x6cef92bacb3cb40c
2286test expr-28.261 {input floating-point conversion} {ieeeFloatingPoint} {
2287    # Ad2b d UN -792644927852378159 E78 x -17bff336d8ff05_111111111111111111111111111111111111111111111111111111111111111111110& E318
2288    convertToDouble -792644927852378159E78
2289} 0xd3d7bff336d8ff06
2290test expr-28.262 {input floating-point conversion} {ieeeFloatingPoint} {
2291    # Ad2b d UN -679406450132979175 E-263 x -17c0747bd76fa0_11111111111111111111111111111111111111111111111111111111111111110& E-815
2292    convertToDouble -679406450132979175E-263
2293} 0x8d07c0747bd76fa1
2294test expr-28.263 {input floating-point conversion} {ieeeFloatingPoint} {
2295    # Ad2b d UN +543525160106383340 E-262 x 17c0747bd76fa0_11111111111111111111111111111111111111111111111111111111111111110& E-812
2296    convertToDouble +543525160106383340E-262
2297} 0x0d37c0747bd76fa1
2298test expr-28.264 {input floating-point conversion} {ieeeFloatingPoint} {
2299    # Ad2b d UN +7400253695682920196 E215 x 1dca94e3990085_00000000000000000000000000000000000000000000000000000000000000000000001& E776
2300    convertToDouble +7400253695682920196E215
2301} 0x707dca94e3990085
2302test expr-28.265 {input floating-point conversion} {ieeeFloatingPoint} {
2303    # Ad2b d UN -1850063423920730049 E215 x -1dca94e3990085_00000000000000000000000000000000000000000000000000000000000000000000001& E774
2304    convertToDouble -1850063423920730049E215
2305} 0xf05dca94e3990085
2306test expr-28.266 {input floating-point conversion} {ieeeFloatingPoint} {
2307    # Ad2b d UN +3700126847841460098 E215 x 1dca94e3990085_00000000000000000000000000000000000000000000000000000000000000000000001& E775
2308    convertToDouble +3700126847841460098E215
2309} 0x706dca94e3990085
2310test expr-28.267 {input floating-point conversion} {ieeeFloatingPoint} {
2311    # Ad2b d UN -9250317119603650245 E214 x -1dca94e3990085_00000000000000000000000000000000000000000000000000000000000000000000001& E773
2312    convertToDouble -9250317119603650245E214
2313} 0xf04dca94e3990085
2314test expr-28.268 {input floating-point conversion} {ieeeFloatingPoint} {
2315    # Ad2b d UN +8396094300569779681 E-252 x 1ab223efcee35a_0000000000000000000000000000000000000000000000000000000000000000000000001& E-775
2316    convertToDouble +8396094300569779681E-252
2317} 0x0f8ab223efcee35a
2318test expr-28.269 {input floating-point conversion} {ieeeFloatingPoint} {
2319    # Ad2b d UN -3507665085003296281 E-75 x -160499b881ea50_00000000000000000000000000000000000000000000000000000000000000000000001& E-188
2320    convertToDouble -3507665085003296281E-75
2321} 0xb4360499b881ea50
2322test expr-28.270 {input floating-point conversion} {ieeeFloatingPoint} {
2323    # Ad2b d UN +7015330170006592562 E-75 x 160499b881ea50_00000000000000000000000000000000000000000000000000000000000000000000001& E-187
2324    convertToDouble +7015330170006592562E-75
2325} 0x34460499b881ea50
2326test expr-28.271 {input floating-point conversion} {ieeeFloatingPoint} {
2327    # Ad2b d UN -7015330170006592562 E-74 x -1b85c026a264e4_00000000000000000000000000000000000000000000000000000000000000000000001& E-184
2328    convertToDouble -7015330170006592562E-74
2329} 0xb47b85c026a264e4
2330test expr-28.272 {input floating-point conversion} {ieeeFloatingPoint} {
2331    # Ad2b d UN +7185620434951919351 E205 x 18d92d2bcc7a80_1111111111111111111111111111111111111111111111111111111111111111111111110& E743
2332    convertToDouble +7185620434951919351E205
2333} 0x6e68d92d2bcc7a81
2334test expr-28.273 {input floating-point conversion} {ieeeFloatingPoint} {
2335    # Ad2b d UN -1360520207561212395 E198 x -1f92bacb3cb40b_11111111111111111111111111111111111111111111111111111111111111111111110& E717
2336    convertToDouble -1360520207561212395E198
2337} 0xeccf92bacb3cb40c
2338test expr-28.274 {input floating-point conversion} {ieeeFloatingPoint} {
2339    # Ad2b d UN +2178999185345151731 E-184 x 19b2c4d2a82335_1111111111111111111111111111111111111111111111111111111111111111111110& E-551
2340    convertToDouble +2178999185345151731E-184
2341} 0x1d89b2c4d2a82336
2342test expr-28.275 {input floating-point conversion} {ieeeFloatingPoint} {
2343    # Ad2b d UN -8691089486201567102 E-218 x -1a9c42e5b6d89e_1111111111111111111111111111111111111111111111111111111111111111111110& E-662
2344    convertToDouble -8691089486201567102E-218
2345} 0x969a9c42e5b6d89f
2346test expr-28.276 {input floating-point conversion} {ieeeFloatingPoint} {
2347    # Ad2b d UN +4345544743100783551 E-218 x 1a9c42e5b6d89e_1111111111111111111111111111111111111111111111111111111111111111111110& E-663
2348    convertToDouble +4345544743100783551E-218
2349} 0x168a9c42e5b6d89f
2350test expr-28.277 {input floating-point conversion} {ieeeFloatingPoint} {
2351    # Ad2b d UN -4357998370690303462 E-184 x -19b2c4d2a82335_1111111111111111111111111111111111111111111111111111111111111111111110& E-550
2352    convertToDouble -4357998370690303462E-184
2353} 0x9d99b2c4d2a82336
2354test expr-28.278 {input floating-point conversion} {ieeeFloatingPoint} {
2355    # Ad2b d UN +59825267349106892461 E177 x 199c476d7868df_000000000000000000000000000000000000000000000000000000000000000000000001& E653
2356    convertToDouble +59825267349106892461E177
2357} 0x68c99c476d7868df
2358test expr-28.279 {input floating-point conversion} {ieeeFloatingPoint} {
2359    # Ad2b d UN -62259110684423957791 E47 x -1d8f2cfc20d6e8_0000000000000000000000000000000000000000000000000000000000000000000000001& E221
2360    convertToDouble -62259110684423957791E47
2361} 0xcdcd8f2cfc20d6e8
2362test expr-28.280 {input floating-point conversion} {ieeeFloatingPoint} {
2363    # Ad2b d UN +58380168477038565599 E265 x 1f686e9efbe48d_00000000000000000000000000000000000000000000000000000000000000000000000001& E945
2364    convertToDouble +58380168477038565599E265
2365} 0x7b0f686e9efbe48d
2366test expr-28.281 {input floating-point conversion} {ieeeFloatingPoint} {
2367    # Ad2b d UN -62259110684423957791 E48 x -12797c1d948651_0000000000000000000000000000000000000000000000000000000000000000000000001& E225
2368    convertToDouble -62259110684423957791E48
2369} 0xce02797c1d948651
2370test expr-28.282 {input floating-point conversion} {ieeeFloatingPoint} {
2371    # Ad2b d UN -33584377202279118724 E-252 x -1ab223efcee35a_0000000000000000000000000000000000000000000000000000000000000000000000001& E-773
2372    convertToDouble -33584377202279118724E-252
2373} 0x8faab223efcee35a
2374test expr-28.283 {input floating-point conversion} {ieeeFloatingPoint} {
2375    # Ad2b d UN -57484963479615354808 E205 x -18d92d2bcc7a80_1111111111111111111111111111111111111111111111111111111111111111111111110& E746
2376    convertToDouble -57484963479615354808E205
2377} 0xee98d92d2bcc7a81
2378test expr-28.284 {input floating-point conversion} {ieeeFloatingPoint} {
2379    # Ad2b d UN +71856204349519193510 E204 x 18d92d2bcc7a80_1111111111111111111111111111111111111111111111111111111111111111111111110& E743
2380    convertToDouble +71856204349519193510E204
2381} 0x6e68d92d2bcc7a81
2382test expr-28.285 {input floating-point conversion} {ieeeFloatingPoint} {
2383    # Ad2b d UN -14371240869903838702 E205 x -18d92d2bcc7a80_1111111111111111111111111111111111111111111111111111111111111111111111110& E744
2384    convertToDouble -14371240869903838702E205
2385} 0xee78d92d2bcc7a81
2386test expr-28.286 {input floating-point conversion} {ieeeFloatingPoint} {
2387    # Ad2b d UN +36992084760177624177 E-318 x 18c5f9551c2f99_111111111111111111111111111111111111111111111111111111111111111111111110& E-992
2388    convertToDouble +36992084760177624177E-318
2389} 0x01f8c5f9551c2f9a
2390test expr-28.287 {input floating-point conversion} {ieeeFloatingPoint} {
2391    # Ad2b d UN -73984169520355248354 E-318 x -18c5f9551c2f99_111111111111111111111111111111111111111111111111111111111111111111111110& E-991
2392    convertToDouble -73984169520355248354E-318
2393} 0x8208c5f9551c2f9a
2394test expr-28.288 {input floating-point conversion} {ieeeFloatingPoint} {
2395    # Ad2b d UN +99257763227713890244 E-115 x 15338a554b9ce0_11111111111111111111111111111111111111111111111111111111111111111111110& E-316
2396    convertToDouble +99257763227713890244E-115
2397} 0x2c35338a554b9ce1
2398test expr-28.289 {input floating-point conversion} {ieeeFloatingPoint} {
2399    # Ad2b d UN -87336362425182547697 E-280 x -1130304e7d9c32_11111111111111111111111111111111111111111111111111111111111111111111110& E-864
2400    convertToDouble -87336362425182547697E-280
2401} 0x89f130304e7d9c33
2402test expr-28.290 {input floating-point conversion} {ieeeFloatingPoint} {
2403    # Ad2b d UN +7 E289 x 1cbb547777a284_10000000001& E962
2404    convertToDouble +7E289
2405} 0x7c1cbb547777a285
2406test expr-28.291 {input floating-point conversion} {ieeeFloatingPoint} {
2407    # Ad2b d UN -3 E153 x -1ca3d8e6d80cba_100000001& E509
2408    convertToDouble -3E153
2409} 0xdfcca3d8e6d80cbb
2410test expr-28.292 {input floating-point conversion} {ieeeFloatingPoint} {
2411    # Ad2b d UN +6 E153 x 1ca3d8e6d80cba_100000001& E510
2412    convertToDouble +6E153
2413} 0x5fdca3d8e6d80cbb
2414test expr-28.293 {input floating-point conversion} {ieeeFloatingPoint} {
2415    # Ad2b d UN -5 E243 x -176ec98994f488_10000001& E809
2416    convertToDouble -5E243
2417} 0xf2876ec98994f489
2418test expr-28.294 {input floating-point conversion} {ieeeFloatingPoint} {
2419    # Ad2b d UN +7 E-161 x 1f7e0db3799aa2_10000000001& E-533
2420    convertToDouble +7E-161
2421} 0x1eaf7e0db3799aa3
2422test expr-28.295 {input floating-point conversion} {ieeeFloatingPoint} {
2423    # Ad2b d UN -7 E-172 x -15a4337446ef2a_1000000001& E-569
2424    convertToDouble -7E-172
2425} 0x9c65a4337446ef2b
2426test expr-28.296 {input floating-point conversion} {ieeeFloatingPoint} {
2427    # Ad2b d UN +8 E-63 x 1a53fc9631d10c_10000001& E-207
2428    convertToDouble +8E-63
2429} 0x330a53fc9631d10d
2430test expr-28.297 {input floating-point conversion} {ieeeFloatingPoint} {
2431    # Ad2b d UN -7 E-113 x -158c47e6eea282_10000001& E-373
2432    convertToDouble -7E-113
2433} 0xa8a58c47e6eea283
2434test expr-28.298 {input floating-point conversion} {ieeeFloatingPoint} {
2435    # Ad2b d UN +8 E126 x 17a2ecc414a03f_0111111111110& E421
2436    convertToDouble +8E126
2437} 0x5a47a2ecc414a03f
2438test expr-28.299 {input floating-point conversion} {ieeeFloatingPoint} {
2439    # Ad2b d UN -4 E126 x -17a2ecc414a03f_0111111111110& E420
2440    convertToDouble -4E126
2441} 0xda37a2ecc414a03f
2442test expr-28.300 {input floating-point conversion} {ieeeFloatingPoint} {
2443    # Ad2b d UN +5 E125 x 17a2ecc414a03f_0111111111110& E417
2444    convertToDouble +5E125
2445} 0x5a07a2ecc414a03f
2446test expr-28.301 {input floating-point conversion} {ieeeFloatingPoint} {
2447    # Ad2b d UN -1 E126 x -17a2ecc414a03f_0111111111110& E418
2448    convertToDouble -1E126
2449} 0xda17a2ecc414a03f
2450test expr-28.302 {input floating-point conversion} {ieeeFloatingPoint} {
2451    # Ad2b d UN +8 E-163 x 1708d0f84d3de7_011111110& E-539
2452    convertToDouble +8E-163
2453} 0x1e4708d0f84d3de7
2454test expr-28.303 {input floating-point conversion} {ieeeFloatingPoint} {
2455    # Ad2b d UN -1 E-163 x -1708d0f84d3de7_011111110& E-542
2456    convertToDouble -1E-163
2457} 0x9e1708d0f84d3de7
2458test expr-28.304 {input floating-point conversion} {ieeeFloatingPoint} {
2459    # Ad2b d UN +2 E-163 x 1708d0f84d3de7_011111110& E-541
2460    convertToDouble +2E-163
2461} 0x1e2708d0f84d3de7
2462test expr-28.305 {input floating-point conversion} {ieeeFloatingPoint} {
2463    # Ad2b d UN -4 E-163 x -1708d0f84d3de7_011111110& E-540
2464    convertToDouble -4E-163
2465} 0x9e3708d0f84d3de7
2466test expr-28.306 {input floating-point conversion} {ieeeFloatingPoint} {
2467    # Ad2b d UN +51 E195 x 15d51d249dca42_1000000000001& E653
2468    convertToDouble +51E195
2469} 0x68c5d51d249dca43
2470test expr-28.307 {input floating-point conversion} {ieeeFloatingPoint} {
2471    # Ad2b d UN -37 E46 x -1033d7eca0adee_100000000000001& E158
2472    convertToDouble -37E46
2473} 0xc9d033d7eca0adef
2474test expr-28.308 {input floating-point conversion} {ieeeFloatingPoint} {
2475    # Ad2b d UN +74 E46 x 1033d7eca0adee_100000000000001& E159
2476    convertToDouble +74E46
2477} 0x49e033d7eca0adef
2478test expr-28.309 {input floating-point conversion} {ieeeFloatingPoint} {
2479    # Ad2b d UN -56 E289 x -1cbb547777a284_10000000001& E965
2480    convertToDouble -56E289
2481} 0xfc4cbb547777a285
2482test expr-28.310 {input floating-point conversion} {ieeeFloatingPoint} {
2483    # Ad2b d UN +69 E-145 x 158a41b31c9a9a_100000000001& E-476
2484    convertToDouble +69E-145
2485} 0x22358a41b31c9a9b
2486test expr-28.311 {input floating-point conversion} {ieeeFloatingPoint} {
2487    # Ad2b d UN -70 E-162 x -1f7e0db3799aa2_10000000001& E-533
2488    convertToDouble -70E-162
2489} 0x9eaf7e0db3799aa3
2490test expr-28.312 {input floating-point conversion} {ieeeFloatingPoint} {
2491    # Ad2b d UN +56 E-161 x 1f7e0db3799aa2_10000000001& E-530
2492    convertToDouble +56E-161
2493} 0x1edf7e0db3799aa3
2494test expr-28.313 {input floating-point conversion} {ieeeFloatingPoint} {
2495    # Ad2b d UN -21 E-303 x -1ccd59caa6a750_10000000001& E-1003
2496    convertToDouble -21E-303
2497} 0x814ccd59caa6a751
2498test expr-28.314 {input floating-point conversion} {ieeeFloatingPoint} {
2499    # Ad2b d UN +34 E-276 x 12d5a4350d30ff_011111111110& E-912
2500    convertToDouble +34E-276
2501} 0x06f2d5a4350d30ff
2502test expr-28.315 {input floating-point conversion} {ieeeFloatingPoint} {
2503    # Ad2b d UN -68 E-276 x -12d5a4350d30ff_011111111110& E-911
2504    convertToDouble -68E-276
2505} 0x8702d5a4350d30ff
2506test expr-28.316 {input floating-point conversion} {ieeeFloatingPoint} {
2507    # Ad2b d UN +85 E-277 x 12d5a4350d30ff_011111111110& E-914
2508    convertToDouble +85E-277
2509} 0x06d2d5a4350d30ff
2510test expr-28.317 {input floating-point conversion} {ieeeFloatingPoint} {
2511    # Ad2b d UN -87 E-274 x -12d36cf48e7abd_011111111111110& E-904
2512    convertToDouble -87E-274
2513} 0x8772d36cf48e7abd
2514test expr-28.318 {input floating-point conversion} {ieeeFloatingPoint} {
2515    # Ad2b d UN +829 E102 x 17221a79cdd1d8_1000000000000001& E348
2516    convertToDouble +829E102
2517} 0x55b7221a79cdd1d9
2518test expr-28.319 {input floating-point conversion} {ieeeFloatingPoint} {
2519    # Ad2b d UN -623 E100 x -1640a62f3a83de_10000000000000000001& E341
2520    convertToDouble -623E100
2521} 0xd54640a62f3a83df
2522test expr-28.320 {input floating-point conversion} {ieeeFloatingPoint} {
2523    # Ad2b d UN +723 E-162 x 145457ee24abd2_1000000000000001& E-529
2524    convertToDouble +723E-162
2525} 0x1ee45457ee24abd3
2526test expr-28.321 {input floating-point conversion} {ieeeFloatingPoint} {
2527    # Ad2b d UN -457 E-102 x -1ffc81bc29f02a_100000000000000001& E-331
2528    convertToDouble -457E-102
2529} 0xab4ffc81bc29f02b
2530test expr-28.322 {input floating-point conversion} {ieeeFloatingPoint} {
2531    # Ad2b d UN +914 E-102 x 1ffc81bc29f02a_100000000000000001& E-330
2532    convertToDouble +914E-102
2533} 0x2b5ffc81bc29f02b
2534test expr-28.323 {input floating-point conversion} {ieeeFloatingPoint} {
2535    # Ad2b d UN -323 E-135 x -1d589ae4d70218_10000000000001& E-441
2536    convertToDouble -323E-135
2537} 0xa46d589ae4d70219
2538test expr-28.324 {input floating-point conversion} {ieeeFloatingPoint} {
2539    # Ad2b d UN +151 E176 x 1dcf7df8f573b7_0111111111111111110& E591
2540    convertToDouble +151E176
2541} 0x64edcf7df8f573b7
2542test expr-28.325 {input floating-point conversion} {ieeeFloatingPoint} {
2543    # Ad2b d UN -302 E176 x -1dcf7df8f573b7_0111111111111111110& E592
2544    convertToDouble -302E176
2545} 0xe4fdcf7df8f573b7
2546test expr-28.326 {input floating-point conversion} {ieeeFloatingPoint} {
2547    # Ad2b d UN +921 E90 x 1c420a45fd70ff_0111111111111110& E308
2548    convertToDouble +921E90
2549} 0x533c420a45fd70ff
2550test expr-28.327 {input floating-point conversion} {ieeeFloatingPoint} {
2551    # Ad2b d UN -604 E176 x -1dcf7df8f573b7_0111111111111111110& E593
2552    convertToDouble -604E176
2553} 0xe50dcf7df8f573b7
2554test expr-28.328 {input floating-point conversion} {ieeeFloatingPoint} {
2555    # Ad2b d UN +823 E-206 x 14a48933c208ad_0111111111111110& E-675
2556    convertToDouble +823E-206
2557} 0x15c4a48933c208ad
2558test expr-28.329 {input floating-point conversion} {ieeeFloatingPoint} {
2559    # Ad2b d UN -463 E-114 x -11d0c83f6378a5_011111111111110& E-370
2560    convertToDouble -463E-114
2561} 0xa8d1d0c83f6378a5
2562test expr-28.330 {input floating-point conversion} {ieeeFloatingPoint} {
2563    # Ad2b d UN +348 E-274 x 12d36cf48e7abd_011111111111110& E-902
2564    convertToDouble +348E-274
2565} 0x0792d36cf48e7abd
2566test expr-28.331 {input floating-point conversion} {ieeeFloatingPoint} {
2567    # Ad2b d UN +9968 E100 x 1640a62f3a83de_10000000000000000001& E345
2568    convertToDouble +9968E100
2569} 0x558640a62f3a83df
2570test expr-28.332 {input floating-point conversion} {ieeeFloatingPoint} {
2571    # Ad2b d UN -6230 E99 x -1640a62f3a83de_10000000000000000001& E341
2572    convertToDouble -6230E99
2573} 0xd54640a62f3a83df
2574test expr-28.333 {input floating-point conversion} {ieeeFloatingPoint} {
2575    # Ad2b d UN +1246 E100 x 1640a62f3a83de_10000000000000000001& E342
2576    convertToDouble +1246E100
2577} 0x555640a62f3a83df
2578test expr-28.334 {input floating-point conversion} {ieeeFloatingPoint} {
2579    # Ad2b d UN +6676 E-296 x 15519ac5142aaa_1000000000000000000001& E-971
2580    convertToDouble +6676E-296
2581} 0x0345519ac5142aab
2582test expr-28.335 {input floating-point conversion} {ieeeFloatingPoint} {
2583    # Ad2b d UN -8345 E-297 x -15519ac5142aaa_1000000000000000000001& E-974
2584    convertToDouble -8345E-297
2585} 0x8315519ac5142aab
2586test expr-28.336 {input floating-point conversion} {ieeeFloatingPoint} {
2587    # Ad2b d UN +1669 E-296 x 15519ac5142aaa_1000000000000000000001& E-973
2588    convertToDouble +1669E-296
2589} 0x0325519ac5142aab
2590test expr-28.337 {input floating-point conversion} {ieeeFloatingPoint} {
2591    # Ad2b d UN -3338 E-296 x -15519ac5142aaa_1000000000000000000001& E-972
2592    convertToDouble -3338E-296
2593} 0x8335519ac5142aab
2594test expr-28.338 {input floating-point conversion} {ieeeFloatingPoint} {
2595    # Ad2b d UN +3257 E58 x 1444b34a6fb3eb_01111111111111111110& E204
2596    convertToDouble +3257E58
2597} 0x4cb444b34a6fb3eb
2598test expr-28.339 {input floating-point conversion} {ieeeFloatingPoint} {
2599    # Ad2b d UN -6514 E58 x -1444b34a6fb3eb_01111111111111111110& E205
2600    convertToDouble -6514E58
2601} 0xccc444b34a6fb3eb
2602test expr-28.340 {input floating-point conversion} {ieeeFloatingPoint} {
2603    # Ad2b d UN +2416 E176 x 1dcf7df8f573b7_0111111111111111110& E595
2604    convertToDouble +2416E176
2605} 0x652dcf7df8f573b7
2606test expr-28.341 {input floating-point conversion} {ieeeFloatingPoint} {
2607    # Ad2b d UN +8085 E-63 x 19fbf3c19b9a79_0111111111111111110& E-197
2608    convertToDouble +8085E-63
2609} 0x33a9fbf3c19b9a79
2610test expr-28.342 {input floating-point conversion} {ieeeFloatingPoint} {
2611    # Ad2b d UN -3234 E-62 x -19fbf3c19b9a79_0111111111111111110& E-195
2612    convertToDouble -3234E-62
2613} 0xb3c9fbf3c19b9a79
2614test expr-28.343 {input floating-point conversion} {ieeeFloatingPoint} {
2615    # Ad2b d UN +1617 E-62 x 19fbf3c19b9a79_0111111111111111110& E-196
2616    convertToDouble +1617E-62
2617} 0x33b9fbf3c19b9a79
2618test expr-28.344 {input floating-point conversion} {ieeeFloatingPoint} {
2619    # Ad2b d UN -6468 E-62 x -19fbf3c19b9a79_0111111111111111110& E-194
2620    convertToDouble -6468E-62
2621} 0xb3d9fbf3c19b9a79
2622test expr-28.345 {input floating-point conversion} {ieeeFloatingPoint} {
2623    # Ad2b d UN +53418 E111 x 15b1051df943a8_1000000000000000000001& E384
2624    convertToDouble +53418E111
2625} 0x57f5b1051df943a9
2626test expr-28.346 {input floating-point conversion} {ieeeFloatingPoint} {
2627    # Ad2b d UN -60513 E160 x -15043b64e56c72_1000000000000000000001& E547
2628    convertToDouble -60513E160
2629} 0xe225043b64e56c73
2630test expr-28.347 {input floating-point conversion} {ieeeFloatingPoint} {
2631    # Ad2b d UN +26709 E111 x 15b1051df943a8_1000000000000000000001& E383
2632    convertToDouble +26709E111
2633} 0x57e5b1051df943a9
2634test expr-28.348 {input floating-point conversion} {ieeeFloatingPoint} {
2635    # Ad2b d UN -99447 E166 x -10782189b336ae_1000000000000000000001& E568
2636    convertToDouble -99447E166
2637} 0xe370782189b336af
2638test expr-28.349 {input floating-point conversion} {ieeeFloatingPoint} {
2639    # Ad2b d UN +12549 E48 x 10c52fe6dc6a1b_011111111111111111111110& E173
2640    convertToDouble +12549E48
2641} 0x4ac0c52fe6dc6a1b
2642test expr-28.350 {input floating-point conversion} {ieeeFloatingPoint} {
2643    # Ad2b d UN -25098 E48 x -10c52fe6dc6a1b_011111111111111111111110& E174
2644    convertToDouble -25098E48
2645} 0xcad0c52fe6dc6a1b
2646test expr-28.351 {input floating-point conversion} {ieeeFloatingPoint} {
2647    # Ad2b d UN +50196 E48 x 10c52fe6dc6a1b_011111111111111111111110& E175
2648    convertToDouble +50196E48
2649} 0x4ae0c52fe6dc6a1b
2650test expr-28.352 {input floating-point conversion} {ieeeFloatingPoint} {
2651    # Ad2b d UN -62745 E47 x -10c52fe6dc6a1b_011111111111111111111110& E172
2652    convertToDouble -62745E47
2653} 0xcab0c52fe6dc6a1b
2654test expr-28.353 {input floating-point conversion} {ieeeFloatingPoint} {
2655    # Ad2b d UN +83771 E-73 x 1ce886fb5ffd6d_0111111111111111111110& E-227
2656    convertToDouble +83771E-73
2657} 0x31cce886fb5ffd6d
2658test expr-28.354 {input floating-point conversion} {ieeeFloatingPoint} {
2659    # Ad2b d UN -97451 E-167 x -1c0f220fb1c70d_01111111111111111111110& E-539
2660    convertToDouble -97451E-167
2661} 0x9e4c0f220fb1c70d
2662test expr-28.355 {input floating-point conversion} {ieeeFloatingPoint} {
2663    # Ad2b d UN +86637 E-203 x 10943edb4e81db_0111111111111111111110& E-658
2664    convertToDouble +86637E-203
2665} 0x16d0943edb4e81db
2666test expr-28.356 {input floating-point conversion} {ieeeFloatingPoint} {
2667    # Ad2b d UN -75569 E-254 x -15a462d91c6ab3_0111111111111111111111111110& E-828
2668    convertToDouble -75569E-254
2669} 0x8c35a462d91c6ab3
2670test expr-28.357 {input floating-point conversion} {ieeeFloatingPoint} {
2671    # Ad2b d UN +473806 E83 x 17d15bf3186080_1000000000000000000000001& E294
2672    convertToDouble +473806E83
2673} 0x5257d15bf3186081
2674test expr-28.358 {input floating-point conversion} {ieeeFloatingPoint} {
2675    # Ad2b d UN -947612 E83 x -17d15bf3186080_1000000000000000000000001& E295
2676    convertToDouble -947612E83
2677} 0xd267d15bf3186081
2678test expr-28.359 {input floating-point conversion} {ieeeFloatingPoint} {
2679    # Ad2b d UN +292369 E76 x 18a85eb277e644_100000000000000000000000001& E270
2680    convertToDouble +292369E76
2681} 0x50d8a85eb277e645
2682test expr-28.360 {input floating-point conversion} {ieeeFloatingPoint} {
2683    # Ad2b d UN -584738 E76 x -18a85eb277e644_100000000000000000000000001& E271
2684    convertToDouble -584738E76
2685} 0xd0e8a85eb277e645
2686test expr-28.361 {input floating-point conversion} {ieeeFloatingPoint} {
2687    # Ad2b d UN +933587 E-140 x 1b248728b9c116_100000000000000000000000001& E-446
2688    convertToDouble +933587E-140
2689} 0x241b248728b9c117
2690test expr-28.362 {input floating-point conversion} {ieeeFloatingPoint} {
2691    # Ad2b dieee UN -720919 E-14 x -1ef696965cbf04_10000000000000000000000001& E-28
2692    convertToDouble -720919E-14
2693} 0xbe3ef696965cbf05
2694test expr-28.363 {input floating-point conversion} {ieeeFloatingPoint} {
2695    # Ad2b d UN +535001 E-149 x 10b38e07c745ae_1000000000000000000000001& E-476
2696    convertToDouble +535001E-149
2697} 0x2230b38e07c745af
2698test expr-28.364 {input floating-point conversion} {ieeeFloatingPoint} {
2699    # Ad2b d UN -890521 E-235 x -114828ee39c852_1000000000000000000000001& E-761
2700    convertToDouble -890521E-235
2701} 0x90614828ee39c853
2702test expr-28.365 {input floating-point conversion} {ieeeFloatingPoint} {
2703    # Ad2b d UN +548057 E81 x 11a1d9135cca53_0111111111111111111111110& E288
2704    convertToDouble +548057E81
2705} 0x51f1a1d9135cca53
2706test expr-28.366 {input floating-point conversion} {ieeeFloatingPoint} {
2707    # Ad2b d UN -706181 E88 x -1b156ac4c2d1e5_0111111111111111111111110& E311
2708    convertToDouble -706181E88
2709} 0xd36b156ac4c2d1e5
2710test expr-28.367 {input floating-point conversion} {ieeeFloatingPoint} {
2711    # Ad2b d UN +820997 E106 x 1b4f8b64fa125d_0111111111111111111111110& E371
2712    convertToDouble +820997E106
2713} 0x572b4f8b64fa125d
2714test expr-28.368 {input floating-point conversion} {ieeeFloatingPoint} {
2715    # Ad2b d UN -320681 E63 x -17ca18a876c5ef_0111111111111111111111110& E227
2716    convertToDouble -320681E63
2717} 0xce27ca18a876c5ef
2718test expr-28.369 {input floating-point conversion} {ieeeFloatingPoint} {
2719    # Ad2b d UN +928609 E-261 x 1be2dd66200bef_011111111111111111111111111110& E-848
2720    convertToDouble +928609E-261
2721} 0x0afbe2dd66200bef
2722test expr-28.370 {input floating-point conversion} {ieeeFloatingPoint} {
2723    # Ad2b d UN -302276 E-254 x -15a462d91c6ab3_0111111111111111111111111110& E-826
2724    convertToDouble -302276E-254
2725} 0x8c55a462d91c6ab3
2726test expr-28.371 {input floating-point conversion} {ieeeFloatingPoint} {
2727    # Ad2b d UN +151138 E-254 x 15a462d91c6ab3_0111111111111111111111111110& E-827
2728    convertToDouble +151138E-254
2729} 0x0c45a462d91c6ab3
2730test expr-28.372 {input floating-point conversion} {ieeeFloatingPoint} {
2731    # Ad2b d UN +4691773 E45 x 19147b9330eaae_1000000000000000000000000001& E171
2732    convertToDouble +4691773E45
2733} 0x4aa9147b9330eaaf
2734test expr-28.373 {input floating-point conversion} {ieeeFloatingPoint} {
2735    # Ad2b d UN -9383546 E45 x -19147b9330eaae_1000000000000000000000000001& E172
2736    convertToDouble -9383546E45
2737} 0xcab9147b9330eaaf
2738test expr-28.374 {input floating-point conversion} {ieeeFloatingPoint} {
2739    # Ad2b d UN +3059949 E-243 x 13ecf22ea07862_10000000000000000000000000001& E-786
2740    convertToDouble +3059949E-243
2741} 0x0ed3ecf22ea07863
2742test expr-28.375 {input floating-point conversion} {ieeeFloatingPoint} {
2743    # Ad2b d UN -6119898 E-243 x -13ecf22ea07862_10000000000000000000000000001& E-785
2744    convertToDouble -6119898E-243
2745} 0x8ee3ecf22ea07863
2746test expr-28.376 {input floating-point conversion} {ieeeFloatingPoint} {
2747    # Ad2b d UN +5356626 E-213 x 1b84252abdf6ba_100000000000000000000000001& E-686
2748    convertToDouble +5356626E-213
2749} 0x151b84252abdf6bb
2750test expr-28.377 {input floating-point conversion} {ieeeFloatingPoint} {
2751    # Ad2b d UN -4877378 E-199 x -11cd5cd90cb200_100000000000000000000000001& E-639
2752    convertToDouble -4877378E-199
2753} 0x9801cd5cd90cb201
2754test expr-28.378 {input floating-point conversion} {ieeeFloatingPoint} {
2755    # Ad2b d UN +7716693 E223 x 1972d9d2cff683_01111111111111111111111111110& E763
2756    convertToDouble +7716693E223
2757} 0x6fa972d9d2cff683
2758test expr-28.379 {input floating-point conversion} {ieeeFloatingPoint} {
2759    # Ad2b d UN -5452869 E109 x -16247b136fecc3_01111111111111111111111111110& E384
2760    convertToDouble -5452869E109
2761} 0xd7f6247b136fecc3
2762test expr-28.380 {input floating-point conversion} {ieeeFloatingPoint} {
2763    # Ad2b d UN +4590831 E156 x 14689b4a5fa201_011111111111111111111111111110& E540
2764    convertToDouble +4590831E156
2765} 0x61b4689b4a5fa201
2766test expr-28.381 {input floating-point conversion} {ieeeFloatingPoint} {
2767    # Ad2b d UN -9181662 E156 x -14689b4a5fa201_011111111111111111111111111110& E541
2768    convertToDouble -9181662E156
2769} 0xe1c4689b4a5fa201
2770test expr-28.382 {input floating-point conversion} {ieeeFloatingPoint} {
2771    # Ad2b d UN -3714436 E-261 x -1be2dd66200bef_011111111111111111111111111110& E-846
2772    convertToDouble -3714436E-261
2773} 0x8b1be2dd66200bef
2774test expr-28.383 {input floating-point conversion} {ieeeFloatingPoint} {
2775    # Ad2b d UN +4643045 E-262 x 1be2dd66200bef_011111111111111111111111111110& E-849
2776    convertToDouble +4643045E-262
2777} 0x0aebe2dd66200bef
2778test expr-28.384 {input floating-point conversion} {ieeeFloatingPoint} {
2779    # Ad2b d UN -7428872 E-261 x -1be2dd66200bef_011111111111111111111111111110& E-845
2780    convertToDouble -7428872E-261
2781} 0x8b2be2dd66200bef
2782test expr-28.385 {input floating-point conversion} {ieeeFloatingPoint} {
2783    # Ad2b d UN +52942146 E130 x 16c31d08af89c2_10000000000000000000000000000001& E457
2784    convertToDouble +52942146E130
2785} 0x5c86c31d08af89c3
2786test expr-28.386 {input floating-point conversion} {ieeeFloatingPoint} {
2787    # Ad2b d UN -27966061 E145 x -155bcf72fd10f8_1000000000000000000000000000000001& E506
2788    convertToDouble -27966061E145
2789} 0xdf955bcf72fd10f9
2790test expr-28.387 {input floating-point conversion} {ieeeFloatingPoint} {
2791    # Ad2b d UN +26471073 E130 x 16c31d08af89c2_10000000000000000000000000000001& E456
2792    convertToDouble +26471073E130
2793} 0x5c76c31d08af89c3
2794test expr-28.388 {input floating-point conversion} {ieeeFloatingPoint} {
2795    # Ad2b d UN -55932122 E145 x -155bcf72fd10f8_1000000000000000000000000000000001& E507
2796    convertToDouble -55932122E145
2797} 0xdfa55bcf72fd10f9
2798test expr-28.389 {input floating-point conversion} {ieeeFloatingPoint} {
2799    # Ad2b d UN +95412548 E-99 x 18e0bfb98864c8_100000000000000000000000000000001& E-303
2800    convertToDouble +95412548E-99
2801} 0x2d08e0bfb98864c9
2802test expr-28.390 {input floating-point conversion} {ieeeFloatingPoint} {
2803    # Ad2b d UN -47706274 E-99 x -18e0bfb98864c8_100000000000000000000000000000001& E-304
2804    convertToDouble -47706274E-99
2805} 0xacf8e0bfb98864c9
2806test expr-28.391 {input floating-point conversion} {ieeeFloatingPoint} {
2807    # Ad2b d UN +23853137 E-99 x 18e0bfb98864c8_100000000000000000000000000000001& E-305
2808    convertToDouble +23853137E-99
2809} 0x2ce8e0bfb98864c9
2810test expr-28.392 {input floating-point conversion} {ieeeFloatingPoint} {
2811    # Ad2b d UN -78493654 E-301 x -140d76077b648e_10000000000000000000000000000001& E-974
2812    convertToDouble -78493654E-301
2813} 0x83140d76077b648f
2814test expr-28.393 {input floating-point conversion} {ieeeFloatingPoint} {
2815    # Ad2b d UN +65346417 E29 x 13aa1ad778f23b_0111111111111111111111111111110& E122
2816    convertToDouble +65346417E29
2817} 0x4793aa1ad778f23b
2818test expr-28.394 {input floating-point conversion} {ieeeFloatingPoint} {
2819    # Ad2b d UN -51083099 E167 x -14a75eb58df47b_0111111111111111111111111111110& E580
2820    convertToDouble -51083099E167
2821} 0xe434a75eb58df47b
2822test expr-28.395 {input floating-point conversion} {ieeeFloatingPoint} {
2823    # Ad2b d UN +89396333 E264 x 1526f061ca9053_0111111111111111111111111111111110& E903
2824    convertToDouble +89396333E264
2825} 0x786526f061ca9053
2826test expr-28.396 {input floating-point conversion} {ieeeFloatingPoint} {
2827    # Ad2b d UN -84863171 E114 x -106e98f5ec8f37_0111111111111111111111111111111110& E405
2828    convertToDouble -84863171E114
2829} 0xd9406e98f5ec8f37
2830test expr-28.397 {input floating-point conversion} {ieeeFloatingPoint} {
2831    # Ad2b d UN +59540836 E-251 x 10430c2d075c07_011111111111111111111111111111110& E-808
2832    convertToDouble +59540836E-251
2833} 0x0d70430c2d075c07
2834test expr-28.398 {input floating-point conversion} {ieeeFloatingPoint} {
2835    # Ad2b d UN -74426045 E-252 x -10430c2d075c07_011111111111111111111111111111110& E-811
2836    convertToDouble -74426045E-252
2837} 0x8d40430c2d075c07
2838test expr-28.399 {input floating-point conversion} {ieeeFloatingPoint} {
2839    # Ad2b d UN +14885209 E-251 x 10430c2d075c07_011111111111111111111111111111110& E-810
2840    convertToDouble +14885209E-251
2841} 0x0d50430c2d075c07
2842test expr-28.400 {input floating-point conversion} {ieeeFloatingPoint} {
2843    # Ad2b d UN -29770418 E-251 x -10430c2d075c07_011111111111111111111111111111110& E-809
2844    convertToDouble -29770418E-251
2845} 0x8d60430c2d075c07
2846test expr-28.401 {input floating-point conversion} {ieeeFloatingPoint} {
2847    # Ad2b d UN +982161308 E122 x 11b6231e18c5ca_100000000000000000000000000000000000000001& E435
2848    convertToDouble +982161308E122
2849} 0x5b21b6231e18c5cb
2850test expr-28.402 {input floating-point conversion} {ieeeFloatingPoint} {
2851    # Ad2b d UN -245540327 E122 x -11b6231e18c5ca_100000000000000000000000000000000000000001& E433
2852    convertToDouble -245540327E122
2853} 0xdb01b6231e18c5cb
2854test expr-28.403 {input floating-point conversion} {ieeeFloatingPoint} {
2855    # Ad2b d UN +491080654 E122 x 11b6231e18c5ca_100000000000000000000000000000000000000001& E434
2856    convertToDouble +491080654E122
2857} 0x5b11b6231e18c5cb
2858test expr-28.404 {input floating-point conversion} {ieeeFloatingPoint} {
2859    # Ad2b d UN +525452622 E-310 x 12045136ce0340_1000000000000000000000000000000000001& E-1001
2860    convertToDouble +525452622E-310
2861} 0x0162045136ce0341
2862test expr-28.405 {input floating-point conversion} {ieeeFloatingPoint} {
2863    # Ad2b d UN -771837113 E-134 x -14e61f991c4ed0_100000000000000000000000000000000001& E-416
2864    convertToDouble -771837113E-134
2865} 0xa5f4e61f991c4ed1
2866test expr-28.406 {input floating-point conversion} {ieeeFloatingPoint} {
2867    # Ad2b d UN +820858081 E-150 x 14050669985a86_10000000000000000000000000000000001& E-469
2868    convertToDouble +820858081E-150
2869} 0x22a4050669985a87
2870test expr-28.407 {input floating-point conversion} {ieeeFloatingPoint} {
2871    # Ad2b d UN -262726311 E-310 x -12045136ce0340_1000000000000000000000000000000000001& E-1002
2872    convertToDouble -262726311E-310
2873} 0x8152045136ce0341
2874test expr-28.408 {input floating-point conversion} {ieeeFloatingPoint} {
2875    # Ad2b d UN +923091487 E209 x 10bc60e6896717_011111111111111111111111111111111110& E724
2876    convertToDouble +923091487E209
2877} 0x6d30bc60e6896717
2878test expr-28.409 {input floating-point conversion} {ieeeFloatingPoint} {
2879    # Ad2b d UN -653777767 E273 x -120223f2b3a881_0111111111111111111111111111111111111110& E936
2880    convertToDouble -653777767E273
2881} 0xfa720223f2b3a881
2882test expr-28.410 {input floating-point conversion} {ieeeFloatingPoint} {
2883    # Ad2b d UN +842116236 E-53 x 1809c5732cdc7f_0111111111111111111111111111111110& E-147
2884    convertToDouble +842116236E-53
2885} 0x36c809c5732cdc7f
2886test expr-28.411 {input floating-point conversion} {ieeeFloatingPoint} {
2887    # Ad2b d UN -741111169 E-202 x -15a3e1d1b73099_01111111111111111111111111111111110& E-642
2888    convertToDouble -741111169E-202
2889} 0x97d5a3e1d1b73099
2890test expr-28.412 {input floating-point conversion} {ieeeFloatingPoint} {
2891    # Ad2b d UN +839507247 E-284 x 129a1effc50859_0111111111111111111111111111111110& E-914
2892    convertToDouble +839507247E-284
2893} 0x06d29a1effc50859
2894test expr-28.413 {input floating-point conversion} {ieeeFloatingPoint} {
2895    # Ad2b d UN -951487269 E-264 x -1c92befccb5f59_0111111111111111111111111111111110& E-848
2896    convertToDouble -951487269E-264
2897} 0x8afc92befccb5f59
2898test expr-28.414 {input floating-point conversion} {ieeeFloatingPoint} {
2899    # Ad2b d UN -9821613080 E121 x -11b6231e18c5ca_100000000000000000000000000000000000000001& E435
2900    convertToDouble -9821613080E121
2901} 0xdb21b6231e18c5cb
2902test expr-28.415 {input floating-point conversion} {ieeeFloatingPoint} {
2903    # Ad2b d UN +6677856011 E-31 x 193a6d11077292_100000000000000000000000000000000000001& E-71
2904    convertToDouble +6677856011E-31
2905} 0x3b893a6d11077293
2906test expr-28.416 {input floating-point conversion} {ieeeFloatingPoint} {
2907    # Ad2b d UN -3573796826 E-266 x -112be2041a79fc_100000000000000000000000000000000000001& E-852
2908    convertToDouble -3573796826E-266
2909} 0x8ab12be2041a79fd
2910test expr-28.417 {input floating-point conversion} {ieeeFloatingPoint} {
2911    # Ad2b d UN +7147593652 E-266 x 112be2041a79fc_100000000000000000000000000000000000001& E-851
2912    convertToDouble +7147593652E-266
2913} 0x0ac12be2041a79fd
2914test expr-28.418 {input floating-point conversion} {ieeeFloatingPoint} {
2915    # Ad2b d UN -9981396317 E-181 x -1edbd94cb50054_100000000000000000000000000000000000001& E-569
2916    convertToDouble -9981396317E-181
2917} 0x9c6edbd94cb50055
2918test expr-28.419 {input floating-point conversion} {ieeeFloatingPoint} {
2919    # Ad2b d UN +3268888835 E272 x 120223f2b3a881_0111111111111111111111111111111111111110& E935
2920    convertToDouble +3268888835E272
2921} 0x7a620223f2b3a881
2922test expr-28.420 {input floating-point conversion} {ieeeFloatingPoint} {
2923    # Ad2b d UN -2615111068 E273 x -120223f2b3a881_0111111111111111111111111111111111111110& E938
2924    convertToDouble -2615111068E273
2925} 0xfa920223f2b3a881
2926test expr-28.421 {input floating-point conversion} {ieeeFloatingPoint} {
2927    # Ad2b d UN +1307555534 E273 x 120223f2b3a881_0111111111111111111111111111111111111110& E937
2928    convertToDouble +1307555534E273
2929} 0x7a820223f2b3a881
2930test expr-28.422 {input floating-point conversion} {ieeeFloatingPoint} {
2931    # Ad2b d UN +2990671154 E-190 x 13db11ac608107_01111111111111111111111111111111111111110& E-600
2932    convertToDouble +2990671154E-190
2933} 0x1a73db11ac608107
2934test expr-28.423 {input floating-point conversion} {ieeeFloatingPoint} {
2935    # Ad2b d UN -1495335577 E-190 x -13db11ac608107_01111111111111111111111111111111111111110& E-601
2936    convertToDouble -1495335577E-190
2937} 0x9a63db11ac608107
2938test expr-28.424 {input floating-point conversion} {ieeeFloatingPoint} {
2939    # Ad2b d UN +5981342308 E-190 x 13db11ac608107_01111111111111111111111111111111111111110& E-599
2940    convertToDouble +5981342308E-190
2941} 0x1a83db11ac608107
2942test expr-28.425 {input floating-point conversion} {ieeeFloatingPoint} {
2943    # Ad2b d UN -7476677885 E-191 x -13db11ac608107_01111111111111111111111111111111111111110& E-602
2944    convertToDouble -7476677885E-191
2945} 0x9a53db11ac608107
2946test expr-28.426 {input floating-point conversion} {ieeeFloatingPoint} {
2947    # Ad2b d UN +82259684194 E-202 x 12c3e72d179606_1000000000000000000000000000000000000000001& E-635
2948    convertToDouble +82259684194E-202
2949} 0x1842c3e72d179607
2950test expr-28.427 {input floating-point conversion} {ieeeFloatingPoint} {
2951    # Ad2b d UN -93227267727 E-49 x -1960fe08d5847e_100000000000000000000000000000000000000001& E-127
2952    convertToDouble -93227267727E-49
2953} 0xb80960fe08d5847f
2954test expr-28.428 {input floating-point conversion} {ieeeFloatingPoint} {
2955    # Ad2b d UN +41129842097 E-202 x 12c3e72d179606_1000000000000000000000000000000000000000001& E-636
2956    convertToDouble +41129842097E-202
2957} 0x1832c3e72d179607
2958test expr-28.429 {input floating-point conversion} {ieeeFloatingPoint} {
2959    # Ad2b d UN -47584241418 E-314 x -14e25dd3747e96_10000000000000000000000000000000000000001& E-1008
2960    convertToDouble -47584241418E-314
2961} 0x80f4e25dd3747e97
2962test expr-28.430 {input floating-point conversion} {ieeeFloatingPoint} {
2963    # Ad2b d UN -79360293406 E92 x -1c58a00bb31863_01111111111111111111111111111111111111110& E341
2964    convertToDouble -79360293406E92
2965} 0xd54c58a00bb31863
2966test expr-28.431 {input floating-point conversion} {ieeeFloatingPoint} {
2967    # Ad2b d UN +57332259349 E225 x 120811f528378b_01111111111111111111111111111111111111110& E783
2968    convertToDouble +57332259349E225
2969} 0x70e20811f528378b
2970test expr-28.432 {input floating-point conversion} {ieeeFloatingPoint} {
2971    # Ad2b d UN -57202326162 E111 x -1626f1c480545b_01111111111111111111111111111111111111110& E404
2972    convertToDouble -57202326162E111
2973} 0xd93626f1c480545b
2974test expr-28.433 {input floating-point conversion} {ieeeFloatingPoint} {
2975    # Ad2b d UN +86860597053 E-206 x 103b77d2b969d9_0111111111111111111111111111111111111111110& E-648
2976    convertToDouble +86860597053E-206
2977} 0x17703b77d2b969d9
2978test expr-28.434 {input floating-point conversion} {ieeeFloatingPoint} {
2979    # Ad2b d UN -53827010643 E-200 x -132fa69a69bd6d_0111111111111111111111111111111111111111110& E-629
2980    convertToDouble -53827010643E-200
2981} 0x98a32fa69a69bd6d
2982test expr-28.435 {input floating-point conversion} {ieeeFloatingPoint} {
2983    # Ad2b d UN +53587107423 E-61 x 100a19a3ffd981_011111111111111111111111111111111111111111110& E-167
2984    convertToDouble +53587107423E-61
2985} 0x35800a19a3ffd981
2986test expr-28.436 {input floating-point conversion} {ieeeFloatingPoint} {
2987    # Ad2b d UN +635007636765 E200 x 1824e73a4f030e_100000000000000000000000000000000000000000001& E703
2988    convertToDouble +635007636765E200
2989} 0x6be824e73a4f030f
2990test expr-28.437 {input floating-point conversion} {ieeeFloatingPoint} {
2991    # Ad2b d UN +508006109412 E201 x 1824e73a4f030e_100000000000000000000000000000000000000000001& E706
2992    convertToDouble +508006109412E201
2993} 0x6c1824e73a4f030f
2994test expr-28.438 {input floating-point conversion} {ieeeFloatingPoint} {
2995    # Ad2b d UN -254003054706 E201 x -1824e73a4f030e_100000000000000000000000000000000000000000001& E705
2996    convertToDouble -254003054706E201
2997} 0xec0824e73a4f030f
2998test expr-28.439 {input floating-point conversion} {ieeeFloatingPoint} {
2999    # Ad2b d UN +561029718715 E-72 x 1cd96a6972a14a_100000000000000000000000000000000000000000001& E-201
3000    convertToDouble +561029718715E-72
3001} 0x336cd96a6972a14b
3002test expr-28.440 {input floating-point conversion} {ieeeFloatingPoint} {
3003    # Ad2b d UN -897647549944 E-71 x -1cd96a6972a14a_100000000000000000000000000000000000000000001& E-197
3004    convertToDouble -897647549944E-71
3005} 0xb3acd96a6972a14b
3006test expr-28.441 {input floating-point conversion} {ieeeFloatingPoint} {
3007    # Ad2b d UN +112205943743 E-71 x 1cd96a6972a14a_100000000000000000000000000000000000000000001& E-200
3008    convertToDouble +112205943743E-71
3009} 0x337cd96a6972a14b
3010test expr-28.442 {input floating-point conversion} {ieeeFloatingPoint} {
3011    # Ad2b d UN -873947086081 E-236 x -19e117541d04e6_1000000000000000000000000000000000000000000001& E-745
3012    convertToDouble -873947086081E-236
3013} 0x9169e117541d04e7
3014test expr-28.443 {input floating-point conversion} {ieeeFloatingPoint} {
3015    # Ad2b d UN +809184709177 E116 x 1de27e59fb0679_011111111111111111111111111111111111111111110& E424
3016    convertToDouble +809184709177E116
3017} 0x5a7de27e59fb0679
3018test expr-28.444 {input floating-point conversion} {ieeeFloatingPoint} {
3019    # Ad2b d UN -573112917422 E81 x -11958b36c5102b_01111111111111111111111111111111111111111111110& E308
3020    convertToDouble -573112917422E81
3021} 0xd331958b36c5102b
3022test expr-28.445 {input floating-point conversion} {ieeeFloatingPoint} {
3023    # Ad2b d UN +286556458711 E81 x 11958b36c5102b_01111111111111111111111111111111111111111111110& E307
3024    convertToDouble +286556458711E81
3025} 0x5321958b36c5102b
3026test expr-28.446 {input floating-point conversion} {ieeeFloatingPoint} {
3027    # Ad2b d UN +952805821491 E-259 x 1551767ef8a9a3_011111111111111111111111111111111111111111110& E-821
3028    convertToDouble +952805821491E-259
3029} 0x0ca551767ef8a9a3
3030test expr-28.447 {input floating-point conversion} {ieeeFloatingPoint} {
3031    # Ad2b d UN -132189992873 E-44 x -1b746cf242410b_011111111111111111111111111111111111111111110& E-110
3032    convertToDouble -132189992873E-44
3033} 0xb91b746cf242410b
3034test expr-28.448 {input floating-point conversion} {ieeeFloatingPoint} {
3035    # Ad2b d UN -173696038493 E-144 x -1f8fefbb3249d3_011111111111111111111111111111111111111111110& E-442
3036    convertToDouble -173696038493E-144
3037} 0xa45f8fefbb3249d3
3038test expr-28.449 {input floating-point conversion} {ieeeFloatingPoint} {
3039    # Ad2b d UN +1831132757599 E-107 x 138e6edd48f2a2_1000000000000000000000000000000000000000000000001& E-315
3040    convertToDouble +1831132757599E-107
3041} 0x2c438e6edd48f2a3
3042test expr-28.450 {input floating-point conversion} {ieeeFloatingPoint} {
3043    # Ad2b d UN -9155663787995 E-108 x -138e6edd48f2a2_1000000000000000000000000000000000000000000000001& E-316
3044    convertToDouble -9155663787995E-108
3045} 0xac338e6edd48f2a3
3046test expr-28.451 {input floating-point conversion} {ieeeFloatingPoint} {
3047    # Ad2b d UN +7324531030396 E-107 x 138e6edd48f2a2_1000000000000000000000000000000000000000000000001& E-313
3048    convertToDouble +7324531030396E-107
3049} 0x2c638e6edd48f2a3
3050test expr-28.452 {input floating-point conversion} {ieeeFloatingPoint} {
3051    # Ad2b d UN -9277338894969 E-200 x -19d5a44fd99a6a_1000000000000000000000000000000000000000000000001& E-622
3052    convertToDouble -9277338894969E-200
3053} 0x9919d5a44fd99a6b
3054test expr-28.453 {input floating-point conversion} {ieeeFloatingPoint} {
3055    # Ad2b d UN +8188292423973 E287 x 1390273bf8f983_0111111111111111111111111111111111111111111111110& E996
3056    convertToDouble +8188292423973E287
3057} 0x7e3390273bf8f983
3058test expr-28.454 {input floating-point conversion} {ieeeFloatingPoint} {
3059    # Ad2b d UN -5672557437938 E59 x -148c2bd60a1523_011111111111111111111111111111111111111111111110& E238
3060    convertToDouble -5672557437938E59
3061} 0xced48c2bd60a1523
3062test expr-28.455 {input floating-point conversion} {ieeeFloatingPoint} {
3063    # Ad2b d UN +2836278718969 E59 x 148c2bd60a1523_011111111111111111111111111111111111111111111110& E237
3064    convertToDouble +2836278718969E59
3065} 0x4ec48c2bd60a1523
3066test expr-28.456 {input floating-point conversion} {ieeeFloatingPoint} {
3067    # Ad2b d UN -9995153153494 E54 x -17ba37c4fbe993_01111111111111111111111111111111111111111111110& E222
3068    convertToDouble -9995153153494E54
3069} 0xcdd7ba37c4fbe993
3070test expr-28.457 {input floating-point conversion} {ieeeFloatingPoint} {
3071    # Ad2b d UN +9224786422069 E-291 x 14ee5d56b32957_011111111111111111111111111111111111111111111111110& E-924
3072    convertToDouble +9224786422069E-291
3073} 0x0634ee5d56b32957
3074test expr-28.458 {input floating-point conversion} {ieeeFloatingPoint} {
3075    # Ad2b d UN -3142213164987 E-294 x -1d3409dfbca26f_011111111111111111111111111111111111111111111111110& E-936
3076    convertToDouble -3142213164987E-294
3077} 0x857d3409dfbca26f
3078test expr-28.459 {input floating-point conversion} {ieeeFloatingPoint} {
3079    # Ad2b d UN +6284426329974 E-294 x 1d3409dfbca26f_011111111111111111111111111111111111111111111111110& E-935
3080    convertToDouble +6284426329974E-294
3081} 0x058d3409dfbca26f
3082test expr-28.460 {input floating-point conversion} {ieeeFloatingPoint} {
3083    # Ad2b d UN -8340483752889 E-301 x -10419183e44b91_01111111111111111111111111111111111111111111111110& E-957
3084    convertToDouble -8340483752889E-301
3085} 0x8420419183e44b91
3086test expr-28.461 {input floating-point conversion} {ieeeFloatingPoint} {
3087    # Ad2b d UN +67039371486466 E89 x 17f203339c9628_10000000000000000000000000000000000000000000000000001& E341
3088    convertToDouble +67039371486466E89
3089} 0x5547f203339c9629
3090test expr-28.462 {input floating-point conversion} {ieeeFloatingPoint} {
3091    # Ad2b d UN -62150786615239 E197 x -12e79a035b9714_1000000000000000000000000000000000000000000000000001& E700
3092    convertToDouble -62150786615239E197
3093} 0xebb2e79a035b9715
3094test expr-28.463 {input floating-point conversion} {ieeeFloatingPoint} {
3095    # Ad2b d UN +33519685743233 E89 x 17f203339c9628_10000000000000000000000000000000000000000000000000001& E340
3096    convertToDouble +33519685743233E89
3097} 0x5537f203339c9629
3098test expr-28.464 {input floating-point conversion} {ieeeFloatingPoint} {
3099    # Ad2b d UN -52563419496999 E156 x -1bdb17625bf6e6_1000000000000000000000000000000000000000000000000001& E563
3100    convertToDouble -52563419496999E156
3101} 0xe32bdb17625bf6e7
3102test expr-28.465 {input floating-point conversion} {ieeeFloatingPoint} {
3103    # Ad2b d UN +32599460466991 E-65 x 1f395d4c779d8e_1000000000000000000000000000000000000000000000000001& E-172
3104    convertToDouble +32599460466991E-65
3105} 0x353f395d4c779d8f
3106test expr-28.466 {input floating-point conversion} {ieeeFloatingPoint} {
3107    # Ad2b d UN -41010988798007 E-133 x -152e1c9e04ee06_100000000000000000000000000000000000000000000000001& E-397
3108    convertToDouble -41010988798007E-133
3109} 0xa7252e1c9e04ee07
3110test expr-28.467 {input floating-point conversion} {ieeeFloatingPoint} {
3111    # Ad2b d UN +65198920933982 E-65 x 1f395d4c779d8e_1000000000000000000000000000000000000000000000000001& E-171
3112    convertToDouble +65198920933982E-65
3113} 0x354f395d4c779d8f
3114test expr-28.468 {input floating-point conversion} {ieeeFloatingPoint} {
3115    # Ad2b d UN -82021977596014 E-133 x -152e1c9e04ee06_100000000000000000000000000000000000000000000000001& E-396
3116    convertToDouble -82021977596014E-133
3117} 0xa7352e1c9e04ee07
3118test expr-28.469 {input floating-point conversion} {ieeeFloatingPoint} {
3119    # Ad2b d UN +80527976643809 E61 x 1c7c5aea080a49_0111111111111111111111111111111111111111111111111110& E248
3120    convertToDouble +80527976643809E61
3121} 0x4f7c7c5aea080a49
3122test expr-28.470 {input floating-point conversion} {ieeeFloatingPoint} {
3123    # Ad2b d UN -74712611505209 E158 x -1eeebe9ea010f3_011111111111111111111111111111111111111111111111110& E570
3124    convertToDouble -74712611505209E158
3125} 0xe39eeebe9ea010f3
3126test expr-28.471 {input floating-point conversion} {ieeeFloatingPoint} {
3127    # Ad2b d UN +53390939710959 E261 x 18ac6d426a1cb1_0111111111111111111111111111111111111111111111111110& E912
3128    convertToDouble +53390939710959E261
3129} 0x78f8ac6d426a1cb1
3130test expr-28.472 {input floating-point conversion} {ieeeFloatingPoint} {
3131    # Ad2b d UN -69277302659155 E225 x -1547166a3a2b0f_011111111111111111111111111111111111111111111111110& E793
3132    convertToDouble -69277302659155E225
3133} 0xf18547166a3a2b0f
3134test expr-28.473 {input floating-point conversion} {ieeeFloatingPoint} {
3135    # Ad2b d UN +46202199371337 E-72 x 128f9edfbd341f_0111111111111111111111111111111111111111111111111111111110& E-194
3136    convertToDouble +46202199371337E-72
3137} 0x33d28f9edfbd341f
3138test expr-28.474 {input floating-point conversion} {ieeeFloatingPoint} {
3139    # Ad2b d UN -23438635467783 E-179 x -1ba485b99e47af_0111111111111111111111111111111111111111111111111110& E-551
3140    convertToDouble -23438635467783E-179
3141} 0x9d8ba485b99e47af
3142test expr-28.475 {input floating-point conversion} {ieeeFloatingPoint} {
3143    # Ad2b d UN +41921560615349 E-67 x 19b2a5c4041e4b_0111111111111111111111111111111111111111111111111110& E-178
3144    convertToDouble +41921560615349E-67
3145} 0x34d9b2a5c4041e4b
3146test expr-28.476 {input floating-point conversion} {ieeeFloatingPoint} {
3147    # Ad2b d UN -92404398742674 E-72 x -128f9edfbd341f_0111111111111111111111111111111111111111111111111111111110& E-193
3148    convertToDouble -92404398742674E-72
3149} 0xb3e28f9edfbd341f
3150test expr-28.477 {input floating-point conversion} {ieeeFloatingPoint} {
3151    # Ad2b d UN +738545606647197 E124 x 13d8886a766a20_100000000000000000000000000000000000000000000000000001& E461
3152    convertToDouble +738545606647197E124
3153} 0x5cc3d8886a766a21
3154test expr-28.478 {input floating-point conversion} {ieeeFloatingPoint} {
3155    # Ad2b d UN -972708181182949 E117 x -15ed1f039cebfe_1000000000000000000000000000000000000000000000000000001& E438
3156    convertToDouble -972708181182949E117
3157} 0xdb55ed1f039cebff
3158test expr-28.479 {input floating-point conversion} {ieeeFloatingPoint} {
3159    # Ad2b d UN -837992143580825 E87 x -17f203339c9628_10000000000000000000000000000000000000000000000000001& E338
3160    convertToDouble -837992143580825E87
3161} 0xd517f203339c9629
3162test expr-28.480 {input floating-point conversion} {ieeeFloatingPoint} {
3163    # Ad2b d UN +609610927149051 E-255 x 104273b18918b0_100000000000000000000000000000000000000000000000000000001& E-798
3164    convertToDouble +609610927149051E-255
3165} 0x0e104273b18918b1
3166test expr-28.481 {input floating-point conversion} {ieeeFloatingPoint} {
3167    # Ad2b d UN -475603213226859 E-41 x -178cfcab31064c_10000000000000000000000000000000000000000000000000000001& E-88
3168    convertToDouble -475603213226859E-41
3169} 0xba778cfcab31064d
3170test expr-28.482 {input floating-point conversion} {ieeeFloatingPoint} {
3171    # Ad2b d UN +563002800671023 E-177 x 1035e7b5183922_10000000000000000000000000000000000000000000000000000001& E-539
3172    convertToDouble +563002800671023E-177
3173} 0x1e4035e7b5183923
3174test expr-28.483 {input floating-point conversion} {ieeeFloatingPoint} {
3175    # Ad2b d UN -951206426453718 E-41 x -178cfcab31064c_10000000000000000000000000000000000000000000000000000001& E-87
3176    convertToDouble -951206426453718E-41
3177} 0xba878cfcab31064d
3178test expr-28.484 {input floating-point conversion} {ieeeFloatingPoint} {
3179    # Ad2b d UN +805416432656519 E202 x 175d226331d039_01111111111111111111111111111111111111111111111111111110& E720
3180    convertToDouble +805416432656519E202
3181} 0x6cf75d226331d039
3182test expr-28.485 {input floating-point conversion} {ieeeFloatingPoint} {
3183    # Ad2b d UN -530658674694337 E159 x -112a13daa46fe3_0111111111111111111111111111111111111111111111111111110& E577
3184    convertToDouble -530658674694337E159
3185} 0xe4012a13daa46fe3
3186test expr-28.486 {input floating-point conversion} {ieeeFloatingPoint} {
3187    # Ad2b d UN +946574173863918 E208 x 1a2fbffdb7580b_011111111111111111111111111111111111111111111111111110& E740
3188    convertToDouble +946574173863918E208
3189} 0x6e3a2fbffdb7580b
3190test expr-28.487 {input floating-point conversion} {ieeeFloatingPoint} {
3191    # Ad2b d UN -318329953318553 E113 x -178358811cbc95_011111111111111111111111111111111111111111111111111110& E423
3192    convertToDouble -318329953318553E113
3193} 0xda678358811cbc95
3194test expr-28.488 {input floating-point conversion} {ieeeFloatingPoint} {
3195    # Ad2b d UN -462021993713370 E-73 x -128f9edfbd341f_0111111111111111111111111111111111111111111111111111111110& E-194
3196    convertToDouble -462021993713370E-73
3197} 0xb3d28f9edfbd341f
3198test expr-28.489 {input floating-point conversion} {ieeeFloatingPoint} {
3199    # Ad2b d UN +369617594970696 E-72 x 128f9edfbd341f_0111111111111111111111111111111111111111111111111111111110& E-191
3200    convertToDouble +369617594970696E-72
3201} 0x34028f9edfbd341f
3202test expr-28.490 {input floating-point conversion} {ieeeFloatingPoint} {
3203    # Ad2b d UN +3666156212014994 E233 x 1a37935f3b71c8_100000000000000000000000000000000000000000000000000000001& E825
3204    convertToDouble +3666156212014994E233
3205} 0x738a37935f3b71c9
3206test expr-28.491 {input floating-point conversion} {ieeeFloatingPoint} {
3207    # Ad2b d UN -1833078106007497 E233 x -1a37935f3b71c8_100000000000000000000000000000000000000000000000000000001& E824
3208    convertToDouble -1833078106007497E233
3209} 0xf37a37935f3b71c9
3210test expr-28.492 {input floating-point conversion} {ieeeFloatingPoint} {
3211    # Ad2b d UN +8301790508624232 E174 x 1dcfee6690ffc6_100000000000000000000000000000000000000000000000000000001& E630
3212    convertToDouble +8301790508624232E174
3213} 0x675dcfee6690ffc7
3214test expr-28.493 {input floating-point conversion} {ieeeFloatingPoint} {
3215    # Ad2b d UN -1037723813578029 E174 x -1dcfee6690ffc6_100000000000000000000000000000000000000000000000000000001& E627
3216    convertToDouble -1037723813578029E174
3217} 0xe72dcfee6690ffc7
3218test expr-28.494 {input floating-point conversion} {ieeeFloatingPoint} {
3219    # Ad2b d UN +7297662880581139 E-286 x 18ac8c79e1ff18_1000000000000000000000000000000000000000000000000000000000001& E-898
3220    convertToDouble +7297662880581139E-286
3221} 0x07d8ac8c79e1ff19
3222test expr-28.495 {input floating-point conversion} {ieeeFloatingPoint} {
3223    # Ad2b d UN -5106185698912191 E-276 x -141934d77659be_1000000000000000000000000000000000000000000000000000000000001& E-865
3224    convertToDouble -5106185698912191E-276
3225} 0x89e41934d77659bf
3226test expr-28.496 {input floating-point conversion} {ieeeFloatingPoint} {
3227    # Ad2b d UN +7487252720986826 E-165 x 18823a57adbef8_100000000000000000000000000000000000000000000000000000000000001& E-496
3228    convertToDouble +7487252720986826E-165
3229} 0x20f8823a57adbef9
3230test expr-28.497 {input floating-point conversion} {ieeeFloatingPoint} {
3231    # Ad2b d UN -3743626360493413 E-165 x -18823a57adbef8_100000000000000000000000000000000000000000000000000000000000001& E-497
3232    convertToDouble -3743626360493413E-165
3233} 0xa0e8823a57adbef9
3234test expr-28.498 {input floating-point conversion} {ieeeFloatingPoint} {
3235    # Ad2b d UN +3773057430100257 E230 x 1ba10d818fdafd_0111111111111111111111111111111111111111111111111111111110& E815
3236    convertToDouble +3773057430100257E230
3237} 0x72eba10d818fdafd
3238test expr-28.499 {input floating-point conversion} {ieeeFloatingPoint} {
3239    # Ad2b d UN -7546114860200514 E230 x -1ba10d818fdafd_0111111111111111111111111111111111111111111111111111111110& E816
3240    convertToDouble -7546114860200514E230
3241} 0xf2fba10d818fdafd
3242test expr-28.500 {input floating-point conversion} {ieeeFloatingPoint} {
3243    # Ad2b d UN +4321222892463822 E58 x 18750ea732fdad_011111111111111111111111111111111111111111111111111111110& E244
3244    convertToDouble +4321222892463822E58
3245} 0x4f38750ea732fdad
3246test expr-28.501 {input floating-point conversion} {ieeeFloatingPoint} {
3247    # Ad2b d UN -7793560217139653 E51 x -1280461b856ec5_0111111111111111111111111111111111111111111111111111111110& E222
3248    convertToDouble -7793560217139653E51
3249} 0xcdd280461b856ec5
3250test expr-28.502 {input floating-point conversion} {ieeeFloatingPoint} {
3251    # Ad2b d UN +26525993941010681 E112 x 187dcbf6ad5cf8_10000000000000000000000000000000000000000000000000000000000001& E426
3252    convertToDouble +26525993941010681E112
3253} 0x5a987dcbf6ad5cf9
3254test expr-28.503 {input floating-point conversion} {ieeeFloatingPoint} {
3255    # Ad2b d UN -53051987882021362 E112 x -187dcbf6ad5cf8_10000000000000000000000000000000000000000000000000000000000001& E427
3256    convertToDouble -53051987882021362E112
3257} 0xdaa87dcbf6ad5cf9
3258test expr-28.504 {input floating-point conversion} {ieeeFloatingPoint} {
3259    # Ad2b d UN +72844871414247907 E77 x 1bf00baf60b70c_100000000000000000000000000000000000000000000000000000000001& E311
3260    convertToDouble +72844871414247907E77
3261} 0x536bf00baf60b70d
3262test expr-28.505 {input floating-point conversion} {ieeeFloatingPoint} {
3263    # Ad2b d UN -88839359596763261 E105 x -1133b1a33a1108_100000000000000000000000000000000000000000000000000000000001& E405
3264    convertToDouble -88839359596763261E105
3265} 0xd94133b1a33a1109
3266test expr-28.506 {input floating-point conversion} {ieeeFloatingPoint} {
3267    # Ad2b d UN +18718131802467065 E-166 x 18823a57adbef8_100000000000000000000000000000000000000000000000000000000000001& E-498
3268    convertToDouble +18718131802467065E-166
3269} 0x20d8823a57adbef9
3270test expr-28.507 {input floating-point conversion} {ieeeFloatingPoint} {
3271    # Ad2b d UN -14974505441973652 E-165 x -18823a57adbef8_100000000000000000000000000000000000000000000000000000000000001& E-495
3272    convertToDouble -14974505441973652E-165
3273} 0xa108823a57adbef9
3274test expr-28.508 {input floating-point conversion} {ieeeFloatingPoint} {
3275    # Ad2b d UN +73429396004640239 E106 x 11c5cb19ef3451_01111111111111111111111111111111111111111111111111111111111110& E408
3276    convertToDouble +73429396004640239E106
3277} 0x5971c5cb19ef3451
3278test expr-28.509 {input floating-point conversion} {ieeeFloatingPoint} {
3279    # Ad2b d UN -58483921078398283 E57 x -108ce499519ce3_0111111111111111111111111111111111111111111111111111111111111110& E245
3280    convertToDouble -58483921078398283E57
3281} 0xcf408ce499519ce3
3282test expr-28.510 {input floating-point conversion} {ieeeFloatingPoint} {
3283    # Ad2b d UN +41391519190645203 E165 x 13f33667156017_011111111111111111111111111111111111111111111111111111111111110& E603
3284    convertToDouble +41391519190645203E165
3285} 0x65a3f33667156017
3286test expr-28.511 {input floating-point conversion} {ieeeFloatingPoint} {
3287    # Ad2b d UN -82783038381290406 E165 x -13f33667156017_011111111111111111111111111111111111111111111111111111111111110& E604
3288    convertToDouble -82783038381290406E165
3289} 0xe5b3f33667156017
3290test expr-28.512 {input floating-point conversion} {ieeeFloatingPoint} {
3291    # Ad2b d UN +58767043776702677 E-163 x 12c92fee3a3867_0111111111111111111111111111111111111111111111111111111111110& E-486
3292    convertToDouble +58767043776702677E-163
3293} 0x2192c92fee3a3867
3294test expr-28.513 {input floating-point conversion} {ieeeFloatingPoint} {
3295    # Ad2b d UN -90506231831231999 E-129 x -1bdc4114397ff3_01111111111111111111111111111111111111111111111111111111111110& E-373
3296    convertToDouble -90506231831231999E-129
3297} 0xa8abdc4114397ff3
3298test expr-28.514 {input floating-point conversion} {ieeeFloatingPoint} {
3299    # Ad2b d UN +64409240769861689 E-159 x 192238f7987779_011111111111111111111111111111111111111111111111111111111111110& E-473
3300    convertToDouble +64409240769861689E-159
3301} 0x22692238f7987779
3302test expr-28.515 {input floating-point conversion} {ieeeFloatingPoint} {
3303    # Ad2b d UN -77305427432277771 E-190 x -1e978b7780b613_0111111111111111111111111111111111111111111111111111111111110& E-576
3304    convertToDouble -77305427432277771E-190
3305} 0x9bfe978b7780b613
3306test expr-28.516 {input floating-point conversion} {ieeeFloatingPoint} {
3307    # Ad2b d UN +476592356619258326 E273 x 1873cf8ee72812_10000000000000000000000000000000000000000000000000000000000000001& E965
3308    convertToDouble +476592356619258326E273
3309} 0x7c4873cf8ee72813
3310test expr-28.517 {input floating-point conversion} {ieeeFloatingPoint} {
3311    # Ad2b d UN -953184713238516652 E273 x -1873cf8ee72812_10000000000000000000000000000000000000000000000000000000000000001& E966
3312    convertToDouble -953184713238516652E273
3313} 0xfc5873cf8ee72813
3314test expr-28.518 {input floating-point conversion} {ieeeFloatingPoint} {
3315    # Ad2b d UN +899810892172646163 E283 x 1adf51fa055e02_100000000000000000000000000000000000000000000000000000000000000000001& E999
3316    convertToDouble +899810892172646163E283
3317} 0x7e6adf51fa055e03
3318test expr-28.519 {input floating-point conversion} {ieeeFloatingPoint} {
3319    # Ad2b d UN -929167076892018333 E187 x -1da2c42fce2bc4_10000000000000000000000000000000000000000000000000000000000000000001& E680
3320    convertToDouble -929167076892018333E187
3321} 0xea7da2c42fce2bc5
3322test expr-28.520 {input floating-point conversion} {ieeeFloatingPoint} {
3323    # Ad2b d UN +647761278967534239 E-312 x 1a7a2476ec0b3e_10000000000000000000000000000000000000000000000000000000000000001& E-978
3324    convertToDouble +647761278967534239E-312
3325} 0x02da7a2476ec0b3f
3326test expr-28.521 {input floating-point conversion} {ieeeFloatingPoint} {
3327    # Ad2b d UN -644290479820542942 E-180 x -128d1407dfa832_10000000000000000000000000000000000000000000000000000000000000001& E-539
3328    convertToDouble -644290479820542942E-180
3329} 0x9e428d1407dfa833
3330test expr-28.522 {input floating-point conversion} {ieeeFloatingPoint} {
3331    # Ad2b d UN +926145344610700019 E-225 x 1307a67f1f69fe_10000000000000000000000000000000000000000000000000000000000000000001& E-688
3332    convertToDouble +926145344610700019E-225
3333} 0x14f307a67f1f69ff
3334test expr-28.523 {input floating-point conversion} {ieeeFloatingPoint} {
3335    # Ad2b d UN -958507931896511964 E-246 x -17406753df2f0c_10000000000000000000000000000000000000000000000000000000000000001& E-758
3336    convertToDouble -958507931896511964E-246
3337} 0x9097406753df2f0d
3338test expr-28.524 {input floating-point conversion} {ieeeFloatingPoint} {
3339    # Ad2b d UN +272104041512242479 E200 x 13bbb4bf05f087_011111111111111111111111111111111111111111111111111111111111111111111110& E722
3340    convertToDouble +272104041512242479E200
3341} 0x6d13bbb4bf05f087
3342test expr-28.525 {input floating-point conversion} {ieeeFloatingPoint} {
3343    # Ad2b d UN -792644927852378159 E79 x -1daff0048f3ec7_011111111111111111111111111111111111111111111111111111111111111111110& E321
3344    convertToDouble -792644927852378159E79
3345} 0xd40daff0048f3ec7
3346test expr-28.526 {input floating-point conversion} {ieeeFloatingPoint} {
3347    # Ad2b d UN +544208083024484958 E200 x 13bbb4bf05f087_011111111111111111111111111111111111111111111111111111111111111111111110& E723
3348    convertToDouble +544208083024484958E200
3349} 0x6d23bbb4bf05f087
3350test expr-28.527 {input floating-point conversion} {ieeeFloatingPoint} {
3351    # Ad2b d UN -929963218616126365 E290 x -108dcc0c505461_01111111111111111111111111111111111111111111111111111111111111110& E1023
3352    convertToDouble -929963218616126365E290
3353} 0xffe08dcc0c505461
3354test expr-28.528 {input floating-point conversion} {ieeeFloatingPoint} {
3355    # Ad2b d UN +305574339166810102 E-219 x 17f399fe02c4b9_011111111111111111111111111111111111111111111111111111111111111110& E-670
3356    convertToDouble +305574339166810102E-219
3357} 0x1617f399fe02c4b9
3358test expr-28.529 {input floating-point conversion} {ieeeFloatingPoint} {
3359    # Ad2b d UN -152787169583405051 E-219 x -17f399fe02c4b9_011111111111111111111111111111111111111111111111111111111111111110& E-671
3360    convertToDouble -152787169583405051E-219
3361} 0x9607f399fe02c4b9
3362test expr-28.530 {input floating-point conversion} {ieeeFloatingPoint} {
3363    # Ad2b d UN +611148678333620204 E-219 x 17f399fe02c4b9_011111111111111111111111111111111111111111111111111111111111111110& E-669
3364    convertToDouble +611148678333620204E-219
3365} 0x1627f399fe02c4b9
3366test expr-28.531 {input floating-point conversion} {ieeeFloatingPoint} {
3367    # Ad2b d UN -763935847917025255 E-220 x -17f399fe02c4b9_011111111111111111111111111111111111111111111111111111111111111110& E-672
3368    convertToDouble -763935847917025255E-220
3369} 0x95f7f399fe02c4b9
3370test expr-28.532 {input floating-point conversion} {ieeeFloatingPoint} {
3371    # Ad2b d UN +7439550220920798612 E158 x 177fe14f40159a_10000000000000000000000000000000000000000000000000000000000000000000001& E587
3372    convertToDouble +7439550220920798612E158
3373} 0x64a77fe14f40159b
3374test expr-28.533 {input floating-point conversion} {ieeeFloatingPoint} {
3375    # Ad2b d UN -3719775110460399306 E158 x -177fe14f40159a_10000000000000000000000000000000000000000000000000000000000000000000001& E586
3376    convertToDouble -3719775110460399306E158
3377} 0xe4977fe14f40159b
3378test expr-28.534 {input floating-point conversion} {ieeeFloatingPoint} {
3379    # Ad2b d UN +9299437776150998265 E157 x 177fe14f40159a_10000000000000000000000000000000000000000000000000000000000000000000001& E584
3380    convertToDouble +9299437776150998265E157
3381} 0x64777fe14f40159b
3382test expr-28.535 {input floating-point conversion} {ieeeFloatingPoint} {
3383    # Ad2b d UN -7120190517612959703 E120 x -13220dcd5899fc_1000000000000000000000000000000000000000000000000000000000000000000000001& E461
3384    convertToDouble -7120190517612959703E120
3385} 0xdcc3220dcd5899fd
3386test expr-28.536 {input floating-point conversion} {ieeeFloatingPoint} {
3387    # Ad2b d UN +3507665085003296281 E-73 x 11339818257f0e_100000000000000000000000000000000000000000000000000000000000000000000001& E-181
3388    convertToDouble +3507665085003296281E-73
3389} 0x34a1339818257f0f
3390test expr-28.537 {input floating-point conversion} {ieeeFloatingPoint} {
3391    # Ad2b d UN -7015330170006592562 E-73 x -11339818257f0e_100000000000000000000000000000000000000000000000000000000000000000000001& E-180
3392    convertToDouble -7015330170006592562E-73
3393} 0xb4b1339818257f0f
3394test expr-28.538 {input floating-point conversion} {ieeeFloatingPoint} {
3395    # Ad2b d UN -6684428762278255956 E-294 x -1d9f82a1a6b1b8_10000000000000000000000000000000000000000000000000000000000000000001& E-915
3396    convertToDouble -6684428762278255956E-294
3397} 0x86cd9f82a1a6b1b9
3398test expr-28.539 {input floating-point conversion} {ieeeFloatingPoint} {
3399    # Ad2b d UN -1088416166048969916 E200 x -13bbb4bf05f087_011111111111111111111111111111111111111111111111111111111111111111111110& E724
3400    convertToDouble -1088416166048969916E200
3401} 0xed33bbb4bf05f087
3402test expr-28.540 {input floating-point conversion} {ieeeFloatingPoint} {
3403    # Ad2b d UN -8707329328391759328 E200 x -13bbb4bf05f087_011111111111111111111111111111111111111111111111111111111111111111111110& E727
3404    convertToDouble -8707329328391759328E200
3405} 0xed63bbb4bf05f087
3406test expr-28.541 {input floating-point conversion} {ieeeFloatingPoint} {
3407    # Ad2b d UN +4439021781608558002 E-65 x 1038168b71e2c9_01111111111111111111111111111111111111111111111111111111111111111110& E-154
3408    convertToDouble +4439021781608558002E-65
3409} 0x365038168b71e2c9
3410test expr-28.542 {input floating-point conversion} {ieeeFloatingPoint} {
3411    # Ad2b d UN -8878043563217116004 E-65 x -1038168b71e2c9_01111111111111111111111111111111111111111111111111111111111111111110& E-153
3412    convertToDouble -8878043563217116004E-65
3413} 0xb66038168b71e2c9
3414test expr-28.543 {input floating-point conversion} {ieeeFloatingPoint} {
3415    # Ad2b d UN +2219510890804279001 E-65 x 1038168b71e2c9_01111111111111111111111111111111111111111111111111111111111111111110& E-155
3416    convertToDouble +2219510890804279001E-65
3417} 0x364038168b71e2c9
3418test expr-28.544 {input floating-point conversion} {ieeeFloatingPoint} {
3419    # Ad2b d UN +33051223951904955802 E55 x 1762068a24fd54_1000000000000000000000000000000000000000000000000000000000000000000000001& E247
3420    convertToDouble +33051223951904955802E55
3421} 0x4f6762068a24fd55
3422test expr-28.545 {input floating-point conversion} {ieeeFloatingPoint} {
3423    # Ad2b d UN -56961524140903677624 E120 x -13220dcd5899fc_1000000000000000000000000000000000000000000000000000000000000000000000001& E464
3424    convertToDouble -56961524140903677624E120
3425} 0xdcf3220dcd5899fd
3426test expr-28.546 {input floating-point conversion} {ieeeFloatingPoint} {
3427    # Ad2b d UN +71201905176129597030 E119 x 13220dcd5899fc_1000000000000000000000000000000000000000000000000000000000000000000000001& E461
3428    convertToDouble +71201905176129597030E119
3429} 0x5cc3220dcd5899fd
3430test expr-28.547 {input floating-point conversion} {ieeeFloatingPoint} {
3431    # Ad2b d UN +14030660340013185124 E-73 x 11339818257f0e_100000000000000000000000000000000000000000000000000000000000000000000001& E-179
3432    convertToDouble +14030660340013185124E-73
3433} 0x34c1339818257f0f
3434test expr-28.548 {input floating-point conversion} {ieeeFloatingPoint} {
3435    # Ad2b d UN -17538325425016481405 E-74 x -11339818257f0e_100000000000000000000000000000000000000000000000000000000000000000000001& E-182
3436    convertToDouble -17538325425016481405E-74
3437} 0xb491339818257f0f
3438test expr-28.549 {input floating-point conversion} {ieeeFloatingPoint} {
3439    # Ad2b d UN +67536228609141569109 E-133 x 10a1b35cf2a635_01111111111111111111111111111111111111111111111111111111111111111111110& E-376
3440    convertToDouble +67536228609141569109E-133
3441} 0x2870a1b35cf2a635
3442test expr-28.550 {input floating-point conversion} {ieeeFloatingPoint} {
3443    # Ad2b d UN -35620497849450218807 E-306 x -15b22082529425_0111111111111111111111111111111111111111111111111111111111111111111111110& E-952
3444    convertToDouble -35620497849450218807E-306
3445} 0x8475b22082529425
3446test expr-28.551 {input floating-point conversion} {ieeeFloatingPoint} {
3447    # Ad2b d UN +66550376797582521751 E-126 x 13897c0ede6c69_01111111111111111111111111111111111111111111111111111111111111111111110& E-353
3448    convertToDouble +66550376797582521751E-126
3449} 0x29e3897c0ede6c69
3450test expr-28.552 {input floating-point conversion} {ieeeFloatingPoint} {
3451    # Ad2b d UN -71240995698900437614 E-306 x -15b22082529425_0111111111111111111111111111111111111111111111111111111111111111111111110& E-951
3452    convertToDouble -71240995698900437614E-306
3453} 0x8485b22082529425
3454test expr-28.553 {input floating-point conversion} {ieeeFloatingPoint} {
3455    # Ad2b dieee UN +3 E24 x 13da329b633647_0001& E81
3456    convertToDouble +3E24
3457} 0x4503da329b633647
3458test expr-28.554 {input floating-point conversion} {ieeeFloatingPoint} {
3459    # Ad2b dieee UN -6 E24 x -13da329b633647_0001& E82
3460    convertToDouble -6E24
3461} 0xc513da329b633647
3462test expr-28.555 {input floating-point conversion} {ieeeFloatingPoint} {
3463    # Ad2b dieee UN +6 E26 x 1f04ef12cb04cf_0001& E88
3464    convertToDouble +6E26
3465} 0x457f04ef12cb04cf
3466test expr-28.556 {input floating-point conversion} {ieeeFloatingPoint} {
3467    # Ad2b dieee UN -7 E25 x -1cf389cd46047d_0000001& E85
3468    convertToDouble -7E25
3469} 0xc54cf389cd46047d
3470test expr-28.557 {input floating-point conversion} {ieeeFloatingPoint} {
3471    # Ad2b dieee UN +1 E-14 x 16849b86a12b9b_00000001& E-47
3472    convertToDouble +1E-14
3473} 0x3d06849b86a12b9b
3474test expr-28.558 {input floating-point conversion} {ieeeFloatingPoint} {
3475    # Ad2b dieee UN -2 E-14 x -16849b86a12b9b_00000001& E-46
3476    convertToDouble -2E-14
3477} 0xbd16849b86a12b9b
3478test expr-28.559 {input floating-point conversion} {ieeeFloatingPoint} {
3479    # Ad2b dieee UN +4 E-14 x 16849b86a12b9b_00000001& E-45
3480    convertToDouble +4E-14
3481} 0x3d26849b86a12b9b
3482test expr-28.560 {input floating-point conversion} {ieeeFloatingPoint} {
3483    # Ad2b dieee UN -8 E-14 x -16849b86a12b9b_00000001& E-44
3484    convertToDouble -8E-14
3485} 0xbd36849b86a12b9b
3486test expr-28.561 {input floating-point conversion} {ieeeFloatingPoint} {
3487    # Ad2b dieee UN +5 E26 x 19d971e4fe8401_1110& E88
3488    convertToDouble +5E26
3489} 0x4579d971e4fe8402
3490test expr-28.562 {input floating-point conversion} {ieeeFloatingPoint} {
3491    # Ad2b dieee UN -8 E27 x -19d971e4fe8401_1110& E92
3492    convertToDouble -8E27
3493} 0xc5b9d971e4fe8402
3494test expr-28.563 {input floating-point conversion} {ieeeFloatingPoint} {
3495    # Ad2b dieee UN +1 E27 x 19d971e4fe8401_1110& E89
3496    convertToDouble +1E27
3497} 0x4589d971e4fe8402
3498test expr-28.564 {input floating-point conversion} {ieeeFloatingPoint} {
3499    # Ad2b dieee UN -4 E27 x -19d971e4fe8401_1110& E91
3500    convertToDouble -4E27
3501} 0xc5a9d971e4fe8402
3502test expr-28.565 {input floating-point conversion} {ieeeFloatingPoint} {
3503    # Ad2b dieee UN +9 E-13 x 1faa7ab552a551_111110& E-41
3504    convertToDouble +9E-13
3505} 0x3d6faa7ab552a552
3506test expr-28.566 {input floating-point conversion} {ieeeFloatingPoint} {
3507    # Ad2b dieee UN -7 E-20 x -14a90ceafff9de_11110& E-64
3508    convertToDouble -7E-20
3509} 0xbbf4a90ceafff9df
3510test expr-28.567 {input floating-point conversion} {ieeeFloatingPoint} {
3511    # Ad2b dieee UN +56 E25 x 1cf389cd46047d_0000001& E88
3512    convertToDouble +56E25
3513} 0x457cf389cd46047d
3514test expr-28.568 {input floating-point conversion} {ieeeFloatingPoint} {
3515    # Ad2b dieee UN -70 E24 x -1cf389cd46047d_0000001& E85
3516    convertToDouble -70E24
3517} 0xc54cf389cd46047d
3518test expr-28.569 {input floating-point conversion} {ieeeFloatingPoint} {
3519    # Ad2b dieee UN +51 E26 x 107a9f01fbda8e_0000001& E92
3520    convertToDouble +51E26
3521} 0x45b07a9f01fbda8e
3522test expr-28.570 {input floating-point conversion} {ieeeFloatingPoint} {
3523    # Ad2b dieee UN +71 E-17 x 19949819f693d7_00000000001& E-51
3524    convertToDouble +71E-17
3525} 0x3cc9949819f693d7
3526test expr-28.571 {input floating-point conversion} {ieeeFloatingPoint} {
3527    # Ad2b dieee UN -31 E-5 x -1450efdc9c4da9_00000000001& E-12
3528    convertToDouble -31E-5
3529} 0xbf3450efdc9c4da9
3530test expr-28.572 {input floating-point conversion} {ieeeFloatingPoint} {
3531    # Ad2b dieee UN +62 E-5 x 1450efdc9c4da9_00000000001& E-11
3532    convertToDouble +62E-5
3533} 0x3f4450efdc9c4da9
3534test expr-28.573 {input floating-point conversion} {ieeeFloatingPoint} {
3535    # Ad2b dieee UN -94 E-8 x -1f8a89dc374df5_0000000001& E-21
3536    convertToDouble -94E-8
3537} 0xbeaf8a89dc374df5
3538test expr-28.574 {input floating-point conversion} {ieeeFloatingPoint} {
3539    # Ad2b dieee UN +67 E27 x 1b0fa33bba7231_11111110& E95
3540    convertToDouble +67E27
3541} 0x45eb0fa33bba7232
3542test expr-28.575 {input floating-point conversion} {ieeeFloatingPoint} {
3543    # Ad2b dieee UN -81 E24 x -10c01ab31bb5cb_1111110& E86
3544    convertToDouble -81E24
3545} 0xc550c01ab31bb5cc
3546test expr-28.576 {input floating-point conversion} {ieeeFloatingPoint} {
3547    # Ad2b dieee UN +54 E23 x 11ddfa58a6173f_111110& E82
3548    convertToDouble +54E23
3549} 0x4511ddfa58a61740
3550test expr-28.577 {input floating-point conversion} {ieeeFloatingPoint} {
3551    # Ad2b dieee UN -54 E25 x -1bead72a838453_111110& E88
3552    convertToDouble -54E25
3553} 0xc57bead72a838454
3554test expr-28.578 {input floating-point conversion} {ieeeFloatingPoint} {
3555    # Ad2b dieee UN +63 E-22 x 1dc03b8fd70169_11111111110& E-68
3556    convertToDouble +63E-22
3557} 0x3bbdc03b8fd7016a
3558test expr-28.579 {input floating-point conversion} {ieeeFloatingPoint} {
3559    # Ad2b dieee UN -63 E-23 x -17ccfc73126787_11111111110& E-71
3560    convertToDouble -63E-23
3561} 0xbb87ccfc73126788
3562test expr-28.580 {input floating-point conversion} {ieeeFloatingPoint} {
3563    # Ad2b dieee UN +43 E-4 x 119ce075f6fd21_111111110& E-8
3564    convertToDouble +43E-4
3565} 0x3f719ce075f6fd22
3566test expr-28.581 {input floating-point conversion} {ieeeFloatingPoint} {
3567    # Ad2b dieee UN -86 E-4 x -119ce075f6fd21_111111110& E-7
3568    convertToDouble -86E-4
3569} 0xbf819ce075f6fd22
3570test expr-28.582 {input floating-point conversion} {ieeeFloatingPoint} {
3571    # Ad2b dieee UN +942 E26 x 1306069e8681f3_00000000001& E96
3572    convertToDouble +942E26
3573} 0x45f306069e8681f3
3574test expr-28.583 {input floating-point conversion} {ieeeFloatingPoint} {
3575    # Ad2b dieee UN -471 E25 x -1e700a973d9cb8_0000000001& E91
3576    convertToDouble -471E25
3577} 0xc5ae700a973d9cb8
3578test expr-28.584 {input floating-point conversion} {ieeeFloatingPoint} {
3579    # Ad2b dieee UN +803 E24 x 14c1cee9cd666b_000000000001& E89
3580    convertToDouble +803E24
3581} 0x4584c1cee9cd666b
3582test expr-28.585 {input floating-point conversion} {ieeeFloatingPoint} {
3583    # Ad2b dieee UN -471 E26 x -1306069e8681f3_00000000001& E95
3584    convertToDouble -471E26
3585} 0xc5e306069e8681f3
3586test expr-28.586 {input floating-point conversion} {ieeeFloatingPoint} {
3587    # Ad2b dieee UN -409 E-21 x -1e2dcaa4115622_000000000001& E-62
3588    convertToDouble -409E-21
3589} 0xbc1e2dcaa4115622
3590test expr-28.587 {input floating-point conversion} {ieeeFloatingPoint} {
3591    # Ad2b dieee UN +818 E-21 x 1e2dcaa4115622_000000000001& E-61
3592    convertToDouble +818E-21
3593} 0x3c2e2dcaa4115622
3594test expr-28.588 {input floating-point conversion} {ieeeFloatingPoint} {
3595    # Ad2b dieee UN -867 E-8 x -122eabba029aba_000000000001& E-17
3596    convertToDouble -867E-8
3597} 0xbee22eabba029aba
3598test expr-28.589 {input floating-point conversion} {ieeeFloatingPoint} {
3599    # Ad2b dieee UN +538 E27 x 1b297cad9f70b5_1111111111111110& E98
3600    convertToDouble +538E27
3601} 0x461b297cad9f70b6
3602test expr-28.590 {input floating-point conversion} {ieeeFloatingPoint} {
3603    # Ad2b dieee UN -857 E24 x -16272678ba603b_11111111110& E89
3604    convertToDouble -857E24
3605} 0xc586272678ba603c
3606test expr-28.591 {input floating-point conversion} {ieeeFloatingPoint} {
3607    # Ad2b dieee UN +269 E27 x 1b297cad9f70b5_1111111111111110& E97
3608    convertToDouble +269E27
3609} 0x460b297cad9f70b6
3610test expr-28.592 {input floating-point conversion} {ieeeFloatingPoint} {
3611    # Ad2b dieee UN -403 E26 x -1046ec1e31dd85_1111111110& E95
3612    convertToDouble -403E26
3613} 0xc5e046ec1e31dd86
3614test expr-28.593 {input floating-point conversion} {ieeeFloatingPoint} {
3615    # Ad2b dieee UN +959 E-7 x 1923bd746a3527_11111111111110& E-14
3616    convertToDouble +959E-7
3617} 0x3f1923bd746a3528
3618test expr-28.594 {input floating-point conversion} {ieeeFloatingPoint} {
3619    # Ad2b dieee UN -959 E-6 x -1f6cacd184c271_1111111111110& E-11
3620    convertToDouble -959E-6
3621} 0xbf4f6cacd184c272
3622test expr-28.595 {input floating-point conversion} {ieeeFloatingPoint} {
3623    # Ad2b dieee UN +373 E-27 x 1cdc06b20ef182_1111111111110& E-82
3624    convertToDouble +373E-27
3625} 0x3adcdc06b20ef183
3626test expr-28.596 {input floating-point conversion} {ieeeFloatingPoint} {
3627    # Ad2b dieee UN -746 E-27 x -1cdc06b20ef182_1111111111110& E-81
3628    convertToDouble -746E-27
3629} 0xbaecdc06b20ef183
3630test expr-28.597 {input floating-point conversion} {ieeeFloatingPoint} {
3631    # Ad2b dieee UN +4069 E24 x 1a4b9887fbfe7a_0000000000001& E91
3632    convertToDouble +4069E24
3633} 0x45aa4b9887fbfe7a
3634test expr-28.598 {input floating-point conversion} {ieeeFloatingPoint} {
3635    # Ad2b dieee UN -4069 E23 x -150946d32ffec8_0000000000001& E88
3636    convertToDouble -4069E23
3637} 0xc5750946d32ffec8
3638test expr-28.599 {input floating-point conversion} {ieeeFloatingPoint} {
3639    # Ad2b dieee UN -8138 E24 x -1a4b9887fbfe7a_0000000000001& E92
3640    convertToDouble -8138E24
3641} 0xc5ba4b9887fbfe7a
3642test expr-28.600 {input floating-point conversion} {ieeeFloatingPoint} {
3643    # Ad2b dieee UN +8294 E-15 x 123d1b5eb1d778_000000000000000001& E-37
3644    convertToDouble +8294E-15
3645} 0x3da23d1b5eb1d778
3646test expr-28.601 {input floating-point conversion} {ieeeFloatingPoint} {
3647    # Ad2b dieee UN -4147 E-14 x -16cc62365e4d56_00000000000000001& E-35
3648    convertToDouble -4147E-14
3649} 0xbdc6cc62365e4d56
3650test expr-28.602 {input floating-point conversion} {ieeeFloatingPoint} {
3651    # Ad2b dieee UN +4147 E-15 x 123d1b5eb1d778_000000000000000001& E-38
3652    convertToDouble +4147E-15
3653} 0x3d923d1b5eb1d778
3654test expr-28.603 {input floating-point conversion} {ieeeFloatingPoint} {
3655    # Ad2b dieee UN -8294 E-14 x -16cc62365e4d56_00000000000000001& E-34
3656    convertToDouble -8294E-14
3657} 0xbdd6cc62365e4d56
3658test expr-28.604 {input floating-point conversion} {ieeeFloatingPoint} {
3659    # Ad2b dieee UN +538 E27 x 1b297cad9f70b5_1111111111111110& E98
3660    convertToDouble +538E27
3661} 0x461b297cad9f70b6
3662test expr-28.605 {input floating-point conversion} {ieeeFloatingPoint} {
3663    # Ad2b dieee UN -2690 E26 x -1b297cad9f70b5_1111111111111110& E97
3664    convertToDouble -2690E26
3665} 0xc60b297cad9f70b6
3666test expr-28.606 {input floating-point conversion} {ieeeFloatingPoint} {
3667    # Ad2b dieee UN +269 E27 x 1b297cad9f70b5_1111111111111110& E97
3668    convertToDouble +269E27
3669} 0x460b297cad9f70b6
3670test expr-28.607 {input floating-point conversion} {ieeeFloatingPoint} {
3671    # Ad2b dieee UN -2152 E27 x -1b297cad9f70b5_1111111111111110& E100
3672    convertToDouble -2152E27
3673} 0xc63b297cad9f70b6
3674test expr-28.608 {input floating-point conversion} {ieeeFloatingPoint} {
3675    # Ad2b dieee UN +1721 E-17 x 136071dcae4564_111111111111110& E-46
3676    convertToDouble +1721E-17
3677} 0x3d136071dcae4565
3678test expr-28.609 {input floating-point conversion} {ieeeFloatingPoint} {
3679    # Ad2b dieee UN -7979 E-27 x -134ac304747faf_111111111111110& E-77
3680    convertToDouble -7979E-27
3681} 0xbb234ac304747fb0
3682test expr-28.610 {input floating-point conversion} {ieeeFloatingPoint} {
3683    # Ad2b dieee UN +6884 E-17 x 136071dcae4564_111111111111110& E-44
3684    convertToDouble +6884E-17
3685} 0x3d336071dcae4565
3686test expr-28.611 {input floating-point conversion} {ieeeFloatingPoint} {
3687    # Ad2b dieee UN -8605 E-18 x -136071dcae4564_111111111111110& E-47
3688    convertToDouble -8605E-18
3689} 0xbd036071dcae4565
3690test expr-28.612 {input floating-point conversion} {ieeeFloatingPoint} {
3691    # Ad2b dieee UN +82854 E27 x 10570ed9e3cecc_00000000000000001& E106
3692    convertToDouble +82854E27
3693} 0x4690570ed9e3cecc
3694test expr-28.613 {input floating-point conversion} {ieeeFloatingPoint} {
3695    # Ad2b dieee UN -55684 E24 x -167d9735144ae3_00000000000000001& E95
3696    convertToDouble -55684E24
3697} 0xc5e67d9735144ae3
3698test expr-28.614 {input floating-point conversion} {ieeeFloatingPoint} {
3699    # Ad2b dieee UN +27842 E24 x 167d9735144ae3_00000000000000001& E94
3700    convertToDouble +27842E24
3701} 0x45d67d9735144ae3
3702test expr-28.615 {input floating-point conversion} {ieeeFloatingPoint} {
3703    # Ad2b dieee UN -48959 E25 x -18b7cd6ca56f85_00000000000000001& E98
3704    convertToDouble -48959E25
3705} 0xc618b7cd6ca56f85
3706test expr-28.616 {input floating-point conversion} {ieeeFloatingPoint} {
3707    # Ad2b dieee UN +81921 E-17 x 1cd2c9a6cdd003_000000000000000000001& E-41
3708    convertToDouble +81921E-17
3709} 0x3d6cd2c9a6cdd003
3710test expr-28.617 {input floating-point conversion} {ieeeFloatingPoint} {
3711    # Ad2b dieee UN -76207 E-8 x -18f8b4dd16f1df_0000000000000000001& E-11
3712    convertToDouble -76207E-8
3713} 0xbf48f8b4dd16f1df
3714test expr-28.618 {input floating-point conversion} {ieeeFloatingPoint} {
3715    # Ad2b dieee UN +4147 E-15 x 123d1b5eb1d778_000000000000000001& E-38
3716    convertToDouble +4147E-15
3717} 0x3d923d1b5eb1d778
3718test expr-28.619 {input floating-point conversion} {ieeeFloatingPoint} {
3719    # Ad2b dieee UN -41470 E-16 x -123d1b5eb1d778_000000000000000001& E-38
3720    convertToDouble -41470E-16
3721} 0xbd923d1b5eb1d778
3722test expr-28.620 {input floating-point conversion} {ieeeFloatingPoint} {
3723    # Ad2b dieee UN +89309 E24 x 12092ac5f2019e_1111111111111111110& E96
3724    convertToDouble +89309E24
3725} 0x45f2092ac5f2019f
3726test expr-28.621 {input floating-point conversion} {ieeeFloatingPoint} {
3727    # Ad2b dieee UN +75859 E26 x 17efd75a2938eb_1111111111111111111110& E102
3728    convertToDouble +75859E26
3729} 0x4657efd75a2938ec
3730test expr-28.622 {input floating-point conversion} {ieeeFloatingPoint} {
3731    # Ad2b dieee UN -75859 E25 x -132645e1ba93ef_1111111111111111111110& E99
3732    convertToDouble -75859E25
3733} 0xc6232645e1ba93f0
3734test expr-28.623 {input floating-point conversion} {ieeeFloatingPoint} {
3735    # Ad2b dieee UN +14257 E-23 x 150a246ecd44f2_1111111111111111110& E-63
3736    convertToDouble +14257E-23
3737} 0x3c050a246ecd44f3
3738test expr-28.624 {input floating-point conversion} {ieeeFloatingPoint} {
3739    # Ad2b dieee UN -28514 E-23 x -150a246ecd44f2_1111111111111111110& E-62
3740    convertToDouble -28514E-23
3741} 0xbc150a246ecd44f3
3742test expr-28.625 {input floating-point conversion} {ieeeFloatingPoint} {
3743    # Ad2b dieee UN +57028 E-23 x 150a246ecd44f2_1111111111111111110& E-61
3744    convertToDouble +57028E-23
3745} 0x3c250a246ecd44f3
3746test expr-28.626 {input floating-point conversion} {ieeeFloatingPoint} {
3747    # Ad2b dieee UN -71285 E-24 x -150a246ecd44f2_1111111111111111110& E-64
3748    convertToDouble -71285E-24
3749} 0xbbf50a246ecd44f3
3750test expr-28.627 {input floating-point conversion} {ieeeFloatingPoint} {
3751    # Ad2b dieee UN +344863 E27 x 1100c873963d6d_00000000000000000001& E108
3752    convertToDouble +344863E27
3753} 0x46b100c873963d6d
3754test expr-28.628 {input floating-point conversion} {ieeeFloatingPoint} {
3755    # Ad2b dieee UN -951735 E27 x -17764ad224e24a_000000000000000000001& E109
3756    convertToDouble -951735E27
3757} 0xc6c7764ad224e24a
3758test expr-28.629 {input floating-point conversion} {ieeeFloatingPoint} {
3759    # Ad2b dieee UN +200677 E23 x 1035e73135b834_0000000000000000001& E94
3760    convertToDouble +200677E23
3761} 0x45d035e73135b834
3762test expr-28.630 {input floating-point conversion} {ieeeFloatingPoint} {
3763    # Ad2b dieee UN -401354 E24 x -144360fd832641_0000000000000000001& E98
3764    convertToDouble -401354E24
3765} 0xc6144360fd832641
3766test expr-28.631 {input floating-point conversion} {ieeeFloatingPoint} {
3767    # Ad2b dieee UN +839604 E-11 x 119b96f36ec68b_00000000000000000000000001& E-17
3768    convertToDouble +839604E-11
3769} 0x3ee19b96f36ec68b
3770test expr-28.632 {input floating-point conversion} {ieeeFloatingPoint} {
3771    # Ad2b dieee UN -209901 E-11 x -119b96f36ec68b_00000000000000000000000001& E-19
3772    convertToDouble -209901E-11
3773} 0xbec19b96f36ec68b
3774test expr-28.633 {input floating-point conversion} {ieeeFloatingPoint} {
3775    # Ad2b dieee UN +419802 E-11 x 119b96f36ec68b_00000000000000000000000001& E-18
3776    convertToDouble +419802E-11
3777} 0x3ed19b96f36ec68b
3778test expr-28.634 {input floating-point conversion} {ieeeFloatingPoint} {
3779    # Ad2b dieee UN -537734 E-24 x -13d6c1088ae40e_0000000000000000000001& E-61
3780    convertToDouble -537734E-24
3781} 0xbc23d6c1088ae40e
3782test expr-28.635 {input floating-point conversion} {ieeeFloatingPoint} {
3783    # Ad2b dieee UN +910308 E26 x 11f3e1839eeab0_11111111111111111111110& E106
3784    convertToDouble +910308E26
3785} 0x4691f3e1839eeab1
3786test expr-28.636 {input floating-point conversion} {ieeeFloatingPoint} {
3787    # Ad2b dieee UN -227577 E26 x -11f3e1839eeab0_11111111111111111111110& E104
3788    convertToDouble -227577E26
3789} 0xc671f3e1839eeab1
3790test expr-28.637 {input floating-point conversion} {ieeeFloatingPoint} {
3791    # Ad2b dieee UN +455154 E26 x 11f3e1839eeab0_11111111111111111111110& E105
3792    convertToDouble +455154E26
3793} 0x4681f3e1839eeab1
3794test expr-28.638 {input floating-point conversion} {ieeeFloatingPoint} {
3795    # Ad2b dieee UN -531013 E25 x -10c17d25834171_11111111111111111111110& E102
3796    convertToDouble -531013E25
3797} 0xc650c17d25834172
3798test expr-28.639 {input floating-point conversion} {ieeeFloatingPoint} {
3799    # Ad2b dieee UN +963019 E-21 x 11592429784914_11111111111111111111110& E-50
3800    convertToDouble +963019E-21
3801} 0x3cd1592429784915
3802test expr-28.640 {input floating-point conversion} {ieeeFloatingPoint} {
3803    # Ad2b dieee UN -519827 E-13 x -1be872a8b30d7c_11111111111111111111110& E-25
3804    convertToDouble -519827E-13
3805} 0xbe6be872a8b30d7d
3806test expr-28.641 {input floating-point conversion} {ieeeFloatingPoint} {
3807    # Ad2b dieee UN +623402 E-27 x 178d2c97bde2a0_11111111111111111111110& E-71
3808    convertToDouble +623402E-27
3809} 0x3b878d2c97bde2a1
3810test expr-28.642 {input floating-point conversion} {ieeeFloatingPoint} {
3811    # Ad2b dieee UN -311701 E-27 x -178d2c97bde2a0_11111111111111111111110& E-72
3812    convertToDouble -311701E-27
3813} 0xbb778d2c97bde2a1
3814test expr-28.643 {input floating-point conversion} {ieeeFloatingPoint} {
3815    # Ad2b dieee UN +9613651 E26 x 17b31116270d9b_000000000000000000000001& E109
3816    convertToDouble +9613651E26
3817} 0x46c7b31116270d9b
3818test expr-28.644 {input floating-point conversion} {ieeeFloatingPoint} {
3819    # Ad2b dieee UN -9191316 E23 x -1733bfae0801fd_0000000000000000000001& E99
3820    convertToDouble -9191316E23
3821} 0xc62733bfae0801fd
3822test expr-28.645 {input floating-point conversion} {ieeeFloatingPoint} {
3823    # Ad2b dieee UN +4595658 E23 x 1733bfae0801fd_0000000000000000000001& E98
3824    convertToDouble +4595658E23
3825} 0x461733bfae0801fd
3826test expr-28.646 {input floating-point conversion} {ieeeFloatingPoint} {
3827    # Ad2b dieee UN -2297829 E23 x -1733bfae0801fd_0000000000000000000001& E97
3828    convertToDouble -2297829E23
3829} 0xc60733bfae0801fd
3830test expr-28.647 {input floating-point conversion} {ieeeFloatingPoint} {
3831    # Ad2b dieee UN -1679208 E-11 x -119b96f36ec68b_00000000000000000000000001& E-16
3832    convertToDouble -1679208E-11
3833} 0xbef19b96f36ec68b
3834test expr-28.648 {input floating-point conversion} {ieeeFloatingPoint} {
3835    # Ad2b dieee UN +3379223 E27 x 14d3794ce2fc25_1111111111111111111111110& E111
3836    convertToDouble +3379223E27
3837} 0x46e4d3794ce2fc26
3838test expr-28.649 {input floating-point conversion} {ieeeFloatingPoint} {
3839    # Ad2b dieee UN -6758446 E27 x -14d3794ce2fc25_1111111111111111111111110& E112
3840    convertToDouble -6758446E27
3841} 0xc6f4d3794ce2fc26
3842test expr-28.650 {input floating-point conversion} {ieeeFloatingPoint} {
3843    # Ad2b dieee UN +5444097 E-21 x 18849dd33c95ae_11111111111111111111111111110& E-48
3844    convertToDouble +5444097E-21
3845} 0x3cf8849dd33c95af
3846test expr-28.651 {input floating-point conversion} {ieeeFloatingPoint} {
3847    # Ad2b dieee UN -8399969 E-27 x -13d5783e85fcf7_1111111111111111111111110& E-67
3848    convertToDouble -8399969E-27
3849} 0xbbc3d5783e85fcf8
3850test expr-28.652 {input floating-point conversion} {ieeeFloatingPoint} {
3851    # Ad2b dieee UN +8366487 E-16 x 1cbf3d630403af_1111111111111111111111110& E-31
3852    convertToDouble +8366487E-16
3853} 0x3e0cbf3d630403b0
3854test expr-28.653 {input floating-point conversion} {ieeeFloatingPoint} {
3855    # Ad2b dieee UN -8366487 E-15 x -11f7865de2824d_11111111111111111111111110& E-27
3856    convertToDouble -8366487E-15
3857} 0xbe41f7865de2824e
3858test expr-28.654 {input floating-point conversion} {ieeeFloatingPoint} {
3859    # Ad2b dieee UN +65060671 E25 x 1009e7d474572a_0000000000000000000000000001& E109
3860    convertToDouble +65060671E25
3861} 0x46c009e7d474572a
3862test expr-28.655 {input floating-point conversion} {ieeeFloatingPoint} {
3863    # Ad2b dieee UN +65212389 E23 x 1493d098d37657_000000000000000000000000001& E102
3864    convertToDouble +65212389E23
3865} 0x465493d098d37657
3866test expr-28.656 {input floating-point conversion} {ieeeFloatingPoint} {
3867    # Ad2b dieee UN +55544957 E-13 x 174c1826f3010c_00000000000000000000000000001& E-18
3868    convertToDouble +55544957E-13
3869} 0x3ed74c1826f3010c
3870test expr-28.657 {input floating-point conversion} {ieeeFloatingPoint} {
3871    # Ad2b dieee UN -51040905 E-20 x -11f55b23c8bf2d_0000000000000000000000000001& E-41
3872    convertToDouble -51040905E-20
3873} 0xbd61f55b23c8bf2d
3874test expr-28.658 {input floating-point conversion} {ieeeFloatingPoint} {
3875    # Ad2b dieee UN +99585767 E-22 x 166cba8699f0f2_0000000000000000000000000001& E-47
3876    convertToDouble +99585767E-22
3877} 0x3d066cba8699f0f2
3878test expr-28.659 {input floating-point conversion} {ieeeFloatingPoint} {
3879    # Ad2b dieee UN -99585767 E-23 x -11f095387b2728_0000000000000000000000000001& E-50
3880    convertToDouble -99585767E-23
3881} 0xbcd1f095387b2728
3882test expr-28.660 {input floating-point conversion} {ieeeFloatingPoint} {
3883    # Ad2b dieee UN +40978393 E26 x 1941401cca2bfd_1111111111111111111111111110& E111
3884    convertToDouble +40978393E26
3885} 0x46e941401cca2bfe
3886test expr-28.661 {input floating-point conversion} {ieeeFloatingPoint} {
3887    # Ad2b dieee UN -67488159 E24 x -1a9e90059d12db_11111111111111111111111111110& E105
3888    convertToDouble -67488159E24
3889} 0xc68a9e90059d12dc
3890test expr-28.662 {input floating-point conversion} {ieeeFloatingPoint} {
3891    # Ad2b dieee UN +69005339 E23 x 15c634f6ef1f95_111111111111111111111111110& E102
3892    convertToDouble +69005339E23
3893} 0x4655c634f6ef1f96
3894test expr-28.663 {input floating-point conversion} {ieeeFloatingPoint} {
3895    # Ad2b dieee UN -81956786 E26 x -1941401cca2bfd_1111111111111111111111111110& E112
3896    convertToDouble -81956786E26
3897} 0xc6f941401cca2bfe
3898test expr-28.664 {input floating-point conversion} {ieeeFloatingPoint} {
3899    # Ad2b dieee UN -87105552 E-21 x -18849dd33c95ae_11111111111111111111111111110& E-44
3900    convertToDouble -87105552E-21
3901} 0xbd38849dd33c95af
3902test expr-28.665 {input floating-point conversion} {ieeeFloatingPoint} {
3903    # Ad2b dieee UN +10888194 E-21 x 18849dd33c95ae_11111111111111111111111111110& E-47
3904    convertToDouble +10888194E-21
3905} 0x3d08849dd33c95af
3906test expr-28.666 {input floating-point conversion} {ieeeFloatingPoint} {
3907    # Ad2b dieee UN -21776388 E-21 x -18849dd33c95ae_11111111111111111111111111110& E-46
3908    convertToDouble -21776388E-21
3909} 0xbd18849dd33c95af
3910test expr-28.667 {input floating-point conversion} {ieeeFloatingPoint} {
3911    # Ad2b dieee UN +635806667 E27 x 1e9cec176c96f8_000000000000000000000000000000001& E118
3912    convertToDouble +635806667E27
3913} 0x475e9cec176c96f8
3914test expr-28.668 {input floating-point conversion} {ieeeFloatingPoint} {
3915    # Ad2b dieee UN -670026614 E25 x -14a593f89f4194_00000000000000000000000000000001& E112
3916    convertToDouble -670026614E25
3917} 0xc6f4a593f89f4194
3918test expr-28.669 {input floating-point conversion} {ieeeFloatingPoint} {
3919    # Ad2b dieee UN +335013307 E26 x 19cef8f6c711f9_0000000000000000000000000000001& E114
3920    convertToDouble +335013307E26
3921} 0x4719cef8f6c711f9
3922test expr-28.670 {input floating-point conversion} {ieeeFloatingPoint} {
3923    # Ad2b dieee UN -335013307 E25 x -14a593f89f4194_00000000000000000000000000000001& E111
3924    convertToDouble -335013307E25
3925} 0xc6e4a593f89f4194
3926test expr-28.671 {input floating-point conversion} {ieeeFloatingPoint} {
3927    # Ad2b dieee UN +371790617 E-24 x 1aca538c61ba9c_000000000000000000000000000000001& E-52
3928    convertToDouble +371790617E-24
3929} 0x3cbaca538c61ba9c
3930test expr-28.672 {input floating-point conversion} {ieeeFloatingPoint} {
3931    # Ad2b dieee UN -371790617 E-25 x -156ea93d1afbb0_0000000000000000000000000000000001& E-55
3932    convertToDouble -371790617E-25
3933} 0xbc856ea93d1afbb0
3934test expr-28.673 {input floating-point conversion} {ieeeFloatingPoint} {
3935    # Ad2b dieee UN +743581234 E-24 x 1aca538c61ba9c_000000000000000000000000000000001& E-51
3936    convertToDouble +743581234E-24
3937} 0x3ccaca538c61ba9c
3938test expr-28.674 {input floating-point conversion} {ieeeFloatingPoint} {
3939    # Ad2b dieee UN -743581234 E-25 x -156ea93d1afbb0_0000000000000000000000000000000001& E-54
3940    convertToDouble -743581234E-25
3941} 0xbc956ea93d1afbb0
3942test expr-28.675 {input floating-point conversion} {ieeeFloatingPoint} {
3943    # Ad2b dieee UN +202464477 E24 x 13f6ec0435ce24_111111111111111111111111111110& E107
3944    convertToDouble +202464477E24
3945} 0x46a3f6ec0435ce25
3946test expr-28.676 {input floating-point conversion} {ieeeFloatingPoint} {
3947    # Ad2b dieee UN -404928954 E24 x -13f6ec0435ce24_111111111111111111111111111110& E108
3948    convertToDouble -404928954E24
3949} 0xc6b3f6ec0435ce25
3950test expr-28.677 {input floating-point conversion} {ieeeFloatingPoint} {
3951    # Ad2b dieee UN +997853758 E27 x 1805bfa33b98fa_111111111111111111111111111110& E119
3952    convertToDouble +997853758E27
3953} 0x476805bfa33b98fb
3954test expr-28.678 {input floating-point conversion} {ieeeFloatingPoint} {
3955    # Ad2b dieee UN -997853758 E26 x -1337cc829613fb_111111111111111111111111111110& E116
3956    convertToDouble -997853758E26
3957} 0xc73337cc829613fc
3958test expr-28.679 {input floating-point conversion} {ieeeFloatingPoint} {
3959    # Ad2b dieee UN +405498418 E-17 x 116a8093df66a6_111111111111111111111111111111110& E-28
3960    convertToDouble +405498418E-17
3961} 0x3e316a8093df66a7
3962test expr-28.680 {input floating-point conversion} {ieeeFloatingPoint} {
3963    # Ad2b dieee UN -582579084 E-14 x -186f653140a658_111111111111111111111111111111110& E-18
3964    convertToDouble -582579084E-14
3965} 0xbed86f653140a659
3966test expr-28.681 {input floating-point conversion} {ieeeFloatingPoint} {
3967    # Ad2b dieee UN +608247627 E-18 x 14e633e4a5ae61_111111111111111111111111111111110& E-31
3968    convertToDouble +608247627E-18
3969} 0x3e04e633e4a5ae62
3970test expr-28.682 {input floating-point conversion} {ieeeFloatingPoint} {
3971    # Ad2b dieee UN -291289542 E-14 x -186f653140a658_111111111111111111111111111111110& E-19
3972    convertToDouble -291289542E-14
3973} 0xbec86f653140a659
3974test expr-28.683 {input floating-point conversion} {ieeeFloatingPoint} {
3975    # Ad2b dieee UN -9537100005 E26 x -16f5b11191713a_000000000000000000000000000000001& E119
3976    convertToDouble -9537100005E26
3977} 0xc766f5b11191713a
3978test expr-28.684 {input floating-point conversion} {ieeeFloatingPoint} {
3979    # Ad2b dieee UN +6358066670 E27 x 1322138ea3de5b_000000000000000000000000000000001& E122
3980    convertToDouble +6358066670E27
3981} 0x479322138ea3de5b
3982test expr-28.685 {input floating-point conversion} {ieeeFloatingPoint} {
3983    # Ad2b dieee UN -1271613334 E27 x -1e9cec176c96f8_000000000000000000000000000000001& E119
3984    convertToDouble -1271613334E27
3985} 0xc76e9cec176c96f8
3986test expr-28.686 {input floating-point conversion} {ieeeFloatingPoint} {
3987    # Ad2b dieee UN +5229646999 E-16 x 118c3b89731f3d_000000000000000000000000000000000001& E-21
3988    convertToDouble +5229646999E-16
3989} 0x3ea18c3b89731f3d
3990test expr-28.687 {input floating-point conversion} {ieeeFloatingPoint} {
3991    # Ad2b dieee UN +5229646999 E-17 x 1c13927584fec8_00000000000000000000000000000000001& E-25
3992    convertToDouble +5229646999E-17
3993} 0x3e6c13927584fec8
3994test expr-28.688 {input floating-point conversion} {ieeeFloatingPoint} {
3995    # Ad2b dieee UN +4429943614 E24 x 1b4d37fa06864a_1111111111111111111111111111111110& E111
3996    convertToDouble +4429943614E24
3997} 0x46eb4d37fa06864b
3998test expr-28.689 {input floating-point conversion} {ieeeFloatingPoint} {
3999    # Ad2b dieee UN -8859887228 E24 x -1b4d37fa06864a_1111111111111111111111111111111110& E112
4000    convertToDouble -8859887228E24
4001} 0xc6fb4d37fa06864b
4002test expr-28.690 {input floating-point conversion} {ieeeFloatingPoint} {
4003    # Ad2b dieee UN +2214971807 E24 x 1b4d37fa06864a_1111111111111111111111111111111110& E110
4004    convertToDouble +2214971807E24
4005} 0x46db4d37fa06864b
4006test expr-28.691 {input floating-point conversion} {ieeeFloatingPoint} {
4007    # Ad2b dieee UN -4176887093 E26 x -141c692c5bd07a_111111111111111111111111111111110& E118
4008    convertToDouble -4176887093E26
4009} 0xc7541c692c5bd07b
4010test expr-28.692 {input floating-point conversion} {ieeeFloatingPoint} {
4011    # Ad2b dieee UN +4003495257 E-20 x 16026b2e07ec06_111111111111111111111111111111111110& E-35
4012    convertToDouble +4003495257E-20
4013} 0x3dc6026b2e07ec07
4014test expr-28.693 {input floating-point conversion} {ieeeFloatingPoint} {
4015    # Ad2b dieee UN -4361901637 E-23 x -188e29a9d7c5b8_11111111111111111111111111111111110& E-45
4016    convertToDouble -4361901637E-23
4017} 0xbd288e29a9d7c5b9
4018test expr-28.694 {input floating-point conversion} {ieeeFloatingPoint} {
4019    # Ad2b dieee UN +8723803274 E-23 x 188e29a9d7c5b8_11111111111111111111111111111111110& E-44
4020    convertToDouble +8723803274E-23
4021} 0x3d388e29a9d7c5b9
4022test expr-28.695 {input floating-point conversion} {ieeeFloatingPoint} {
4023    # Ad2b dieee UN -8006990514 E-20 x -16026b2e07ec06_111111111111111111111111111111111110& E-34
4024    convertToDouble -8006990514E-20
4025} 0xbdd6026b2e07ec07
4026test expr-28.696 {input floating-point conversion} {ieeeFloatingPoint} {
4027    # Ad2b dieee UN +72835110098 E27 x 1b65c41711fb6d_0000000000000000000000000000000000001& E125
4028    convertToDouble +72835110098E27
4029} 0x47cb65c41711fb6d
4030test expr-28.697 {input floating-point conversion} {ieeeFloatingPoint} {
4031    # Ad2b dieee UN -36417555049 E27 x -1b65c41711fb6d_0000000000000000000000000000000000001& E124
4032    convertToDouble -36417555049E27
4033} 0xc7bb65c41711fb6d
4034test expr-28.698 {input floating-point conversion} {ieeeFloatingPoint} {
4035    # Ad2b dieee UN +84279630104 E25 x 144a221b1cf62e_000000000000000000000000000000000001& E119
4036    convertToDouble +84279630104E25
4037} 0x47644a221b1cf62e
4038test expr-28.699 {input floating-point conversion} {ieeeFloatingPoint} {
4039    # Ad2b dieee UN -84279630104 E24 x -103b4e7c172b58_000000000000000000000000000000000001& E116
4040    convertToDouble -84279630104E24
4041} 0xc7303b4e7c172b58
4042test expr-28.700 {input floating-point conversion} {ieeeFloatingPoint} {
4043    # Ad2b dieee UN +21206176437 E-27 x 1872f563ae0cc9_0000000000000000000000000000000000001& E-56
4044    convertToDouble +21206176437E-27
4045} 0x3c7872f563ae0cc9
4046test expr-28.701 {input floating-point conversion} {ieeeFloatingPoint} {
4047    # Ad2b dieee UN -66461566917 E-22 x -1d3ae83e4322b3_00000000000000000000000000000000000001& E-38
4048    convertToDouble -66461566917E-22
4049} 0xbd9d3ae83e4322b3
4050test expr-28.702 {input floating-point conversion} {ieeeFloatingPoint} {
4051    # Ad2b dieee UN +64808355539 E-16 x 1b2ebe83265fbf_00000000000000000000000000000000000001& E-18
4052    convertToDouble +64808355539E-16
4053} 0x3edb2ebe83265fbf
4054test expr-28.703 {input floating-point conversion} {ieeeFloatingPoint} {
4055    # Ad2b dieee UN -84932679673 E-19 x -123d39339f1bf6_00000000000000000000000000000000000001& E-27
4056    convertToDouble -84932679673E-19
4057} 0xbe423d39339f1bf6
4058test expr-28.704 {input floating-point conversion} {ieeeFloatingPoint} {
4059    # Ad2b dieee UN +65205430094 E26 x 139f3e5d7fd76a_1111111111111111111111111111111111110& E122
4060    convertToDouble +65205430094E26
4061} 0x47939f3e5d7fd76b
4062test expr-28.705 {input floating-point conversion} {ieeeFloatingPoint} {
4063    # Ad2b dieee UN -68384463429 E25 x -107684982f634e_1111111111111111111111111111111111111110& E119
4064    convertToDouble -68384463429E25
4065} 0xc7607684982f634f
4066test expr-28.706 {input floating-point conversion} {ieeeFloatingPoint} {
4067    # Ad2b dieee UN +32602715047 E26 x 139f3e5d7fd76a_1111111111111111111111111111111111110& E121
4068    convertToDouble +32602715047E26
4069} 0x47839f3e5d7fd76b
4070test expr-28.707 {input floating-point conversion} {ieeeFloatingPoint} {
4071    # Ad2b dieee UN -62662203426 E27 x -1792269424688d_111111111111111111111111111111111110& E125
4072    convertToDouble -62662203426E27
4073} 0xc7c792269424688e
4074test expr-28.708 {input floating-point conversion} {ieeeFloatingPoint} {
4075    # Ad2b dieee UN +58784444678 E-18 x 1f8f45c64b4682_111111111111111111111111111111111111110& E-25
4076    convertToDouble +58784444678E-18
4077} 0x3e6f8f45c64b4683
4078test expr-28.709 {input floating-point conversion} {ieeeFloatingPoint} {
4079    # Ad2b dieee UN -50980203373 E-21 x -1c06d366394440_11111111111111111111111111111111111111111110& E-35
4080    convertToDouble -50980203373E-21
4081} 0xbdcc06d366394441
4082test expr-28.710 {input floating-point conversion} {ieeeFloatingPoint} {
4083    # Ad2b dieee UN +29392222339 E-18 x 1f8f45c64b4682_111111111111111111111111111111111111110& E-26
4084    convertToDouble +29392222339E-18
4085} 0x3e5f8f45c64b4683
4086test expr-28.711 {input floating-point conversion} {ieeeFloatingPoint} {
4087    # Ad2b dieee UN -75529940323 E-27 x -15c5203c0aad52_1111111111111111111111111111111111111110& E-54
4088    convertToDouble -75529940323E-27
4089} 0xbc95c5203c0aad53
4090test expr-28.712 {input floating-point conversion} {ieeeFloatingPoint} {
4091    # Ad2b dieee UN -937495906299 E26 x -11a1e0ebb6af11_000000000000000000000000000000000000000001& E126
4092    convertToDouble -937495906299E26
4093} 0xc7d1a1e0ebb6af11
4094test expr-28.713 {input floating-point conversion} {ieeeFloatingPoint} {
4095    # Ad2b dieee UN +842642485799 E-20 x 121879decdd7cb_000000000000000000000000000000000000000001& E-27
4096    convertToDouble +842642485799E-20
4097} 0x3e421879decdd7cb
4098test expr-28.714 {input floating-point conversion} {ieeeFloatingPoint} {
4099    # Ad2b dieee UN -387824150699 E-23 x -110e8302245571_00000000000000000000000000000000000000001& E-38
4100    convertToDouble -387824150699E-23
4101} 0xbd910e8302245571
4102test expr-28.715 {input floating-point conversion} {ieeeFloatingPoint} {
4103    # Ad2b dieee UN +924948814726 E-27 x 10a992d1fc6ded_00000000000000000000000000000000000000001& E-50
4104    convertToDouble +924948814726E-27
4105} 0x3cd0a992d1fc6ded
4106test expr-28.716 {input floating-point conversion} {ieeeFloatingPoint} {
4107    # Ad2b dieee UN -775648301398 E-23 x -110e8302245571_00000000000000000000000000000000000000001& E-37
4108    convertToDouble -775648301398E-23
4109} 0xbda10e8302245571
4110test expr-28.717 {input floating-point conversion} {ieeeFloatingPoint} {
4111    # Ad2b dieee UN +547075707432 E25 x 107684982f634e_1111111111111111111111111111111111111110& E122
4112    convertToDouble +547075707432E25
4113} 0x47907684982f634f
4114test expr-28.718 {input floating-point conversion} {ieeeFloatingPoint} {
4115    # Ad2b dieee UN +683844634290 E24 x 107684982f634e_1111111111111111111111111111111111111110& E119
4116    convertToDouble +683844634290E24
4117} 0x47607684982f634f
4118test expr-28.719 {input floating-point conversion} {ieeeFloatingPoint} {
4119    # Ad2b dieee UN -136768926858 E25 x -107684982f634e_1111111111111111111111111111111111111110& E120
4120    convertToDouble -136768926858E25
4121} 0xc7707684982f634f
4122test expr-28.720 {input floating-point conversion} {ieeeFloatingPoint} {
4123    # Ad2b dieee UN +509802033730 E-22 x 1c06d366394440_11111111111111111111111111111111111111111110& E-35
4124    convertToDouble +509802033730E-22
4125} 0x3dcc06d366394441
4126test expr-28.721 {input floating-point conversion} {ieeeFloatingPoint} {
4127    # Ad2b dieee UN +101960406746 E-21 x 1c06d366394440_11111111111111111111111111111111111111111110& E-34
4128    convertToDouble +101960406746E-21
4129} 0x3ddc06d366394441
4130test expr-28.722 {input floating-point conversion} {ieeeFloatingPoint} {
4131    # Ad2b dieee UN -815683253968 E-21 x -1c06d366394440_11111111111111111111111111111111111111111110& E-31
4132    convertToDouble -815683253968E-21
4133} 0xbe0c06d366394441
4134test expr-28.723 {input floating-point conversion} {ieeeFloatingPoint} {
4135    # Ad2b dieee UN +7344124123524 E24 x 1619b519dd6833_00000000000000000000000000000000000000000001& E122
4136    convertToDouble +7344124123524E24
4137} 0x479619b519dd6833
4138test expr-28.724 {input floating-point conversion} {ieeeFloatingPoint} {
4139    # Ad2b dieee UN -9180155154405 E23 x -1619b519dd6833_00000000000000000000000000000000000000000001& E119
4140    convertToDouble -9180155154405E23
4141} 0xc76619b519dd6833
4142test expr-28.725 {input floating-point conversion} {ieeeFloatingPoint} {
4143    # Ad2b dieee UN +6479463327323 E27 x 130a9b3e9bd05e_00000000000000000000000000000000000000000001& E132
4144    convertToDouble +6479463327323E27
4145} 0x48330a9b3e9bd05e
4146test expr-28.726 {input floating-point conversion} {ieeeFloatingPoint} {
4147    # Ad2b dieee UN -1836031030881 E24 x -1619b519dd6833_00000000000000000000000000000000000000000001& E120
4148    convertToDouble -1836031030881E24
4149} 0xc77619b519dd6833
4150test expr-28.727 {input floating-point conversion} {ieeeFloatingPoint} {
4151    # Ad2b dieee UN +4337269293039 E-19 x 1d1b5f354c63d6_00000000000000000000000000000000000000000001& E-22
4152    convertToDouble +4337269293039E-19
4153} 0x3e9d1b5f354c63d6
4154test expr-28.728 {input floating-point conversion} {ieeeFloatingPoint} {
4155    # Ad2b dieee UN -4599163554373 E-23 x -1948bf4d34088d_00000000000000000000000000000000000000000001& E-35
4156    convertToDouble -4599163554373E-23
4157} 0xbdc948bf4d34088d
4158test expr-28.729 {input floating-point conversion} {ieeeFloatingPoint} {
4159    # Ad2b dieee UN +9198327108746 E-23 x 1948bf4d34088d_00000000000000000000000000000000000000000001& E-34
4160    convertToDouble +9198327108746E-23
4161} 0x3dd948bf4d34088d
4162test expr-28.730 {input floating-point conversion} {ieeeFloatingPoint} {
4163    # Ad2b dieee UN +4812803938347 E27 x 1c4980a4ee94ce_111111111111111111111111111111111111111111110& E131
4164    convertToDouble +4812803938347E27
4165} 0x482c4980a4ee94cf
4166test expr-28.731 {input floating-point conversion} {ieeeFloatingPoint} {
4167    # Ad2b dieee UN -8412030890011 E23 x -14405075e52db9_11111111111111111111111111111111111111111110& E119
4168    convertToDouble -8412030890011E23
4169} 0xc764405075e52dba
4170test expr-28.732 {input floating-point conversion} {ieeeFloatingPoint} {
4171    # Ad2b dieee UN +9625607876694 E27 x 1c4980a4ee94ce_111111111111111111111111111111111111111111110& E132
4172    convertToDouble +9625607876694E27
4173} 0x483c4980a4ee94cf
4174test expr-28.733 {input floating-point conversion} {ieeeFloatingPoint} {
4175    # Ad2b dieee UN -4739968828249 E24 x -1c87140cdf8a1d_1111111111111111111111111111111111111111110& E121
4176    convertToDouble -4739968828249E24
4177} 0xc78c87140cdf8a1e
4178test expr-28.734 {input floating-point conversion} {ieeeFloatingPoint} {
4179    # Ad2b dieee UN +9697183891673 E-23 x 1aa7c959b6a666_11111111111111111111111111111111111111111111110& E-34
4180    convertToDouble +9697183891673E-23
4181} 0x3ddaa7c959b6a667
4182test expr-28.735 {input floating-point conversion} {ieeeFloatingPoint} {
4183    # Ad2b dieee UN -7368108517543 E-20 x -13c7535bbd85a1_1111111111111111111111111111111111111111111110& E-24
4184    convertToDouble -7368108517543E-20
4185} 0xbe73c7535bbd85a2
4186test expr-28.736 {input floating-point conversion} {ieeeFloatingPoint} {
4187    # Ad2b dieee UN +51461358161422 E25 x 18326f87d4cae0_0000000000000000000000000000000000000000000000001& E128
4188    convertToDouble +51461358161422E25
4189} 0x47f8326f87d4cae0
4190test expr-28.737 {input floating-point conversion} {ieeeFloatingPoint} {
4191    # Ad2b dieee UN -77192037242133 E26 x -16af488f577e32_0000000000000000000000000000000000000000000000001& E132
4192    convertToDouble -77192037242133E26
4193} 0xc836af488f577e32
4194test expr-28.738 {input floating-point conversion} {ieeeFloatingPoint} {
4195    # Ad2b dieee UN +77192037242133 E25 x 1225d3a5df9828_0000000000000000000000000000000000000000000000001& E129
4196    convertToDouble +77192037242133E25
4197} 0x480225d3a5df9828
4198test expr-28.739 {input floating-point conversion} {ieeeFloatingPoint} {
4199    # Ad2b dieee UN -51461358161422 E27 x -12e767221e3e7f_0000000000000000000000000000000000000000000000001& E135
4200    convertToDouble -51461358161422E27
4201} 0xc862e767221e3e7f
4202test expr-28.740 {input floating-point conversion} {ieeeFloatingPoint} {
4203    # Ad2b dieee UN +43999661561541 E-21 x 179f4476d372a3_0000000000000000000000000000000000000000000000001& E-25
4204    convertToDouble +43999661561541E-21
4205} 0x3e679f4476d372a3
4206test expr-28.741 {input floating-point conversion} {ieeeFloatingPoint} {
4207    # Ad2b dieee UN -87999323123082 E-21 x -179f4476d372a3_0000000000000000000000000000000000000000000000001& E-24
4208    convertToDouble -87999323123082E-21
4209} 0xbe779f4476d372a3
4210test expr-28.742 {input floating-point conversion} {ieeeFloatingPoint} {
4211    # Ad2b dieee UN +48374886826137 E-26 x 110538f23350d5_00000000000000000000000000000000000000000000001& E-41
4212    convertToDouble +48374886826137E-26
4213} 0x3d610538f23350d5
4214test expr-28.743 {input floating-point conversion} {ieeeFloatingPoint} {
4215    # Ad2b dieee UN -57684246567111 E-23 x -13d1f5c1b8a912_00000000000000000000000000000000000000000000001& E-31
4216    convertToDouble -57684246567111E-23
4217} 0xbe03d1f5c1b8a912
4218test expr-28.744 {input floating-point conversion} {ieeeFloatingPoint} {
4219    # Ad2b dieee UN +87192805957686 E23 x 1a3d16e55a9664_1111111111111111111111111111111111111111111110& E122
4220    convertToDouble +87192805957686E23
4221} 0x479a3d16e55a9665
4222test expr-28.745 {input floating-point conversion} {ieeeFloatingPoint} {
4223    # Ad2b dieee UN -75108713005913 E24 x -1c40b4baa79655_11111111111111111111111111111111111111111111110& E125
4224    convertToDouble -75108713005913E24
4225} 0xc7cc40b4baa79656
4226test expr-28.746 {input floating-point conversion} {ieeeFloatingPoint} {
4227    # Ad2b dieee UN +64233110587487 E27 x 179873e38669a6_1111111111111111111111111111111111111111111110& E135
4228    convertToDouble +64233110587487E27
4229} 0x48679873e38669a7
4230test expr-28.747 {input floating-point conversion} {ieeeFloatingPoint} {
4231    # Ad2b dieee UN -77577471133384 E-23 x -1aa7c959b6a666_11111111111111111111111111111111111111111111110& E-31
4232    convertToDouble -77577471133384E-23
4233} 0xbe0aa7c959b6a667
4234test expr-28.748 {input floating-point conversion} {ieeeFloatingPoint} {
4235    # Ad2b dieee UN +48485919458365 E-24 x 1aa7c959b6a666_11111111111111111111111111111111111111111111110& E-35
4236    convertToDouble +48485919458365E-24
4237} 0x3dcaa7c959b6a667
4238test expr-28.749 {input floating-point conversion} {ieeeFloatingPoint} {
4239    # Ad2b dieee UN -56908598265713 E-26 x -1405deef4bdef5_111111111111111111111111111111111111111111111110& E-41
4240    convertToDouble -56908598265713E-26
4241} 0xbd6405deef4bdef6
4242test expr-28.750 {input floating-point conversion} {ieeeFloatingPoint} {
4243    # Ad2b dieee UN +589722294620133 E23 x 162ed1b287caef_00000000000000000000000000000000000000000000000001& E125
4244    convertToDouble +589722294620133E23
4245} 0x47c62ed1b287caef
4246test expr-28.751 {input floating-point conversion} {ieeeFloatingPoint} {
4247    # Ad2b dieee UN +652835804449289 E-22 x 118640e490b087_0000000000000000000000000000000000000000000000000001& E-24
4248    convertToDouble +652835804449289E-22
4249} 0x3e718640e490b087
4250test expr-28.752 {input floating-point conversion} {ieeeFloatingPoint} {
4251    # Ad2b dieee UN -656415363936202 E-23 x -1c315cfe25d201_00000000000000000000000000000000000000000000000001& E-28
4252    convertToDouble -656415363936202E-23
4253} 0xbe3c315cfe25d201
4254test expr-28.753 {input floating-point conversion} {ieeeFloatingPoint} {
4255    # Ad2b dieee UN +579336749585745 E-25 x 1fd9709d9aeb19_00000000000000000000000000000000000000000000000001& E-35
4256    convertToDouble +579336749585745E-25
4257} 0x3dcfd9709d9aeb19
4258test expr-28.754 {input floating-point conversion} {ieeeFloatingPoint} {
4259    # Ad2b dieee UN -381292764980839 E-26 x -10c4f9921c3f8f_00000000000000000000000000000000000000000000000001& E-38
4260    convertToDouble -381292764980839E-26
4261} 0xbd90c4f9921c3f8f
4262test expr-28.755 {input floating-point conversion} {ieeeFloatingPoint} {
4263    # Ad2b dieee UN +965265859649698 E23 x 12279607edcb0c_1111111111111111111111111111111111111111111111110& E126
4264    convertToDouble +965265859649698E23
4265} 0x47d2279607edcb0d
4266test expr-28.756 {input floating-point conversion} {ieeeFloatingPoint} {
4267    # Ad2b dieee UN -848925235434882 E27 x -137d88ba4b43e3_1111111111111111111111111111111111111111111111111110& E139
4268    convertToDouble -848925235434882E27
4269} 0xc8a37d88ba4b43e4
4270test expr-28.757 {input floating-point conversion} {ieeeFloatingPoint} {
4271    # Ad2b dieee UN +536177612222491 E23 x 142b33dd3acafd_11111111111111111111111111111111111111111111111110& E125
4272    convertToDouble +536177612222491E23
4273} 0x47c42b33dd3acafe
4274test expr-28.758 {input floating-point conversion} {ieeeFloatingPoint} {
4275    # Ad2b dieee UN -424462617717441 E27 x -137d88ba4b43e3_1111111111111111111111111111111111111111111111111110& E138
4276    convertToDouble -424462617717441E27
4277} 0xc8937d88ba4b43e4
4278test expr-28.759 {input floating-point conversion} {ieeeFloatingPoint} {
4279    # Ad2b dieee UN +276009279888989 E-27 x 136c242313c288_111111111111111111111111111111111111111111111111110& E-42
4280    convertToDouble +276009279888989E-27
4281} 0x3d536c242313c289
4282test expr-28.760 {input floating-point conversion} {ieeeFloatingPoint} {
4283    # Ad2b dieee UN -608927158043691 E-26 x -1ac7e909c22f09_11111111111111111111111111111111111111111111111110& E-38
4284    convertToDouble -608927158043691E-26
4285} 0xbd9ac7e909c22f0a
4286test expr-28.761 {input floating-point conversion} {ieeeFloatingPoint} {
4287    # Ad2b dieee UN +552018559777978 E-27 x 136c242313c288_111111111111111111111111111111111111111111111111110& E-41
4288    convertToDouble +552018559777978E-27
4289} 0x3d636c242313c289
4290test expr-28.762 {input floating-point conversion} {ieeeFloatingPoint} {
4291    # Ad2b dieee UN -425678377667758 E-22 x -16da7aa49bdcd5_1111111111111111111111111111111111111111111111110& E-25
4292    convertToDouble -425678377667758E-22
4293} 0xbe66da7aa49bdcd6
4294test expr-28.763 {input floating-point conversion} {ieeeFloatingPoint} {
4295    # Ad2b dieee UN +8013702726927119 E26 x 126607f8f1b29e_00000000000000000000000000000000000000000000000000001& E139
4296    convertToDouble +8013702726927119E26
4297} 0x48a26607f8f1b29e
4298test expr-28.764 {input floating-point conversion} {ieeeFloatingPoint} {
4299    # Ad2b dieee UN +8862627962362001 E27 x 196f3b0e7787c2_00000000000000000000000000000000000000000000000000001& E142
4300    convertToDouble +8862627962362001E27
4301} 0x48d96f3b0e7787c2
4302test expr-28.765 {input floating-point conversion} {ieeeFloatingPoint} {
4303    # Ad2b dieee UN -5068007907757162 E26 x -17456a27848397_00000000000000000000000000000000000000000000000000001& E138
4304    convertToDouble -5068007907757162E26
4305} 0xc897456a27848397
4306test expr-28.766 {input floating-point conversion} {ieeeFloatingPoint} {
4307    # Ad2b dieee UN -7379714799828406 E-23 x -13cf4d2839e036_00000000000000000000000000000000000000000000000000001& E-24
4308    convertToDouble -7379714799828406E-23
4309} 0xbe73cf4d2839e036
4310test expr-28.767 {input floating-point conversion} {ieeeFloatingPoint} {
4311    # Ad2b dieee UN +4114538064016107 E-27 x 12188eda98010c_0000000000000000000000000000000000000000000000000001& E-38
4312    convertToDouble +4114538064016107E-27
4313} 0x3d92188eda98010c
4314test expr-28.768 {input floating-point conversion} {ieeeFloatingPoint} {
4315    # Ad2b dieee UN -3689857399914203 E-23 x -13cf4d2839e036_00000000000000000000000000000000000000000000000000001& E-25
4316    convertToDouble -3689857399914203E-23
4317} 0xbe63cf4d2839e036
4318test expr-28.769 {input floating-point conversion} {ieeeFloatingPoint} {
4319    # Ad2b dieee UN +5575954851815478 E23 x 1a37cfbf2ffdb5_1111111111111111111111111111111111111111111111111110& E128
4320    convertToDouble +5575954851815478E23
4321} 0x47fa37cfbf2ffdb6
4322test expr-28.770 {input floating-point conversion} {ieeeFloatingPoint} {
4323    # Ad2b dieee UN +3395700941739528 E27 x 137d88ba4b43e3_1111111111111111111111111111111111111111111111111110& E141
4324    convertToDouble +3395700941739528E27
4325} 0x48c37d88ba4b43e4
4326test expr-28.771 {input floating-point conversion} {ieeeFloatingPoint} {
4327    # Ad2b dieee UN +4115535777581961 E-23 x 1618596be30fe4_111111111111111111111111111111111111111111111111111110& E-25
4328    convertToDouble +4115535777581961E-23
4329} 0x3e6618596be30fe5
4330test expr-28.772 {input floating-point conversion} {ieeeFloatingPoint} {
4331    # Ad2b dieee UN -8231071555163922 E-23 x -1618596be30fe4_111111111111111111111111111111111111111111111111111110& E-24
4332    convertToDouble -8231071555163922E-23
4333} 0xbe7618596be30fe5
4334test expr-28.773 {input floating-point conversion} {ieeeFloatingPoint} {
4335    # Ad2b dieee UN +6550246696190871 E-26 x 1201538b0f8c69_111111111111111111111111111111111111111111111111111110& E-34
4336    convertToDouble +6550246696190871E-26
4337} 0x3dd201538b0f8c6a
4338test expr-28.774 {input floating-point conversion} {ieeeFloatingPoint} {
4339    # Ad2b dieee UN -68083046403986701 E27 x -186c70ba8ba28d_000000000000000000000000000000000000000000000000000000001& E145
4340    convertToDouble -68083046403986701E27
4341} 0xc9086c70ba8ba28d
4342test expr-28.775 {input floating-point conversion} {ieeeFloatingPoint} {
4343    # Ad2b dieee UN +43566388595783643 E27 x 1f41e1bf48b03f_111111111111111111111111111111111111111111111111111111110& E144
4344    convertToDouble +43566388595783643E27
4345} 0x48ff41e1bf48b040
4346test expr-28.776 {input floating-point conversion} {ieeeFloatingPoint} {
4347    # Ad2b dieee UN -87132777191567286 E27 x -1f41e1bf48b03f_111111111111111111111111111111111111111111111111111111110& E145
4348    convertToDouble -87132777191567286E27
4349} 0xc90f41e1bf48b040
4350test expr-28.777 {input floating-point conversion} {ieeeFloatingPoint} {
4351    # Ad2b dieee UN +59644881059342141 E25 x 1b6338d9d8ae38_11111111111111111111111111111111111111111111111111111110& E138
4352    convertToDouble +59644881059342141E25
4353} 0x489b6338d9d8ae39
4354test expr-28.778 {input floating-point conversion} {ieeeFloatingPoint} {
4355    # Ad2b dieee UN -83852770718576667 E23 x -18a4619ed6f442_111111111111111111111111111111111111111111111111111111110& E132
4356    convertToDouble -83852770718576667E23
4357} 0xc838a4619ed6f443
4358test expr-28.779 {input floating-point conversion} {ieeeFloatingPoint} {
4359    # Ad2b dieee UN +99482967418206961 E-25 x 155d224bfed7ac_11111111111111111111111111111111111111111111111111111111110& E-27
4360    convertToDouble +99482967418206961E-25
4361} 0x3e455d224bfed7ad
4362test expr-28.780 {input floating-point conversion} {ieeeFloatingPoint} {
4363    # Ad2b dieee UN -99482967418206961 E-26 x -11174ea3324623_11111111111111111111111111111111111111111111111111111111110& E-30
4364    convertToDouble -99482967418206961E-26
4365} 0xbe11174ea3324624
4366test expr-28.781 {input floating-point conversion} {ieeeFloatingPoint} {
4367    # Ad2b dieee UN +87446669969994614 E-27 x 1809832942376d_11111111111111111111111111111111111111111111111111111110& E-34
4368    convertToDouble +87446669969994614E-27
4369} 0x3dd809832942376e
4370test expr-28.782 {input floating-point conversion} {ieeeFloatingPoint} {
4371    # Ad2b dieee UN -43723334984997307 E-27 x -1809832942376d_11111111111111111111111111111111111111111111111111111110& E-35
4372    convertToDouble -43723334984997307E-27
4373} 0xbdc809832942376e
4374test expr-28.783 {input floating-point conversion} {ieeeFloatingPoint} {
4375    # Ad2b dieee UN +5 E24 x 108b2a2c280290_1001& E82
4376    convertToDouble +5E24
4377} 0x45108b2a2c280291
4378test expr-28.784 {input floating-point conversion} {ieeeFloatingPoint} {
4379    # Ad2b dieee UN -8 E25 x -108b2a2c280290_1001& E86
4380    convertToDouble -8E25
4381} 0xc5508b2a2c280291
4382test expr-28.785 {input floating-point conversion} {ieeeFloatingPoint} {
4383    # Ad2b dieee UN +1 E25 x 108b2a2c280290_1001& E83
4384    convertToDouble +1E25
4385} 0x45208b2a2c280291
4386test expr-28.786 {input floating-point conversion} {ieeeFloatingPoint} {
4387    # Ad2b dieee UN -4 E25 x -108b2a2c280290_1001& E85
4388    convertToDouble -4E25
4389} 0xc5408b2a2c280291
4390test expr-28.787 {input floating-point conversion} {ieeeFloatingPoint} {
4391    # Ad2b dieee UN +2 E-5 x 14f8b588e368f0_100001& E-16
4392    convertToDouble +2E-5
4393} 0x3ef4f8b588e368f1
4394test expr-28.788 {input floating-point conversion} {ieeeFloatingPoint} {
4395    # Ad2b dieee UN -5 E-6 x -14f8b588e368f0_100001& E-18
4396    convertToDouble -5E-6
4397} 0xbed4f8b588e368f1
4398test expr-28.789 {input floating-point conversion} {ieeeFloatingPoint} {
4399    # Ad2b dieee UN +4 E-5 x 14f8b588e368f0_100001& E-15
4400    convertToDouble +4E-5
4401} 0x3f04f8b588e368f1
4402test expr-28.790 {input floating-point conversion} {ieeeFloatingPoint} {
4403    # Ad2b dieee UN -3 E-20 x -11b578c96db19a_100001& E-65
4404    convertToDouble -3E-20
4405} 0xbbe1b578c96db19b
4406test expr-28.791 {input floating-point conversion} {ieeeFloatingPoint} {
4407    # Ad2b dieee UN +3 E27 x 1363156bbee301_0110& E91
4408    convertToDouble +3E27
4409} 0x45a363156bbee301
4410test expr-28.792 {input floating-point conversion} {ieeeFloatingPoint} {
4411    # Ad2b dieee UN -9 E26 x -1743b34e18439b_010& E89
4412    convertToDouble -9E26
4413} 0xc58743b34e18439b
4414test expr-28.793 {input floating-point conversion} {ieeeFloatingPoint} {
4415    # Ad2b dieee UN +7 E25 x 1cf389cd46047d_00& E85
4416    convertToDouble +7E25
4417} 0x454cf389cd46047d
4418test expr-28.794 {input floating-point conversion} {ieeeFloatingPoint} {
4419    # Ad2b dieee UN -6 E27 x -1363156bbee301_0110& E92
4420    convertToDouble -6E27
4421} 0xc5b363156bbee301
4422test expr-28.795 {input floating-point conversion} {ieeeFloatingPoint} {
4423    # Ad2b dieee UN +2 E-21 x 12e3b40a0e9b4f_0111110& E-69
4424    convertToDouble +2E-21
4425} 0x3ba2e3b40a0e9b4f
4426test expr-28.796 {input floating-point conversion} {ieeeFloatingPoint} {
4427    # Ad2b dieee UN -5 E-22 x -12e3b40a0e9b4f_0111110& E-71
4428    convertToDouble -5E-22
4429} 0xbb82e3b40a0e9b4f
4430test expr-28.797 {input floating-point conversion} {ieeeFloatingPoint} {
4431    # Ad2b dieee UN -4 E-21 x -12e3b40a0e9b4f_0111110& E-68
4432    convertToDouble -4E-21
4433} 0xbbb2e3b40a0e9b4f
4434test expr-28.798 {input floating-point conversion} {ieeeFloatingPoint} {
4435    # Ad2b dieee UN +87 E25 x 167d2d5406637c_10001& E89
4436    convertToDouble +87E25
4437} 0x45867d2d5406637d
4438test expr-28.799 {input floating-point conversion} {ieeeFloatingPoint} {
4439    # Ad2b dieee UN -97 E24 x -140f232256e982_1000000001& E86
4440    convertToDouble -97E24
4441} 0xc5540f232256e983
4442test expr-28.800 {input floating-point conversion} {ieeeFloatingPoint} {
4443    # Ad2b dieee UN +82 E-24 x 18c87154dff6c6_1000000001& E-74
4444    convertToDouble +82E-24
4445} 0x3b58c87154dff6c7
4446test expr-28.801 {input floating-point conversion} {ieeeFloatingPoint} {
4447    # Ad2b dieee UN -41 E-24 x -18c87154dff6c6_1000000001& E-75
4448    convertToDouble -41E-24
4449} 0xbb48c87154dff6c7
4450test expr-28.802 {input floating-point conversion} {ieeeFloatingPoint} {
4451    # Ad2b dieee UN +76 E-23 x 1cb644dc1633c0_10000001& E-71
4452    convertToDouble +76E-23
4453} 0x3b8cb644dc1633c1
4454test expr-28.803 {input floating-point conversion} {ieeeFloatingPoint} {
4455    # Ad2b dieee UN +83 E25 x 15747ab143e353_011111111110& E89
4456    convertToDouble +83E25
4457} 0x4585747ab143e353
4458test expr-28.804 {input floating-point conversion} {ieeeFloatingPoint} {
4459    # Ad2b dieee UN -50 E27 x -1431e0fae6d721_0111110& E95
4460    convertToDouble -50E27
4461} 0xc5e431e0fae6d721
4462test expr-28.805 {input floating-point conversion} {ieeeFloatingPoint} {
4463    # Ad2b dieee UN +25 E27 x 1431e0fae6d721_0111110& E94
4464    convertToDouble +25E27
4465} 0x45d431e0fae6d721
4466test expr-28.806 {input floating-point conversion} {ieeeFloatingPoint} {
4467    # Ad2b dieee UN -99 E27 x -13fe2e171cda19_011110& E96
4468    convertToDouble -99E27
4469} 0xc5f3fe2e171cda19
4470test expr-28.807 {input floating-point conversion} {ieeeFloatingPoint} {
4471    # Ad2b dieee UN +97 E-10 x 14d4a1a3157dc7_011111110& E-27
4472    convertToDouble +97E-10
4473} 0x3e44d4a1a3157dc7
4474test expr-28.808 {input floating-point conversion} {ieeeFloatingPoint} {
4475    # Ad2b dieee UN -57 E-20 x -15077f6f3242e7_011111110& E-61
4476    convertToDouble -57E-20
4477} 0xbc25077f6f3242e7
4478test expr-28.809 {input floating-point conversion} {ieeeFloatingPoint} {
4479    # Ad2b dieee UN +997 E23 x 149e12f51c1a3c_10000000001& E86
4480    convertToDouble +997E23
4481} 0x45549e12f51c1a3d
4482test expr-28.810 {input floating-point conversion} {ieeeFloatingPoint} {
4483    # Ad2b dieee UN +776 E24 x 140f232256e982_1000000001& E89
4484    convertToDouble +776E24
4485} 0x45840f232256e983
4486test expr-28.811 {input floating-point conversion} {ieeeFloatingPoint} {
4487    # Ad2b dieee UN -388 E24 x -140f232256e982_1000000001& E88
4488    convertToDouble -388E24
4489} 0xc5740f232256e983
4490test expr-28.812 {input floating-point conversion} {ieeeFloatingPoint} {
4491    # Ad2b dieee UN +521 E-10 x 1bf891c92c0890_100000000001& E-25
4492    convertToDouble +521E-10
4493} 0x3e6bf891c92c0891
4494test expr-28.813 {input floating-point conversion} {ieeeFloatingPoint} {
4495    # Ad2b dieee UN -506 E-26 x -1877fa0260beb2_10000000001& E-78
4496    convertToDouble -506E-26
4497} 0xbb1877fa0260beb3
4498test expr-28.814 {input floating-point conversion} {ieeeFloatingPoint} {
4499    # Ad2b dieee UN +739 E-10 x 13d65e8c76722c_10000000001& E-24
4500    convertToDouble +739E-10
4501} 0x3e73d65e8c76722d
4502test expr-28.815 {input floating-point conversion} {ieeeFloatingPoint} {
4503    # Ad2b dieee UN -867 E-7 x -16ba56a8834168_100000000001& E-14
4504    convertToDouble -867E-7
4505} 0xbf16ba56a8834169
4506test expr-28.816 {input floating-point conversion} {ieeeFloatingPoint} {
4507    # Ad2b dieee UN -415 E24 x -15747ab143e353_011111111110& E88
4508    convertToDouble -415E24
4509} 0xc575747ab143e353
4510test expr-28.817 {input floating-point conversion} {ieeeFloatingPoint} {
4511    # Ad2b dieee UN +332 E25 x 15747ab143e353_011111111110& E91
4512    convertToDouble +332E25
4513} 0x45a5747ab143e353
4514test expr-28.818 {input floating-point conversion} {ieeeFloatingPoint} {
4515    # Ad2b dieee UN -664 E25 x -15747ab143e353_011111111110& E92
4516    convertToDouble -664E25
4517} 0xc5b5747ab143e353
4518test expr-28.819 {input floating-point conversion} {ieeeFloatingPoint} {
4519    # Ad2b dieee UN +291 E-13 x 1ffeebfc8b81b5_01111111111110& E-36
4520    convertToDouble +291E-13
4521} 0x3dbffeebfc8b81b5
4522test expr-28.820 {input floating-point conversion} {ieeeFloatingPoint} {
4523    # Ad2b dieee UN -982 E-8 x -14981285e98e79_0111111111110& E-17
4524    convertToDouble -982E-8
4525} 0xbee4981285e98e79
4526test expr-28.821 {input floating-point conversion} {ieeeFloatingPoint} {
4527    # Ad2b dieee UN +582 E-13 x 1ffeebfc8b81b5_01111111111110& E-35
4528    convertToDouble +582E-13
4529} 0x3dcffeebfc8b81b5
4530test expr-28.822 {input floating-point conversion} {ieeeFloatingPoint} {
4531    # Ad2b dieee UN -491 E-8 x -14981285e98e79_0111111111110& E-18
4532    convertToDouble -491E-8
4533} 0xbed4981285e98e79
4534test expr-28.823 {input floating-point conversion} {ieeeFloatingPoint} {
4535    # Ad2b dieee UN +4574 E26 x 1717c1a612f954_100000000001& E98
4536    convertToDouble +4574E26
4537} 0x461717c1a612f955
4538test expr-28.824 {input floating-point conversion} {ieeeFloatingPoint} {
4539    # Ad2b dieee UN -8609 E26 x -15bb6f942546ee_1000000000001& E99
4540    convertToDouble -8609E26
4541} 0xc625bb6f942546ef
4542test expr-28.825 {input floating-point conversion} {ieeeFloatingPoint} {
4543    # Ad2b dieee UN +2287 E26 x 1717c1a612f954_100000000001& E97
4544    convertToDouble +2287E26
4545} 0x460717c1a612f955
4546test expr-28.826 {input floating-point conversion} {ieeeFloatingPoint} {
4547    # Ad2b dieee UN -4818 E24 x -1f22b65eb419a0_10000000001& E91
4548    convertToDouble -4818E24
4549} 0xc5af22b65eb419a1
4550test expr-28.827 {input floating-point conversion} {ieeeFloatingPoint} {
4551    # Ad2b dieee UN +6529 E-8 x 111d89a8b5c142_100000000000001& E-14
4552    convertToDouble +6529E-8
4553} 0x3f111d89a8b5c143
4554test expr-28.828 {input floating-point conversion} {ieeeFloatingPoint} {
4555    # Ad2b dieee UN -8151 E-21 x -12cb804b61b898_1000000000000001& E-57
4556    convertToDouble -8151E-21
4557} 0xbc62cb804b61b899
4558test expr-28.829 {input floating-point conversion} {ieeeFloatingPoint} {
4559    # Ad2b dieee UN +1557 E-12 x 1abfc227ab1026_10000000000001& E-30
4560    convertToDouble +1557E-12
4561} 0x3e1abfc227ab1027
4562test expr-28.830 {input floating-point conversion} {ieeeFloatingPoint} {
4563    # Ad2b dieee UN -2573 E-18 x -172cef1ebbca44_10000000000001& E-49
4564    convertToDouble -2573E-18
4565} 0xbce72cef1ebbca45
4566test expr-28.831 {input floating-point conversion} {ieeeFloatingPoint} {
4567    # Ad2b dieee UN +4929 E-16 x 1157a604ed019f_0111111111111110& E-41
4568    convertToDouble +4929E-16
4569} 0x3d6157a604ed019f
4570test expr-28.832 {input floating-point conversion} {ieeeFloatingPoint} {
4571    # Ad2b dieee UN -3053 E-22 x -1686f435fe6b6b_011111111111110& E-62
4572    convertToDouble -3053E-22
4573} 0xbc1686f435fe6b6b
4574test expr-28.833 {input floating-point conversion} {ieeeFloatingPoint} {
4575    # Ad2b dieee UN +9858 E-16 x 1157a604ed019f_0111111111111110& E-40
4576    convertToDouble +9858E-16
4577} 0x3d7157a604ed019f
4578test expr-28.834 {input floating-point conversion} {ieeeFloatingPoint} {
4579    # Ad2b dieee UN -7767 E-11 x -14d971170ed055_011111111111110& E-24
4580    convertToDouble -7767E-11
4581} 0xbe74d971170ed055
4582test expr-28.835 {input floating-point conversion} {ieeeFloatingPoint} {
4583    # Ad2b dieee UN +54339 E26 x 1125782ec15cbe_100000000000000001& E102
4584    convertToDouble +54339E26
4585} 0x465125782ec15cbf
4586test expr-28.836 {input floating-point conversion} {ieeeFloatingPoint} {
4587    # Ad2b dieee UN -62409 E25 x -1f822c980d4bb2_100000000000000001& E98
4588    convertToDouble -62409E25
4589} 0xc61f822c980d4bb3
4590test expr-28.837 {input floating-point conversion} {ieeeFloatingPoint} {
4591    # Ad2b dieee UN +32819 E27 x 19e3be885fc16a_100000000000001& E104
4592    convertToDouble +32819E27
4593} 0x4679e3be885fc16b
4594test expr-28.838 {input floating-point conversion} {ieeeFloatingPoint} {
4595    # Ad2b dieee UN -89849 E27 x -11b8371b6dda04_1000000000000001& E106
4596    convertToDouble -89849E27
4597} 0xc691b8371b6dda05
4598test expr-28.839 {input floating-point conversion} {ieeeFloatingPoint} {
4599    # Ad2b dieee UN +63876 E-20 x 1703856844bdbe_1000000000000000000001& E-51
4600    convertToDouble +63876E-20
4601} 0x3cc703856844bdbf
4602test expr-28.840 {input floating-point conversion} {ieeeFloatingPoint} {
4603    # Ad2b dieee UN -15969 E-20 x -1703856844bdbe_1000000000000000000001& E-53
4604    convertToDouble -15969E-20
4605} 0xbca703856844bdbf
4606test expr-28.841 {input floating-point conversion} {ieeeFloatingPoint} {
4607    # Ad2b dieee UN +31938 E-20 x 1703856844bdbe_1000000000000000000001& E-52
4608    convertToDouble +31938E-20
4609} 0x3cb703856844bdbf
4610test expr-28.842 {input floating-point conversion} {ieeeFloatingPoint} {
4611    # Ad2b dieee UN -79845 E-21 x -1703856844bdbe_1000000000000000000001& E-54
4612    convertToDouble -79845E-21
4613} 0xbc9703856844bdbf
4614test expr-28.843 {input floating-point conversion} {ieeeFloatingPoint} {
4615    # Ad2b dieee UN +89306 E27 x 119cccff237e17_011111111111110& E106
4616    convertToDouble +89306E27
4617} 0x46919cccff237e17
4618test expr-28.844 {input floating-point conversion} {ieeeFloatingPoint} {
4619    # Ad2b dieee UN -25487 E24 x -1496968ba07117_01111111111110& E94
4620    convertToDouble -25487E24
4621} 0xc5d496968ba07117
4622test expr-28.845 {input floating-point conversion} {ieeeFloatingPoint} {
4623    # Ad2b dieee UN +79889 E24 x 10222a1c7e27d3_01111111111110& E96
4624    convertToDouble +79889E24
4625} 0x45f0222a1c7e27d3
4626test expr-28.846 {input floating-point conversion} {ieeeFloatingPoint} {
4627    # Ad2b dieee UN -97379 E26 x -1eba3685911519_011111111111111110& E102
4628    convertToDouble -97379E26
4629} 0xc65eba3685911519
4630test expr-28.847 {input floating-point conversion} {ieeeFloatingPoint} {
4631    # Ad2b dieee UN +81002 E-8 x 1a8af0b45d9531_0111111111111111110& E-11
4632    convertToDouble +81002E-8
4633} 0x3f4a8af0b45d9531
4634test expr-28.848 {input floating-point conversion} {ieeeFloatingPoint} {
4635    # Ad2b dieee UN -43149 E-25 x -146064de6ecbed_011111111111111110& E-68
4636    convertToDouble -43149E-25
4637} 0xbbb46064de6ecbed
4638test expr-28.849 {input floating-point conversion} {ieeeFloatingPoint} {
4639    # Ad2b dieee UN +40501 E-8 x 1a8af0b45d9531_0111111111111111110& E-12
4640    convertToDouble +40501E-8
4641} 0x3f3a8af0b45d9531
4642test expr-28.850 {input floating-point conversion} {ieeeFloatingPoint} {
4643    # Ad2b dieee UN -60318 E-10 x -194c988f217e51_011111111111111110& E-18
4644    convertToDouble -60318E-10
4645} 0xbed94c988f217e51
4646test expr-28.851 {input floating-point conversion} {ieeeFloatingPoint} {
4647    # Ad2b dieee UN -648299 E27 x -1ff6af0bf00100_10000000000000000001& E108
4648    convertToDouble -648299E27
4649} 0xc6bff6af0bf00101
4650test expr-28.852 {input floating-point conversion} {ieeeFloatingPoint} {
4651    # Ad2b dieee UN +780649 E24 x 13b4d36f9edd18_10000000000000000001& E99
4652    convertToDouble +780649E24
4653} 0x4623b4d36f9edd19
4654test expr-28.853 {input floating-point conversion} {ieeeFloatingPoint} {
4655    # Ad2b dieee UN +720919 E-14 x 1ef696965cbf04_10000000000000000000000001& E-28
4656    convertToDouble +720919E-14
4657} 0x3e3ef696965cbf05
4658test expr-28.854 {input floating-point conversion} {ieeeFloatingPoint} {
4659    # Ad2b dieee UN -629703 E-11 x -1a69626d2629d0_1000000000000000000000001& E-18
4660    convertToDouble -629703E-11
4661} 0xbeda69626d2629d1
4662test expr-28.855 {input floating-point conversion} {ieeeFloatingPoint} {
4663    # Ad2b dieee UN +557913 E24 x 1c2adb44b394bf_01111111111111111110& E98
4664    convertToDouble +557913E24
4665} 0x461c2adb44b394bf
4666test expr-28.856 {input floating-point conversion} {ieeeFloatingPoint} {
4667    # Ad2b dieee UN -847899 E23 x -111f88fb93dce9_011111111111111111110& E96
4668    convertToDouble -847899E23
4669} 0xc5f11f88fb93dce9
4670test expr-28.857 {input floating-point conversion} {ieeeFloatingPoint} {
4671    # Ad2b dieee UN +565445 E27 x 1be0eb55770d4d_0111111111111111110& E108
4672    convertToDouble +565445E27
4673} 0x46bbe0eb55770d4d
4674test expr-28.858 {input floating-point conversion} {ieeeFloatingPoint} {
4675    # Ad2b dieee UN -736531 E24 x -1297b853d64ac7_01111111111111111110& E99
4676    convertToDouble -736531E24
4677} 0xc62297b853d64ac7
4678test expr-28.859 {input floating-point conversion} {ieeeFloatingPoint} {
4679    # Ad2b dieee UN +680013 E-19 x 13240293e95c3b_01111111111111111111110& E-44
4680    convertToDouble +680013E-19
4681} 0x3d33240293e95c3b
4682test expr-28.860 {input floating-point conversion} {ieeeFloatingPoint} {
4683    # Ad2b dieee UN -529981 E-10 x -1bc948d999ac11_011111111111111111110& E-15
4684    convertToDouble -529981E-10
4685} 0xbf0bc948d999ac11
4686test expr-28.861 {input floating-point conversion} {ieeeFloatingPoint} {
4687    # Ad2b dieee UN +382923 E-23 x 11a8c1c10a1fc5_011111111111111111110& E-58
4688    convertToDouble +382923E-23
4689} 0x3c51a8c1c10a1fc5
4690test expr-28.862 {input floating-point conversion} {ieeeFloatingPoint} {
4691    # Ad2b dieee UN -633614 E-18 x -164b166995a9b7_011111111111111111110& E-41
4692    convertToDouble -633614E-18
4693} 0xbd664b166995a9b7
4694test expr-28.863 {input floating-point conversion} {ieeeFloatingPoint} {
4695    # Ad2b dieee UN +2165479 E27 x 1ab10c016c34b8_100000000000000000000001& E110
4696    convertToDouble +2165479E27
4697} 0x46dab10c016c34b9
4698test expr-28.864 {input floating-point conversion} {ieeeFloatingPoint} {
4699    # Ad2b dieee UN -8661916 E27 x -1ab10c016c34b8_100000000000000000000001& E112
4700    convertToDouble -8661916E27
4701} 0xc6fab10c016c34b9
4702test expr-28.865 {input floating-point conversion} {ieeeFloatingPoint} {
4703    # Ad2b dieee UN +4330958 E27 x 1ab10c016c34b8_100000000000000000000001& E111
4704    convertToDouble +4330958E27
4705} 0x46eab10c016c34b9
4706test expr-28.866 {input floating-point conversion} {ieeeFloatingPoint} {
4707    # Ad2b dieee UN -9391993 E22 x -12f78bec748c98_1000000000000000000001& E96
4708    convertToDouble -9391993E22
4709} 0xc5f2f78bec748c99
4710test expr-28.867 {input floating-point conversion} {ieeeFloatingPoint} {
4711    # Ad2b dieee UN -5767352 E-14 x -1ef696965cbf04_10000000000000000000000001& E-25
4712    convertToDouble -5767352E-14
4713} 0xbe6ef696965cbf05
4714test expr-28.868 {input floating-point conversion} {ieeeFloatingPoint} {
4715    # Ad2b dieee UN +7209190 E-15 x 1ef696965cbf04_10000000000000000000000001& E-28
4716    convertToDouble +7209190E-15
4717} 0x3e3ef696965cbf05
4718test expr-28.869 {input floating-point conversion} {ieeeFloatingPoint} {
4719    # Ad2b dieee UN -1441838 E-14 x -1ef696965cbf04_10000000000000000000000001& E-27
4720    convertToDouble -1441838E-14
4721} 0xbe4ef696965cbf05
4722test expr-28.870 {input floating-point conversion} {ieeeFloatingPoint} {
4723    # Ad2b dieee UN +8478990 E22 x 111f88fb93dce9_011111111111111111110& E96
4724    convertToDouble +8478990E22
4725} 0x45f11f88fb93dce9
4726test expr-28.871 {input floating-point conversion} {ieeeFloatingPoint} {
4727    # Ad2b dieee UN +1473062 E24 x 1297b853d64ac7_01111111111111111110& E100
4728    convertToDouble +1473062E24
4729} 0x463297b853d64ac7
4730test expr-28.872 {input floating-point conversion} {ieeeFloatingPoint} {
4731    # Ad2b dieee UN +8366487 E-14 x 167567f55b22e1_0111111111111111111111110& E-24
4732    convertToDouble +8366487E-14
4733} 0x3e767567f55b22e1
4734test expr-28.873 {input floating-point conversion} {ieeeFloatingPoint} {
4735    # Ad2b dieee UN -8399969 E-25 x -1efd8be1b15b43_011111111111111111111110& E-61
4736    convertToDouble -8399969E-25
4737} 0xbc2efd8be1b15b43
4738test expr-28.874 {input floating-point conversion} {ieeeFloatingPoint} {
4739    # Ad2b dieee UN +9366737 E-12 x 13a4ba87ddc13f_011111111111111111111110& E-17
4740    convertToDouble +9366737E-12
4741} 0x3ee3a4ba87ddc13f
4742test expr-28.875 {input floating-point conversion} {ieeeFloatingPoint} {
4743    # Ad2b dieee UN -9406141 E-13 x -1f8fd047c84d49_0111111111111111111111110& E-21
4744    convertToDouble -9406141E-13
4745} 0xbeaf8fd047c84d49
4746test expr-28.876 {input floating-point conversion} {ieeeFloatingPoint} {
4747    # Ad2b dieee UN +65970979 E24 x 1a055dd68f3e3c_1000000000000000000000000001& E105
4748    convertToDouble +65970979E24
4749} 0x468a055dd68f3e3d
4750test expr-28.877 {input floating-point conversion} {ieeeFloatingPoint} {
4751    # Ad2b dieee UN -65060671 E26 x -140c61c9916cf4_100000000000000000000000001& E112
4752    convertToDouble -65060671E26
4753} 0xc6f40c61c9916cf5
4754test expr-28.878 {input floating-point conversion} {ieeeFloatingPoint} {
4755    # Ad2b dieee UN +54923002 E27 x 1527d37d8b38ea_10000000000000000000000001& E115
4756    convertToDouble +54923002E27
4757} 0x472527d37d8b38eb
4758test expr-28.879 {input floating-point conversion} {ieeeFloatingPoint} {
4759    # Ad2b dieee UN -63846927 E25 x -1f7a9d79dad9b4_10000000000000000000000001& E108
4760    convertToDouble -63846927E25
4761} 0xc6bf7a9d79dad9b5
4762test expr-28.880 {input floating-point conversion} {ieeeFloatingPoint} {
4763    # Ad2b dieee UN +99585767 E-21 x 1c07e928406d2e_100000000000000000000000001& E-44
4764    convertToDouble +99585767E-21
4765} 0x3d3c07e928406d2f
4766test expr-28.881 {input floating-point conversion} {ieeeFloatingPoint} {
4767    # Ad2b dieee UN +67488159 E25 x 10a31a03822bc9_011111111111111111111111111110& E109
4768    convertToDouble +67488159E25
4769} 0x46c0a31a03822bc9
4770test expr-28.882 {input floating-point conversion} {ieeeFloatingPoint} {
4771    # Ad2b dieee UN -69005339 E24 x -1b37c234aae77b_011111111111111111111111110& E105
4772    convertToDouble -69005339E24
4773} 0xc68b37c234aae77b
4774test expr-28.883 {input floating-point conversion} {ieeeFloatingPoint} {
4775    # Ad2b dieee UN +81956786 E27 x 1f919023fcb6fd_0111111111111111111111111110& E115
4776    convertToDouble +81956786E27
4777} 0x472f919023fcb6fd
4778test expr-28.884 {input floating-point conversion} {ieeeFloatingPoint} {
4779    # Ad2b dieee UN -40978393 E27 x -1f919023fcb6fd_0111111111111111111111111110& E114
4780    convertToDouble -40978393E27
4781} 0xc71f919023fcb6fd
4782test expr-28.885 {input floating-point conversion} {ieeeFloatingPoint} {
4783    # Ad2b dieee UN +77505754 E-12 x 145152b6f85e09_0111111111111111111111111110& E-14
4784    convertToDouble +77505754E-12
4785} 0x3f145152b6f85e09
4786test expr-28.886 {input floating-point conversion} {ieeeFloatingPoint} {
4787    # Ad2b dieee UN -38752877 E-12 x -145152b6f85e09_0111111111111111111111111110& E-15
4788    convertToDouble -38752877E-12
4789} 0xbf045152b6f85e09
4790test expr-28.887 {input floating-point conversion} {ieeeFloatingPoint} {
4791    # Ad2b dieee UN +82772981 E-15 x 16381dae63505f_0111111111111111111111111111110& E-24
4792    convertToDouble +82772981E-15
4793} 0x3e76381dae63505f
4794test expr-28.888 {input floating-point conversion} {ieeeFloatingPoint} {
4795    # Ad2b dieee UN -95593517 E-25 x -160ad862d8537d_0111111111111111111111111110& E-57
4796    convertToDouble -95593517E-25
4797} 0xbc660ad862d8537d
4798test expr-28.889 {input floating-point conversion} {ieeeFloatingPoint} {
4799    # Ad2b dieee UN +200036989 E25 x 18a80dedbc575e_10000000000000000000000000001& E110
4800    convertToDouble +200036989E25
4801} 0x46d8a80dedbc575f
4802test expr-28.890 {input floating-point conversion} {ieeeFloatingPoint} {
4803    # Ad2b dieee UN -772686455 E27 x -129a0c45ceca7a_1000000000000000000000000000001& E119
4804    convertToDouble -772686455E27
4805} 0xc7629a0c45ceca7b
4806test expr-28.891 {input floating-point conversion} {ieeeFloatingPoint} {
4807    # Ad2b dieee UN +859139907 E23 x 10f18c4dd0ffe2_10000000000000000000000000001& E106
4808    convertToDouble +859139907E23
4809} 0x4690f18c4dd0ffe3
4810test expr-28.892 {input floating-point conversion} {ieeeFloatingPoint} {
4811    # Ad2b dieee UN -400073978 E25 x -18a80dedbc575e_10000000000000000000000000001& E111
4812    convertToDouble -400073978E25
4813} 0xc6e8a80dedbc575f
4814test expr-28.893 {input floating-point conversion} {ieeeFloatingPoint} {
4815    # Ad2b dieee UN +569014327 E-14 x 17ddbeac19d3b2_100000000000000000000000000001& E-18
4816    convertToDouble +569014327E-14
4817} 0x3ed7ddbeac19d3b3
4818test expr-28.894 {input floating-point conversion} {ieeeFloatingPoint} {
4819    # Ad2b dieee UN -794263862 E-15 x -1aa6acb41dfc52_1000000000000000000000000000001& E-21
4820    convertToDouble -794263862E-15
4821} 0xbeaaa6acb41dfc53
4822test expr-28.895 {input floating-point conversion} {ieeeFloatingPoint} {
4823    # Ad2b dieee UN +397131931 E-15 x 1aa6acb41dfc52_1000000000000000000000000000001& E-22
4824    convertToDouble +397131931E-15
4825} 0x3e9aa6acb41dfc53
4826test expr-28.896 {input floating-point conversion} {ieeeFloatingPoint} {
4827    # Ad2b dieee UN -380398957 E-16 x -146c29d8331024_100000000000000000000000000001& E-25
4828    convertToDouble -380398957E-16
4829} 0xbe646c29d8331025
4830test expr-28.897 {input floating-point conversion} {ieeeFloatingPoint} {
4831    # Ad2b dieee UN +567366773 E27 x 1b5155dd5417f9_0111111111111111111111111111110& E118
4832    convertToDouble +567366773E27
4833} 0x475b5155dd5417f9
4834test expr-28.898 {input floating-point conversion} {ieeeFloatingPoint} {
4835    # Ad2b dieee UN -337440795 E24 x -10a31a03822bc9_011111111111111111111111111110& E108
4836    convertToDouble -337440795E24
4837} 0xc6b0a31a03822bc9
4838test expr-28.899 {input floating-point conversion} {ieeeFloatingPoint} {
4839    # Ad2b dieee UN +134976318 E25 x 10a31a03822bc9_011111111111111111111111111110& E110
4840    convertToDouble +134976318E25
4841} 0x46d0a31a03822bc9
4842test expr-28.900 {input floating-point conversion} {ieeeFloatingPoint} {
4843    # Ad2b dieee UN -269952636 E25 x -10a31a03822bc9_011111111111111111111111111110& E111
4844    convertToDouble -269952636E25
4845} 0xc6e0a31a03822bc9
4846test expr-28.901 {input floating-point conversion} {ieeeFloatingPoint} {
4847    # Ad2b dieee UN +932080597 E-20 x 147f25b4941e5b_0111111111111111111111111111110& E-37
4848    convertToDouble +932080597E-20
4849} 0x3da47f25b4941e5b
4850test expr-28.902 {input floating-point conversion} {ieeeFloatingPoint} {
4851    # Ad2b dieee UN -331091924 E-15 x -16381dae63505f_0111111111111111111111111111110& E-22
4852    convertToDouble -331091924E-15
4853} 0xbe96381dae63505f
4854test expr-28.903 {input floating-point conversion} {ieeeFloatingPoint} {
4855    # Ad2b dieee UN -413864905 E-16 x -16381dae63505f_0111111111111111111111111111110& E-25
4856    convertToDouble -413864905E-16
4857} 0xbe66381dae63505f
4858test expr-28.904 {input floating-point conversion} {ieeeFloatingPoint} {
4859    # Ad2b dieee UN +8539246247 E26 x 148eb7813eaeba_10000000000000000000000000000001& E119
4860    convertToDouble +8539246247E26
4861} 0x47648eb7813eaebb
4862test expr-28.905 {input floating-point conversion} {ieeeFloatingPoint} {
4863    # Ad2b dieee UN -5859139791 E26 x -1c35f28719d478_10000000000000000000000000000001& E118
4864    convertToDouble -5859139791E26
4865} 0xc75c35f28719d479
4866test expr-28.906 {input floating-point conversion} {ieeeFloatingPoint} {
4867    # Ad2b dieee UN +6105010149 E24 x 12d000fb2b138a_1000000000000000000000000000000001& E112
4868    convertToDouble +6105010149E24
4869} 0x46f2d000fb2b138b
4870test expr-28.907 {input floating-point conversion} {ieeeFloatingPoint} {
4871    # Ad2b dieee UN -3090745820 E27 x -129a0c45ceca7a_1000000000000000000000000000001& E121
4872    convertToDouble -3090745820E27
4873} 0xc7829a0c45ceca7b
4874test expr-28.908 {input floating-point conversion} {ieeeFloatingPoint} {
4875    # Ad2b dieee UN +3470877773 E-20 x 1314d381f2c31e_1000000000000000000000000000000001& E-35
4876    convertToDouble +3470877773E-20
4877} 0x3dc314d381f2c31f
4878test expr-28.909 {input floating-point conversion} {ieeeFloatingPoint} {
4879    # Ad2b dieee UN -6136309089 E-27 x -1c4c799fab4328_1000000000000000000000000000000001& E-58
4880    convertToDouble -6136309089E-27
4881} 0xbc5c4c799fab4329
4882test expr-28.910 {input floating-point conversion} {ieeeFloatingPoint} {
4883    # Ad2b dieee UN +8917758713 E-19 x 1ea424bda7d7f4_100000000000000000000000000000001& E-31
4884    convertToDouble +8917758713E-19
4885} 0x3e0ea424bda7d7f5
4886test expr-28.911 {input floating-point conversion} {ieeeFloatingPoint} {
4887    # Ad2b dieee UN -6941755546 E-20 x -1314d381f2c31e_1000000000000000000000000000000001& E-34
4888    convertToDouble -6941755546E-20
4889} 0xbdd314d381f2c31f
4890test expr-28.912 {input floating-point conversion} {ieeeFloatingPoint} {
4891    # Ad2b dieee UN +9194900535 E25 x 11b56f9c090dfb_011111111111111111111111111111111110& E116
4892    convertToDouble +9194900535E25
4893} 0x4731b56f9c090dfb
4894test expr-28.913 {input floating-point conversion} {ieeeFloatingPoint} {
4895    # Ad2b dieee UN -1838980107 E26 x -11b56f9c090dfb_011111111111111111111111111111111110& E117
4896    convertToDouble -1838980107E26
4897} 0xc741b56f9c090dfb
4898test expr-28.914 {input floating-point conversion} {ieeeFloatingPoint} {
4899    # Ad2b dieee UN +7355920428 E26 x 11b56f9c090dfb_011111111111111111111111111111111110& E119
4900    convertToDouble +7355920428E26
4901} 0x4761b56f9c090dfb
4902test expr-28.915 {input floating-point conversion} {ieeeFloatingPoint} {
4903    # Ad2b dieee UN -3677960214 E26 x -11b56f9c090dfb_011111111111111111111111111111111110& E118
4904    convertToDouble -3677960214E26
4905} 0xc751b56f9c090dfb
4906test expr-28.916 {input floating-point conversion} {ieeeFloatingPoint} {
4907    # Ad2b dieee UN +8473634343 E-17 x 16bf0984b232b7_0111111111111111111111111111111110& E-24
4908    convertToDouble +8473634343E-17
4909} 0x3e76bf0984b232b7
4910test expr-28.917 {input floating-point conversion} {ieeeFloatingPoint} {
4911    # Ad2b dieee UN -8870766274 E-16 x -1dc3ee22137269_0111111111111111111111111111111110& E-21
4912    convertToDouble -8870766274E-16
4913} 0xbeadc3ee22137269
4914test expr-28.918 {input floating-point conversion} {ieeeFloatingPoint} {
4915    # Ad2b dieee UN +4435383137 E-16 x 1dc3ee22137269_0111111111111111111111111111111110& E-22
4916    convertToDouble +4435383137E-16
4917} 0x3e9dc3ee22137269
4918test expr-28.919 {input floating-point conversion} {ieeeFloatingPoint} {
4919    # Ad2b dieee UN -9598990129 E-15 x -14216b286031e7_01111111111111111111111111111111110& E-17
4920    convertToDouble -9598990129E-15
4921} 0xbee4216b286031e7
4922test expr-28.920 {input floating-point conversion} {ieeeFloatingPoint} {
4923    # Ad2b dieee UN +71563496764 E26 x 15890d1ef6a0da_10000000000000000000000000000000000001& E122
4924    convertToDouble +71563496764E26
4925} 0x4795890d1ef6a0db
4926test expr-28.921 {input floating-point conversion} {ieeeFloatingPoint} {
4927    # Ad2b dieee UN -89454370955 E25 x -15890d1ef6a0da_10000000000000000000000000000000000001& E119
4928    convertToDouble -89454370955E25
4929} 0xc765890d1ef6a0db
4930test expr-28.922 {input floating-point conversion} {ieeeFloatingPoint} {
4931    # Ad2b dieee UN +17890874191 E26 x 15890d1ef6a0da_10000000000000000000000000000000000001& E120
4932    convertToDouble +17890874191E26
4933} 0x4775890d1ef6a0db
4934test expr-28.923 {input floating-point conversion} {ieeeFloatingPoint} {
4935    # Ad2b dieee UN -35781748382 E26 x -15890d1ef6a0da_10000000000000000000000000000000000001& E121
4936    convertToDouble -35781748382E26
4937} 0xc785890d1ef6a0db
4938test expr-28.924 {input floating-point conversion} {ieeeFloatingPoint} {
4939    # Ad2b dieee UN +57973447842 E-19 x 18e63f7cf5313c_1000000000000000000000000000000000000001& E-28
4940    convertToDouble +57973447842E-19
4941} 0x3e38e63f7cf5313d
4942test expr-28.925 {input floating-point conversion} {ieeeFloatingPoint} {
4943    # Ad2b dieee UN -28986723921 E-19 x -18e63f7cf5313c_1000000000000000000000000000000000000001& E-29
4944    convertToDouble -28986723921E-19
4945} 0xbe28e63f7cf5313d
4946test expr-28.926 {input floating-point conversion} {ieeeFloatingPoint} {
4947    # Ad2b dieee UN +76822711313 E-19 x 107f5f8b3bf818_100000000000000000000000000000000001& E-27
4948    convertToDouble +76822711313E-19
4949} 0x3e407f5f8b3bf819
4950test expr-28.927 {input floating-point conversion} {ieeeFloatingPoint} {
4951    # Ad2b dieee UN -97699466874 E-20 x -10c8de34de806e_10000000000000000000000000000000001& E-30
4952    convertToDouble -97699466874E-20
4953} 0xbe10c8de34de806f
4954test expr-28.928 {input floating-point conversion} {ieeeFloatingPoint} {
4955    # Ad2b dieee UN +67748656762 E27 x 197bf5559b31fd_01111111111111111111111111111111111110& E125
4956    convertToDouble +67748656762E27
4957} 0x47c97bf5559b31fd
4958test expr-28.929 {input floating-point conversion} {ieeeFloatingPoint} {
4959    # Ad2b dieee UN -19394840991 E24 x -1de1ea791a6e7d_0111111111111111111111111111111111110& E113
4960    convertToDouble -19394840991E24
4961} 0xc70de1ea791a6e7d
4962test expr-28.930 {input floating-point conversion} {ieeeFloatingPoint} {
4963    # Ad2b dieee UN +38789681982 E24 x 1de1ea791a6e7d_0111111111111111111111111111111111110& E114
4964    convertToDouble +38789681982E24
4965} 0x471de1ea791a6e7d
4966test expr-28.931 {input floating-point conversion} {ieeeFloatingPoint} {
4967    # Ad2b dieee UN -33874328381 E27 x -197bf5559b31fd_01111111111111111111111111111111111110& E124
4968    convertToDouble -33874328381E27
4969} 0xc7b97bf5559b31fd
4970test expr-28.932 {input floating-point conversion} {ieeeFloatingPoint} {
4971    # Ad2b dieee UN +54323763886 E-27 x 1f50c5c63e5441_0111111111111111111111111111111111110& E-55
4972    convertToDouble +54323763886E-27
4973} 0x3c8f50c5c63e5441
4974test expr-28.933 {input floating-point conversion} {ieeeFloatingPoint} {
4975    # Ad2b dieee UN -58987193887 E-20 x -14449185a4c829_011111111111111111111111111111111111110& E-31
4976    convertToDouble -58987193887E-20
4977} 0xbe04449185a4c829
4978test expr-28.934 {input floating-point conversion} {ieeeFloatingPoint} {
4979    # Ad2b dieee UN +27161881943 E-27 x 1f50c5c63e5441_0111111111111111111111111111111111110& E-56
4980    convertToDouble +27161881943E-27
4981} 0x3c7f50c5c63e5441
4982test expr-28.935 {input floating-point conversion} {ieeeFloatingPoint} {
4983    # Ad2b dieee UN -93042648033 E-19 x -13fb12dc023fd3_0111111111111111111111111111111111110& E-27
4984    convertToDouble -93042648033E-19
4985} 0xbe43fb12dc023fd3
4986test expr-28.936 {input floating-point conversion} {ieeeFloatingPoint} {
4987    # Ad2b dieee UN +520831059055 E27 x 187d469cb69dd0_10000000000000000000000000000000000000001& E128
4988    convertToDouble +520831059055E27
4989} 0x47f87d469cb69dd1
4990test expr-28.937 {input floating-point conversion} {ieeeFloatingPoint} {
4991    # Ad2b dieee UN -768124264394 E25 x -171d6a019edae8_1000000000000000000000000000000000000001& E122
4992    convertToDouble -768124264394E25
4993} 0xc7971d6a019edae9
4994test expr-28.938 {input floating-point conversion} {ieeeFloatingPoint} {
4995    # Ad2b dieee UN +384062132197 E25 x 171d6a019edae8_1000000000000000000000000000000000000001& E121
4996    convertToDouble +384062132197E25
4997} 0x47871d6a019edae9
4998test expr-28.939 {input floating-point conversion} {ieeeFloatingPoint} {
4999    # Ad2b dieee UN +765337749889 E-25 x 158ad6f5d0a854_100000000000000000000000000000000000000001& E-44
5000    convertToDouble +765337749889E-25
5001} 0x3d358ad6f5d0a855
5002test expr-28.940 {input floating-point conversion} {ieeeFloatingPoint} {
5003    # Ad2b dieee UN +794368912771 E25 x 17e79872f2f7ef_01111111111111111111111111111111111111110& E122
5004    convertToDouble +794368912771E25
5005} 0x4797e79872f2f7ef
5006test expr-28.941 {input floating-point conversion} {ieeeFloatingPoint} {
5007    # Ad2b dieee UN -994162090146 E23 x -132598f85e658b_011111111111111111111111111111111111110& E116
5008    convertToDouble -994162090146E23
5009} 0xc7332598f85e658b
5010test expr-28.942 {input floating-point conversion} {ieeeFloatingPoint} {
5011    # Ad2b dieee UN +781652779431 E26 x 1d670adf52038f_01111111111111111111111111111111111110& E125
5012    convertToDouble +781652779431E26
5013} 0x47cd670adf52038f
5014test expr-28.943 {input floating-point conversion} {ieeeFloatingPoint} {
5015    # Ad2b dieee UN +910077190046 E-26 x 147e3ce1871d79_01111111111111111111111111111111111111110& E-47
5016    convertToDouble +910077190046E-26
5017} 0x3d047e3ce1871d79
5018test expr-28.944 {input floating-point conversion} {ieeeFloatingPoint} {
5019    # Ad2b dieee UN -455038595023 E-26 x -147e3ce1871d79_01111111111111111111111111111111111111110& E-48
5020    convertToDouble -455038595023E-26
5021} 0xbcf47e3ce1871d79
5022test expr-28.945 {input floating-point conversion} {ieeeFloatingPoint} {
5023    # Ad2b dieee UN +471897551096 E-20 x 14449185a4c829_011111111111111111111111111111111111110& E-28
5024    convertToDouble +471897551096E-20
5025} 0x3e34449185a4c829
5026test expr-28.946 {input floating-point conversion} {ieeeFloatingPoint} {
5027    # Ad2b dieee UN -906698409911 E-21 x -1f27674f7d5745_0111111111111111111111111111111111111110& E-31
5028    convertToDouble -906698409911E-21
5029} 0xbe0f27674f7d5745
5030test expr-28.947 {input floating-point conversion} {ieeeFloatingPoint} {
5031    # Ad2b dieee UN +8854128003935 E25 x 10a71b8948faac_100000000000000000000000000000000000000001& E126
5032    convertToDouble +8854128003935E25
5033} 0x47d0a71b8948faad
5034test expr-28.948 {input floating-point conversion} {ieeeFloatingPoint} {
5035    # Ad2b dieee UN -8146122716299 E27 x -17f0762ac05654_1000000000000000000000000000000000000000001& E132
5036    convertToDouble -8146122716299E27
5037} 0xc837f0762ac05655
5038test expr-28.949 {input floating-point conversion} {ieeeFloatingPoint} {
5039    # Ad2b dieee UN +7083302403148 E26 x 10a71b8948faac_100000000000000000000000000000000000000001& E129
5040    convertToDouble +7083302403148E26
5041} 0x4800a71b8948faad
5042test expr-28.950 {input floating-point conversion} {ieeeFloatingPoint} {
5043    # Ad2b dieee UN -3541651201574 E26 x -10a71b8948faac_100000000000000000000000000000000000000001& E128
5044    convertToDouble -3541651201574E26
5045} 0xc7f0a71b8948faad
5046test expr-28.951 {input floating-point conversion} {ieeeFloatingPoint} {
5047    # Ad2b dieee UN +8394920649291 E-25 x 1d8978e8c1cc78_100000000000000000000000000000000000000000001& E-41
5048    convertToDouble +8394920649291E-25
5049} 0x3d6d8978e8c1cc79
5050test expr-28.952 {input floating-point conversion} {ieeeFloatingPoint} {
5051    # Ad2b dieee UN -7657975756753 E-22 x -1a5006d695fef0_1000000000000000000000000000000000000000000001& E-31
5052    convertToDouble -7657975756753E-22
5053} 0xbe0a5006d695fef1
5054test expr-28.953 {input floating-point conversion} {ieeeFloatingPoint} {
5055    # Ad2b dieee UN +5473834002228 E-20 x 1d632e1f745624_100000000000000000000000000000000000000000001& E-25
5056    convertToDouble +5473834002228E-20
5057} 0x3e6d632e1f745625
5058test expr-28.954 {input floating-point conversion} {ieeeFloatingPoint} {
5059    # Ad2b dieee UN -6842292502785 E-21 x -1d632e1f745624_100000000000000000000000000000000000000000001& E-28
5060    convertToDouble -6842292502785E-21
5061} 0xbe3d632e1f745625
5062test expr-28.955 {input floating-point conversion} {ieeeFloatingPoint} {
5063    # Ad2b dieee UN -2109568884597 E25 x -1fbdc386609b13_011111111111111111111111111111111111111110& E123
5064    convertToDouble -2109568884597E25
5065} 0xc7afbdc386609b13
5066test expr-28.956 {input floating-point conversion} {ieeeFloatingPoint} {
5067    # Ad2b dieee UN +8438275538388 E25 x 1fbdc386609b13_011111111111111111111111111111111111111110& E125
5068    convertToDouble +8438275538388E25
5069} 0x47cfbdc386609b13
5070test expr-28.957 {input floating-point conversion} {ieeeFloatingPoint} {
5071    # Ad2b dieee UN -4219137769194 E25 x -1fbdc386609b13_011111111111111111111111111111111111111110& E124
5072    convertToDouble -4219137769194E25
5073} 0xc7bfbdc386609b13
5074test expr-28.958 {input floating-point conversion} {ieeeFloatingPoint} {
5075    # Ad2b dieee UN +3200141789841 E-25 x 1684dcea3829f7_0111111111111111111111111111111111111111110& E-42
5076    convertToDouble +3200141789841E-25
5077} 0x3d5684dcea3829f7
5078test expr-28.959 {input floating-point conversion} {ieeeFloatingPoint} {
5079    # Ad2b dieee UN -8655689322607 E-22 x -1dbd9ff5dc8991_011111111111111111111111111111111111111110& E-31
5080    convertToDouble -8655689322607E-22
5081} 0xbe0dbd9ff5dc8991
5082test expr-28.960 {input floating-point conversion} {ieeeFloatingPoint} {
5083    # Ad2b dieee UN +6400283579682 E-25 x 1684dcea3829f7_0111111111111111111111111111111111111111110& E-41
5084    convertToDouble +6400283579682E-25
5085} 0x3d6684dcea3829f7
5086test expr-28.961 {input floating-point conversion} {ieeeFloatingPoint} {
5087    # Ad2b dieee UN -8837719634493 E-21 x -12fa9676d2585b_011111111111111111111111111111111111111110& E-27
5088    convertToDouble -8837719634493E-21
5089} 0xbe42fa9676d2585b
5090test expr-28.962 {input floating-point conversion} {ieeeFloatingPoint} {
5091    # Ad2b dieee UN +19428217075297 E24 x 1d3b7a1d154aba_10000000000000000000000000000000000000000000001& E123
5092    convertToDouble +19428217075297E24
5093} 0x47ad3b7a1d154abb
5094test expr-28.963 {input floating-point conversion} {ieeeFloatingPoint} {
5095    # Ad2b dieee UN -38856434150594 E24 x -1d3b7a1d154aba_10000000000000000000000000000000000000000000001& E124
5096    convertToDouble -38856434150594E24
5097} 0xc7bd3b7a1d154abb
5098test expr-28.964 {input floating-point conversion} {ieeeFloatingPoint} {
5099    # Ad2b dieee UN +77712868301188 E24 x 1d3b7a1d154aba_10000000000000000000000000000000000000000000001& E125
5100    convertToDouble +77712868301188E24
5101} 0x47cd3b7a1d154abb
5102test expr-28.965 {input floating-point conversion} {ieeeFloatingPoint} {
5103    # Ad2b dieee UN -77192037242133 E27 x -1c5b1ab32d5dbe_1000000000000000000000000000000000000000000000001& E135
5104    convertToDouble -77192037242133E27
5105} 0xc86c5b1ab32d5dbf
5106test expr-28.966 {input floating-point conversion} {ieeeFloatingPoint} {
5107    # Ad2b dieee UN +76579757567530 E-23 x 1a5006d695fef0_1000000000000000000000000000000000000000000001& E-31
5108    convertToDouble +76579757567530E-23
5109} 0x3e0a5006d695fef1
5110test expr-28.967 {input floating-point conversion} {ieeeFloatingPoint} {
5111    # Ad2b dieee UN +15315951513506 E-22 x 1a5006d695fef0_1000000000000000000000000000000000000000000001& E-30
5112    convertToDouble +15315951513506E-22
5113} 0x3e1a5006d695fef1
5114test expr-28.968 {input floating-point conversion} {ieeeFloatingPoint} {
5115    # Ad2b dieee UN -38289878783765 E-23 x -1a5006d695fef0_1000000000000000000000000000000000000000000001& E-32
5116    convertToDouble -38289878783765E-23
5117} 0xbdfa5006d695fef1
5118test expr-28.969 {input floating-point conversion} {ieeeFloatingPoint} {
5119    # Ad2b dieee UN +49378033925202 E25 x 1737aa2567167b_0111111111111111111111111111111111111111111110& E128
5120    convertToDouble +49378033925202E25
5121} 0x47f737aa2567167b
5122test expr-28.970 {input floating-point conversion} {ieeeFloatingPoint} {
5123    # Ad2b dieee UN -50940527102367 E24 x -132964f2944b05_0111111111111111111111111111111111111111111111110& E125
5124    convertToDouble -50940527102367E24
5125} 0xc7c32964f2944b05
5126test expr-28.971 {input floating-point conversion} {ieeeFloatingPoint} {
5127    # Ad2b dieee UN +98756067850404 E25 x 1737aa2567167b_0111111111111111111111111111111111111111111110& E129
5128    convertToDouble +98756067850404E25
5129} 0x480737aa2567167b
5130test expr-28.972 {input floating-point conversion} {ieeeFloatingPoint} {
5131    # Ad2b dieee UN -99589397544892 E26 x -1d4446075c4933_0111111111111111111111111111111111111111111110& E132
5132    convertToDouble -99589397544892E26
5133} 0xc83d4446075c4933
5134test expr-28.973 {input floating-point conversion} {ieeeFloatingPoint} {
5135    # Ad2b dieee UN -56908598265713 E-25 x -190756ab1ed6b3_011111111111111111111111111111111111111111111110& E-38
5136    convertToDouble -56908598265713E-25
5137} 0xbd990756ab1ed6b3
5138test expr-28.974 {input floating-point conversion} {ieeeFloatingPoint} {
5139    # Ad2b dieee UN +97470695699657 E-22 x 14ee821710e655_01111111111111111111111111111111111111111111110& E-27
5140    convertToDouble +97470695699657E-22
5141} 0x3e44ee821710e655
5142test expr-28.975 {input floating-point conversion} {ieeeFloatingPoint} {
5143    # Ad2b dieee UN -35851901247343 E-25 x -1f8921657e1581_0111111111111111111111111111111111111111111110& E-39
5144    convertToDouble -35851901247343E-25
5145} 0xbd8f8921657e1581
5146test expr-28.976 {input floating-point conversion} {ieeeFloatingPoint} {
5147    # Ad2b dieee UN +154384074484266 E27 x 1c5b1ab32d5dbe_1000000000000000000000000000000000000000000000001& E136
5148    convertToDouble +154384074484266E27
5149} 0x487c5b1ab32d5dbf
5150test expr-28.977 {input floating-point conversion} {ieeeFloatingPoint} {
5151    # Ad2b dieee UN -308768148968532 E27 x -1c5b1ab32d5dbe_1000000000000000000000000000000000000000000000001& E137
5152    convertToDouble -308768148968532E27
5153} 0xc88c5b1ab32d5dbf
5154test expr-28.978 {input floating-point conversion} {ieeeFloatingPoint} {
5155    # Ad2b dieee UN +910990389005985 E23 x 112242592ae54a_100000000000000000000000000000000000000000000001& E126
5156    convertToDouble +910990389005985E23
5157} 0x47d12242592ae54b
5158test expr-28.979 {input floating-point conversion} {ieeeFloatingPoint} {
5159    # Ad2b dieee UN +271742424169201 E-27 x 131f46bcf7b452_10000000000000000000000000000000000000000000000001& E-42
5160    convertToDouble +271742424169201E-27
5161} 0x3d531f46bcf7b453
5162test expr-28.980 {input floating-point conversion} {ieeeFloatingPoint} {
5163    # Ad2b dieee UN -543484848338402 E-27 x -131f46bcf7b452_10000000000000000000000000000000000000000000000001& E-41
5164    convertToDouble -543484848338402E-27
5165} 0xbd631f46bcf7b453
5166test expr-28.981 {input floating-point conversion} {ieeeFloatingPoint} {
5167    # Ad2b dieee UN +162192083357563 E-26 x 1c887b68658760_1000000000000000000000000000000000000000000000001& E-40
5168    convertToDouble +162192083357563E-26
5169} 0x3d7c887b68658761
5170test expr-28.982 {input floating-point conversion} {ieeeFloatingPoint} {
5171    # Ad2b dieee UN -869254552770081 E-23 x -12aac70665485e_1000000000000000000000000000000000000000000000000001& E-27
5172    convertToDouble -869254552770081E-23
5173} 0xbe42aac70665485f
5174test expr-28.983 {input floating-point conversion} {ieeeFloatingPoint} {
5175    # Ad2b dieee UN +664831007626046 E24 x 1f429cb67eb075_011111111111111111111111111111111111111111111111110& E128
5176    convertToDouble +664831007626046E24
5177} 0x47ff429cb67eb075
5178test expr-28.984 {input floating-point conversion} {ieeeFloatingPoint} {
5179    # Ad2b dieee UN -332415503813023 E24 x -1f429cb67eb075_011111111111111111111111111111111111111111111111110& E127
5180    convertToDouble -332415503813023E24
5181} 0xc7ef429cb67eb075
5182test expr-28.985 {input floating-point conversion} {ieeeFloatingPoint} {
5183    # Ad2b dieee UN +943701829041427 E24 x 162fb2e38ee461_01111111111111111111111111111111111111111111111110& E129
5184    convertToDouble +943701829041427E24
5185} 0x48062fb2e38ee461
5186test expr-28.986 {input floating-point conversion} {ieeeFloatingPoint} {
5187    # Ad2b dieee UN -101881054204734 E24 x -132964f2944b05_0111111111111111111111111111111111111111111111110& E126
5188    convertToDouble -101881054204734E24
5189} 0xc7d32964f2944b05
5190test expr-28.987 {input floating-point conversion} {ieeeFloatingPoint} {
5191    # Ad2b dieee UN +828027839666967 E-27 x 1d2236349da3cd_011111111111111111111111111111111111111111111111110& E-41
5192    convertToDouble +828027839666967E-27
5193} 0x3d6d2236349da3cd
5194test expr-28.988 {input floating-point conversion} {ieeeFloatingPoint} {
5195    # Ad2b dieee UN -280276135608777 E-27 x -13b901892fd0bf_0111111111111111111111111111111111111111111111110& E-42
5196    convertToDouble -280276135608777E-27
5197} 0xbd53b901892fd0bf
5198test expr-28.989 {input floating-point conversion} {ieeeFloatingPoint} {
5199    # Ad2b dieee UN +212839188833879 E-21 x 1c91194dc2d40b_0111111111111111111111111111111111111111111111110& E-23
5200    convertToDouble +212839188833879E-21
5201} 0x3e8c91194dc2d40b
5202test expr-28.990 {input floating-point conversion} {ieeeFloatingPoint} {
5203    # Ad2b dieee UN -113817196531426 E-25 x -190756ab1ed6b3_011111111111111111111111111111111111111111111110& E-37
5204    convertToDouble -113817196531426E-25
5205} 0xbda90756ab1ed6b3
5206test expr-28.991 {input floating-point conversion} {ieeeFloatingPoint} {
5207    # Ad2b dieee UN +9711553197796883 E27 x 1bdeec25c0f03e_10000000000000000000000000000000000000000000000000001& E142
5208    convertToDouble +9711553197796883E27
5209} 0x48dbdeec25c0f03f
5210test expr-28.992 {input floating-point conversion} {ieeeFloatingPoint} {
5211    # Ad2b dieee UN -2739849386524269 E26 x -19295ade212370_1000000000000000000000000000000000000000000000000001& E137
5212    convertToDouble -2739849386524269E26
5213} 0xc889295ade212371
5214test expr-28.993 {input floating-point conversion} {ieeeFloatingPoint} {
5215    # Ad2b dieee UN +5479698773048538 E26 x 19295ade212370_1000000000000000000000000000000000000000000000000001& E138
5216    convertToDouble +5479698773048538E26
5217} 0x4899295ade212371
5218test expr-28.994 {input floating-point conversion} {ieeeFloatingPoint} {
5219    # Ad2b dieee UN +6124568318523113 E-25 x 150b3a2e0aff14_1000000000000000000000000000000000000000000000000000001& E-31
5220    convertToDouble +6124568318523113E-25
5221} 0x3e050b3a2e0aff15
5222test expr-28.995 {input floating-point conversion} {ieeeFloatingPoint} {
5223    # Ad2b dieee UN -1139777988171071 E-24 x -1394cbee428ea4_10000000000000000000000000000000000000000000000000001& E-30
5224    convertToDouble -1139777988171071E-24
5225} 0xbe1394cbee428ea5
5226test expr-28.996 {input floating-point conversion} {ieeeFloatingPoint} {
5227    # Ad2b dieee UN +6322612303128019 E-27 x 1bcea0ec21e250_1000000000000000000000000000000000000000000000000000001& E-38
5228    convertToDouble +6322612303128019E-27
5229} 0x3d9bcea0ec21e251
5230test expr-28.997 {input floating-point conversion} {ieeeFloatingPoint} {
5231    # Ad2b dieee UN -2955864564844617 E-25 x -1450030e26c6dc_10000000000000000000000000000000000000000000000000001& E-32
5232    convertToDouble -2955864564844617E-25
5233} 0xbdf450030e26c6dd
5234test expr-28.998 {input floating-point conversion} {ieeeFloatingPoint} {
5235    # Ad2b dieee UN -9994029144998961 E25 x -125b2b7fed4a61_0111111111111111111111111111111111111111111111111110& E136
5236    convertToDouble -9994029144998961E25
5237} 0xc8725b2b7fed4a61
5238test expr-28.999 {input floating-point conversion} {ieeeFloatingPoint} {
5239    # Ad2b dieee UN -2971238324022087 E27 x -110dd7a301db67_0111111111111111111111111111111111111111111111111110& E141
5240    convertToDouble -2971238324022087E27
5241} 0xc8c10dd7a301db67
5242test expr-28.1000 {input floating-point conversion} {ieeeFloatingPoint} {
5243    # Ad2b dieee UN -1656055679333934 E-27 x -1d2236349da3cd_011111111111111111111111111111111111111111111111110& E-40
5244    convertToDouble -1656055679333934E-27
5245} 0xbd7d2236349da3cd
5246test expr-28.1001 {input floating-point conversion} {ieeeFloatingPoint} {
5247    # Ad2b dieee UN -1445488709150234 E-26 x -1fc960c59526c7_0111111111111111111111111111111111111111111111110& E-37
5248    convertToDouble -1445488709150234E-26
5249} 0xbdafc960c59526c7
5250test expr-28.1002 {input floating-point conversion} {ieeeFloatingPoint} {
5251    # Ad2b dieee UN +55824717499885172 E27 x 1406b0cd17fd56_1000000000000000000000000000000000000000000000000000000001& E145
5252    convertToDouble +55824717499885172E27
5253} 0x490406b0cd17fd57
5254test expr-28.1003 {input floating-point conversion} {ieeeFloatingPoint} {
5255    # Ad2b dieee UN -69780896874856465 E26 x -1406b0cd17fd56_1000000000000000000000000000000000000000000000000000000001& E142
5256    convertToDouble -69780896874856465E26
5257} 0xc8d406b0cd17fd57
5258test expr-28.1004 {input floating-point conversion} {ieeeFloatingPoint} {
5259    # Ad2b dieee UN +84161538867545199 E25 x 13529217bdce6c_10000000000000000000000000000000000000000000000000000000001& E139
5260    convertToDouble +84161538867545199E25
5261} 0x48a3529217bdce6d
5262test expr-28.1005 {input floating-point conversion} {ieeeFloatingPoint} {
5263    # Ad2b dieee UN -27912358749942586 E27 x -1406b0cd17fd56_1000000000000000000000000000000000000000000000000000000001& E144
5264    convertToDouble -27912358749942586E27
5265} 0xc8f406b0cd17fd57
5266test expr-28.1006 {input floating-point conversion} {ieeeFloatingPoint} {
5267    # Ad2b dieee UN +24711112462926331 E-25 x 153a07f6040d22_100000000000000000000000000000000000000000000000000000001& E-29
5268    convertToDouble +24711112462926331E-25
5269} 0x3e253a07f6040d23
5270test expr-28.1007 {input floating-point conversion} {ieeeFloatingPoint} {
5271    # Ad2b dieee UN -12645224606256038 E-27 x -1bcea0ec21e250_1000000000000000000000000000000000000000000000000000001& E-37
5272    convertToDouble -12645224606256038E-27
5273} 0xbdabcea0ec21e251
5274test expr-28.1008 {input floating-point conversion} {ieeeFloatingPoint} {
5275    # Ad2b dieee UN -12249136637046226 E-25 x -150b3a2e0aff14_1000000000000000000000000000000000000000000000000000001& E-30
5276    convertToDouble -12249136637046226E-25
5277} 0xbe150b3a2e0aff15
5278test expr-28.1009 {input floating-point conversion} {ieeeFloatingPoint} {
5279    # Ad2b dieee UN +74874448287465757 E27 x 1adc21d1d50b09_01111111111111111111111111111111111111111111111111111110& E145
5280    convertToDouble +74874448287465757E27
5281} 0x490adc21d1d50b09
5282test expr-28.1010 {input floating-point conversion} {ieeeFloatingPoint} {
5283    # Ad2b dieee UN -35642836832753303 E24 x -1a2fac2b421f53_0111111111111111111111111111111111111111111111111111110& E134
5284    convertToDouble -35642836832753303E24
5285} 0xc85a2fac2b421f53
5286test expr-28.1011 {input floating-point conversion} {ieeeFloatingPoint} {
5287    # Ad2b dieee UN -71285673665506606 E24 x -1a2fac2b421f53_0111111111111111111111111111111111111111111111111111110& E135
5288    convertToDouble -71285673665506606E24
5289} 0xc86a2fac2b421f53
5290test expr-28.1012 {input floating-point conversion} {ieeeFloatingPoint} {
5291    # Ad2b dieee UN +43723334984997307 E-26 x 1e0be3f392c549_01111111111111111111111111111111111111111111111111111110& E-32
5292    convertToDouble +43723334984997307E-26
5293} 0x3dfe0be3f392c549
5294test expr-28.1013 {input floating-point conversion} {ieeeFloatingPoint} {
5295    # Ad2b dieee UN +10182419849537963 E-24 x 15ddd831ebbe53_011111111111111111111111111111111111111111111111111110& E-27
5296    convertToDouble +10182419849537963E-24
5297} 0x3e45ddd831ebbe53
5298test expr-28.1014 {input floating-point conversion} {ieeeFloatingPoint} {
5299    # Ad2b dieee UN -93501703572661982 E-26 x -10103f97ea6e13_0111111111111111111111111111111111111111111111111110& E-30
5300    convertToDouble -93501703572661982E-26
5301} 0xbe10103f97ea6e13
5302
5303test expr-29.1 {smallest representible number} {ieeeFloatingPoint} {
5304    list [catch {convertToDouble 4.9406564584124654e-324} result] \
5305        $result \
5306        [catch {convertToDouble 2.4703282292062327e-324} result] \
5307        $result \
5308        [catch {convertToDouble 2.47032822920623e-324} result] \
5309        $result
5310} {0 0x0000000000000001 0 0x0000000000000001 0 0x0000000000000000}
5311test expr-29.2 {smallest representible number} {ieeeFloatingPoint} {
5312    list [catch {convertToDouble -4.9406564584124654e-324} result] \
5313        $result \
5314        [catch {convertToDouble -2.4703282292062327e-324} result] \
5315        $result \
5316        [catch {convertToDouble -2.47032822920623e-324} result] \
5317        $result
5318} {0 0x8000000000000001 0 0x8000000000000001 0 0x8000000000000000}
5319test expr-29.3 {silent underflow on input conversion} {ieeeFloatingPoint} {
5320    set v ?
5321    list [scan 2.47032822920623e-324 %g v] $v
5322} {1 0.0}
5323test expr-29.4 {silent underflow on input conversion} {ieeeFloatingPoint} {
5324    set v ?
5325    list [scan -2.47032822920623e-324 %g v] $v
5326} {1 -0.0}
5327
5328test expr-30.1 {largest representible number} {ieeeFloatingPoint} {
5329    list [catch {convertToDouble 1.7976931348623155e+308} result] \
5330        $result \
5331        [catch {convertToDouble 1.7976931348623157e+308} result] \
5332        $result \
5333        [catch {convertToDouble 1.7976931348623159e+308} result] \
5334        $result
5335} {0 0x7feffffffffffffe 0 0x7fefffffffffffff 0 0x7ff0000000000000}
5336test expr-30.2 {largest representible number} {ieeeFloatingPoint} {
5337    list [catch {convertToDouble -1.7976931348623155e+308} result] \
5338        $result \
5339        [catch {convertToDouble -1.7976931348623157e+308} result] \
5340        $result \
5341        [catch {convertToDouble -1.7976931348623159e+308} result] \
5342        $result
5343} {0 0xffeffffffffffffe 0 0xffefffffffffffff 0 0xfff0000000000000}
5344test expr-30.3 {silent overflow on input conversion} {ieeeFloatingPoint} {
5345    set v ?
5346    list [scan 1.7976931348623159e+308 %f v] $v
5347} {1 Inf}
5348test expr-30.4 {silent overflow on input conversion} {ieeeFloatingPoint} {
5349    set v ?
5350    list [scan -1.7976931348623159e+308 %f v] $v
5351} {1 -Inf}
5352
5353# bool() tests (TIP #182)
5354set i 0
5355foreach s {yes true on} {
5356    test expr-31.$i.0 {boolean conversion} {expr bool($s)} 1
5357    test expr-31.$i.1 {boolean conversion} {expr bool(!$s)} 0
5358    test expr-31.$i.2 {boolean conversion} {expr bool("$s")} 1
5359    test expr-31.$i.3 {boolean conversion} {expr bool(!"$s")} 0
5360    set j 1
5361    while {$j < [string length $s]-1} {
5362        test expr-31.$i.4.$j {boolean conversion} {
5363            expr bool([string range $s 0 $j])
5364        } 1
5365        test expr-31.$i.5.$j {boolean conversion} {
5366            expr bool("[string range $s 0 $j]")
5367        } 1
5368        incr j
5369    }
5370    incr i
5371}
5372test expr-31.0.4.0 {boolean conversion} {expr bool(y)} 1
5373test expr-31.0.5.0 {boolean conversion} {expr bool("y")} 1
5374test expr-31.1.4.0 {boolean conversion} {expr bool(t)} 1
5375test expr-31.1.5.0 {boolean conversion} {expr bool("t")} 1
5376test expr-31.2.4.0 {boolean conversion} -body {
5377    expr bool(o)
5378} -returnCodes error -match glob -result *
5379test expr-31.2.5.0 {boolean conversion} -body {
5380    expr bool("o")
5381} -returnCodes error -match glob -result *
5382foreach s {no false off} {
5383    test expr-31.$i.0 {boolean conversion} {expr bool($s)} 0
5384    test expr-31.$i.1 {boolean conversion} {expr bool(!$s)} 1
5385    test expr-31.$i.2 {boolean conversion} {expr bool("$s")} 0
5386    test expr-31.$i.3 {boolean conversion} {expr bool(!"$s")} 1
5387    set j 1
5388    while {$j < [string length $s]-1} {
5389        test expr-31.$i.4.$j {boolean conversion} {
5390            expr bool([string range $s 0 $j])
5391        } 0
5392        test expr-31.$i.5.$j {boolean conversion} {
5393            expr bool("[string range $s 0 $j]")
5394        } 0
5395        incr j
5396    }
5397    incr i
5398}
5399test expr-31.3.4.0 {boolean conversion} {expr bool(n)} 0
5400test expr-31.3.5.0 {boolean conversion} {expr bool("n")} 0
5401test expr-31.4.4.0 {boolean conversion} {expr bool(f)} 0
5402test expr-31.4.5.0 {boolean conversion} {expr bool("f")} 0
5403test expr-31.6  {boolean conversion} {expr bool(-1 + 1)} 0
5404test expr-31.7  {boolean conversion} {expr bool(0 + 1)} 1
5405test expr-31.8  {boolean conversion} {expr bool(0.0)} 0
5406test expr-31.9  {boolean conversion} {expr bool(0x0)} 0
5407test expr-31.10 {boolean conversion} {expr bool(wide(0))} 0
5408test expr-31.11 {boolean conversion} {expr bool(5.0)} 1
5409test expr-31.12 {boolean conversion} {expr bool(5)} 1
5410test expr-31.13 {boolean conversion} {expr bool(0x5)} 1
5411test expr-31.14 {boolean conversion} {expr bool(wide(5))} 1
5412test expr-31.15 {boolean conversion} -body {
5413    expr bool("fred")
5414} -returnCodes error -match glob -result *
5415
5416test expr-32.1 {expr mod basics} {
5417    set mod_nums [list \
5418        {-3 1} {-3 2} {-3 3} {-3 4} {-3 5} \
5419        {-3 -1} {-3 -2} {-3 -3} {-3 -4} {-3 -5} \
5420        {-2 1} {-2 2} {-2 3} {-2 4} {-2 5} \
5421        {-2 -1} {-2 -2} {-2 -3} {-2 -4} {-2 -5} \
5422        {-1 1} {-1 2} {-1 3} {-1 4} {-1 5} \
5423        {-1 -1} {-1 -2} {-1 -3} {-1 -4} {-1 -5} \
5424        {0 -100} {0 -1} {0 1} {0 100} \
5425        {1 1} {1 2} {1 3} {1 4} {1 5} \
5426        {1 -1} {1 -2} {1 -3} {1 -4} {1 -5} \
5427        {2 1} {2 2} {2 3} {2 4} {2 5} \
5428        {2 -1} {2 -2} {2 -3} {2 -4} {2 -5} \
5429        {3 1} {3 2} {3 3} {3 4} {3 5} \
5430        {3 -1} {3 -2} {3 -3} {3 -4} {3 -5} \
5431        ]
5432    set results [list]
5433    foreach pair $mod_nums {
5434        set dividend [lindex $pair 0]
5435        set divisor [lindex $pair 1]
5436        lappend results [expr {$dividend % $divisor}]
5437    }
5438    set results
5439} [list \
5440    0 1 0 1 2 \
5441    0 -1 0 -3 -3 \
5442    0 0 1 2 3 \
5443    0 0 -2 -2 -2 \
5444    0 1 2 3 4 \
5445    0 -1 -1 -1 -1 \
5446    0 0 0 0 \
5447    0 1 1 1 1 \
5448    0 -1 -2 -3 -4 \
5449    0 0 2 2 2 \
5450    0 0 -1 -2 -3 \
5451    0 1 0 3 3 \
5452    0 -1 0 -1 -2 \
5453    ]
5454       
5455test expr-32.2 {expr div basics} {
5456    set mod_nums [list \
5457        {-3 1} {-3 2} {-3 3} {-3 4} {-3 5} \
5458        {-3 -1} {-3 -2} {-3 -3} {-3 -4} {-3 -5} \
5459        {-2 1} {-2 2} {-2 3} {-2 4} {-2 5} \
5460        {-2 -1} {-2 -2} {-2 -3} {-2 -4} {-2 -5} \
5461        {-1 1} {-1 2} {-1 3} {-1 4} {-1 5} \
5462        {-1 -1} {-1 -2} {-1 -3} {-1 -4} {-1 -5} \
5463        {0 -100} {0 -1} {0 1} {0 100} \
5464        {1 1} {1 2} {1 3} {1 4} {1 5} \
5465        {1 -1} {1 -2} {1 -3} {1 -4} {1 -5} \
5466        {2 1} {2 2} {2 3} {2 4} {2 5} \
5467        {2 -1} {2 -2} {2 -3} {2 -4} {2 -5} \
5468        {3 1} {3 2} {3 3} {3 4} {3 5} \
5469        {3 -1} {3 -2} {3 -3} {3 -4} {3 -5} \
5470        ]
5471    set results [list]
5472    foreach pair $mod_nums {
5473        set dividend [lindex $pair 0]
5474        set divisor [lindex $pair 1]
5475        lappend results [expr {$dividend / $divisor}]
5476    }
5477    set results
5478} [list \
5479    -3 -2 -1 -1 -1 \
5480    3 1 1 0 0 \
5481    -2 -1 -1 -1 -1 \
5482    2 1 0 0 0 \
5483    -1 -1 -1 -1 -1 \
5484    1 0 0 0 0 \
5485    0 0 0 0 \
5486    1 0 0 0 0 \
5487    -1 -1 -1 -1 -1 \
5488    2 1 0 0 0 \
5489    -2 -1 -1 -1 -1 \
5490    3 1 1 0 0 \
5491    -3 -2 -1 -1 -1 \
5492    ]
5493
5494test expr-32.3 {Bug 1585704} {
5495    expr 1%(1<<63)
5496} 1
5497test expr-32.4 {Bug 1585704} {
5498    expr -1%(1<<63)
5499} [expr (1<<63)-1]
5500test expr-32.5 {Bug 1585704} {
5501    expr (1<<32)%(1<<63)
5502} [expr 1<<32]
5503test expr-32.6 {Bug 1585704} {
5504    expr -(1<<32)%(1<<63)
5505} [expr (1<<63)-(1<<32)]
5506
5507test expr-33.1 {parse largest long value} longIs32bit {
5508    set max_long_str 2147483647
5509    set max_long_hex "0x7FFFFFFF "
5510
5511    # Convert to integer (long, not wide) internal rep
5512    set max_long 2147483647
5513    string is integer $max_long
5514
5515    list \
5516        [expr {" $max_long_str "}] \
5517        [expr {$max_long_str + 0}] \
5518        [expr {$max_long + 0}] \
5519        [expr {2147483647 + 0}] \
5520        [expr {$max_long == $max_long_hex}] \
5521        [expr {int(2147483647 + 1) < 0}] \
5522
5523} {2147483647 2147483647 2147483647 2147483647 1 1}
5524test expr-33.2 {parse smallest long value} longIs32bit {
5525    set min_long_str -2147483648
5526    set min_long_hex "-0x80000000 "
5527
5528    set min_long -2147483648
5529    # This will convert to integer (not wide) internal rep
5530    string is integer $min_long
5531
5532    # Note: If the final expression returns 0 then the
5533    # expression literal is being promoted to a wide type
5534    # when it should be parsed as a long type.
5535    list \
5536        [expr {" $min_long_str "}] \
5537        [expr {$min_long_str + 0}] \
5538        [expr {$min_long + 0}] \
5539        [expr {-2147483648 + 0}] \
5540        [expr {$min_long == $min_long_hex}] \
5541        [expr {int(-2147483648 - 1) == 0x7FFFFFFF}] \
5542
5543} {-2147483648 -2147483648 -2147483648 -2147483648 1 1}
5544test expr-33.3 {parse largest wide value} wideIs64bit {
5545    set max_wide_str 9223372036854775807
5546    set max_wide_hex "0x7FFFFFFFFFFFFFFF "
5547
5548    # Convert to wide integer
5549    set max_wide 9223372036854775807
5550    string is integer $max_wide
5551
5552    list \
5553        [expr {" $max_wide_str "}] \
5554        [expr {$max_wide_str + 0}] \
5555        [expr {$max_wide + 0}] \
5556        [expr {9223372036854775807 + 0}] \
5557        [expr {$max_wide == $max_wide_hex}] \
5558        [expr {wide(9223372036854775807 + 1) < 0}] \
5559
5560} {9223372036854775807 9223372036854775807 9223372036854775807 9223372036854775807 1 1}
5561test expr-33.4 {parse smallest wide value} wideIs64bit {
5562    set min_wide_str -9223372036854775808
5563    set min_wide_hex "-0x8000000000000000 "
5564
5565    set min_wide -9223372036854775808
5566    # Convert to wide integer
5567    string is integer $min_wide
5568
5569    # Note: If the final expression returns 0 then the
5570    # wide integer is not being parsed correctly with
5571    # the leading - sign.
5572    list \
5573        [expr {" $min_wide_str "}] \
5574        [expr {$min_wide_str + 0}] \
5575        [expr {$min_wide + 0}] \
5576        [expr {-9223372036854775808 + 0}] \
5577        [expr {$min_wide == $min_wide_hex}] \
5578        [expr {wide(-9223372036854775808 - 1) == 0x7FFFFFFFFFFFFFFF}] \
5579
5580} {-9223372036854775808 -9223372036854775808 -9223372036854775808 -9223372036854775808 1 1}
5581
5582set min -2147483648
5583set max 2147483647
5584
5585test expr-34.1 {expr edge cases} {
5586    expr {$min / $min}
5587} {1}
5588test expr-34.2 {expr edge cases} {
5589    expr {$min % $min}
5590} {0}
5591test expr-34.3 {expr edge cases} {
5592    expr {$min / ($min + 1)}
5593} {1}
5594test expr-34.4 {expr edge cases} {
5595    expr {$min % ($min + 1)}
5596} {-1}
5597test expr-34.5 {expr edge cases} {
5598    expr {$min / ($min + 2)}
5599} {1}
5600test expr-34.6 {expr edge cases} {
5601    expr {$min % ($min + 2)}
5602} {-2}
5603test expr-34.7 {expr edge cases} {
5604    expr {$min / ($min + 3)}
5605} {1}
5606test expr-34.8 {expr edge cases} {
5607    expr {$min % ($min + 3)}
5608} {-3}
5609test expr-34.9 {expr edge cases} {
5610    expr {$min / -3}
5611} {715827882}
5612test expr-34.10 {expr edge cases} {
5613    expr {$min % -3}
5614} {-2}
5615test expr-34.11 {expr edge cases} {
5616    expr {$min / -2}
5617} {1073741824}
5618test expr-34.12 {expr edge cases} {
5619    expr {$min % -2}
5620} {0}
5621test expr-34.13 {expr edge cases} longIs32bit {
5622    expr {int($min / -1)}
5623} {-2147483648}
5624test expr-34.14 {expr edge cases} {
5625    expr {$min % -1}
5626} {0}
5627test expr-34.15 {expr edge cases} longIs32bit {
5628    expr {int($min * -1)}
5629} $min
5630test expr-34.16 {expr edge cases} longIs32bit {
5631    expr {int(-$min)}
5632} $min
5633test expr-34.17 {expr edge cases} {
5634    expr {$min / 1}
5635} $min
5636test expr-34.18 {expr edge cases} {
5637    expr {$min % 1}
5638} {0}
5639test expr-34.19 {expr edge cases} {
5640    expr {$min / 2}
5641} {-1073741824}
5642test expr-34.20 {expr edge cases} {
5643    expr {$min % 2}
5644} {0}
5645test expr-34.21 {expr edge cases} {
5646    expr {$min / 3}
5647} {-715827883}
5648test expr-34.22 {expr edge cases} {
5649    expr {$min % 3}
5650} {1}
5651test expr-34.23 {expr edge cases} {
5652    expr {$min / ($max - 3)}
5653} {-2}
5654test expr-34.24 {expr edge cases} {
5655    expr {$min % ($max - 3)}
5656} {2147483640}
5657test expr-34.25 {expr edge cases} {
5658    expr {$min / ($max - 2)}
5659} {-2}
5660test expr-34.26 {expr edge cases} {
5661    expr {$min % ($max - 2)}
5662} {2147483642}
5663test expr-34.27 {expr edge cases} {
5664    expr {$min / ($max - 1)}
5665} {-2}
5666test expr-34.28 {expr edge cases} {
5667    expr {$min % ($max - 1)}
5668} {2147483644}
5669test expr-34.29 {expr edge cases} {
5670    expr {$min / $max}
5671} {-2}
5672test expr-34.30 {expr edge cases} {
5673    expr {$min % $max}
5674} {2147483646}
5675test expr-34.31 {expr edge cases} {
5676    expr {$max / $max}
5677} {1}
5678test expr-34.32 {expr edge cases} {
5679    expr {$max % $max}
5680} {0}
5681test expr-34.33 {expr edge cases} {
5682    expr {$max / ($max - 1)}
5683} {1}
5684test expr-34.34 {expr edge cases} {
5685    expr {$max % ($max - 1)}
5686} {1}
5687test expr-34.35 {expr edge cases} {
5688    expr {$max / ($max - 2)}
5689} {1}
5690test expr-34.36 {expr edge cases} {
5691    expr {$max % ($max - 2)}
5692} {2}
5693test expr-34.37 {expr edge cases} {
5694    expr {$max / ($max - 3)}
5695} {1}
5696test expr-34.38 {expr edge cases} {
5697    expr {$max % ($max - 3)}
5698} {3}
5699test expr-34.39 {expr edge cases} {
5700    expr {$max / 3}
5701} {715827882}
5702test expr-34.40 {expr edge cases} {
5703    expr {$max % 3}
5704} {1}
5705test expr-34.41 {expr edge cases} {
5706    expr {$max / 2}
5707} {1073741823}
5708test expr-34.42 {expr edge cases} {
5709    expr {$max % 2}
5710} {1}
5711test expr-34.43 {expr edge cases} {
5712    expr {$max / 1}
5713} $max
5714test expr-34.44 {expr edge cases} {
5715    expr {$max % 1}
5716} {0}
5717test expr-34.45 {expr edge cases} {
5718    expr {$max / -1}
5719} "-$max"
5720test expr-34.46 {expr edge cases} {
5721    expr {$max % -1}
5722} {0}
5723test expr-34.47 {expr edge cases} {
5724    expr {$max / -2}
5725} {-1073741824}
5726test expr-34.48 {expr edge cases} {
5727    expr {$max % -2}
5728} {-1}
5729test expr-34.49 {expr edge cases} {
5730    expr {$max / -3}
5731} {-715827883}
5732test expr-34.50 {expr edge cases} {
5733    expr {$max % -3}
5734} {-2}
5735test expr-34.51 {expr edge cases} {
5736    expr {$max / ($min + 3)}
5737} {-2}
5738test expr-34.52 {expr edge cases} {
5739    expr {$max % ($min + 3)}
5740} {-2147483643}
5741test expr-34.53 {expr edge cases} {
5742    expr {$max / ($min + 2)}
5743} {-2}
5744test expr-34.54 {expr edge cases} {
5745    expr {$max % ($min + 2)}
5746} {-2147483645}
5747test expr-34.55 {expr edge cases} {
5748    expr {$max / ($min + 1)}
5749} {-1}
5750test expr-34.56 {expr edge cases} {
5751    expr {$max % ($min + 1)}
5752} {0}
5753test expr-34.57 {expr edge cases} {
5754    expr {$max / $min}
5755} {-1}
5756test expr-34.58 {expr edge cases} {
5757    expr {$max % $min}
5758} {-1}
5759test expr-34.59 {expr edge cases} {
5760    expr {($min + 1) / ($max - 1)}
5761} {-2}
5762test expr-34.60 {expr edge cases} {
5763    expr {($min + 1) % ($max - 1)}
5764} {2147483645}
5765test expr-34.61 {expr edge cases} {
5766    expr {($max - 1) / ($min + 1)}
5767} {-1}
5768test expr-34.62 {expr edge cases} {
5769    expr {($max - 1) % ($min + 1)}
5770} {-1}
5771test expr-34.63 {expr edge cases} {
5772    expr {($max - 1) / $min}
5773} {-1}
5774test expr-34.64 {expr edge cases} {
5775    expr {($max - 1) % $min}
5776} {-2}
5777test expr-34.65 {expr edge cases} {
5778    expr {($max - 2) / $min}
5779} {-1}
5780test expr-34.66 {expr edge cases} {
5781    expr {($max - 2) % $min}
5782} {-3}
5783test expr-34.67 {expr edge cases} {
5784    expr {($max - 3) / $min}
5785} {-1}
5786test expr-34.68 {expr edge cases} {
5787    expr {($max - 3) % $min}
5788} {-4}
5789test expr-34.69 {expr edge cases} {
5790    expr {-3 / $min}
5791} {0}
5792test expr-34.70 {expr edge cases} {
5793    expr {-3 % $min}
5794} {-3}
5795test expr-34.71 {expr edge cases} {
5796    expr {-2 / $min}
5797} {0}
5798test expr-34.72 {expr edge cases} {
5799    expr {-2 % $min}
5800} {-2}
5801test expr-34.73 {expr edge cases} {
5802    expr {-1 / $min}
5803} {0}
5804test expr-34.74 {expr edge cases} {
5805    expr {-1 % $min}
5806} {-1}
5807test expr-34.75 {expr edge cases} {
5808    expr {0 / $min}
5809} {0}
5810test expr-34.76 {expr edge cases} {
5811    expr {0 % $min}
5812} {0}
5813test expr-34.77 {expr edge cases} {
5814    expr {0 / ($min + 1)}
5815} {0}
5816test expr-34.78 {expr edge cases} {
5817    expr {0 % ($min + 1)}
5818} {0}
5819test expr-34.79 {expr edge cases} {
5820    expr {1 / $min}
5821} {-1}
5822test expr-34.80 {expr edge cases} {
5823    expr {1 % $min}
5824} {-2147483647}
5825test expr-34.81 {expr edge cases} {
5826    expr {1 / ($min + 1)}
5827} {-1}
5828test expr-34.82 {expr edge cases} {
5829    expr {1 % ($min + 1)}
5830} {-2147483646}
5831test expr-34.83 {expr edge cases} {
5832    expr {2 / $min}
5833} {-1}
5834test expr-34.84 {expr edge cases} {
5835    expr {2 % $min}
5836} {-2147483646}
5837test expr-34.85 {expr edge cases} {
5838    expr {2 / ($min + 1)}
5839} {-1}
5840test expr-34.86 {expr edge cases} {
5841    expr {2 % ($min + 1)}
5842} {-2147483645}
5843test expr-34.87 {expr edge cases} {
5844    expr {3 / $min}
5845} {-1}
5846test expr-34.88 {expr edge cases} {
5847    expr {3 % $min}
5848} {-2147483645}
5849test expr-34.89 {expr edge cases} {
5850    expr {3 / ($min + 1)}
5851} {-1}
5852test expr-34.90 {expr edge cases} {
5853    expr {3 % ($min + 1)}
5854} {-2147483644}
5855
5856# Euclidean property:
5857# quotient * divisor + remainder = dividend
5858
5859test expr-35.1 {expr edge cases} {
5860    set dividend $max
5861    set divisor 2
5862    set q [expr {$dividend / $divisor}]
5863    set r [expr {$dividend % $divisor}]
5864    list $q * $divisor + $r = [expr {($divisor * $q) + $r}]
5865} {1073741823 * 2 + 1 = 2147483647}
5866test expr-35.2 {expr edge cases} {
5867    set dividend [expr {$max - 1}]
5868    set divisor 2
5869    set q [expr {$dividend / $divisor}]
5870    set r [expr {$dividend % $divisor}]
5871    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
5872} {1073741823 * 2 + 0 = 2147483646}
5873test expr-35.3 {expr edge cases} {
5874    set dividend [expr {$max - 2}]
5875    set divisor 2
5876    set q [expr {$dividend / $divisor}]
5877    set r [expr {$dividend % $divisor}]
5878    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
5879} {1073741822 * 2 + 1 = 2147483645}
5880test expr-35.4 {expr edge cases} {
5881    set dividend $max
5882    set divisor 3
5883    set q [expr {$dividend / $divisor}]
5884    set r [expr {$dividend % $divisor}]
5885    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
5886} {715827882 * 3 + 1 = 2147483647}
5887test expr-35.5 {expr edge cases} {
5888    set dividend [expr {$max - 1}]
5889    set divisor 3
5890    set q [expr {$dividend / $divisor}]
5891    set r [expr {$dividend % $divisor}]
5892    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
5893} {715827882 * 3 + 0 = 2147483646}
5894test expr-35.6 {expr edge cases} {
5895    set dividend [expr {$max - 2}]
5896    set divisor 3
5897    set q [expr {$dividend / $divisor}]
5898    set r [expr {$dividend % $divisor}]
5899    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
5900} {715827881 * 3 + 2 = 2147483645}
5901test expr-35.7 {expr edge cases} {
5902    set dividend $min
5903    set divisor 2
5904    set q [expr {$dividend / $divisor}]
5905    set r [expr {$dividend % $divisor}]
5906    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
5907} {-1073741824 * 2 + 0 = -2147483648}
5908test expr-35.8 {expr edge cases} {
5909    set dividend [expr {$min + 1}]
5910    set divisor 2
5911    set q [expr {$dividend / $divisor}]
5912    set r [expr {$dividend % $divisor}]
5913    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
5914} {-1073741824 * 2 + 1 = -2147483647}
5915test expr-35.9 {expr edge cases} {
5916    set dividend [expr {$min + 2}]
5917    set divisor 2
5918    set q [expr {$dividend / $divisor}]
5919    set r [expr {$dividend % $divisor}]
5920    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
5921} {-1073741823 * 2 + 0 = -2147483646}
5922test expr-35.10 {expr edge cases} {
5923    # Two things could happen here. The multiplication
5924    # could overflow a 32 bit type, so that when
5925    # 1 is added it overflows again back to min.
5926    # The multiplication could also use a wide type
5927    # to hold ($min - 1) until 1 is added and
5928    # the number becomes $min again.
5929    set dividend $min
5930    set divisor 3
5931    set q [expr {$dividend / $divisor}]
5932    set r [expr {$dividend % $divisor}]
5933    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
5934} {-715827883 * 3 + 1 = -2147483648}
5935test expr-35.11 {expr edge cases} {
5936    set dividend $min
5937    set divisor -3
5938    set q [expr {$dividend / $divisor}]
5939    set r [expr {$dividend % $divisor}]
5940    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
5941} {715827882 * -3 + -2 = -2147483648}
5942test expr-35.12 {expr edge cases} {
5943    set dividend $min
5944    set divisor $min
5945    set q [expr {$dividend / $divisor}]
5946    set r [expr {$dividend % $divisor}]
5947    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
5948} {1 * -2147483648 + 0 = -2147483648}
5949test expr-35.13 {expr edge cases} {
5950    set dividend $min
5951    set divisor [expr {$min + 1}]
5952    set q [expr {$dividend / $divisor}]
5953    set r [expr {$dividend % $divisor}]
5954    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
5955} {1 * -2147483647 + -1 = -2147483648}
5956test expr-35.14 {expr edge cases} {
5957    set dividend $min
5958    set divisor [expr {$min + 2}]
5959    set q [expr {$dividend / $divisor}]
5960    set r [expr {$dividend % $divisor}]
5961    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
5962} {1 * -2147483646 + -2 = -2147483648}
5963
5964# 64bit wide integer checks
5965
5966set min -9223372036854775808
5967set max 9223372036854775807
5968
5969test expr-36.1 {expr edge cases} {wideIs64bit} {
5970    expr {$min / $min}
5971} {1}
5972test expr-36.2 {expr edge cases} {wideIs64bit} {
5973    expr {$min % $min}
5974} {0}
5975test expr-36.3 {expr edge cases} {wideIs64bit} {
5976    expr {$min / ($min + 1)}
5977} {1}
5978test expr-36.4 {expr edge cases} {wideIs64bit} {
5979    expr {$min % ($min + 1)}
5980} {-1}
5981test expr-36.5 {expr edge cases} {wideIs64bit} {
5982    expr {$min / ($min + 2)}
5983} {1}
5984test expr-36.6 {expr edge cases} {wideIs64bit} {
5985    expr {$min % ($min + 2)}
5986} {-2}
5987test expr-36.7 {expr edge cases} {wideIs64bit} {
5988    expr {$min / ($min + 3)}
5989} {1}
5990test expr-36.8 {expr edge cases} {wideIs64bit} {
5991    expr {$min % ($min + 3)}
5992} {-3}
5993test expr-36.9 {expr edge cases} {wideIs64bit} {
5994    expr {$min / -3}
5995} {3074457345618258602}
5996test expr-36.10 {expr edge cases} {wideIs64bit} {
5997    expr {$min % -3}
5998} {-2}
5999test expr-36.11 {expr edge cases} {wideIs64bit} {
6000    expr {$min / -2}
6001} {4611686018427387904}
6002test expr-36.12 {expr edge cases} {wideIs64bit} {
6003    expr {$min % -2}
6004} {0}
6005test expr-36.13 {expr edge cases} wideIs64bit {
6006    expr {wide($min / -1)}
6007} $min
6008test expr-36.14 {expr edge cases} {wideIs64bit} {
6009    expr {$min % -1}
6010} {0}
6011test expr-36.15 {expr edge cases} wideIs64bit {
6012    expr {wide($min * -1)}
6013} $min
6014test expr-36.16 {expr edge cases} wideIs64bit {
6015    expr {wide(-$min)}
6016} $min
6017test expr-36.17 {expr edge cases} {wideIs64bit} {
6018    expr {$min / 1}
6019} $min
6020test expr-36.18 {expr edge cases} {wideIs64bit} {
6021    expr {$min % 1}
6022} {0}
6023test expr-36.19 {expr edge cases} {wideIs64bit} {
6024    expr {$min / 2}
6025} {-4611686018427387904}
6026test expr-36.20 {expr edge cases} {wideIs64bit} {
6027    expr {$min % 2}
6028} {0}
6029test expr-36.21 {expr edge cases} {wideIs64bit} {
6030    expr {$min / 3}
6031} {-3074457345618258603}
6032test expr-36.22 {expr edge cases} {wideIs64bit} {
6033    expr {$min % 3}
6034} {1}
6035test expr-36.23 {expr edge cases} {wideIs64bit} {
6036    expr {$min / ($max - 3)}
6037} {-2}
6038test expr-36.24 {expr edge cases} {wideIs64bit} {
6039    expr {$min % ($max - 3)}
6040} {9223372036854775800}
6041test expr-36.25 {expr edge cases} {wideIs64bit} {
6042    expr {$min / ($max - 2)}
6043} {-2}
6044test expr-36.26 {expr edge cases} {wideIs64bit} {
6045    expr {$min % ($max - 2)}
6046} {9223372036854775802}
6047test expr-36.27 {expr edge cases} {wideIs64bit} {
6048    expr {$min / ($max - 1)}
6049} {-2}
6050test expr-36.28 {expr edge cases} {wideIs64bit} {
6051    expr {$min % ($max - 1)}
6052} {9223372036854775804}
6053test expr-36.29 {expr edge cases} {wideIs64bit} {
6054    expr {$min / $max}
6055} {-2}
6056test expr-36.30 {expr edge cases} {wideIs64bit} {
6057    expr {$min % $max}
6058} {9223372036854775806}
6059test expr-36.31 {expr edge cases} {wideIs64bit} {
6060    expr {$max / $max}
6061} {1}
6062test expr-36.32 {expr edge cases} {wideIs64bit} {
6063    expr {$max % $max}
6064} {0}
6065test expr-36.33 {expr edge cases} {wideIs64bit} {
6066    expr {$max / ($max - 1)}
6067} {1}
6068test expr-36.34 {expr edge cases} {wideIs64bit} {
6069    expr {$max % ($max - 1)}
6070} {1}
6071test expr-36.35 {expr edge cases} {wideIs64bit} {
6072    expr {$max / ($max - 2)}
6073} {1}
6074test expr-36.36 {expr edge cases} {wideIs64bit} {
6075    expr {$max % ($max - 2)}
6076} {2}
6077test expr-36.37 {expr edge cases} {wideIs64bit} {
6078    expr {$max / ($max - 3)}
6079} {1}
6080test expr-36.38 {expr edge cases} {wideIs64bit} {
6081    expr {$max % ($max - 3)}
6082} {3}
6083test expr-36.39 {expr edge cases} {wideIs64bit} {
6084    expr {$max / 3}
6085} {3074457345618258602}
6086test expr-36.40 {expr edge cases} {wideIs64bit} {
6087    expr {$max % 3}
6088} {1}
6089test expr-36.41 {expr edge cases} {wideIs64bit} {
6090    expr {$max / 2}
6091} {4611686018427387903}
6092test expr-36.42 {expr edge cases} {wideIs64bit} {
6093    expr {$max % 2}
6094} {1}
6095test expr-36.43 {expr edge cases} {wideIs64bit} {
6096    expr {$max / 1}
6097} $max
6098test expr-36.44 {expr edge cases} {wideIs64bit} {
6099    expr {$max % 1}
6100} {0}
6101test expr-36.45 {expr edge cases} {wideIs64bit} {
6102    expr {$max / -1}
6103} "-$max"
6104test expr-36.46 {expr edge cases} {wideIs64bit} {
6105    expr {$max % -1}
6106} {0}
6107test expr-36.47 {expr edge cases} {wideIs64bit} {
6108    expr {$max / -2}
6109} {-4611686018427387904}
6110test expr-36.48 {expr edge cases} {wideIs64bit} {
6111    expr {$max % -2}
6112} {-1}
6113test expr-36.49 {expr edge cases} {wideIs64bit} {
6114    expr {$max / -3}
6115} {-3074457345618258603}
6116test expr-36.50 {expr edge cases} {wideIs64bit} {
6117    expr {$max % -3}
6118} {-2}
6119test expr-36.51 {expr edge cases} {wideIs64bit} {
6120    expr {$max / ($min + 3)}
6121} {-2}
6122test expr-36.52 {expr edge cases} {wideIs64bit} {
6123    expr {$max % ($min + 3)}
6124} {-9223372036854775803}
6125test expr-36.53 {expr edge cases} {wideIs64bit} {
6126    expr {$max / ($min + 2)}
6127} {-2}
6128test expr-36.54 {expr edge cases} {wideIs64bit} {
6129    expr {$max % ($min + 2)}
6130} {-9223372036854775805}
6131test expr-36.55 {expr edge cases} {wideIs64bit} {
6132    expr {$max / ($min + 1)}
6133} {-1}
6134test expr-36.56 {expr edge cases} {wideIs64bit} {
6135    expr {$max % ($min + 1)}
6136} {0}
6137test expr-36.57 {expr edge cases} {wideIs64bit} {
6138    expr {$max / $min}
6139} {-1}
6140test expr-36.58 {expr edge cases} {wideIs64bit} {
6141    expr {$max % $min}
6142} {-1}
6143test expr-36.59 {expr edge cases} {wideIs64bit} {
6144    expr {($min + 1) / ($max - 1)}
6145} {-2}
6146test expr-36.60 {expr edge cases} {wideIs64bit} {
6147    expr {($min + 1) % ($max - 1)}
6148} {9223372036854775805}
6149test expr-36.61 {expr edge cases} {wideIs64bit} {
6150    expr {($max - 1) / ($min + 1)}
6151} {-1}
6152test expr-36.62 {expr edge cases} {wideIs64bit} {
6153    expr {($max - 1) % ($min + 1)}
6154} {-1}
6155test expr-36.63 {expr edge cases} {wideIs64bit} {
6156    expr {($max - 1) / $min}
6157} {-1}
6158test expr-36.64 {expr edge cases} {wideIs64bit} {
6159    expr {($max - 1) % $min}
6160} {-2}
6161test expr-36.65 {expr edge cases} {wideIs64bit} {
6162    expr {($max - 2) / $min}
6163} {-1}
6164test expr-36.66 {expr edge cases} {wideIs64bit} {
6165    expr {($max - 2) % $min}
6166} {-3}
6167test expr-36.67 {expr edge cases} {wideIs64bit} {
6168    expr {($max - 3) / $min}
6169} {-1}
6170test expr-36.68 {expr edge cases} {wideIs64bit} {
6171    expr {($max - 3) % $min}
6172} {-4}
6173test expr-36.69 {expr edge cases} {wideIs64bit} {
6174    expr {-3 / $min}
6175} {0}
6176test expr-36.70 {expr edge cases} {wideIs64bit} {
6177    expr {-3 % $min}
6178} {-3}
6179test expr-36.71 {expr edge cases} {wideIs64bit} {
6180    expr {-2 / $min}
6181} {0}
6182test expr-36.72 {expr edge cases} {wideIs64bit} {
6183    expr {-2 % $min}
6184} {-2}
6185test expr-36.73 {expr edge cases} {wideIs64bit} {
6186    expr {-1 / $min}
6187} {0}
6188test expr-36.74 {expr edge cases} {wideIs64bit} {
6189    expr {-1 % $min}
6190} {-1}
6191test expr-36.75 {expr edge cases} {wideIs64bit} {
6192    expr {0 / $min}
6193} {0}
6194test expr-36.76 {expr edge cases} {wideIs64bit} {
6195    expr {0 % $min}
6196} {0}
6197test expr-36.77 {expr edge cases} {wideIs64bit} {
6198    expr {0 / ($min + 1)}
6199} {0}
6200test expr-36.78 {expr edge cases} {wideIs64bit} {
6201    expr {0 % ($min + 1)}
6202} {0}
6203test expr-36.79 {expr edge cases} {wideIs64bit} {
6204    expr {1 / $min}
6205} {-1}
6206test expr-36.80 {expr edge cases} {wideIs64bit} {
6207    expr {1 % $min}
6208} {-9223372036854775807}
6209test expr-36.81 {expr edge cases} {wideIs64bit} {
6210    expr {1 / ($min + 1)}
6211} {-1}
6212test expr-36.82 {expr edge cases} {wideIs64bit} {
6213    expr {1 % ($min + 1)}
6214} {-9223372036854775806}
6215test expr-36.83 {expr edge cases} {wideIs64bit} {
6216    expr {2 / $min}
6217} {-1}
6218test expr-36.84 {expr edge cases} {wideIs64bit} {
6219    expr {2 % $min}
6220} {-9223372036854775806}
6221test expr-36.85 {expr edge cases} {wideIs64bit} {
6222    expr {2 / ($min + 1)}
6223} {-1}
6224test expr-36.86 {expr edge cases} {wideIs64bit} {
6225    expr {2 % ($min + 1)}
6226} {-9223372036854775805}
6227test expr-36.87 {expr edge cases} {wideIs64bit} {
6228    expr {3 / $min}
6229} {-1}
6230test expr-36.88 {expr edge cases} {wideIs64bit} {
6231    expr {3 % $min}
6232} {-9223372036854775805}
6233test expr-36.89 {expr edge cases} {wideIs64bit} {
6234    expr {3 / ($min + 1)}
6235} {-1}
6236test expr-36.90 {expr edge cases} {wideIs64bit} {
6237    expr {3 % ($min + 1)}
6238} {-9223372036854775804}
6239
6240test expr-37.1 {expr edge cases} {wideIs64bit} {
6241    set dividend $max
6242    set divisor 2
6243    set q [expr {$dividend / $divisor}]
6244    set r [expr {$dividend % $divisor}]
6245    list $q * $divisor + $r = [expr {($divisor * $q) + $r}]
6246} {4611686018427387903 * 2 + 1 = 9223372036854775807}
6247test expr-37.2 {expr edge cases} {wideIs64bit} {
6248    set dividend [expr {$max - 1}]
6249    set divisor 2
6250    set q [expr {$dividend / $divisor}]
6251    set r [expr {$dividend % $divisor}]
6252    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
6253} {4611686018427387903 * 2 + 0 = 9223372036854775806}
6254test expr-37.3 {expr edge cases} {wideIs64bit} {
6255    set dividend [expr {$max - 2}]
6256    set divisor 2
6257    set q [expr {$dividend / $divisor}]
6258    set r [expr {$dividend % $divisor}]
6259    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
6260} {4611686018427387902 * 2 + 1 = 9223372036854775805}
6261test expr-37.4 {expr edge cases} {wideIs64bit} {
6262    set dividend $max
6263    set divisor 3
6264    set q [expr {$dividend / $divisor}]
6265    set r [expr {$dividend % $divisor}]
6266    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
6267} {3074457345618258602 * 3 + 1 = 9223372036854775807}
6268test expr-37.5 {expr edge cases} {wideIs64bit} {
6269    set dividend [expr {$max - 1}]
6270    set divisor 3
6271    set q [expr {$dividend / $divisor}]
6272    set r [expr {$dividend % $divisor}]
6273    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
6274} {3074457345618258602 * 3 + 0 = 9223372036854775806}
6275test expr-37.6 {expr edge cases} {wideIs64bit} {
6276    set dividend [expr {$max - 2}]
6277    set divisor 3
6278    set q [expr {$dividend / $divisor}]
6279    set r [expr {$dividend % $divisor}]
6280    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
6281} {3074457345618258601 * 3 + 2 = 9223372036854775805}
6282test expr-37.7 {expr edge cases} {wideIs64bit} {
6283    set dividend $min
6284    set divisor 2
6285    set q [expr {$dividend / $divisor}]
6286    set r [expr {$dividend % $divisor}]
6287    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
6288} {-4611686018427387904 * 2 + 0 = -9223372036854775808}
6289test expr-37.8 {expr edge cases} {wideIs64bit} {
6290    set dividend [expr {$min + 1}]
6291    set divisor 2
6292    set q [expr {$dividend / $divisor}]
6293    set r [expr {$dividend % $divisor}]
6294    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
6295} {-4611686018427387904 * 2 + 1 = -9223372036854775807}
6296test expr-37.9 {expr edge cases} {wideIs64bit} {
6297    set dividend [expr {$min + 2}]
6298    set divisor 2
6299    set q [expr {$dividend / $divisor}]
6300    set r [expr {$dividend % $divisor}]
6301    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
6302} {-4611686018427387903 * 2 + 0 = -9223372036854775806}
6303test expr-37.10 {expr edge cases} {wideIs64bit} {
6304    # Multiplication overflows 64 bit type here,
6305    # so when the 1 is added it overflows
6306    # again and we end up back at min.
6307    set dividend $min
6308    set divisor 3
6309    set q [expr {$dividend / $divisor}]
6310    set r [expr {$dividend % $divisor}]
6311    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
6312} {-3074457345618258603 * 3 + 1 = -9223372036854775808}
6313test expr-37.11 {expr edge cases} {wideIs64bit} {
6314    set dividend $min
6315    set divisor -3
6316    set q [expr {$dividend / $divisor}]
6317    set r [expr {$dividend % $divisor}]
6318    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
6319} {3074457345618258602 * -3 + -2 = -9223372036854775808}
6320test expr-37.12 {expr edge cases} {wideIs64bit} {
6321    set dividend $min
6322    set divisor $min
6323    set q [expr {$dividend / $divisor}]
6324    set r [expr {$dividend % $divisor}]
6325    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
6326} {1 * -9223372036854775808 + 0 = -9223372036854775808}
6327test expr-37.13 {expr edge cases} {wideIs64bit} {
6328    set dividend $min
6329    set divisor [expr {$min + 1}]
6330    set q [expr {$dividend / $divisor}]
6331    set r [expr {$dividend % $divisor}]
6332    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
6333} {1 * -9223372036854775807 + -1 = -9223372036854775808}
6334test expr-37.14 {expr edge cases} {wideIs64bit} {
6335    set dividend $min
6336    set divisor [expr {$min + 2}]
6337    set q [expr {$dividend / $divisor}]
6338    set r [expr {$dividend % $divisor}]
6339    list $q * $divisor + $r = [expr {($q * $divisor) + $r}]
6340} {1 * -9223372036854775806 + -2 = -9223372036854775808}
6341
6342test expr-38.1 {abs of smallest 32-bit integer [Bug 1241572]} {wideIs64bit} {
6343    expr {abs(-2147483648)}
6344} 2147483648
6345test expr-38.2 {abs and -0 [Bug 1893815]} {
6346    expr {abs(-0)}
6347} 0
6348test expr-38.3 {abs and -0 [Bug 1893815]} {
6349    expr {abs(-0.0)}
6350} 0.0
6351test expr-38.4 {abs and -0 [Bug 1893815]} {
6352    expr {abs(-1e-324)}
6353} 0.0
6354test expr-38.5 {abs and -0 [Bug 1893815]} {
6355    ::tcl::mathfunc::abs -0
6356} 0
6357test expr-38.6 {abs and -0 [Bug 1893815]} {
6358    ::tcl::mathfunc::abs -0.0
6359} 0.0
6360test expr-38.7 {abs and -0 [Bug 1893815]} {
6361    ::tcl::mathfunc::abs -1e-324
6362} 0.0
6363
6364testConstraint testexprlongobj   [llength [info commands testexprlongobj]]
6365testConstraint testexprdoubleobj [llength [info commands testexprdoubleobj]]
6366
6367test expr-39.1 {Check that Tcl_ExprLongObj doesn't modify interpreter result if no error} testexprlongobj {
6368    testexprlongobj 4+1
6369} {This is a result: 5}
6370#Check for [Bug 1109484]
6371test expr-39.2 {Tcl_ExprLongObj handles wide ints gracefully} testexprlongobj {
6372    testexprlongobj wide(1)+2
6373} {This is a result: 3}
6374
6375test expr-39.3 {Tcl_ExprLongObj on the empty string} \
6376    -constraints {testexprlongobj}\
6377    -body {testexprlongobj ""} \
6378    -match glob \
6379    -returnCodes error -result *
6380test expr-39.4 {Tcl_ExprLongObj coerces doubles} testexprlongobj {
6381    testexprlongobj 3+.14159
6382} {This is a result: 3}
6383test expr-39.5 {Tcl_ExprLongObj handles overflows} {testexprlongobj longIs32bit} {
6384    testexprlongobj 0x80000000
6385} {This is a result: -2147483648}
6386test expr-39.6 {Tcl_ExprLongObj handles overflows} {testexprlongobj longIs32bit} {
6387    testexprlongobj 0xffffffff
6388} {This is a result: -1}
6389test expr-39.7 {Tcl_ExprLongObj handles overflows} \
6390    -constraints {testexprlongobj longIs32bit} \
6391    -match glob \
6392    -body {
6393        list [catch {testexprlongobj 0x100000000} result] $result
6394    } \
6395    -result {1 {integer value too large to represent*}}
6396test expr-39.8 {Tcl_ExprLongObj handles overflows} testexprlongobj {
6397    testexprlongobj -0x80000000
6398} {This is a result: -2147483648}
6399test expr-39.9 {Tcl_ExprLongObj handles overflows} {testexprlongobj longIs32bit} {
6400    testexprlongobj -0xffffffff
6401} {This is a result: 1}
6402test expr-39.10 {Tcl_ExprLongObj handles overflows} \
6403    -constraints {testexprlongobj longIs32bit} \
6404    -match glob \
6405    -body {
6406        list [catch {testexprlongobj -0x100000000} result] $result
6407    } \
6408    -result {1 {integer value too large to represent*}}
6409test expr-39.11 {Tcl_ExprLongObj handles overflows} {testexprlongobj longIs32bit} {
6410    testexprlongobj 2147483648.
6411} {This is a result: -2147483648}
6412test expr-39.12 {Tcl_ExprLongObj handles overflows} {testexprlongobj longIs32bit} {
6413    testexprlongobj 4294967295.
6414} {This is a result: -1}
6415test expr-39.13 {Tcl_ExprLongObj handles overflows} \
6416    -constraints {testexprlongobj longIs32bit} \
6417    -match glob \
6418    -body {
6419        list [catch {testexprlongobj 4294967296.} result] $result
6420    } \
6421    -result {1 {integer value too large to represent*}}
6422test expr-39.14 {Tcl_ExprLongObj handles overflows} testexprlongobj {
6423    testexprlongobj -2147483648.
6424} {This is a result: -2147483648}
6425test expr-39.15 {Tcl_ExprLongObj handles overflows} {testexprlongobj longIs32bit} {
6426    testexprlongobj -4294967295.
6427} {This is a result: 1}
6428test expr-39.16 {Tcl_ExprLongObj handles overflows} \
6429    -constraints {testexprlongobj longIs32bit} \
6430    -match glob \
6431    -body {
6432        list [catch {testexprlongobj 4294967296.} result] $result
6433    } \
6434    -result {1 {integer value too large to represent*}}
6435   
6436test expr-39.17 {Check that Tcl_ExprDoubleObj doesn't modify interpreter result if no error} testexprdoubleobj {
6437    testexprdoubleobj 4.+1.
6438} {This is a result: 5.0}
6439#Check for [Bug 1109484]
6440test expr-39.18 {Tcl_ExprDoubleObj on the empty string} \
6441    -constraints {testexprdoubleobj} \
6442    -match glob \
6443    -body {testexprdoubleobj ""} \
6444    -returnCodes error -result *
6445test expr-39.19 {Tcl_ExprDoubleObj coerces wides} testexprdoubleobj {
6446    testexprdoubleobj 1[string repeat 0 17]
6447} {This is a result: 1e+17}
6448test expr-39.20 {Tcl_ExprDoubleObj coerces bignums} testexprdoubleobj {
6449    testexprdoubleobj 1[string repeat 0 38]
6450} {This is a result: 1e+38}
6451test expr-39.21 {Tcl_ExprDoubleObj handles overflows} \
6452    testexprdoubleobj&&ieeeFloatingPoint {
6453        testexprdoubleobj 17976931348623157[string repeat 0 292].
6454    } {This is a result: 1.7976931348623157e+308}
6455test expr-39.22 {Tcl_ExprDoubleObj handles overflows that look like int} \
6456    testexprdoubleobj&&ieeeFloatingPoint {
6457        testexprdoubleobj 17976931348623157[string repeat 0 292]
6458    } {This is a result: 1.7976931348623157e+308}
6459test expr-39.23 {Tcl_ExprDoubleObj handles overflows} \
6460    testexprdoubleobj&&ieeeFloatingPoint {
6461        testexprdoubleobj 17976931348623165[string repeat 0 292].
6462    } {This is a result: Inf}
6463test expr-39.24 {Tcl_ExprDoubleObj handles overflows that look like int} \
6464    testexprdoubleobj&&ieeeFloatingPoint {
6465        testexprdoubleobj 17976931348623165[string repeat 0 292]
6466    } {This is a result: Inf}
6467test expr-39.25 {Tcl_ExprDoubleObj and NaN} \
6468    {testexprdoubleobj ieeeFloatingPoint} {
6469        list [catch {testexprdoubleobj 0.0/0.0} result] $result
6470    } {1 {domain error: argument not in valid range}}
6471
6472test expr-40.1 {large octal shift} {
6473    expr 0o100000000000000000000000000000000
6474} [expr 0x1000000000000000000000000]
6475test expr-40.2 {large octal shift} {
6476    expr 0o100000000000000000000000000000001
6477} [expr 0x1000000000000000000000001]
6478
6479test expr-41.1 {exponent overflow} {
6480    expr 1.0e2147483630
6481} Inf
6482test expr-41.2 {exponent underflow} {
6483    expr 1.0e-2147483630
6484} 0.0
6485
6486test expr-42.1 {denormals} ieeeFloatingPoint {
6487    expr 7e-324
6488} 5e-324
6489
6490# TIP 114
6491
6492test expr-43.1 {0b notation} {
6493    expr 0b0
6494} 0
6495test expr-43.2 {0b notation} {
6496    expr 0b1
6497} 1
6498test expr-43.3 {0b notation} {
6499    expr 0b10
6500} 2
6501test expr-43.4 {0b notation} {
6502    expr 0b11
6503} 3
6504test expr-43.5 {0b notation} {
6505    expr 0b100
6506} 4
6507test expr-43.6 {0b notation} {
6508    expr 0b101
6509} 5
6510test expr-43.7 {0b notation} {
6511    expr 0b1000
6512} 8
6513test expr-43.8 {0b notation} {
6514    expr 0b1001
6515} 9
6516test expr-43.9 {0b notation} {
6517    expr 0b1[string repeat 0 31]
6518} 2147483648
6519test expr-43.10 {0b notation} {
6520    expr 0b1[string repeat 0 30]1
6521} 2147483649
6522test expr-43.11 {0b notation} {
6523    expr 0b[string repeat 1 64]
6524} 18446744073709551615
6525test expr-43.12 {0b notation} {
6526    expr 0b1[string repeat 0 64]
6527} 18446744073709551616
6528test expr-43.13 {0b notation} {
6529    expr 0b1[string repeat 0 63]1
6530} 18446744073709551617
6531
6532test expr-44.1 {0o notation} {
6533    expr 0o0
6534} 0
6535test expr-44.2 {0o notation} {
6536    expr 0o1
6537} 1
6538test expr-44.3 {0o notation} {
6539    expr 0o7
6540} 7
6541test expr-44.4 {0o notation} {
6542    expr 0o10
6543} 8
6544test expr-44.5 {0o notation} {
6545    expr 0o11
6546} 9
6547test expr-44.6 {0o notation} {
6548    expr 0o100
6549} 64
6550test expr-44.7 {0o notation} {
6551    expr 0o101
6552} 65
6553test expr-44.8 {0o notation} {
6554    expr 0o1000
6555} 512
6556test expr-44.9 {0o notation} {
6557    expr 0o1001
6558} 513
6559test expr-44.10 {0o notation} {
6560    expr 0o1[string repeat 7 21]
6561} 18446744073709551615
6562test expr-44.11 {0o notation} {
6563    expr 0o2[string repeat 0 21]
6564} 18446744073709551616
6565test expr-44.12 {0o notation} {
6566    expr 0o2[string repeat 0 20]1
6567} 18446744073709551617
6568
6569# TIP 237 again
6570
6571test expr-45.1 {entier} {
6572    expr entier(0)
6573} 0
6574test expr-45.2 {entier} {
6575    expr entier(0.5)
6576} 0
6577test expr-45.3 {entier} {
6578    expr entier(1.0)
6579} 1
6580test expr-45.4 {entier} {
6581    expr entier(1.5)
6582} 1
6583test expr-45.5 {entier} {
6584    expr entier(2.0)
6585} 2
6586test expr-45.6 {entier} {
6587    expr entier(1e+22)
6588} 10000000000000000000000
6589test expr-45.7 {entier} {
6590    list [catch {expr entier(Inf)} result] $result
6591} {1 {integer value too large to represent}}
6592test expr-45.8 {entier} ieeeFloatingPoint {
6593    list [catch {expr {entier($ieeeValues(NaN))}} result] $result
6594} {1 {floating point value is Not a Number}}
6595test expr-45.9 {entier} ieeeFloatingPoint {
6596    list [catch {expr {entier($ieeeValues(-NaN))}} result] $result
6597} {1 {floating point value is Not a Number}}
6598
6599test expr-46.1 {round() rounds to +-infinity} {
6600    expr round(0.5)
6601} 1
6602test expr-46.2 {round() rounds to +-infinity} {
6603    expr round(1.5)
6604} 2
6605test expr-46.3 {round() rounds to +-infinity} {
6606    expr round(-0.5)
6607} -1
6608test expr-46.4 {round() rounds to +-infinity} {
6609    expr round(-1.5)
6610} -2
6611test expr-46.5 {round() overflow} {
6612    expr round(9.2233720368547758e+018)
6613} 9223372036854775808
6614test expr-46.6 {round() overflow} {
6615    expr round(-9.2233720368547758e+018)
6616} -9223372036854775808
6617test expr-46.7 {round() bad value} -body {
6618    set x trash
6619    expr {round($x)}
6620} -returnCodes error -match glob -result *
6621test expr-46.8 {round() already an integer} {
6622    set x 123456789012
6623    incr x
6624    expr round($x)
6625} 123456789013
6626test expr-46.9 {round() boundary case - 1/2 - 1 ulp} {
6627    set x 0.25
6628    set bit 0.125
6629    while 1 {
6630        set newx [expr {$x + $bit}]
6631        if { $newx == $x || $newx == 0.5 } break
6632        set x $newx
6633        set bit [expr { $bit / 2.0 }]
6634    }
6635    expr {round($x)}
6636} 0
6637test expr-46.10 {round() boundary case - 1/2 + 1 ulp} {
6638    set x 0.75
6639    set bit 0.125
6640    while 1 {
6641        set newx [expr {$x - $bit}]
6642        if { $newx == $x || $newx == 0.5 } break
6643        set x $newx
6644        set bit [expr { $bit / 2.0 }]
6645    }
6646    expr {round($x)}
6647} 1
6648test expr-46.11 {round() boundary case - -1/2 - 1 ulp} {
6649    set x -0.75
6650    set bit 0.125
6651    while 1 {
6652        set newx [expr {$x + $bit}]
6653        if { $newx == $x || $newx == -0.5 } break
6654        set x $newx
6655        set bit [expr { $bit / 2.0 }]
6656    }
6657    expr {round($x)}
6658} -1
6659test expr-46.12 {round() boundary case - -1/2 + 1 ulp} {
6660    set x -0.25
6661    set bit 0.125
6662    while 1 {
6663        set newx [expr {$x - $bit}]
6664        if { $newx == $x || $newx == -0.5 } break
6665        set x $newx
6666        set bit [expr { $bit / 2.0 }]
6667    }
6668    expr {round($x)}
6669} 0
6670test expr-46.13 {round() boundary case - round down} {
6671    expr {round(2147483647 - 0.51)}
6672} 2147483646
6673
6674test expr-46.14 {round() boundary case - round up} {
6675    expr {round(2147483647 - 0.50)}
6676} 2147483647
6677
6678test expr-46.15 {round() boundary case - round up to wide} {
6679    expr {round(2147483647 + 0.50)}
6680} [expr {wide(2147483647) + 1}]
6681
6682test expr-46.16 {round() boundary case - round up} {
6683    expr {round(-2147483648 + 0.51)}
6684} -2147483647
6685
6686test expr-46.17 {round() boundary case - round down} {
6687    expr {round(-2147483648 + 0.50)}
6688} -2147483648
6689test expr-46.18 {round() boundary case - round down to wide} {
6690    expr {round(-2147483648 - 0.50)}
6691} [expr {wide(-2147483648) - 1}]
6692
6693test expr-46.19 {round() handling of long/bignum boundary} {
6694    expr {round(double(0x7fffffffffffffff))}
6695} 9223372036854775808
6696
6697test expr-47.1 {isqrt() - arg count} {
6698    list [catch {expr {isqrt(1,2)}} result] $result
6699} {1 {too many arguments for math function "isqrt"}}
6700
6701test expr-47.2 {isqrt() - non-number} {
6702    list [catch {expr {isqrt({rubbish})}} result] $result
6703} {1 {expected number but got "rubbish"}}
6704
6705test expr-47.3 {isqrt() - NaN} ieeeFloatingPoint {
6706    list [catch {expr {isqrt(NaN)}} result] $result
6707} {1 {floating point value is Not a Number}}
6708
6709test expr-47.4 {isqrt() of negative floating point number} {
6710    list [catch {expr {isqrt(-1.0)}} result] $result
6711} {1 {square root of negative argument}}
6712
6713test expr-47.5 {isqrt() of floating point zero} {
6714    expr isqrt(0.0)
6715} 0
6716
6717test expr-47.6 {isqrt() of exact floating point numbers} {
6718    set trouble {}
6719    for {set i 0} {$i < 16} {incr i} {
6720        set root [expr {1 << $i}]
6721        set rm1 [expr {$root - 1}]
6722        set arg [expr {pow(2., (2 * $i))}]
6723        if {isqrt($arg-1) != $rm1} {
6724            append trouble "i = " $i ": isqrt( " $arg "-1) != " $rm1 "\n"
6725        }
6726        if {isqrt($arg) != $root} {
6727            append trouble "i = " $i ": isqrt( " $arg ") != " $root "\n"
6728        }
6729        if {isqrt($arg+1) != $root} {
6730            append trouble "i = " $i ": isqrt( " $arg "+1) != " $root "\n"
6731        }
6732    }
6733    set trouble
6734} {}
6735
6736test expr-47.7 {isqrt() of exact floating point numbers} ieeeFloatingPoint {
6737    set trouble {}
6738    for {set i 17} {$i < 27} {incr i} {
6739        set root [expr {1 << $i}]
6740        set rm1 [expr {$root - 1}]
6741        set arg [expr {pow(2., (2 * $i))}]
6742        if {isqrt($arg-1.0) != $rm1} {
6743            append trouble "i = " $i ": isqrt( " $arg "-1) != " $rm1 "\n"
6744        }
6745        if {isqrt($arg) != $root} {
6746            append trouble "i = " $i ": isqrt( " $arg ") != " $root "\n"
6747        }
6748        if {isqrt($arg+1.0) != $root} {
6749            append trouble "i = " $i ": isqrt( " $arg "+1) != " $root "\n"
6750        }
6751    }
6752    set trouble
6753} {}
6754
6755test expr-47.8 {isqrt of inexact floating point number} ieeeFloatingPoint {
6756    expr isqrt(2[string repeat 0 34])
6757} 141421356237309504
6758
6759test expr-47.9 {isqrt of negative int} {
6760    list [catch {expr isqrt(-1)} result] $result
6761} {1 {square root of negative argument}}
6762
6763test expr-47.10 {isqrt of negative bignum} {
6764    list [catch {expr isqrt(-1[string repeat 0 1000])} result] $result
6765} {1 {square root of negative argument}}
6766
6767test expr-47.11 {isqrt of zero} {
6768    expr {isqrt(0)}
6769} 0
6770
6771test expr-47.12 {isqrt of various sizes of integer} {
6772    set faults 0
6773    for {set i 0} {$faults < 10 && $i <= 1024} {incr i} {
6774        set root [expr {1 << $i}]
6775        set rm1 [expr {$root - 1}]
6776        set arg [expr {1 << (2 * $i)}]
6777        set tval [expr {isqrt($arg-1)}]
6778        if {$tval != $rm1} {
6779            append trouble "i = " $i ": isqrt(" $arg "-1) == " $tval \
6780                " != " $rm1 "\n"
6781            incr faults
6782        }
6783        set tval [expr {isqrt($arg)}]
6784        if {$tval != $root} {
6785            append trouble "i = " $i ": isqrt(" $arg ") == " $tval \
6786                " != " $root "\n"
6787            incr faults
6788        }
6789        set tval [expr {isqrt($arg+1)}]
6790        if {$tval != $root} {
6791            append trouble "i = " $i ": isqrt(" $arg "+1) == " $tval \
6792                " != " $root "\n"
6793            incr faults
6794        }
6795    }
6796    set trouble
6797} {}
6798
6799test expr-48.1 {Bug 1770224} {
6800    expr {-0x8000000000000001 >> 0x8000000000000000}
6801} -1
6802
6803# cleanup
6804if {[info exists a]} {
6805    unset a
6806}
6807catch {unset min}
6808catch {unset max}
6809::tcltest::cleanupTests
6810return
6811
6812# Local Variables:
6813# mode: tcl
6814# End:
Note: See TracBrowser for help on using the repository browser.