1# This file is a Tcl script to test the code in the file tclUtil.c.
2# This file is organized in the standard fashion for Tcl tests.
3#
4# Copyright © 1995-1998 Sun Microsystems, Inc.
5# Copyright © 1998-1999 Scriptics Corporation.
6#
7# See the file "license.terms" for information on usage and redistribution
8# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
9
10if {"::tcltest" ni [namespace children]} {
11    package require tcltest 2.5
12    namespace import -force ::tcltest::*
13}
14
15::tcltest::loadTestedCommands
16catch [list package require -exact tcl::test [info patchlevel]]
17
18testConstraint controversialNaN 1
19testConstraint testbytestring [llength [info commands testbytestring]]
20testConstraint testdstring [llength [info commands testdstring]]
21testConstraint testconcatobj [llength [info commands testconcatobj]]
22testConstraint testdoubledigits [llength [info commands testdoubledigits]]
23testConstraint testprint [llength [info commands testprint]]
24
25testConstraint precision [expr {![catch {set saved_precision $::tcl_precision}]}]
26
27
28# Big test for correct ordering of data in [expr]
29
30proc testIEEE {} {
31    variable ieeeValues
32    binary scan [binary format dd -1.0 1.0] c* c
33    switch -exact -- $c {
34	{0 0 0 0 0 0 -16 -65 0 0 0 0 0 0 -16 63} {
35	    # little endian
36	    binary scan \x00\x00\x00\x00\x00\x00\xF0\xFF d \
37		ieeeValues(-Infinity)
38	    binary scan \x00\x00\x00\x00\x00\x00\xF0\xBF d \
39		ieeeValues(-Normal)
40	    binary scan \x00\x00\x00\x00\x00\x00\x08\x80 d \
41		ieeeValues(-Subnormal)
42	    binary scan \x00\x00\x00\x00\x00\x00\x00\x80 d \
43		ieeeValues(-0)
44	    binary scan \x00\x00\x00\x00\x00\x00\x00\x00 d \
45		ieeeValues(+0)
46	    binary scan \x00\x00\x00\x00\x00\x00\x08\x00 d \
47		ieeeValues(+Subnormal)
48	    binary scan \x00\x00\x00\x00\x00\x00\xF0\x3F d \
49		ieeeValues(+Normal)
50	    binary scan \x00\x00\x00\x00\x00\x00\xF0\x7F d \
51		ieeeValues(+Infinity)
52	    binary scan \x00\x00\x00\x00\x00\x00\xF8\x7F d \
53		ieeeValues(NaN)
54	    binary scan \x00\x00\x00\x00\x00\x00\xF8\xFF d \
55		ieeeValues(-NaN)
56	    binary scan \xEF\xCD\xAB\x89\x67\x45\xFB\xFF d \
57		ieeeValues(-NaN(3456789abcdef))
58	    set ieeeValues(littleEndian) 1
59	    return 1
60	}
61	{-65 -16 0 0 0 0 0 0 63 -16 0 0 0 0 0 0} {
62	    binary scan \xFF\xF0\x00\x00\x00\x00\x00\x00 d \
63		ieeeValues(-Infinity)
64	    binary scan \xBF\xF0\x00\x00\x00\x00\x00\x00 d \
65		ieeeValues(-Normal)
66	    binary scan \x80\x08\x00\x00\x00\x00\x00\x00 d \
67		ieeeValues(-Subnormal)
68	    binary scan \x80\x00\x00\x00\x00\x00\x00\x00 d \
69		ieeeValues(-0)
70	    binary scan \x00\x00\x00\x00\x00\x00\x00\x00 d \
71		ieeeValues(+0)
72	    binary scan \x00\x08\x00\x00\x00\x00\x00\x00 d \
73		ieeeValues(+Subnormal)
74	    binary scan \x3F\xF0\x00\x00\x00\x00\x00\x00 d \
75		ieeeValues(+Normal)
76	    binary scan \x7F\xF0\x00\x00\x00\x00\x00\x00 d \
77		ieeeValues(+Infinity)
78	    binary scan \x7F\xF8\x00\x00\x00\x00\x00\x00 d \
79		ieeeValues(NaN)
80	    binary scan \xFF\xF8\x00\x00\x00\x00\x00\x00 d \
81		ieeeValues(-NaN)
82	    binary scan \xFF\xFB\x45\x67\x89\xAB\xCD\xEF d \
83		ieeeValues(-NaN(3456789abcdef))
84	    set ieeeValues(littleEndian) 0
85	    return 1
86	}
87	default {
88	    return 0
89	}
90    }
91}
92testConstraint ieeeFloatingPoint [testIEEE]
93
94proc convertDouble { x } {
95    variable ieeeValues
96    if { $ieeeValues(littleEndian) } {
97	binary scan [binary format w $x] d result
98    } else {
99	binary scan [binary format W $x] d result
100    }
101    return $result
102}
103
104proc verdonk_test {sig binexp shouldbe exp} {
105    regexp {([-+]?)([0-9a-f]+)} $sig -> signum sig
106    scan $sig %llx sig
107    if {$signum eq {-}} {
108	set signum [expr {1<<63}]
109    } else {
110	set signum 0
111    }
112    regexp {E([-+]?[0-9]+)} $binexp -> binexp
113    set word [expr {$signum | (($binexp + 0x3ff)<<52)|($sig & ~(1<<52))}]
114    binary scan [binary format w $word] q double
115    regexp {([-+])(\d+)_(\d+)\&} $shouldbe -> signum digits1 digits2
116    regexp {E([-+]\d+)} $exp -> decexp
117    incr decexp [expr {[string length $digits1] - 1}]
118    lassign [testdoubledigits $double [string length $digits1] e] \
119	outdigits decpt outsign
120    if {[string index $digits2 0] >= 5} {
121	incr digits1
122    }
123    if {$outsign != $signum || $outdigits != $digits1 || $decpt != $decexp} {
124	return -code error "result is ${outsign}0.${outdigits}E$decpt\
125                            should be ${signum}0.${digits1}E$decexp"
126    }
127}
128
129test util-1.1 {TclFindElement procedure - binary element in middle of list} {
130    lindex {0 foo\x00help 1} 1
131} "foo\x00help"
132test util-1.2 {TclFindElement procedure - binary element at end of list} {
133    lindex {0 foo\x00help} 1
134} "foo\x00help"
135
136test util-2.1 {TclCopyAndCollapse procedure - normal string} {
137    lindex {0 foo} 1
138} {foo}
139test util-2.2 {TclCopyAndCollapse procedure - string with backslashes} {
140    lindex {0 foo\n\x00help 1} 1
141} "foo\n\x00help"
142
143test util-3.1 {Tcl_ScanCountedElement procedure - don't leave unmatched braces} {
144    # This test checks for a very tricky feature.  Any list element
145    # generated with Tcl_ScanCountedElement and Tcl_ConvertElement must
146    # have the property that it can be enclosing in curly braces to make
147    # an embedded sub-list.  If this property doesn't hold, then
148    # Tcl_DStringStartSublist doesn't work.
149    set x {}
150    lappend x "# \\\{ \\"
151    concat $x [llength "{$x}"]
152} {\#\ \\\{\ \\ 1}
153test util-3.2 {Tcl_ConverCountedElement procedure - quote leading '#'} {
154    list # # a
155} {{#} # a}
156test util-3.3 {Tcl_ConverCountedElement procedure - quote leading '#'} {
157    list #\{ # a
158} {\#\{ # a}
159test util-3.4 {Tcl_ConverCountedElement procedure - quote leading '#'} {
160    proc # {} {return #}
161    set result [eval [list #]]
162    rename # {}
163    set result
164} {#}
165test util-3.4.1 {Tcl_ConverCountedElement procedure - quote leading '#'} {
166    proc # {} {return #}
167    set cmd [list #]
168    append cmd ""	;# force string rep generation
169    set result [eval $cmd]
170    rename # {}
171    set result
172} {#}
173test util-3.5 {Tcl_ConverCountedElement procedure - quote leading '#'} {
174    proc #\{ {} {return #}
175    set result [eval [list #\{]]
176    rename #\{ {}
177    set result
178} {#}
179test util-3.5.1 {Tcl_ConverCountedElement procedure - quote leading '#'} {
180    proc #\{ {} {return #}
181    set cmd [list #\{]
182    append cmd ""	;# force string rep generation
183    set result [eval $cmd]
184    rename #\{ {}
185    set result
186} {#}
187test util-3.6 {Tcl_ConvertElement, Bug 3371644} {
188    interp create #\\
189    interp alias {} x #\\ concat
190    interp target {} x ;# Crash if bug not fixed
191    interp delete #\\
192} {}
193
194test util-4.1 {Tcl_ConcatObj - backslash-space at end of argument} {
195    concat a {b\ } c
196} {a b\  c}
197test util-4.2 {Tcl_ConcatObj - backslash-space at end of argument} {
198    concat a {b\   } c
199} {a b\  c}
200test util-4.3 {Tcl_ConcatObj - backslash-space at end of argument} {
201    concat a {b\\   } c
202} {a b\\  c}
203test util-4.4 {Tcl_ConcatObj - backslash-space at end of argument} {
204    concat a {b } c
205} {a b c}
206test util-4.5 {Tcl_ConcatObj - backslash-space at end of argument} {
207    concat a { } c
208} {a c}
209test util-4.6 {Tcl_ConcatObj - utf-8 sequence with "whitespace" char} {
210    # Check for Bug #227512.  If this violates C isspace, then it returns \xC3.
211    concat \xE0
212} \xE0
213test util-4.7 {Tcl_ConcatObj - refCount safety} testconcatobj {
214    # Check for Bug #1447328 (actually, bugs in its original "fix"). One of the
215    # symptoms was Bug #2055782.
216    testconcatobj
217} {}
218test util-4.8 {Tcl_ConcatObj - [Bug 26649439c7]} {
219    concat [list foo] [list #]
220} {foo {#}}
221
222proc Wrapper_Tcl_StringMatch {pattern string} {
223    # Forces use of Tcl_StringMatch, not Tcl_UniCharCaseMatch
224    switch -glob -- $string $pattern {return 1} default {return 0}
225}
226test util-5.1 {Tcl_StringMatch} {
227    Wrapper_Tcl_StringMatch ab*c abc
228} 1
229test util-5.2 {Tcl_StringMatch} {
230    Wrapper_Tcl_StringMatch ab**c abc
231} 1
232test util-5.3 {Tcl_StringMatch} {
233    Wrapper_Tcl_StringMatch ab* abcdef
234} 1
235test util-5.4 {Tcl_StringMatch} {
236    Wrapper_Tcl_StringMatch *c abc
237} 1
238test util-5.5 {Tcl_StringMatch} {
239    Wrapper_Tcl_StringMatch *3*6*9 0123456789
240} 1
241test util-5.6 {Tcl_StringMatch} {
242    Wrapper_Tcl_StringMatch *3*6*9 01234567890
243} 0
244test util-5.7 {Tcl_StringMatch: UTF-8} {
245    Wrapper_Tcl_StringMatch *u 乏u
246} 1
247test util-5.8 {Tcl_StringMatch} {
248    Wrapper_Tcl_StringMatch a?c abc
249} 1
250test util-5.9 {Tcl_StringMatch: UTF-8} {
251    # skip one character in string
252    Wrapper_Tcl_StringMatch a?c a乏c
253} 1
254test util-5.10 {Tcl_StringMatch} {
255    Wrapper_Tcl_StringMatch a??c abc
256} 0
257test util-5.11 {Tcl_StringMatch} {
258    Wrapper_Tcl_StringMatch ?1??4???8? 0123456789
259} 1
260test util-5.12 {Tcl_StringMatch} {
261    Wrapper_Tcl_StringMatch {[abc]bc} abc
262} 1
263test util-5.13 {Tcl_StringMatch: UTF-8} {
264    # string += Tcl_UtfToUniChar(string, &ch);
265    Wrapper_Tcl_StringMatch "\[乏xy\]bc" "乏bc"
266} 1
267test util-5.14 {Tcl_StringMatch} {
268    # if ((*pattern == ']') || (*pattern == '\x00'))
269    # badly formed pattern
270    Wrapper_Tcl_StringMatch {[]} {[]}
271} 0
272test util-5.15 {Tcl_StringMatch} {
273    # if ((*pattern == ']') || (*pattern == '\x00'))
274    # badly formed pattern
275    Wrapper_Tcl_StringMatch {[} {[}
276} 0
277test util-5.16 {Tcl_StringMatch} {
278    Wrapper_Tcl_StringMatch {a[abc]c} abc
279} 1
280test util-5.17 {Tcl_StringMatch: UTF-8} {
281    # pattern += Tcl_UtfToUniChar(pattern, &endChar);
282    # get 1 UTF-8 character
283    Wrapper_Tcl_StringMatch "a\[a乏c]c" "a乏c"
284} 1
285test util-5.18 {Tcl_StringMatch: UTF-8} testbytestring {
286    # pattern += Tcl_UtfToUniChar(pattern, &endChar);
287    # proper advance: wrong answer would match on UTF trail byte of 乏
288    Wrapper_Tcl_StringMatch {a[a乏c]c} [testbytestring a\x8Fc]
289} 0
290test util-5.19 {Tcl_StringMatch: UTF-8} {
291    # pattern += Tcl_UtfToUniChar(pattern, &endChar);
292    # proper advance.
293    Wrapper_Tcl_StringMatch {a[a乏c]c} "acc"
294} 1
295test util-5.20 {Tcl_StringMatch} {
296    Wrapper_Tcl_StringMatch {a[xyz]c} abc
297} 0
298test util-5.21 {Tcl_StringMatch} {
299    Wrapper_Tcl_StringMatch {12[2-7]45} 12345
300} 1
301test util-5.22 {Tcl_StringMatch: UTF-8 range} {
302    Wrapper_Tcl_StringMatch "\[一-乏]" "0"
303} 0
304test util-5.23 {Tcl_StringMatch: UTF-8 range} {
305    Wrapper_Tcl_StringMatch "\[一-乏]" "丳"
306} 1
307test util-5.24 {Tcl_StringMatch: UTF-8 range} {
308    Wrapper_Tcl_StringMatch "\[一-乏]" "("
309} 0
310test util-5.25 {Tcl_StringMatch} {
311    Wrapper_Tcl_StringMatch {12[ab2-4cd]45} 12345
312} 1
313test util-5.26 {Tcl_StringMatch} {
314    Wrapper_Tcl_StringMatch {12[ab2-4cd]45} 12b45
315} 1
316test util-5.27 {Tcl_StringMatch} {
317    Wrapper_Tcl_StringMatch {12[ab2-4cd]45} 12d45
318} 1
319test util-5.28 {Tcl_StringMatch} {
320    Wrapper_Tcl_StringMatch {12[ab2-4cd]45} 12145
321} 0
322test util-5.29 {Tcl_StringMatch} {
323    Wrapper_Tcl_StringMatch {12[ab2-4cd]45} 12545
324} 0
325test util-5.30 {Tcl_StringMatch: forwards range} {
326    Wrapper_Tcl_StringMatch {[k-w]} "z"
327} 0
328test util-5.31 {Tcl_StringMatch: forwards range} {
329    Wrapper_Tcl_StringMatch {[k-w]} "w"
330} 1
331test util-5.32 {Tcl_StringMatch: forwards range} {
332    Wrapper_Tcl_StringMatch {[k-w]} "r"
333} 1
334test util-5.33 {Tcl_StringMatch: forwards range} {
335    Wrapper_Tcl_StringMatch {[k-w]} "k"
336} 1
337test util-5.34 {Tcl_StringMatch: forwards range} {
338    Wrapper_Tcl_StringMatch {[k-w]} "a"
339} 0
340test util-5.35 {Tcl_StringMatch: reverse range} {
341    Wrapper_Tcl_StringMatch {[w-k]} "z"
342} 0
343test util-5.36 {Tcl_StringMatch: reverse range} {
344    Wrapper_Tcl_StringMatch {[w-k]} "w"
345} 1
346test util-5.37 {Tcl_StringMatch: reverse range} {
347    Wrapper_Tcl_StringMatch {[w-k]} "r"
348} 1
349test util-5.38 {Tcl_StringMatch: reverse range} {
350    Wrapper_Tcl_StringMatch {[w-k]} "k"
351} 1
352test util-5.39 {Tcl_StringMatch: reverse range} {
353    Wrapper_Tcl_StringMatch {[w-k]} "a"
354} 0
355test util-5.40 {Tcl_StringMatch: skip correct number of ']'} {
356    Wrapper_Tcl_StringMatch {[A-]x} Ax
357} 0
358test util-5.41 {Tcl_StringMatch: skip correct number of ']'} {
359    Wrapper_Tcl_StringMatch {[A-]]x} Ax
360} 1
361test util-5.42 {Tcl_StringMatch: skip correct number of ']'} {
362    Wrapper_Tcl_StringMatch {[A-]]x} \xE1x
363} 0
364test util-5.43 {Tcl_StringMatch: skip correct number of ']'} {
365    Wrapper_Tcl_StringMatch \[A-]\xE1]x \xE1x
366} 1
367test util-5.44 {Tcl_StringMatch: skip correct number of ']'} {
368    Wrapper_Tcl_StringMatch {[A-]h]x} hx
369} 1
370test util-5.45 {Tcl_StringMatch} {
371    # if (*pattern == '\x00')
372    # badly formed pattern, still treats as a set
373    Wrapper_Tcl_StringMatch {[a} a
374} 1
375test util-5.46 {Tcl_StringMatch} {
376    Wrapper_Tcl_StringMatch {a\*b} a*b
377} 1
378test util-5.47 {Tcl_StringMatch} {
379    Wrapper_Tcl_StringMatch {a\*b} ab
380} 0
381test util-5.48 {Tcl_StringMatch} {
382    Wrapper_Tcl_StringMatch {a\*\?\[\]\\\x} "a*?\[\]\\x"
383} 1
384test util-5.49 {Tcl_StringMatch} {
385    Wrapper_Tcl_StringMatch ** ""
386} 1
387test util-5.50 {Tcl_StringMatch} {
388    Wrapper_Tcl_StringMatch *. ""
389} 0
390test util-5.51 {Tcl_StringMatch} {
391    Wrapper_Tcl_StringMatch "" ""
392} 1
393test util-5.52 {Tcl_StringMatch} {
394    Wrapper_Tcl_StringMatch \[a\x00 a\x80
395} 0
396
397
398test util-6.1 {Tcl_PrintDouble - using tcl_precision} -constraints precision -setup {
399    set old_precision $::tcl_precision
400    set ::tcl_precision 12
401} -body {
402    concat x[expr {1.4}]
403} -cleanup {
404    set ::tcl_precision $old_precision
405} -result {x1.4}
406test util-6.2 {Tcl_PrintDouble - using tcl_precision} -constraints precision -setup {
407    set old_precision $::tcl_precision
408    set ::tcl_precision 12
409} -body {
410    concat x[expr {1.39999999999}]
411} -cleanup {
412    set ::tcl_precision $old_precision
413} -result {x1.39999999999}
414test util-6.3 {Tcl_PrintDouble - using tcl_precision} -constraints precision -setup {
415    set old_precision $::tcl_precision
416    set ::tcl_precision 12
417} -body {
418    concat x[expr {1.399999999999}]
419} -cleanup {
420    set ::tcl_precision $old_precision
421} -result {x1.4}
422test util-6.4 {Tcl_PrintDouble - using tcl_precision} -constraints precision -setup {
423    set old_precision $::tcl_precision
424    set ::tcl_precision 5
425} -body {
426    concat x[expr {1.123412341234}]
427} -cleanup {
428    set tcl_precision $old_precision
429} -result {x1.1234}
430test util-6.5 {Tcl_PrintDouble - make sure there's a decimal point} {
431    concat x[expr {2.0}]
432} {x2.0}
433test util-6.6 {Tcl_PrintDouble - make sure there's a decimal point} {
434    concat x[expr {3.0e98}]
435} {x3e+98}
436
437test util-7.1 {TclPrecTraceProc - unset callbacks} -constraints precision -setup {
438    set old_precision $::tcl_precision
439} -body {
440    set tcl_precision 7
441    set x $tcl_precision
442    unset tcl_precision
443    list $x $tcl_precision
444} -cleanup {
445    set ::tcl_precision $old_precision
446} -result {7 7}
447test util-7.2 {TclPrecTraceProc - read traces, sharing among interpreters} -constraints precision  -setup {
448    set old_precision $::tcl_precision
449} -body {
450    set tcl_precision 12
451    interp create child
452    set x [child eval set tcl_precision]
453    child eval {set tcl_precision 6}
454    interp delete child
455    list $x $tcl_precision
456} -cleanup {
457    set ::tcl_precision $old_precision
458} -result {12 6}
459test util-7.3 {TclPrecTraceProc - write traces, safe interpreters} -constraints precision -setup {
460    set old_precision $::tcl_precision
461} -body {
462    set tcl_precision 12
463    interp create -safe child
464    set x [child eval {
465	list [catch {set tcl_precision 8} msg] $msg
466    }]
467    interp delete child
468    list $x $tcl_precision
469} -cleanup {
470    set ::tcl_precision $old_precision
471} -result {{1 {can't set "tcl_precision": can't modify precision from a safe interpreter}} 12}
472test util-7.4 {TclPrecTraceProc - write traces, bogus values} -constraints precision -setup {
473    set old_precision $::tcl_precision
474} -body {
475    set tcl_precision 12
476    list [catch {set tcl_precision abc} msg] $msg $tcl_precision
477} -cleanup {
478    set ::tcl_precision $old_precision
479} -result {1 {can't set "tcl_precision": improper value for precision} 12}
480
481# This test always succeeded in the C locale anyway...
482test util-8.1 {TclNeedSpace - correct utf-8 handling} {
483    # Bug 411825
484    # Note that this test relies on the fact that
485    # [interp target] calls on Tcl_AppendElement()
486    # which calls on TclNeedSpace().  If [interp target]
487    # is ever updated, this test will no longer test
488    # TclNeedSpace.
489    interp create 吠
490    interp create [list 吠 foo]
491    interp alias {} fooset [list 吠 foo] set
492    set result [interp target {} fooset]
493    interp delete 吠
494    set result
495} "吠 foo"
496test util-8.2 {TclNeedSpace - correct utf-8 handling} testdstring {
497    # Bug 411825
498    # This tests the same bug as the previous test, but
499    # should be more future-proof, as the DString
500    # operations will likely continue to call TclNeedSpace
501    testdstring free
502    testdstring append 吠 -1
503    testdstring element foo
504    llength [testdstring get]
505} 2
506test util-8.3 {TclNeedSpace - correct utf-8 handling} testdstring {
507    # Bug 411825 - new variant reported by Dossy Shiobara
508    testdstring free
509    testdstring append \xA0 -1
510    testdstring element foo
511    llength [testdstring get]
512} 2
513test util-8.4 {TclNeedSpace - correct utf-8 handling} testdstring {
514    # Another bug uncovered while fixing 411825
515    testdstring free
516    testdstring append {\ } -1
517    testdstring append \{ -1
518    testdstring element foo
519    llength [testdstring get]
520} 2
521test util-8.5 {TclNeedSpace - correct utf-8 handling} testdstring {
522    testdstring free
523    testdstring append {\\ } -1
524    testdstring element foo
525    list [llength [testdstring get]] [string length [testdstring get]]
526} {2 6}
527test util-8.6 {TclNeedSpace - correct utf-8 handling} testdstring {
528    testdstring free
529    testdstring append {\\ } -1
530    testdstring append \{ -1
531    testdstring element foo
532    testdstring append \} -1
533    list [llength [testdstring get]] [string length [testdstring get]]
534} {2 8}
535test util-8.7 {TclNeedSpace - watch out for escaped space} testdstring {
536    testdstring free
537    testdstring append {\ } -1
538    testdstring start
539    testdstring end
540
541    # Should make {\  {}}
542    list [llength [testdstring get]] [string index [testdstring get] 3]
543} {2 \{}
544test util-8.8 {TclNeedSpace - watch out for escaped space} testdstring {
545    testdstring free
546    testdstring append {\\ } -1
547    testdstring start
548    testdstring end
549
550    # Should make {\\ {}}
551    list [llength [testdstring get]] [string index [testdstring get] 3]
552} {2 \{}
553test util-8.9 {TclNeedSpace - watch out for escaped space} testdstring {
554    testdstring free
555    testdstring append {\\\ } -1
556    testdstring start
557    testdstring end
558
559    # Should make {\\\  {}}
560    list [llength [testdstring get]] [string index [testdstring get] 5]
561} {2 \{}
562test util-8.10 {TclNeedSpace - watch out for escaped space} testdstring {
563    testdstring free
564    testdstring append {\\\\\\\ } -1
565    testdstring start
566    testdstring end
567
568    # Should make {\\\\\\\  {}}
569    list [llength [testdstring get]] [string index [testdstring get] 9]
570} {2 \{}
571test util-8.11 {TclNeedSpace - watch out for escaped space} testdstring {
572    testdstring free
573    testdstring append {\\\\\\\\ } -1
574    testdstring start
575    testdstring end
576
577    # Should make {\\\\\\\\ {}}
578    list [llength [testdstring get]] [string index [testdstring get] 9]
579} {2 \{}
580
581test util-9.0.0 {Tcl_GetIntForIndex} {
582    string index abcd 0
583} a
584test util-9.0.1 {Tcl_GetIntForIndex} {
585    string index abcd 0x0
586} a
587test util-9.0.2 {Tcl_GetIntForIndex} {
588    string index abcd -0x0
589} a
590test util-9.0.3 {Tcl_GetIntForIndex} {
591    string index abcd { 0 }
592} a
593test util-9.0.4 {Tcl_GetIntForIndex} {
594    string index abcd { 0x0 }
595} a
596test util-9.0.5 {Tcl_GetIntForIndex} {
597    string index abcd { -0x0 }
598} a
599test util-9.0.6 {Tcl_GetIntForIndex} {
600    string index abcd 01
601} b
602test util-9.0.7 {Tcl_GetIntForIndex} {
603    string index abcd { 01 }
604} b
605test util-9.0.8 {Tcl_GetIntForIndex} {
606    string index abcd { 0d0 }
607} a
608test util-9.0.9 {Tcl_GetIntForIndex} {
609    string index abcd { -0d0 }
610} a
611test util-9.1.0 {Tcl_GetIntForIndex} {
612    string index abcd 3
613} d
614test util-9.1.1 {Tcl_GetIntForIndex} {
615    string index abcd { 3 }
616} d
617test util-9.1.2 {Tcl_GetIntForIndex} {
618    string index abcdefghijk 0xa
619} k
620test util-9.1.3 {Tcl_GetIntForIndex} {
621    string index abcdefghijk { 0xa }
622} k
623test util-9.1.4 {Tcl_GetIntForIndex} {
624    string index abcdefghijk 0d10
625} k
626test util-9.1.5 {Tcl_GetIntForIndex} {
627    string index abcdefghijk { 0d10 }
628} k
629test util-9.2.0 {Tcl_GetIntForIndex} {
630    string index abcd end
631} d
632test util-9.2.1 {Tcl_GetIntForIndex} -body {
633    string index abcd { end}
634} -returnCodes error -match glob -result *
635test util-9.2.2 {Tcl_GetIntForIndex} -body {
636    string index abcd {end }
637} -returnCodes error -match glob -result *
638test util-9.3 {Tcl_GetIntForIndex} -body {
639    # Deprecated
640    string index abcd en
641} -returnCodes error -match glob -result *
642test util-9.4 {Tcl_GetIntForIndex} -body {
643    # Deprecated
644    string index abcd e
645} -returnCodes error -match glob -result *
646test util-9.5.0 {Tcl_GetIntForIndex} {
647    string index abcd end-1
648} c
649test util-9.5.1 {Tcl_GetIntForIndex} {
650    string index abcd {end-1 }
651} c
652test util-9.5.2 {Tcl_GetIntForIndex} -body {
653    string index abcd { end-1}
654} -returnCodes error -match glob -result *
655test util-9.6 {Tcl_GetIntForIndex} {
656    string index abcd end+-1
657} c
658test util-9.7 {Tcl_GetIntForIndex} {
659    string index abcd end+1
660} {}
661test util-9.8 {Tcl_GetIntForIndex} {
662    string index abcd end--1
663} {}
664test util-9.9.0 {Tcl_GetIntForIndex} {
665    string index abcd 0+0
666} a
667test util-9.9.1 {Tcl_GetIntForIndex} {
668    string index abcd { 0+0 }
669} a
670test util-9.10 {Tcl_GetIntForIndex} {
671    string index abcd 0-0
672} a
673test util-9.11 {Tcl_GetIntForIndex} {
674    string index abcd 1+0
675} b
676test util-9.12 {Tcl_GetIntForIndex} {
677    string index abcd 1-0
678} b
679test util-9.13 {Tcl_GetIntForIndex} {
680    string index abcd 1+1
681} c
682test util-9.14 {Tcl_GetIntForIndex} {
683    string index abcd 1-1
684} a
685test util-9.15 {Tcl_GetIntForIndex} {
686    string index abcd -1+2
687} b
688test util-9.16 {Tcl_GetIntForIndex} {
689    string index abcd -1--2
690} b
691test util-9.17 {Tcl_GetIntForIndex} {
692    string index abcd { -1+2 }
693} b
694test util-9.18 {Tcl_GetIntForIndex} {
695    string index abcd { -1--2 }
696} b
697test util-9.19 {Tcl_GetIntForIndex} -body {
698    string index a {}
699} -returnCodes error -match glob -result *
700test util-9.20 {Tcl_GetIntForIndex} -body {
701    string index a { }
702} -returnCodes error -match glob -result *
703test util-9.21 {Tcl_GetIntForIndex} -body {
704    string index a " \r\t\n"
705} -returnCodes error -match glob -result *
706test util-9.22 {Tcl_GetIntForIndex} -body {
707    string index a +
708} -returnCodes error -match glob -result *
709test util-9.23 {Tcl_GetIntForIndex} -body {
710    string index a -
711} -returnCodes error -match glob -result *
712test util-9.24 {Tcl_GetIntForIndex} -body {
713    string index a x
714} -returnCodes error -match glob -result *
715test util-9.25 {Tcl_GetIntForIndex} -body {
716    string index a +x
717} -returnCodes error -match glob -result *
718test util-9.26 {Tcl_GetIntForIndex} -body {
719    string index a -x
720} -returnCodes error -match glob -result *
721test util-9.27 {Tcl_GetIntForIndex} -body {
722    string index a 0y
723} -returnCodes error -match glob -result *
724test util-9.28 {Tcl_GetIntForIndex} -body {
725    string index a 1*
726} -returnCodes error -match glob -result *
727test util-9.29 {Tcl_GetIntForIndex} -body {
728    string index a 0+
729} -returnCodes error -match glob -result *
730test util-9.30 {Tcl_GetIntForIndex} -body {
731    string index a {0+ }
732} -returnCodes error -match glob -result *
733test util-9.31 {Tcl_GetIntForIndex} -body {
734    string index a 0x
735} -returnCodes error -match glob -result *
736test util-9.31.1 {Tcl_GetIntForIndex} -body {
737    string index a 0d
738} -returnCodes error -match glob -result *
739test util-9.32 {Tcl_GetIntForIndex} -body {
740    string index a 0x1FFFFFFFF+0
741} -result {}
742test util-9.33 {Tcl_GetIntForIndex} -body {
743    string index a 100000000000+0
744} -result {}
745test util-9.33.1 {Tcl_GetIntForIndex} -body {
746    string index a 0d100000000000+0
747} -result {}
748test util-9.34 {Tcl_GetIntForIndex} -body {
749    string index a 1.0
750} -returnCodes error -match glob -result *
751test util-9.35 {Tcl_GetIntForIndex} -body {
752    string index a 1e23
753} -returnCodes error -match glob -result *
754test util-9.36 {Tcl_GetIntForIndex} -body {
755    string index a 1.5e2
756} -returnCodes error -match glob -result *
757test util-9.37 {Tcl_GetIntForIndex} -body {
758    string index a 0+x
759} -returnCodes error -match glob -result *
760test util-9.38 {Tcl_GetIntForIndex} -body {
761    string index a 0+0x
762} -returnCodes error -match glob -result *
763test util-9.39 {Tcl_GetIntForIndex} -body {
764    string index a 0+0xg
765} -returnCodes error -match glob -result *
766test util-9.40 {Tcl_GetIntForIndex} -body {
767    string index a 0+0xg
768} -returnCodes error -match glob -result *
769test util-9.41 {Tcl_GetIntForIndex} -body {
770    string index a 0+1.0
771} -returnCodes error -match glob -result *
772test util-9.42 {Tcl_GetIntForIndex} -body {
773    string index a 0+1e2
774} -returnCodes error -match glob -result *
775test util-9.43 {Tcl_GetIntForIndex} -body {
776    string index a 0+1.5e1
777} -returnCodes error -match glob -result *
778test util-9.44 {Tcl_GetIntForIndex} -body {
779    string index a 0+1000000000000
780} -result {}
781test util-9.45 {Tcl_GetIntForIndex} -body {
782    string index abcd end+2305843009213693950
783} -result {}
784test util-9.46 {Tcl_GetIntForIndex} -body {
785    string index abcd end+4294967294
786} -result {}
787# TIP 502
788test util-9.47 {Tcl_GetIntForIndex} -body {
789    string index abcd 0x10000000000000000
790} -result {}
791test util-9.48 {Tcl_GetIntForIndex} {
792    string index abcd -0x10000000000000000
793} {}
794test util-9.49 {Tcl_GetIntForIndex} -body {
795    string index abcd end*1
796} -returnCodes error -match glob -result *
797test util-9.50 {Tcl_GetIntForIndex} -body {
798    string index abcd {end- 1}
799} -returnCodes error -match glob -result *
800test util-9.51 {Tcl_GetIntForIndex} -body {
801    string index abcd end-end
802} -returnCodes error -match glob -result *
803test util-9.52 {Tcl_GetIntForIndex} -body {
804    string index abcd end-x
805} -returnCodes error -match glob -result *
806test util-9.53 {Tcl_GetIntForIndex} -body {
807    string index abcd end-0.1
808} -returnCodes error -match glob -result *
809test util-9.54 {Tcl_GetIntForIndex} {
810    string index abcd end-0x10000000000000000
811} {}
812test util-9.55 {Tcl_GetIntForIndex} -body {
813    string index abcd end+0x10000000000000000
814} -result {}
815test util-9.56 {Tcl_GetIntForIndex} -body {
816    string index abcd end--0x10000000000000000
817} -result {}
818test util-9.57 {Tcl_GetIntForIndex} {
819    string index abcd end+-0x10000000000000000
820} {}
821test util-9.58 {Tcl_GetIntForIndex} -body {
822    string index abcd end--0x8000000000000000
823} -result {}
824test util-9.59 {Tcl_GetIntForIndex} {
825    string index abcd 0-0x10000000000000000
826} {}
827
828test util-10.1 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
829    convertDouble 0x0000000000000000
830} {0.0}
831test util-10.2 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
832    convertDouble 0x8000000000000000
833} {-0.0}
834test util-10.3 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
835    convertDouble 0x7ef754e31cd072da
836} {4e+303}
837test util-10.4 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
838    convertDouble 0xd08afcef51f0fb5f
839} {-1e+80}
840test util-10.5 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
841    convertDouble 0x7ed754e31cd072da
842} {1e+303}
843test util-10.6 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
844    convertDouble 0xfee754e31cd072da
845} {-2e+303}
846test util-10.7 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
847    convertDouble 0x0afe07b27dd78b14
848} {1e-255}
849test util-10.8 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
850    convertDouble 0x93ae29e9c56687fe
851} {-7e-214}
852test util-10.9 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
853    convertDouble 0x376be03d0bf225c7
854} {1e-41}
855test util-10.10 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
856    convertDouble 0xa0ca2fe76a3f9475
857} {-1e-150}
858test util-10.11 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
859    convertDouble 0x7fa9a2028368022e
860} {9e+306}
861test util-10.12 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
862    convertDouble 0xdfc317e5ef3ab327
863} {-2e+153}
864test util-10.13 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
865    convertDouble 0x5fd317e5ef3ab327
866} {4e+153}
867test util-10.14 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
868    convertDouble 0xdfe317e5ef3ab327
869} {-8e+153}
870test util-10.15 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
871    convertDouble 0x00feb8e84fa0b278
872} {7e-304}
873test util-10.16 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
874    convertDouble 0x8133339131c46f8b
875} {-7e-303}
876test util-10.17 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
877    convertDouble 0x35dc0f92a6276c9d
878} {3e-49}
879test util-10.18 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
880    convertDouble 0xa445ce1f143d7ad2
881} {-6e-134}
882test util-10.19 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
883    convertDouble 0x2d2c0794d9d40e96
884} {4.3e-91}
885test util-10.20 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
886    convertDouble 0xad3c0794d9d40e96
887} {-8.6e-91}
888test util-10.21 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
889    convertDouble 0x30ecd5bee57763e6
890} {5.1e-73}
891test util-10.22 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
892    convertDouble 0x68ad1c26db7d0dae
893} {1.7e+196}
894test util-10.23 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
895    convertDouble 0xbfa3f7ced916872b
896} {-0.039}
897test util-10.24 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
898    convertDouble 0x64b7d93193f78fc6
899} {1.51e+177}
900test util-10.25 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
901    convertDouble 0x98ea82a1631eeb30
902} {-1.19e-188}
903test util-10.26 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
904    convertDouble 0xd216c309024bab4b
905} {-2.83e+87}
906test util-10.27 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
907    convertDouble 0x0dfdbbac6f83a821
908} {2.7869147e-241}
909test util-10.28 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
910    convertDouble 0xdadc569e968e0944
911} {-4.91080654e+129}
912test util-10.29 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
913    convertDouble 0x5acc569e968e0944
914} {2.45540327e+129}
915test util-10.30 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
916    convertDouble 0xab5fc575867314ee
917} {-9.078555839e-100}
918test util-10.31 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
919    convertDouble 0xdabc569e968e0944
920} {-1.227701635e+129}
921test util-10.32 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
922    convertDouble 0x2b6fc575867314ee
923} {1.8157111678e-99}
924test util-10.33 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
925    convertDouble 0xb3b8bf7e7fa6f02a
926} {-1.5400733123779e-59}
927test util-10.34 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
928    convertDouble 0xcd83de005bd620df
929} {-2.6153245263757307e+65}
930test util-10.35 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
931    convertDouble 0x6cdf92bacb3cb40c
932} {2.7210404151224248e+216}
933test util-10.36 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
934    convertDouble 0xecef92bacb3cb40c
935} {-5.4420808302448496e+216}
936test util-10.37 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
937    convertDouble 0x49342dbf25096cf5
938} {4.5e+44}
939test util-10.38 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
940    convertDouble 0xd06afcef51f0fb5f
941} {-2.5e+79}
942test util-10.39 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
943    convertDouble 0x49002498ea6df0c4
944} {4.5e+43}
945test util-10.40 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
946    convertDouble 0xfeb754e31cd072da
947} {-2.5e+302}
948test util-10.41 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
949    convertDouble 0x1d22deac01e2b4f7
950} {2.5e-168}
951test util-10.42 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
952    convertDouble 0xaccb1df536c13eee
953} {-6.5e-93}
954test util-10.43 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
955    convertDouble 0x3650711fed5b19a4
956} {4.5e-47}
957test util-10.44 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
958    convertDouble 0xb6848d67e8b1e00d
959} {-4.5e-46}
960test util-10.45 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
961    convertDouble 0x4bac8c574c0c6be7
962} {3.5e+56}
963test util-10.46 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
964    convertDouble 0xccd756183c147514
965} {-1.5e+62}
966test util-10.47 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
967    convertDouble 0x4ca2ab469676c410
968} {1.5e+61}
969test util-10.48 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
970    convertDouble 0xcf5539684e774b48
971} {-1.5e+74}
972test util-10.49 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
973    convertDouble 0x2e12e5f5dfa4fe9d
974} {9.5e-87}
975test util-10.50 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
976    convertDouble 0x8b9bdc2417bf7787
977} {-9.5e-253}
978test util-10.51 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
979    convertDouble 0x00eeb8e84fa0b278
980} {3.5e-304}
981test util-10.52 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
982    convertDouble 0xadde3cbc9907fdc8
983} {-9.5e-88}
984test util-10.53 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
985    convertDouble 0x2bb0ad836f269a17
986} {3.05e-98}
987test util-10.54 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
988    convertDouble 0x950b39ae1909c31b
989} {-2.65e-207}
990test util-10.55 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
991    convertDouble 0x1bfb2ab18615fcc6
992} {6.865e-174}
993test util-10.56 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
994    convertDouble 0x98f3e1f90a573064
995} {-1.785e-188}
996test util-10.57 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
997    convertDouble 0x5206c309024bab4b
998} {1.415e+87}
999test util-10.58 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1000    convertDouble 0xcc059bd3ad46e346
1001} {-1.6955e+58}
1002test util-10.59 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1003    convertDouble 0x47bdf4170f0fdecc
1004} {3.9815e+37}
1005test util-10.60 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1006    convertDouble 0x59e7e1e0f1c7a4ac
1007} {1.263005e+125}
1008test util-10.61 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1009    convertDouble 0xda1dda592e398dd7
1010} {-1.263005e+126}
1011test util-10.62 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1012    convertDouble 0xdc4e597c0b94b7ae
1013} {-4.4118455e+136}
1014test util-10.63 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1015    convertDouble 0x5aac569e968e0944
1016} {6.138508175e+128}
1017test util-10.64 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1018    convertDouble 0xdabc569e968e0944
1019} {-1.227701635e+129}
1020test util-10.65 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1021    convertDouble 0x6ce7ae0c186d8709
1022} {4.081560622683637e+216}
1023test util-10.66 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1024    convertDouble 0x44b52d02c7e14af7
1025} {1.0000000000000001e+23}
1026test util-10.67 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1027    convertDouble 0xc589d971e4fe8402
1028} {-1e+27}
1029test util-10.68 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1030    convertDouble 0x4599d971e4fe8402
1031} {2e+27}
1032test util-10.69 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1033    convertDouble 0xc5a9d971e4fe8402
1034} {-4e+27}
1035test util-10.70 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1036    convertDouble 0x3e45798ee2308c3a
1037} {1e-8}
1038test util-10.71 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1039    convertDouble 0xbe55798ee2308c3a
1040} {-2e-8}
1041test util-10.72 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1042    convertDouble 0x3e65798ee2308c3a
1043} {4e-8}
1044test util-10.73 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1045    convertDouble 0xbabef2d0f5da7dd9
1046} {-1e-25}
1047test util-10.74 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1048    convertDouble 0x44da784379d99db4
1049} {5e+23}
1050test util-10.75 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1051    convertDouble 0xc4fa784379d99db4
1052} {-2e+24}
1053test util-10.76 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1054    convertDouble 0x4503da329b633647
1055} {3e+24}
1056test util-10.77 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1057    convertDouble 0xc54cf389cd46047d
1058} {-7e+25}
1059test util-10.78 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1060    convertDouble 0x3fc999999999999a
1061} {0.2}
1062test util-10.79 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1063    convertDouble 0xbfd3333333333333
1064} {-0.3}
1065test util-10.80 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1066    convertDouble 0x3cf6849b86a12b9b
1067} {5e-15}
1068test util-10.81 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1069    convertDouble 0xbd16849b86a12b9b
1070} {-2e-14}
1071test util-10.82 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1072    convertDouble 0x3b87ccfc73126788
1073} {6.3e-22}
1074test util-10.83 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1075    convertDouble 0xbbbdc03b8fd7016a
1076} {-6.3e-21}
1077test util-10.84 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1078    convertDouble 0x3fa3f7ced916872b
1079} {0.039}
1080test util-10.85 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1081    convertDouble 0x460b297cad9f70b6
1082} {2.69e+29}
1083test util-10.86 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1084    convertDouble 0xc61b297cad9f70b6
1085} {-5.38e+29}
1086test util-10.87 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1087    convertDouble 0x3adcdc06b20ef183
1088} {3.73e-25}
1089test util-10.88 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1090    convertDouble 0x45fb297cad9f70b6
1091} {1.345e+29}
1092test util-10.89 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1093    convertDouble 0xc60b297cad9f70b6
1094} {-2.69e+29}
1095test util-10.90 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1096    convertDouble 0xbc050a246ecd44f3
1097} {-1.4257e-19}
1098test util-10.91 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1099    convertDouble 0xbec19b96f36ec68b
1100} {-2.09901e-6}
1101test util-10.92 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1102    convertDouble 0x3dcc06d366394441
1103} {5.0980203373e-11}
1104test util-10.93 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1105    convertDouble 0xc79f58ac4db68c90
1106} {-1.04166211811e+37}
1107test util-10.94 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1108    convertDouble 0x4569d971e4fe8402
1109} {2.5e+26}
1110test util-10.95 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1111    convertDouble 0xc50dc74be914d16b
1112} {-4.5e+24}
1113test util-10.96 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1114    convertDouble 0x4534adf4b7320335
1115} {2.5e+25}
1116test util-10.97 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1117    convertDouble 0xc54ae22487c1042b
1118} {-6.5e+25}
1119test util-10.98 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1120    convertDouble 0x3c987fe49aab41e0
1121} {8.5e-17}
1122test util-10.99 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1123    convertDouble 0xbc2f5c05e4b23fd7
1124} {-8.5e-19}
1125test util-10.100 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1126    convertDouble 0x3d5faa7ab552a552
1127} {4.5e-13}
1128test util-10.101 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1129    convertDouble 0xbdbb7cdfd9d7bdbb
1130} {-2.5e-11}
1131test util-10.102 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1132    convertDouble 0x44f3da329b633647
1133} {1.5e+24}
1134test util-10.103 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1135    convertDouble 0xc53cf389cd46047d
1136} {-3.5e+25}
1137test util-10.104 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1138    convertDouble 0x454f04ef12cb04cf
1139} {7.5e+25}
1140test util-10.105 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1141    convertDouble 0xc55f04ef12cb04cf
1142} {-1.5e+26}
1143test util-10.106 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1144    convertDouble 0x3fc3333333333333
1145} {0.15}
1146test util-10.107 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1147    convertDouble 0xbdb07e1fe91b0b70
1148} {-1.5e-11}
1149test util-10.108 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1150    convertDouble 0x3de49da7e361ce4c
1151} {1.5e-10}
1152test util-10.109 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1153    convertDouble 0xbe19c511dc3a41df
1154} {-1.5e-9}
1155test util-10.110 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1156    convertDouble 0xc5caa83d74267822
1157} {-1.65e+28}
1158test util-10.111 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1159    convertDouble 0x4588f1d5969453de
1160} {9.65e+26}
1161test util-10.112 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1162    convertDouble 0x3b91d9bd564dcda6
1163} {9.45e-22}
1164test util-10.113 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1165    convertDouble 0xbcfa58973ecbede6
1166} {-5.85e-15}
1167test util-10.114 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1168    convertDouble 0x45eb297cad9f70b6
1169} {6.725e+28}
1170test util-10.115 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1171    convertDouble 0xc5fb297cad9f70b6
1172} {-1.345e+29}
1173test util-10.116 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1174    convertDouble 0x3accdc06b20ef183
1175} {1.865e-25}
1176test util-10.117 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1177    convertDouble 0xbd036071dcae4565
1178} {-8.605e-15}
1179test util-10.118 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1180    convertDouble 0x462cb968d297dde8
1181} {1.137885e+30}
1182test util-10.119 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1183    convertDouble 0xc661f3e1839eeab1
1184} {-1.137885e+31}
1185test util-10.120 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1186    convertDouble 0x474e9cec176c96f8
1187} {3.179033335e+35}
1188test util-10.121 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1189    convertDouble 0x3dbc06d366394441
1190} {2.54901016865e-11}
1191test util-10.122 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
1192    convertDouble 0x478f58ac4db68c90
1193} {5.20831059055e+36}
1194
1195test util-11.1 {Tcl_PrintDouble - scaling} {
1196    expr {1.1e-5}
1197} {1.1e-5}
1198test util-11.2 {Tcl_PrintDouble - scaling} {
1199    expr {1.1e-4}
1200} {0.00011}
1201test util-11.3 {Tcl_PrintDouble - scaling} {
1202    expr {1.1e-3}
1203} {0.0011}
1204test util-11.4 {Tcl_PrintDouble - scaling} {
1205    expr {1.1e-2}
1206} {0.011}
1207test util-11.5 {Tcl_PrintDouble - scaling} {
1208    expr {1.1e-1}
1209} {0.11}
1210test util-11.6 {Tcl_PrintDouble - scaling} {
1211    expr {1.1e0}
1212} {1.1}
1213test util-11.7 {Tcl_PrintDouble - scaling} {
1214    expr {1.1e1}
1215} {11.0}
1216test util-11.8 {Tcl_PrintDouble - scaling} {
1217    expr {1.1e2}
1218} {110.0}
1219test util-11.9 {Tcl_PrintDouble - scaling} {
1220    expr {1.1e3}
1221} {1100.0}
1222test util-11.10 {Tcl_PrintDouble - scaling} {
1223    expr {1.1e4}
1224} {11000.0}
1225test util-11.11 {Tcl_PrintDouble - scaling} {
1226    expr {1.1e5}
1227} {110000.0}
1228test util-11.12 {Tcl_PrintDouble - scaling} {
1229    expr {1.1e6}
1230} {1100000.0}
1231test util-11.13 {Tcl_PrintDouble - scaling} {
1232    expr {1.1e7}
1233} {11000000.0}
1234test util-11.14 {Tcl_PrintDouble - scaling} {
1235    expr {1.1e8}
1236} {110000000.0}
1237test util-11.15 {Tcl_PrintDouble - scaling} {
1238    expr {1.1e9}
1239} {1100000000.0}
1240test util-11.16 {Tcl_PrintDouble - scaling} {
1241    expr {1.1e10}
1242} {11000000000.0}
1243test util-11.17 {Tcl_PrintDouble - scaling} {
1244    expr {1.1e11}
1245} {110000000000.0}
1246test util-11.18 {Tcl_PrintDouble - scaling} {
1247    expr {1.1e12}
1248} {1100000000000.0}
1249test util-11.19 {Tcl_PrintDouble - scaling} {
1250    expr {1.1e13}
1251} {11000000000000.0}
1252test util-11.20 {Tcl_PrintDouble - scaling} {
1253    expr {1.1e14}
1254} {110000000000000.0}
1255test util-11.21 {Tcl_PrintDouble - scaling} {
1256    expr {1.1e15}
1257} {1100000000000000.0}
1258test util-11.22 {Tcl_PrintDouble - scaling} {
1259    expr {1.1e16}
1260} {11000000000000000.0}
1261test util-11.23 {Tcl_PrintDouble - scaling} {
1262    expr {1.1e17}
1263} {1.1e+17}
1264
1265test util-12.1 {TclDoubleDigits - Inf} {testdoubledigits ieeeFloatingPoint} {
1266     testdoubledigits Inf -1 shortest
1267} {Infinity 9999 +}
1268test util-12.2 {TclDoubleDigits - -Inf} {testdoubledigits ieeeFloatingPoint} {
1269     testdoubledigits -Inf -1 shortest
1270} {Infinity 9999 -}
1271test util-12.3 {TclDoubleDigits - NaN} {testdoubledigits ieeeFloatingPoint} {
1272     testdoubledigits $ieeeValues(NaN) -1 shortest
1273} {NaN 9999 +}
1274test util-12.4 {TclDoubleDigits - NaN} {*}{
1275     -constraints {testdoubledigits ieeeFloatingPoint controversialNaN}
1276     -body {
1277	 testdoubledigits -NaN -1 shortest
1278     }
1279    -result {NaN 9999 -}
1280}
1281test util-12.5 {TclDoubleDigits - 0} testdoubledigits {
1282     testdoubledigits 0.0 -1 shortest
1283} {0 0 +}
1284test util-12.6 {TclDoubleDigits - -0} testdoubledigits {
1285     testdoubledigits -0.0 -1 shortest
1286} {0 0 -}
1287
1288# Verdonk test vectors
1289
1290test util-13.1 {just over exact - 1 digits} {*}{
1291    -constraints testdoubledigits
1292    -body {
1293        verdonk_test 1754e31cd072da E+1008 +4_000000000000000000& E+303
1294    }
1295    -result {}
1296}
1297test util-13.2 {just over exact - 1 digits} {*}{
1298    -constraints testdoubledigits
1299    -body {
1300        verdonk_test -1afcef51f0fb5f E+265 -1_000000000000000000& E+80
1301    }
1302    -result {}
1303}
1304test util-13.3 {just over exact - 1 digits} {*}{
1305    -constraints testdoubledigits
1306    -body {
1307        verdonk_test 1754e31cd072da E+1006 +1_000000000000000000& E+303
1308    }
1309    -result {}
1310}
1311test util-13.4 {just over exact - 1 digits} {*}{
1312    -constraints testdoubledigits
1313    -body {
1314        verdonk_test -1754e31cd072da E+1007 -2_000000000000000000& E+303
1315    }
1316    -result {}
1317}
1318test util-13.5 {just over exact - 1 digits} {*}{
1319    -constraints testdoubledigits
1320    -body {
1321        verdonk_test 1e07b27dd78b14 E-848 +1_00000000000000000& E-255
1322    }
1323    -result {}
1324}
1325test util-13.6 {just over exact - 1 digits} {*}{
1326    -constraints testdoubledigits
1327    -body {
1328        verdonk_test -1e29e9c56687fe E-709 -7_00000000000000000& E-214
1329    }
1330    -result {}
1331}
1332test util-13.7 {just over exact - 1 digits} {*}{
1333    -constraints testdoubledigits
1334    -body {
1335        verdonk_test 1be03d0bf225c7 E-137 +1_00000000000000000& E-41
1336    }
1337    -result {}
1338}
1339test util-13.8 {just over exact - 1 digits} {*}{
1340    -constraints testdoubledigits
1341    -body {
1342        verdonk_test -1a2fe76a3f9475 E-499 -1_00000000000000000& E-150
1343    }
1344    -result {}
1345}
1346test util-13.9 {just under exact - 1 digits} {*}{
1347    -constraints testdoubledigits
1348    -body {
1349        verdonk_test 19a2028368022e E+1019 +8_999999999999999999& E+306
1350    }
1351    -result {}
1352}
1353test util-13.10 {just under exact - 1 digits} {*}{
1354    -constraints testdoubledigits
1355    -body {
1356        verdonk_test -1317e5ef3ab327 E+509 -1_999999999999999999& E+153
1357    }
1358    -result {}
1359}
1360test util-13.11 {just under exact - 1 digits} {*}{
1361    -constraints testdoubledigits
1362    -body {
1363        verdonk_test 1317e5ef3ab327 E+510 +3_99999999999999999& E+153
1364    }
1365    -result {}
1366}
1367test util-13.12 {just under exact - 1 digits} {*}{
1368    -constraints testdoubledigits
1369    -body {
1370        verdonk_test -1317e5ef3ab327 E+511 -7_99999999999999999& E+153
1371    }
1372    -result {}
1373}
1374test util-13.13 {just under exact - 1 digits} {*}{
1375    -constraints testdoubledigits
1376    -body {
1377        verdonk_test 1eb8e84fa0b278 E-1008 +6_999999999999999999& E-304
1378    }
1379    -result {}
1380}
1381test util-13.14 {just under exact - 1 digits} {*}{
1382    -constraints testdoubledigits
1383    -body {
1384        verdonk_test -13339131c46f8b E-1004 -6_999999999999999999& E-303
1385    }
1386    -result {}
1387}
1388test util-13.15 {just under exact - 1 digits} {*}{
1389    -constraints testdoubledigits
1390    -body {
1391        verdonk_test 1c0f92a6276c9d E-162 +2_999999999999999999& E-49
1392    }
1393    -result {}
1394}
1395test util-13.16 {just under exact - 1 digits} {*}{
1396    -constraints testdoubledigits
1397    -body {
1398        verdonk_test -15ce1f143d7ad2 E-443 -5_99999999999999999& E-134
1399    }
1400    -result {}
1401}
1402test util-13.17 {just over exact - 2 digits} {*}{
1403    -constraints testdoubledigits
1404    -body {
1405        verdonk_test 1c0794d9d40e96 E-301 +43_000000000000000000& E-92
1406    }
1407    -result {}
1408}
1409test util-13.18 {just over exact - 2 digits} {*}{
1410    -constraints testdoubledigits
1411    -body {
1412        verdonk_test -1c0794d9d40e96 E-300 -86_000000000000000000& E-92
1413    }
1414    -result {}
1415}
1416test util-13.19 {just over exact - 2 digits} {*}{
1417    -constraints testdoubledigits
1418    -body {
1419        verdonk_test 1cd5bee57763e6 E-241 +51_000000000000000000& E-74
1420    }
1421    -result {}
1422}
1423test util-13.20 {just under exact - 2 digits} {*}{
1424    -constraints testdoubledigits
1425    -body {
1426        verdonk_test 1d1c26db7d0dae E+651 +16_999999999999999999& E+195
1427    }
1428    -result {}
1429}
1430test util-13.21 {just under exact - 2 digits} {*}{
1431    -constraints testdoubledigits
1432    -body {
1433        verdonk_test -13f7ced916872b E-5 -38_999999999999999999& E-3
1434    }
1435    -result {}
1436}
1437test util-13.22 {just over exact - 3 digits} {*}{
1438    -constraints testdoubledigits
1439    -body {
1440        verdonk_test 17d93193f78fc6 E+588 +151_0000000000000000000& E+175
1441    }
1442    -result {}
1443}
1444test util-13.23 {just over exact - 3 digits} {*}{
1445    -constraints testdoubledigits
1446    -body {
1447        verdonk_test -1a82a1631eeb30 E-625 -119_000000000000000000& E-190
1448    }
1449    -result {}
1450}
1451test util-13.24 {just under exact - 3 digits} {*}{
1452    -constraints testdoubledigits
1453    -body {
1454        verdonk_test -16c309024bab4b E+290 -282_999999999999999999& E+85
1455    }
1456    -result {}
1457}
1458test util-13.25 {just over exact - 8 digits} {*}{
1459    -constraints testdoubledigits
1460    -body {
1461        verdonk_test 1dbbac6f83a821 E-800 +27869147_0000000000000000000& E-248
1462    }
1463    -result {}
1464}
1465test util-13.26 {just under exact - 9 digits} {*}{
1466    -constraints testdoubledigits
1467    -body {
1468        verdonk_test -1c569e968e0944 E+430 -491080653_9999999999999999999& E+121
1469    }
1470    -result {}
1471}
1472test util-13.27 {just under exact - 9 digits} {*}{
1473    -constraints testdoubledigits
1474    -body {
1475        verdonk_test 1c569e968e0944 E+429 +245540326_9999999999999999999& E+121
1476    }
1477    -result {}
1478}
1479test util-13.28 {just over exact - 10 digits} {*}{
1480    -constraints testdoubledigits
1481    -body {
1482        verdonk_test -1fc575867314ee E-330 -9078555839_0000000000000000000& E-109
1483    }
1484    -result {}
1485}
1486test util-13.29 {just under exact - 10 digits} {*}{
1487    -constraints testdoubledigits
1488    -body {
1489        verdonk_test -1c569e968e0944 E+428 -1227701634_9999999999999999999& E+120
1490    }
1491    -result {}
1492}
1493test util-13.30 {just over exact - 11 digits} {*}{
1494    -constraints testdoubledigits
1495    -body {
1496        verdonk_test 1fc575867314ee E-329 +18157111678_0000000000000000000& E-109
1497    }
1498    -result {}
1499}
1500test util-13.31 {just over exact - 14 digits} {*}{
1501    -constraints testdoubledigits
1502    -body {
1503        verdonk_test -18bf7e7fa6f02a E-196 -15400733123779_0000000000000000000& E-72
1504    }
1505    -result {}
1506}
1507test util-13.32 {just over exact - 17 digits} {*}{
1508    -constraints testdoubledigits
1509    -body {
1510        verdonk_test -13de005bd620df E+217 -26153245263757307_0000000000000000000& E+49
1511    }
1512    -result {}
1513}
1514test util-13.33 {just over exact - 18 digits} {*}{
1515    -constraints testdoubledigits
1516    -body {
1517        verdonk_test 1f92bacb3cb40c E+718 +272104041512242479_0000000000000000000& E+199
1518    }
1519    -result {}
1520}
1521test util-13.34 {just over exact - 18 digits} {*}{
1522    -constraints testdoubledigits
1523    -body {
1524        verdonk_test -1f92bacb3cb40c E+719 -544208083024484958_0000000000000000000& E+199
1525    }
1526    -result {}
1527}
1528test util-13.35 {just over half ulp - 1 digits} {*}{
1529    -constraints testdoubledigits
1530    -body {
1531        verdonk_test 142dbf25096cf5 E+148 +4_500000000000000000& E+44
1532    }
1533    -result {}
1534}
1535test util-13.36 {just over half ulp - 1 digits} {*}{
1536    -constraints testdoubledigits
1537    -body {
1538        verdonk_test -1afcef51f0fb5f E+263 -2_500000000000000000& E+79
1539    }
1540    -result {}
1541}
1542test util-13.37 {just over half ulp - 1 digits} {*}{
1543    -constraints testdoubledigits
1544    -body {
1545        verdonk_test 102498ea6df0c4 E+145 +4_500000000000000000& E+43
1546    }
1547    -result {}
1548}
1549test util-13.38 {just over half ulp - 1 digits} {*}{
1550    -constraints testdoubledigits
1551    -body {
1552        verdonk_test -1754e31cd072da E+1004 -2_500000000000000000& E+302
1553    }
1554    -result {}
1555}
1556test util-13.39 {just over half ulp - 1 digits} {*}{
1557    -constraints testdoubledigits
1558    -body {
1559        verdonk_test 12deac01e2b4f7 E-557 +2_50000000000000000& E-168
1560    }
1561    -result {}
1562}
1563test util-13.40 {just over half ulp - 1 digits} {*}{
1564    -constraints testdoubledigits
1565    -body {
1566        verdonk_test -1b1df536c13eee E-307 -6_50000000000000000& E-93
1567    }
1568    -result {}
1569}
1570test util-13.41 {just over half ulp - 1 digits} {*}{
1571    -constraints testdoubledigits
1572    -body {
1573        verdonk_test 10711fed5b19a4 E-154 +4_50000000000000000& E-47
1574    }
1575    -result {}
1576}
1577test util-13.42 {just over half ulp - 1 digits} {*}{
1578    -constraints testdoubledigits
1579    -body {
1580        verdonk_test -148d67e8b1e00d E-151 -4_50000000000000000& E-46
1581    }
1582    -result {}
1583}
1584test util-13.43 {just under half ulp - 1 digits} {*}{
1585    -constraints testdoubledigits
1586    -body {
1587        verdonk_test 1c8c574c0c6be7 E+187 +3_49999999999999999& E+56
1588    }
1589    -result {}
1590}
1591test util-13.44 {just under half ulp - 1 digits} {*}{
1592    -constraints testdoubledigits
1593    -body {
1594        verdonk_test -1756183c147514 E+206 -1_49999999999999999& E+62
1595    }
1596    -result {}
1597}
1598test util-13.45 {just under half ulp - 1 digits} {*}{
1599    -constraints testdoubledigits
1600    -body {
1601        verdonk_test 12ab469676c410 E+203 +1_49999999999999999& E+61
1602    }
1603    -result {}
1604}
1605test util-13.46 {just under half ulp - 1 digits} {*}{
1606    -constraints testdoubledigits
1607    -body {
1608        verdonk_test -1539684e774b48 E+246 -1_49999999999999999& E+74
1609    }
1610    -result {}
1611}
1612test util-13.47 {just under half ulp - 1 digits} {*}{
1613    -constraints testdoubledigits
1614    -body {
1615        verdonk_test 12e5f5dfa4fe9d E-286 +9_499999999999999999& E-87
1616    }
1617    -result {}
1618}
1619test util-13.48 {just under half ulp - 1 digits} {*}{
1620    -constraints testdoubledigits
1621    -body {
1622        verdonk_test -1bdc2417bf7787 E-838 -9_499999999999999999& E-253
1623    }
1624    -result {}
1625}
1626test util-13.49 {just under half ulp - 1 digits} {*}{
1627    -constraints testdoubledigits
1628    -body {
1629        verdonk_test 1eb8e84fa0b278 E-1009 +3_499999999999999999& E-304
1630    }
1631    -result {}
1632}
1633test util-13.50 {just under half ulp - 1 digits} {*}{
1634    -constraints testdoubledigits
1635    -body {
1636        verdonk_test -1e3cbc9907fdc8 E-290 -9_499999999999999999& E-88
1637    }
1638    -result {}
1639}
1640test util-13.51 {just over half ulp - 2 digits} {*}{
1641    -constraints testdoubledigits
1642    -body {
1643        verdonk_test 10ad836f269a17 E-324 +30_500000000000000000& E-99
1644    }
1645    -result {}
1646}
1647test util-13.52 {just over half ulp - 2 digits} {*}{
1648    -constraints testdoubledigits
1649    -body {
1650        verdonk_test -1b39ae1909c31b E-687 -26_500000000000000000& E-208
1651    }
1652    -result {}
1653}
1654test util-13.53 {just over half ulp - 3 digits} {*}{
1655    -constraints testdoubledigits
1656    -body {
1657        verdonk_test 1b2ab18615fcc6 E-576 +686_500000000000000000& E-176
1658    }
1659    -result {}
1660}
1661test util-13.54 {just over half ulp - 3 digits} {*}{
1662    -constraints testdoubledigits
1663    -body {
1664        verdonk_test -13e1f90a573064 E-624 -178_500000000000000000& E-190
1665    }
1666    -result {}
1667}
1668test util-13.55 {just under half ulp - 3 digits} {*}{
1669    -constraints testdoubledigits
1670    -body {
1671        verdonk_test 16c309024bab4b E+289 +141_499999999999999999& E+85
1672    }
1673    -result {}
1674}
1675test util-13.56 {just under half ulp - 4 digits} {*}{
1676    -constraints testdoubledigits
1677    -body {
1678        verdonk_test -159bd3ad46e346 E+193 -1695_499999999999999999& E+55
1679    }
1680    -result {}
1681}
1682test util-13.57 {just under half ulp - 4 digits} {*}{
1683    -constraints testdoubledigits
1684    -body {
1685        verdonk_test 1df4170f0fdecc E+124 +3981_499999999999999999& E+34
1686    }
1687    -result {}
1688}
1689test util-13.58 {just over half ulp - 6 digits} {*}{
1690    -constraints testdoubledigits
1691    -body {
1692        verdonk_test 17e1e0f1c7a4ac E+415 +126300_5000000000000000000& E+120
1693    }
1694    -result {}
1695}
1696test util-13.59 {just over half ulp - 6 digits} {*}{
1697    -constraints testdoubledigits
1698    -body {
1699        verdonk_test -1dda592e398dd7 E+418 -126300_5000000000000000000& E+121
1700    }
1701    -result {}
1702}
1703test util-13.60 {just under half ulp - 7 digits} {*}{
1704    -constraints testdoubledigits
1705    -body {
1706        verdonk_test -1e597c0b94b7ae E+453 -4411845_499999999999999999& E+130
1707    }
1708    -result {}
1709}
1710test util-13.61 {just under half ulp - 9 digits} {*}{
1711    -constraints testdoubledigits
1712    -body {
1713        verdonk_test 1c569e968e0944 E+427 +613850817_4999999999999999999& E+120
1714    }
1715    -result {}
1716}
1717test util-13.62 {just under half ulp - 9 digits} {*}{
1718    -constraints testdoubledigits
1719    -body {
1720        verdonk_test -1c569e968e0944 E+428 -122770163_49999999999999999999& E+121
1721    }
1722    -result {}
1723}
1724test util-13.63 {just over half ulp - 18 digits} {*}{
1725    -constraints testdoubledigits
1726    -body {
1727        verdonk_test 17ae0c186d8709 E+719 +408156062268363718_5000000000000000000& E+199
1728    }
1729    -result {}
1730}
1731test util-13.64 {just over exact - 1 digits} {*}{
1732    -constraints testdoubledigits
1733    -body {
1734        verdonk_test 152d02c7e14af7 E+76 +1_0000000000000000& E+23
1735    }
1736    -result {}
1737}
1738test util-13.65 {just over exact - 1 digits} {*}{
1739    -constraints testdoubledigits
1740    -body {
1741        verdonk_test -19d971e4fe8402 E+89 -1_0000000000000000& E+27
1742    }
1743    -result {}
1744}
1745test util-13.66 {just over exact - 1 digits} {*}{
1746    -constraints testdoubledigits
1747    -body {
1748        verdonk_test 19d971e4fe8402 E+90 +2_0000000000000000& E+27
1749    }
1750    -result {}
1751}
1752test util-13.67 {just over exact - 1 digits} {*}{
1753    -constraints testdoubledigits
1754    -body {
1755        verdonk_test -19d971e4fe8402 E+91 -4_0000000000000000& E+27
1756    }
1757    -result {}
1758}
1759test util-13.68 {just over exact - 1 digits} {*}{
1760    -constraints testdoubledigits
1761    -body {
1762        verdonk_test 15798ee2308c3a E-27 +1_0000000000000000& E-8
1763    }
1764    -result {}
1765}
1766test util-13.69 {just over exact - 1 digits} {*}{
1767    -constraints testdoubledigits
1768    -body {
1769        verdonk_test -15798ee2308c3a E-26 -2_0000000000000000& E-8
1770    }
1771    -result {}
1772}
1773test util-13.70 {just over exact - 1 digits} {*}{
1774    -constraints testdoubledigits
1775    -body {
1776        verdonk_test 15798ee2308c3a E-25 +4_0000000000000000& E-8
1777    }
1778    -result {}
1779}
1780test util-13.71 {just over exact - 1 digits} {*}{
1781    -constraints testdoubledigits
1782    -body {
1783        verdonk_test -1ef2d0f5da7dd9 E-84 -1_0000000000000000& E-25
1784    }
1785    -result {}
1786}
1787test util-13.72 {just under exact - 1 digits} {*}{
1788    -constraints testdoubledigits
1789    -body {
1790        verdonk_test 1a784379d99db4 E+78 +4_9999999999999999& E+23
1791    }
1792    -result {}
1793}
1794test util-13.73 {just under exact - 1 digits} {*}{
1795    -constraints testdoubledigits
1796    -body {
1797        verdonk_test -1a784379d99db4 E+80 -1_9999999999999999& E+24
1798    }
1799    -result {}
1800}
1801test util-13.74 {just under exact - 1 digits} {*}{
1802    -constraints testdoubledigits
1803    -body {
1804        verdonk_test 13da329b633647 E+81 +2_9999999999999999& E+24
1805    }
1806    -result {}
1807}
1808test util-13.75 {just under exact - 1 digits} {*}{
1809    -constraints testdoubledigits
1810    -body {
1811        verdonk_test -1cf389cd46047d E+85 -6_9999999999999999& E+25
1812    }
1813    -result {}
1814}
1815test util-13.76 {just under exact - 1 digits} {*}{
1816    -constraints testdoubledigits
1817    -body {
1818        verdonk_test 19999999999999 E-3 +1_99999999999999999& E-1
1819    }
1820    -result {}
1821}
1822test util-13.77 {just under exact - 1 digits} {*}{
1823    -constraints testdoubledigits
1824    -body {
1825        verdonk_test -13333333333333 E-2 -2_99999999999999999& E-1
1826    }
1827    -result {}
1828}
1829test util-13.78 {just under exact - 1 digits} {*}{
1830    -constraints testdoubledigits
1831    -body {
1832        verdonk_test 16849b86a12b9b E-48 +4_99999999999999999& E-15
1833    }
1834    -result {}
1835}
1836test util-13.79 {just under exact - 1 digits} {*}{
1837    -constraints testdoubledigits
1838    -body {
1839        verdonk_test -16849b86a12b9b E-46 -1_99999999999999999& E-14
1840    }
1841    -result {}
1842}
1843test util-13.80 {just over exact - 2 digits} {*}{
1844    -constraints testdoubledigits
1845    -body {
1846        verdonk_test 17ccfc73126788 E-71 +63_00000000000000000& E-23
1847    }
1848    -result {}
1849}
1850test util-13.81 {just over exact - 2 digits} {*}{
1851    -constraints testdoubledigits
1852    -body {
1853        verdonk_test -1dc03b8fd7016a E-68 -63_00000000000000000& E-22
1854    }
1855    -result {}
1856}
1857test util-13.82 {just under exact - 2 digits} {*}{
1858    -constraints testdoubledigits
1859    -body {
1860        verdonk_test 13f7ced916872b E-5 +38_999999999999999999& E-3
1861    }
1862    -result {}
1863}
1864test util-13.83 {just over exact - 3 digits} {*}{
1865    -constraints testdoubledigits
1866    -body {
1867        verdonk_test 1b297cad9f70b6 E+97 +269_000000000000000000& E+27
1868    }
1869    -result {}
1870}
1871test util-13.84 {just over exact - 3 digits} {*}{
1872    -constraints testdoubledigits
1873    -body {
1874        verdonk_test -1b297cad9f70b6 E+98 -538_00000000000000000& E+27
1875    }
1876    -result {}
1877}
1878test util-13.85 {just over exact - 3 digits} {*}{
1879    -constraints testdoubledigits
1880    -body {
1881        verdonk_test 1cdc06b20ef183 E-82 +373_00000000000000000& E-27
1882    }
1883    -result {}
1884}
1885test util-13.86 {just over exact - 4 digits} {*}{
1886    -constraints testdoubledigits
1887    -body {
1888        verdonk_test 1b297cad9f70b6 E+96 +1345_00000000000000000& E+26
1889    }
1890    -result {}
1891}
1892# this one is not 4 digits, it is 3, and it is covered above.
1893test util-13.87 {just over exact - 4 digits} {*}{
1894    -constraints {testdoubledigits knownBadTest}
1895    -body {
1896        verdonk_test -1b297cad9f70b6 E+97 -2690_00000000000000000& E+26
1897    }
1898    -result {}
1899}
1900test util-13.88 {just over exact - 5 digits} {*}{
1901    -constraints testdoubledigits
1902    -body {
1903        verdonk_test -150a246ecd44f3 E-63 -14257_00000000000000000& E-23
1904    }
1905    -result {}
1906}
1907test util-13.89 {just under exact - 6 digits} {*}{
1908    -constraints testdoubledigits
1909    -body {
1910        verdonk_test -119b96f36ec68b E-19 -209900_999999999999999999& E-11
1911    }
1912    -result {}
1913}
1914test util-13.90 {just over exact - 11 digits} {*}{
1915    -constraints testdoubledigits
1916    -body {
1917        verdonk_test 1c06d366394441 E-35 +50980203373_000000000000000000& E-21
1918    }
1919    -result {}
1920}
1921test util-13.91 {just under exact - 12 digits} {*}{
1922    -constraints testdoubledigits
1923    -body {
1924        verdonk_test -1f58ac4db68c90 E+122 -104166211810_99999999999999999& E+26
1925    }
1926    -result {}
1927}
1928test util-13.92 {just over half ulp - 1 digits} {*}{
1929    -constraints testdoubledigits
1930    -body {
1931        verdonk_test 19d971e4fe8402 E+87 +2_5000000000000000& E+26
1932    }
1933    -result {}
1934}
1935test util-13.93 {just over half ulp - 1 digits} {*}{
1936    -constraints testdoubledigits
1937    -body {
1938        verdonk_test -1dc74be914d16b E+81 -4_500000000000000& E+24
1939    }
1940    -result {}
1941}
1942test util-13.94 {just over half ulp - 1 digits} {*}{
1943    -constraints testdoubledigits
1944    -body {
1945        verdonk_test 14adf4b7320335 E+84 +2_500000000000000& E+25
1946    }
1947    -result {}
1948}
1949test util-13.95 {just over half ulp - 1 digits} {*}{
1950    -constraints testdoubledigits
1951    -body {
1952        verdonk_test -1ae22487c1042b E+85 -6_5000000000000000& E+25
1953    }
1954    -result {}
1955}
1956test util-13.96 {just over half ulp - 1 digits} {*}{
1957    -constraints testdoubledigits
1958    -body {
1959        verdonk_test 187fe49aab41e0 E-54 +8_5000000000000000& E-17
1960    }
1961    -result {}
1962}
1963test util-13.97 {just over half ulp - 1 digits} {*}{
1964    -constraints testdoubledigits
1965    -body {
1966        verdonk_test -1f5c05e4b23fd7 E-61 -8_5000000000000000& E-19
1967    }
1968    -result {}
1969}
1970test util-13.98 {just over half ulp - 1 digits} {*}{
1971    -constraints testdoubledigits
1972    -body {
1973        verdonk_test 1faa7ab552a552 E-42 +4_5000000000000000& E-13
1974    }
1975    -result {}
1976}
1977test util-13.99 {just over half ulp - 1 digits} {*}{
1978    -constraints testdoubledigits
1979    -body {
1980        verdonk_test -1b7cdfd9d7bdbb E-36 -2_5000000000000000& E-11
1981    }
1982    -result {}
1983}
1984test util-13.100 {just under half ulp - 1 digits} {*}{
1985    -constraints testdoubledigits
1986    -body {
1987        verdonk_test 13da329b633647 E+80 +1_4999999999999999& E+24
1988    }
1989    -result {}
1990}
1991test util-13.101 {just under half ulp - 1 digits} {*}{
1992    -constraints testdoubledigits
1993    -body {
1994        verdonk_test -1cf389cd46047d E+84 -3_49999999999999999& E+25
1995    }
1996    -result {}
1997}
1998test util-13.102 {just under half ulp - 1 digits} {*}{
1999    -constraints testdoubledigits
2000    -body {
2001        verdonk_test 1f04ef12cb04cf E+85 +7_4999999999999999& E+25
2002    }
2003    -result {}
2004}
2005test util-13.103 {just under half ulp - 1 digits} {*}{
2006    -constraints testdoubledigits
2007    -body {
2008        verdonk_test -1f04ef12cb04cf E+86 -1_4999999999999999& E+26
2009    }
2010    -result {}
2011}
2012test util-13.104 {just under half ulp - 1 digits} {*}{
2013    -constraints testdoubledigits
2014    -body {
2015        verdonk_test 13333333333333 E-3 +1_49999999999999999& E-1
2016    }
2017    -result {}
2018}
2019test util-13.105 {just under half ulp - 1 digits} {*}{
2020    -constraints testdoubledigits
2021    -body {
2022        verdonk_test -107e1fe91b0b70 E-36 -1_49999999999999999& E-11
2023    }
2024    -result {}
2025}
2026test util-13.106 {just under half ulp - 1 digits} {*}{
2027    -constraints testdoubledigits
2028    -body {
2029        verdonk_test 149da7e361ce4c E-33 +1_49999999999999999& E-10
2030    }
2031    -result {}
2032}
2033test util-13.107 {just under half ulp - 1 digits} {*}{
2034    -constraints testdoubledigits
2035    -body {
2036        verdonk_test -19c511dc3a41df E-30 -1_49999999999999999& E-9
2037    }
2038    -result {}
2039}
2040test util-13.108 {just over half ulp - 2 digits} {*}{
2041    -constraints testdoubledigits
2042    -body {
2043        verdonk_test -1aa83d74267822 E+93 -16_5000000000000000& E+27
2044    }
2045    -result {}
2046}
2047test util-13.109 {just over half ulp - 2 digits} {*}{
2048    -constraints testdoubledigits
2049    -body {
2050        verdonk_test 18f1d5969453de E+89 +96_5000000000000000& E+25
2051    }
2052    -result {}
2053}
2054test util-13.110 {just over half ulp - 2 digits} {*}{
2055    -constraints testdoubledigits
2056    -body {
2057        verdonk_test 11d9bd564dcda6 E-70 +94_50000000000000000& E-23
2058    }
2059    -result {}
2060}
2061test util-13.111 {just over half ulp - 2 digits} {*}{
2062    -constraints testdoubledigits
2063    -body {
2064        verdonk_test -1a58973ecbede6 E-48 -58_50000000000000000& E-16
2065    }
2066    -result {}
2067}
2068test util-13.112 {just over half ulp - 3 digits} {*}{
2069    -constraints testdoubledigits
2070    -body {
2071        verdonk_test 1b297cad9f70b6 E+95 +672_50000000000000000& E+26
2072    }
2073    -result {}
2074}
2075test util-13.113 {just over half ulp - 3 digits} {*}{
2076    -constraints testdoubledigits
2077    -body {
2078        verdonk_test -1b297cad9f70b6 E+96 -134_500000000000000000& E+27
2079    }
2080    -result {}
2081}
2082test util-13.114 {just over half ulp - 3 digits} {*}{
2083    -constraints testdoubledigits
2084    -body {
2085        verdonk_test 1cdc06b20ef183 E-83 +186_50000000000000000& E-27
2086    }
2087    -result {}
2088}
2089test util-13.115 {just over half ulp - 3 digits} {*}{
2090    -constraints testdoubledigits
2091    -body {
2092        verdonk_test -136071dcae4565 E-47 -860_50000000000000000& E-17
2093    }
2094    -result {}
2095}
2096test util-13.116 {just over half ulp - 6 digits} {*}{
2097    -constraints testdoubledigits
2098    -body {
2099        verdonk_test 1cb968d297dde8 E+99 +113788_50000000000000000& E+25
2100    }
2101    -result {}
2102}
2103test util-13.117 {just over half ulp - 6 digits} {*}{
2104    -constraints testdoubledigits
2105    -body {
2106        verdonk_test -11f3e1839eeab1 E+103 -113788_50000000000000000& E+26
2107    }
2108    -result {}
2109}
2110test util-13.118 {just under half ulp - 9 digits} {*}{
2111    -constraints testdoubledigits
2112    -body {
2113        verdonk_test 1e9cec176c96f8 E+117 +317903333_49999999999999999& E+27
2114    }
2115    -result {}
2116}
2117test util-13.119 {just over half ulp - 11 digits} {*}{
2118    -constraints testdoubledigits
2119    -body {
2120        verdonk_test 1c06d366394441 E-36 +25490101686_500000000000000000& E-21
2121    }
2122    -result {}
2123}
2124test util-13.120 {just under half ulp - 11 digits} {*}{
2125    -constraints testdoubledigits
2126    -body {
2127        verdonk_test 1f58ac4db68c90 E+121 +52083105905_49999999999999999& E+26
2128    }
2129    -result {}
2130}
2131
2132test util-14.1 {funky NaN} {*}{
2133    -constraints {ieeeFloatingPoint controversialNaN}
2134    -body {
2135	set ieeeValues(-NaN)
2136    }
2137    -result -NaN
2138}
2139
2140test util-14.2 {funky NaN} {*}{
2141    -constraints {ieeeFloatingPoint controversialNaN}
2142    -body {
2143	set ieeeValues(-NaN(3456789abcdef))
2144    }
2145    -result -NaN(3456789abcdef)
2146}
2147
2148test util-15.1 {largest subnormal} {*}{
2149    -body {
2150	binary scan [binary format w 0x000fffffffffffff] q x
2151	set x
2152    }
2153    -result 2.225073858507201e-308
2154    -cleanup {
2155	unset x
2156    }
2157}
2158
2159test util-15.2 {largest subnormal} {*}{
2160    -body {
2161	binary scan [binary format w 0x800fffffffffffff] q x
2162	set x
2163    }
2164    -result -2.225073858507201e-308
2165    -cleanup {
2166	unset x
2167    }
2168}
2169
2170test util-15.3 {largest subnormal} {*}{
2171    -body {
2172	binary scan [binary format q 2.225073858507201e-308] w x
2173	format %#lx $x
2174    }
2175    -result 0xfffffffffffff
2176    -cleanup {
2177	unset x
2178    }
2179}
2180
2181test util-15.4 {largest subnormal} {*}{
2182    -body {
2183	binary scan [binary format q -2.225073858507201e-308] w x
2184	format %#lx $x
2185    }
2186    -result 0x800fffffffffffff
2187    -cleanup {
2188	unset x
2189    }
2190}
2191
2192test util-15.5 {smallest normal} {*}{
2193    -body {
2194	binary scan [binary format w 0x0010000000000000] q x
2195	set x
2196    }
2197    -result 2.2250738585072014e-308
2198    -cleanup {
2199	unset x
2200    }
2201}
2202
2203test util-15.6 {smallest normal} {*}{
2204    -body {
2205	binary scan [binary format w 0x8010000000000000] q x
2206	set x
2207    }
2208    -result -2.2250738585072014e-308
2209    -cleanup {
2210	unset x
2211    }
2212}
2213
2214test util-15.7 {smallest normal} {*}{
2215    -body {
2216	binary scan [binary format q 2.2250738585072014e-308] w x
2217	format %#lx $x
2218    }
2219    -result 0x10000000000000
2220    -cleanup {
2221	unset x
2222    }
2223}
2224
2225test util-15.8 {smallest normal} {*}{
2226    -body {
2227	binary scan [binary format q -2.2250738585072014e-308] w x
2228	format %#lx $x
2229    }
2230    -result 0x8010000000000000
2231    -cleanup {
2232	unset x
2233    }
2234}
2235
2236foreach ::tcl_precision {0 12} {
2237    for {set e -312} {$e < -9} {incr e} {
2238	test util-16.1.$::tcl_precision.$e {shortening of numbers} \
2239	    "expr {1.1e$e}" 1.1e$e
2240    }
2241}
2242set tcl_precision 0
2243for {set e -9} {$e < -4} {incr e} {
2244    test util-16.1.$::tcl_precision.$e {shortening of numbers} \
2245	"expr {1.1e$e}" 1.1e$e
2246}
2247set tcl_precision 12
2248for {set e -9} {$e < -4} {incr e} {
2249    test util-16.1.$::tcl_precision.$e {8.4 compatible formatting of doubles} precision \
2250	"expr {1.1e$e}" 1.1e[format %+03d $e]
2251}
2252foreach ::tcl_precision {0 12} {
2253    test util-16.1.$::tcl_precision.-4 {shortening of numbers} \
2254	{expr {1.1e-4}} \
2255	0.00011
2256    test util-16.1.$::tcl_precision.-3 {shortening of numbers} \
2257	{expr {1.1e-3}} \
2258	0.0011
2259    test util-16.1.$::tcl_precision.-2 {shortening of numbers} \
2260	{expr {1.1e-2}} \
2261	0.011
2262    test util-16.1.$::tcl_precision.-1 {shortening of numbers} \
2263	{expr {1.1e-1}} \
2264	0.11
2265    test util-16.1.$::tcl_precision.0 {shortening of numbers} \
2266	{expr {1.1}} \
2267	1.1
2268    for {set e 1} {$e < 17} {incr e} {
2269	test util-16.1.$::tcl_precision.$e {shortening of numbers} \
2270	    "expr {11[string repeat 0 [expr {$e-1}]].0}" \
2271	    11[string repeat 0 [expr {$e-1}]].0
2272    }
2273    for {set e 17} {$e < 309} {incr e} {
2274	test util-16.1.$::tcl_precision.$e {shortening of numbers} \
2275	    "expr {1.1e$e}" 1.1e+$e
2276    }
2277}
2278set tcl_precision 17
2279test util-16.1.17.-300 {8.4 compatible formatting of doubles} precision \
2280    {expr {1e-300}} \
2281    1e-300
2282test util-16.1.17.-299 {8.4 compatible formatting of doubles} precision \
2283    {expr {1e-299}} \
2284    9.9999999999999999e-300
2285test util-16.1.17.-298 {8.4 compatible formatting of doubles} precision \
2286    {expr {1e-298}} \
2287    9.9999999999999991e-299
2288test util-16.1.17.-297 {8.4 compatible formatting of doubles} precision \
2289    {expr {1e-297}} \
2290    1e-297
2291test util-16.1.17.-296 {8.4 compatible formatting of doubles} precision \
2292    {expr {1e-296}} \
2293    1e-296
2294test util-16.1.17.-295 {8.4 compatible formatting of doubles} precision \
2295    {expr {1e-295}} \
2296    1.0000000000000001e-295
2297test util-16.1.17.-294 {8.4 compatible formatting of doubles} precision \
2298    {expr {1e-294}} \
2299    1e-294
2300test util-16.1.17.-293 {8.4 compatible formatting of doubles} precision \
2301    {expr {1e-293}} \
2302    1.0000000000000001e-293
2303test util-16.1.17.-292 {8.4 compatible formatting of doubles} precision \
2304    {expr {1e-292}} \
2305    1.0000000000000001e-292
2306test util-16.1.17.-291 {8.4 compatible formatting of doubles} precision \
2307    {expr {1e-291}} \
2308    9.9999999999999996e-292
2309test util-16.1.17.-290 {8.4 compatible formatting of doubles} precision \
2310    {expr {1e-290}} \
2311    1.0000000000000001e-290
2312test util-16.1.17.-289 {8.4 compatible formatting of doubles} precision \
2313    {expr {1e-289}} \
2314    1e-289
2315test util-16.1.17.-288 {8.4 compatible formatting of doubles} precision \
2316    {expr {1e-288}} \
2317    1.0000000000000001e-288
2318test util-16.1.17.-287 {8.4 compatible formatting of doubles} precision \
2319    {expr {1e-287}} \
2320    1e-287
2321test util-16.1.17.-286 {8.4 compatible formatting of doubles} precision \
2322    {expr {1e-286}} \
2323    1.0000000000000001e-286
2324test util-16.1.17.-285 {8.4 compatible formatting of doubles} precision \
2325    {expr {1e-285}} \
2326    1.0000000000000001e-285
2327test util-16.1.17.-284 {8.4 compatible formatting of doubles} precision \
2328    {expr {1e-284}} \
2329    1e-284
2330test util-16.1.17.-283 {8.4 compatible formatting of doubles} precision \
2331    {expr {1e-283}} \
2332    9.9999999999999995e-284
2333test util-16.1.17.-282 {8.4 compatible formatting of doubles} precision \
2334    {expr {1e-282}} \
2335    1e-282
2336test util-16.1.17.-281 {8.4 compatible formatting of doubles} precision \
2337    {expr {1e-281}} \
2338    1e-281
2339test util-16.1.17.-280 {8.4 compatible formatting of doubles} precision \
2340    {expr {1e-280}} \
2341    9.9999999999999996e-281
2342test util-16.1.17.-279 {8.4 compatible formatting of doubles} precision \
2343    {expr {1e-279}} \
2344    1.0000000000000001e-279
2345test util-16.1.17.-278 {8.4 compatible formatting of doubles} precision \
2346    {expr {1e-278}} \
2347    9.9999999999999994e-279
2348test util-16.1.17.-277 {8.4 compatible formatting of doubles} precision \
2349    {expr {1e-277}} \
2350    9.9999999999999997e-278
2351test util-16.1.17.-276 {8.4 compatible formatting of doubles} precision \
2352    {expr {1e-276}} \
2353    1.0000000000000001e-276
2354test util-16.1.17.-275 {8.4 compatible formatting of doubles} precision \
2355    {expr {1e-275}} \
2356    9.9999999999999993e-276
2357test util-16.1.17.-274 {8.4 compatible formatting of doubles} precision \
2358    {expr {1e-274}} \
2359    9.9999999999999997e-275
2360test util-16.1.17.-273 {8.4 compatible formatting of doubles} precision \
2361    {expr {1e-273}} \
2362    1.0000000000000001e-273
2363test util-16.1.17.-272 {8.4 compatible formatting of doubles} precision \
2364    {expr {1e-272}} \
2365    9.9999999999999993e-273
2366test util-16.1.17.-271 {8.4 compatible formatting of doubles} precision \
2367    {expr {1e-271}} \
2368    9.9999999999999996e-272
2369test util-16.1.17.-270 {8.4 compatible formatting of doubles} precision \
2370    {expr {1e-270}} \
2371    1e-270
2372test util-16.1.17.-269 {8.4 compatible formatting of doubles} precision \
2373    {expr {1e-269}} \
2374    9.9999999999999996e-270
2375test util-16.1.17.-268 {8.4 compatible formatting of doubles} precision \
2376    {expr {1e-268}} \
2377    9.9999999999999996e-269
2378test util-16.1.17.-267 {8.4 compatible formatting of doubles} precision \
2379    {expr {1e-267}} \
2380    9.9999999999999998e-268
2381test util-16.1.17.-266 {8.4 compatible formatting of doubles} precision \
2382    {expr {1e-266}} \
2383    9.9999999999999998e-267
2384test util-16.1.17.-265 {8.4 compatible formatting of doubles} precision \
2385    {expr {1e-265}} \
2386    9.9999999999999998e-266
2387test util-16.1.17.-264 {8.4 compatible formatting of doubles} precision \
2388    {expr {1e-264}} \
2389    1e-264
2390test util-16.1.17.-263 {8.4 compatible formatting of doubles} precision \
2391    {expr {1e-263}} \
2392    1e-263
2393test util-16.1.17.-262 {8.4 compatible formatting of doubles} precision \
2394    {expr {1e-262}} \
2395    1e-262
2396test util-16.1.17.-261 {8.4 compatible formatting of doubles} precision \
2397    {expr {1e-261}} \
2398    9.9999999999999998e-262
2399test util-16.1.17.-260 {8.4 compatible formatting of doubles} precision \
2400    {expr {1e-260}} \
2401    9.9999999999999996e-261
2402test util-16.1.17.-259 {8.4 compatible formatting of doubles} precision \
2403    {expr {1e-259}} \
2404    1.0000000000000001e-259
2405test util-16.1.17.-258 {8.4 compatible formatting of doubles} precision \
2406    {expr {1e-258}} \
2407    9.9999999999999995e-259
2408test util-16.1.17.-257 {8.4 compatible formatting of doubles} precision \
2409    {expr {1e-257}} \
2410    9.9999999999999998e-258
2411test util-16.1.17.-256 {8.4 compatible formatting of doubles} precision \
2412    {expr {1e-256}} \
2413    9.9999999999999998e-257
2414test util-16.1.17.-255 {8.4 compatible formatting of doubles} precision \
2415    {expr {1e-255}} \
2416    1e-255
2417test util-16.1.17.-254 {8.4 compatible formatting of doubles} precision \
2418    {expr {1e-254}} \
2419    9.9999999999999991e-255
2420test util-16.1.17.-253 {8.4 compatible formatting of doubles} precision \
2421    {expr {1e-253}} \
2422    1.0000000000000001e-253
2423test util-16.1.17.-252 {8.4 compatible formatting of doubles} precision \
2424    {expr {1e-252}} \
2425    9.9999999999999994e-253
2426test util-16.1.17.-251 {8.4 compatible formatting of doubles} precision \
2427    {expr {1e-251}} \
2428    1e-251
2429test util-16.1.17.-250 {8.4 compatible formatting of doubles} precision \
2430    {expr {1e-250}} \
2431    1.0000000000000001e-250
2432test util-16.1.17.-249 {8.4 compatible formatting of doubles} precision \
2433    {expr {1e-249}} \
2434    1.0000000000000001e-249
2435test util-16.1.17.-248 {8.4 compatible formatting of doubles} precision \
2436    {expr {1e-248}} \
2437    9.9999999999999998e-249
2438test util-16.1.17.-247 {8.4 compatible formatting of doubles} precision \
2439    {expr {1e-247}} \
2440    1e-247
2441test util-16.1.17.-246 {8.4 compatible formatting of doubles} precision \
2442    {expr {1e-246}} \
2443    9.9999999999999996e-247
2444test util-16.1.17.-245 {8.4 compatible formatting of doubles} precision \
2445    {expr {1e-245}} \
2446    9.9999999999999993e-246
2447test util-16.1.17.-244 {8.4 compatible formatting of doubles} precision \
2448    {expr {1e-244}} \
2449    9.9999999999999993e-245
2450test util-16.1.17.-243 {8.4 compatible formatting of doubles} precision \
2451    {expr {1e-243}} \
2452    1e-243
2453test util-16.1.17.-242 {8.4 compatible formatting of doubles} precision \
2454    {expr {1e-242}} \
2455    9.9999999999999997e-243
2456test util-16.1.17.-241 {8.4 compatible formatting of doubles} precision \
2457    {expr {1e-241}} \
2458    9.9999999999999997e-242
2459test util-16.1.17.-240 {8.4 compatible formatting of doubles} precision \
2460    {expr {1e-240}} \
2461    9.9999999999999997e-241
2462test util-16.1.17.-239 {8.4 compatible formatting of doubles} precision \
2463    {expr {1e-239}} \
2464    1.0000000000000001e-239
2465test util-16.1.17.-238 {8.4 compatible formatting of doubles} precision \
2466    {expr {1e-238}} \
2467    9.9999999999999999e-239
2468test util-16.1.17.-237 {8.4 compatible formatting of doubles} precision \
2469    {expr {1e-237}} \
2470    9.9999999999999999e-238
2471test util-16.1.17.-236 {8.4 compatible formatting of doubles} precision \
2472    {expr {1e-236}} \
2473    1e-236
2474test util-16.1.17.-235 {8.4 compatible formatting of doubles} precision \
2475    {expr {1e-235}} \
2476    9.9999999999999996e-236
2477test util-16.1.17.-234 {8.4 compatible formatting of doubles} precision \
2478    {expr {1e-234}} \
2479    9.9999999999999996e-235
2480test util-16.1.17.-233 {8.4 compatible formatting of doubles} precision \
2481    {expr {1e-233}} \
2482    9.9999999999999996e-234
2483test util-16.1.17.-232 {8.4 compatible formatting of doubles} precision \
2484    {expr {1e-232}} \
2485    1e-232
2486test util-16.1.17.-231 {8.4 compatible formatting of doubles} precision \
2487    {expr {1e-231}} \
2488    9.9999999999999999e-232
2489test util-16.1.17.-230 {8.4 compatible formatting of doubles} precision \
2490    {expr {1e-230}} \
2491    1e-230
2492test util-16.1.17.-229 {8.4 compatible formatting of doubles} precision \
2493    {expr {1e-229}} \
2494    1.0000000000000001e-229
2495test util-16.1.17.-228 {8.4 compatible formatting of doubles} precision \
2496    {expr {1e-228}} \
2497    1e-228
2498test util-16.1.17.-227 {8.4 compatible formatting of doubles} precision \
2499    {expr {1e-227}} \
2500    9.9999999999999994e-228
2501test util-16.1.17.-226 {8.4 compatible formatting of doubles} precision \
2502    {expr {1e-226}} \
2503    9.9999999999999992e-227
2504test util-16.1.17.-225 {8.4 compatible formatting of doubles} precision \
2505    {expr {1e-225}} \
2506    9.9999999999999996e-226
2507test util-16.1.17.-224 {8.4 compatible formatting of doubles} precision \
2508    {expr {1e-224}} \
2509    1e-224
2510test util-16.1.17.-223 {8.4 compatible formatting of doubles} precision \
2511    {expr {1e-223}} \
2512    9.9999999999999997e-224
2513test util-16.1.17.-222 {8.4 compatible formatting of doubles} precision \
2514    {expr {1e-222}} \
2515    1e-222
2516test util-16.1.17.-221 {8.4 compatible formatting of doubles} precision \
2517    {expr {1e-221}} \
2518    1e-221
2519test util-16.1.17.-220 {8.4 compatible formatting of doubles} precision \
2520    {expr {1e-220}} \
2521    9.9999999999999999e-221
2522test util-16.1.17.-219 {8.4 compatible formatting of doubles} precision \
2523    {expr {1e-219}} \
2524    1e-219
2525test util-16.1.17.-218 {8.4 compatible formatting of doubles} precision \
2526    {expr {1e-218}} \
2527    1e-218
2528test util-16.1.17.-217 {8.4 compatible formatting of doubles} precision \
2529    {expr {1e-217}} \
2530    1.0000000000000001e-217
2531test util-16.1.17.-216 {8.4 compatible formatting of doubles} precision \
2532    {expr {1e-216}} \
2533    1e-216
2534test util-16.1.17.-215 {8.4 compatible formatting of doubles} precision \
2535    {expr {1e-215}} \
2536    1e-215
2537test util-16.1.17.-214 {8.4 compatible formatting of doubles} precision \
2538    {expr {1e-214}} \
2539    9.9999999999999991e-215
2540test util-16.1.17.-213 {8.4 compatible formatting of doubles} precision \
2541    {expr {1e-213}} \
2542    9.9999999999999995e-214
2543test util-16.1.17.-212 {8.4 compatible formatting of doubles} precision \
2544    {expr {1e-212}} \
2545    9.9999999999999995e-213
2546test util-16.1.17.-211 {8.4 compatible formatting of doubles} precision \
2547    {expr {1e-211}} \
2548    1.0000000000000001e-211
2549test util-16.1.17.-210 {8.4 compatible formatting of doubles} precision \
2550    {expr {1e-210}} \
2551    1e-210
2552test util-16.1.17.-209 {8.4 compatible formatting of doubles} precision \
2553    {expr {1e-209}} \
2554    1e-209
2555test util-16.1.17.-208 {8.4 compatible formatting of doubles} precision \
2556    {expr {1e-208}} \
2557    1.0000000000000001e-208
2558test util-16.1.17.-207 {8.4 compatible formatting of doubles} precision \
2559    {expr {1e-207}} \
2560    9.9999999999999993e-208
2561test util-16.1.17.-206 {8.4 compatible formatting of doubles} precision \
2562    {expr {1e-206}} \
2563    1e-206
2564test util-16.1.17.-205 {8.4 compatible formatting of doubles} precision \
2565    {expr {1e-205}} \
2566    1e-205
2567test util-16.1.17.-204 {8.4 compatible formatting of doubles} precision \
2568    {expr {1e-204}} \
2569    1e-204
2570test util-16.1.17.-203 {8.4 compatible formatting of doubles} precision \
2571    {expr {1e-203}} \
2572    1e-203
2573test util-16.1.17.-202 {8.4 compatible formatting of doubles} precision \
2574    {expr {1e-202}} \
2575    1e-202
2576test util-16.1.17.-201 {8.4 compatible formatting of doubles} precision \
2577    {expr {1e-201}} \
2578    9.9999999999999995e-202
2579test util-16.1.17.-200 {8.4 compatible formatting of doubles} precision \
2580    {expr {1e-200}} \
2581    9.9999999999999998e-201
2582test util-16.1.17.-199 {8.4 compatible formatting of doubles} precision \
2583    {expr {1e-199}} \
2584    9.9999999999999998e-200
2585test util-16.1.17.-198 {8.4 compatible formatting of doubles} precision \
2586    {expr {1e-198}} \
2587    9.9999999999999991e-199
2588test util-16.1.17.-197 {8.4 compatible formatting of doubles} precision \
2589    {expr {1e-197}} \
2590    9.9999999999999999e-198
2591test util-16.1.17.-196 {8.4 compatible formatting of doubles} precision \
2592    {expr {1e-196}} \
2593    1e-196
2594test util-16.1.17.-195 {8.4 compatible formatting of doubles} precision \
2595    {expr {1e-195}} \
2596    1.0000000000000001e-195
2597test util-16.1.17.-194 {8.4 compatible formatting of doubles} precision \
2598    {expr {1e-194}} \
2599    1e-194
2600test util-16.1.17.-193 {8.4 compatible formatting of doubles} precision \
2601    {expr {1e-193}} \
2602    1e-193
2603test util-16.1.17.-192 {8.4 compatible formatting of doubles} precision \
2604    {expr {1e-192}} \
2605    1.0000000000000001e-192
2606test util-16.1.17.-191 {8.4 compatible formatting of doubles} precision \
2607    {expr {1e-191}} \
2608    1e-191
2609test util-16.1.17.-190 {8.4 compatible formatting of doubles} precision \
2610    {expr {1e-190}} \
2611    1e-190
2612test util-16.1.17.-189 {8.4 compatible formatting of doubles} precision \
2613    {expr {1e-189}} \
2614    1.0000000000000001e-189
2615test util-16.1.17.-188 {8.4 compatible formatting of doubles} precision \
2616    {expr {1e-188}} \
2617    9.9999999999999995e-189
2618test util-16.1.17.-187 {8.4 compatible formatting of doubles} precision \
2619    {expr {1e-187}} \
2620    1e-187
2621test util-16.1.17.-186 {8.4 compatible formatting of doubles} precision \
2622    {expr {1e-186}} \
2623    9.9999999999999991e-187
2624test util-16.1.17.-185 {8.4 compatible formatting of doubles} precision \
2625    {expr {1e-185}} \
2626    9.9999999999999999e-186
2627test util-16.1.17.-184 {8.4 compatible formatting of doubles} precision \
2628    {expr {1e-184}} \
2629    1.0000000000000001e-184
2630test util-16.1.17.-183 {8.4 compatible formatting of doubles} precision \
2631    {expr {1e-183}} \
2632    1e-183
2633test util-16.1.17.-182 {8.4 compatible formatting of doubles} precision \
2634    {expr {1e-182}} \
2635    1e-182
2636test util-16.1.17.-181 {8.4 compatible formatting of doubles} precision \
2637    {expr {1e-181}} \
2638    1e-181
2639test util-16.1.17.-180 {8.4 compatible formatting of doubles} precision \
2640    {expr {1e-180}} \
2641    1e-180
2642test util-16.1.17.-179 {8.4 compatible formatting of doubles} precision \
2643    {expr {1e-179}} \
2644    1e-179
2645test util-16.1.17.-178 {8.4 compatible formatting of doubles} precision \
2646    {expr {1e-178}} \
2647    9.9999999999999995e-179
2648test util-16.1.17.-177 {8.4 compatible formatting of doubles} precision \
2649    {expr {1e-177}} \
2650    9.9999999999999995e-178
2651test util-16.1.17.-176 {8.4 compatible formatting of doubles} precision \
2652    {expr {1e-176}} \
2653    1e-176
2654test util-16.1.17.-175 {8.4 compatible formatting of doubles} precision \
2655    {expr {1e-175}} \
2656    1e-175
2657test util-16.1.17.-174 {8.4 compatible formatting of doubles} precision \
2658    {expr {1e-174}} \
2659    1e-174
2660test util-16.1.17.-173 {8.4 compatible formatting of doubles} precision \
2661    {expr {1e-173}} \
2662    1e-173
2663test util-16.1.17.-172 {8.4 compatible formatting of doubles} precision \
2664    {expr {1e-172}} \
2665    1e-172
2666test util-16.1.17.-171 {8.4 compatible formatting of doubles} precision \
2667    {expr {1e-171}} \
2668    9.9999999999999998e-172
2669test util-16.1.17.-170 {8.4 compatible formatting of doubles} precision \
2670    {expr {1e-170}} \
2671    9.9999999999999998e-171
2672test util-16.1.17.-169 {8.4 compatible formatting of doubles} precision \
2673    {expr {1e-169}} \
2674    1e-169
2675test util-16.1.17.-168 {8.4 compatible formatting of doubles} precision \
2676    {expr {1e-168}} \
2677    1e-168
2678test util-16.1.17.-167 {8.4 compatible formatting of doubles} precision \
2679    {expr {1e-167}} \
2680    1e-167
2681test util-16.1.17.-166 {8.4 compatible formatting of doubles} precision \
2682    {expr {1e-166}} \
2683    1e-166
2684test util-16.1.17.-165 {8.4 compatible formatting of doubles} precision \
2685    {expr {1e-165}} \
2686    1e-165
2687test util-16.1.17.-164 {8.4 compatible formatting of doubles} precision \
2688    {expr {1e-164}} \
2689    9.9999999999999996e-165
2690test util-16.1.17.-163 {8.4 compatible formatting of doubles} precision \
2691    {expr {1e-163}} \
2692    9.9999999999999992e-164
2693test util-16.1.17.-162 {8.4 compatible formatting of doubles} precision \
2694    {expr {1e-162}} \
2695    9.9999999999999995e-163
2696test util-16.1.17.-161 {8.4 compatible formatting of doubles} precision \
2697    {expr {1e-161}} \
2698    1e-161
2699test util-16.1.17.-160 {8.4 compatible formatting of doubles} precision \
2700    {expr {1e-160}} \
2701    9.9999999999999999e-161
2702test util-16.1.17.-159 {8.4 compatible formatting of doubles} precision \
2703    {expr {1e-159}} \
2704    9.9999999999999999e-160
2705test util-16.1.17.-158 {8.4 compatible formatting of doubles} precision \
2706    {expr {1e-158}} \
2707    1.0000000000000001e-158
2708test util-16.1.17.-157 {8.4 compatible formatting of doubles} precision \
2709    {expr {1e-157}} \
2710    9.9999999999999994e-158
2711test util-16.1.17.-156 {8.4 compatible formatting of doubles} precision \
2712    {expr {1e-156}} \
2713    1e-156
2714test util-16.1.17.-155 {8.4 compatible formatting of doubles} precision \
2715    {expr {1e-155}} \
2716    1e-155
2717test util-16.1.17.-154 {8.4 compatible formatting of doubles} precision \
2718    {expr {1e-154}} \
2719    9.9999999999999997e-155
2720test util-16.1.17.-153 {8.4 compatible formatting of doubles} precision \
2721    {expr {1e-153}} \
2722    1e-153
2723test util-16.1.17.-152 {8.4 compatible formatting of doubles} precision \
2724    {expr {1e-152}} \
2725    1.0000000000000001e-152
2726test util-16.1.17.-151 {8.4 compatible formatting of doubles} precision \
2727    {expr {1e-151}} \
2728    9.9999999999999994e-152
2729test util-16.1.17.-150 {8.4 compatible formatting of doubles} precision \
2730    {expr {1e-150}} \
2731    1e-150
2732test util-16.1.17.-149 {8.4 compatible formatting of doubles} precision \
2733    {expr {1e-149}} \
2734    9.9999999999999998e-150
2735test util-16.1.17.-148 {8.4 compatible formatting of doubles} precision \
2736    {expr {1e-148}} \
2737    9.9999999999999994e-149
2738test util-16.1.17.-147 {8.4 compatible formatting of doubles} precision \
2739    {expr {1e-147}} \
2740    9.9999999999999997e-148
2741test util-16.1.17.-146 {8.4 compatible formatting of doubles} precision \
2742    {expr {1e-146}} \
2743    1e-146
2744test util-16.1.17.-145 {8.4 compatible formatting of doubles} precision \
2745    {expr {1e-145}} \
2746    9.9999999999999991e-146
2747test util-16.1.17.-144 {8.4 compatible formatting of doubles} precision \
2748    {expr {1e-144}} \
2749    9.9999999999999995e-145
2750test util-16.1.17.-143 {8.4 compatible formatting of doubles} precision \
2751    {expr {1e-143}} \
2752    9.9999999999999995e-144
2753test util-16.1.17.-142 {8.4 compatible formatting of doubles} precision \
2754    {expr {1e-142}} \
2755    1e-142
2756test util-16.1.17.-141 {8.4 compatible formatting of doubles} precision \
2757    {expr {1e-141}} \
2758    1e-141
2759test util-16.1.17.-140 {8.4 compatible formatting of doubles} precision \
2760    {expr {1e-140}} \
2761    9.9999999999999998e-141
2762test util-16.1.17.-139 {8.4 compatible formatting of doubles} precision \
2763    {expr {1e-139}} \
2764    1e-139
2765test util-16.1.17.-138 {8.4 compatible formatting of doubles} precision \
2766    {expr {1e-138}} \
2767    1.0000000000000001e-138
2768test util-16.1.17.-137 {8.4 compatible formatting of doubles} precision \
2769    {expr {1e-137}} \
2770    9.9999999999999998e-138
2771test util-16.1.17.-136 {8.4 compatible formatting of doubles} precision \
2772    {expr {1e-136}} \
2773    1e-136
2774test util-16.1.17.-135 {8.4 compatible formatting of doubles} precision \
2775    {expr {1e-135}} \
2776    1e-135
2777test util-16.1.17.-134 {8.4 compatible formatting of doubles} precision \
2778    {expr {1e-134}} \
2779    1e-134
2780test util-16.1.17.-133 {8.4 compatible formatting of doubles} precision \
2781    {expr {1e-133}} \
2782    1.0000000000000001e-133
2783test util-16.1.17.-132 {8.4 compatible formatting of doubles} precision \
2784    {expr {1e-132}} \
2785    9.9999999999999999e-133
2786test util-16.1.17.-131 {8.4 compatible formatting of doubles} precision \
2787    {expr {1e-131}} \
2788    9.9999999999999999e-132
2789test util-16.1.17.-130 {8.4 compatible formatting of doubles} precision \
2790    {expr {1e-130}} \
2791    1.0000000000000001e-130
2792test util-16.1.17.-129 {8.4 compatible formatting of doubles} precision \
2793    {expr {1e-129}} \
2794    9.9999999999999993e-130
2795test util-16.1.17.-128 {8.4 compatible formatting of doubles} precision \
2796    {expr {1e-128}} \
2797    1.0000000000000001e-128
2798test util-16.1.17.-127 {8.4 compatible formatting of doubles} precision \
2799    {expr {1e-127}} \
2800    1e-127
2801test util-16.1.17.-126 {8.4 compatible formatting of doubles} precision \
2802    {expr {1e-126}} \
2803    9.9999999999999995e-127
2804test util-16.1.17.-125 {8.4 compatible formatting of doubles} precision \
2805    {expr {1e-125}} \
2806    1e-125
2807test util-16.1.17.-124 {8.4 compatible formatting of doubles} precision \
2808    {expr {1e-124}} \
2809    9.9999999999999993e-125
2810test util-16.1.17.-123 {8.4 compatible formatting of doubles} precision \
2811    {expr {1e-123}} \
2812    1.0000000000000001e-123
2813test util-16.1.17.-122 {8.4 compatible formatting of doubles} precision \
2814    {expr {1e-122}} \
2815    1.0000000000000001e-122
2816test util-16.1.17.-121 {8.4 compatible formatting of doubles} precision \
2817    {expr {1e-121}} \
2818    9.9999999999999998e-122
2819test util-16.1.17.-120 {8.4 compatible formatting of doubles} precision \
2820    {expr {1e-120}} \
2821    9.9999999999999998e-121
2822test util-16.1.17.-119 {8.4 compatible formatting of doubles} precision \
2823    {expr {1e-119}} \
2824    1e-119
2825test util-16.1.17.-118 {8.4 compatible formatting of doubles} precision \
2826    {expr {1e-118}} \
2827    9.9999999999999999e-119
2828test util-16.1.17.-117 {8.4 compatible formatting of doubles} precision \
2829    {expr {1e-117}} \
2830    1e-117
2831test util-16.1.17.-116 {8.4 compatible formatting of doubles} precision \
2832    {expr {1e-116}} \
2833    9.9999999999999999e-117
2834test util-16.1.17.-115 {8.4 compatible formatting of doubles} precision \
2835    {expr {1e-115}} \
2836    1.0000000000000001e-115
2837test util-16.1.17.-114 {8.4 compatible formatting of doubles} precision \
2838    {expr {1e-114}} \
2839    1.0000000000000001e-114
2840test util-16.1.17.-113 {8.4 compatible formatting of doubles} precision \
2841    {expr {1e-113}} \
2842    9.9999999999999998e-114
2843test util-16.1.17.-112 {8.4 compatible formatting of doubles} precision \
2844    {expr {1e-112}} \
2845    9.9999999999999995e-113
2846test util-16.1.17.-111 {8.4 compatible formatting of doubles} precision \
2847    {expr {1e-111}} \
2848    1.0000000000000001e-111
2849test util-16.1.17.-110 {8.4 compatible formatting of doubles} precision \
2850    {expr {1e-110}} \
2851    1.0000000000000001e-110
2852test util-16.1.17.-109 {8.4 compatible formatting of doubles} precision \
2853    {expr {1e-109}} \
2854    9.9999999999999999e-110
2855test util-16.1.17.-108 {8.4 compatible formatting of doubles} precision \
2856    {expr {1e-108}} \
2857    1e-108
2858test util-16.1.17.-107 {8.4 compatible formatting of doubles} precision \
2859    {expr {1e-107}} \
2860    1e-107
2861test util-16.1.17.-106 {8.4 compatible formatting of doubles} precision \
2862    {expr {1e-106}} \
2863    9.9999999999999994e-107
2864test util-16.1.17.-105 {8.4 compatible formatting of doubles} precision \
2865    {expr {1e-105}} \
2866    9.9999999999999997e-106
2867test util-16.1.17.-104 {8.4 compatible formatting of doubles} precision \
2868    {expr {1e-104}} \
2869    9.9999999999999993e-105
2870test util-16.1.17.-103 {8.4 compatible formatting of doubles} precision \
2871    {expr {1e-103}} \
2872    9.9999999999999996e-104
2873test util-16.1.17.-102 {8.4 compatible formatting of doubles} precision \
2874    {expr {1e-102}} \
2875    9.9999999999999993e-103
2876test util-16.1.17.-101 {8.4 compatible formatting of doubles} precision \
2877    {expr {1e-101}} \
2878    1.0000000000000001e-101
2879test util-16.1.17.-100 {8.4 compatible formatting of doubles} precision \
2880    {expr {1e-100}} \
2881    1e-100
2882test util-16.1.17.-99 {8.4 compatible formatting of doubles} precision \
2883    {expr {1e-99}} \
2884    1e-99
2885test util-16.1.17.-98 {8.4 compatible formatting of doubles} precision \
2886    {expr {1e-98}} \
2887    9.9999999999999994e-99
2888test util-16.1.17.-97 {8.4 compatible formatting of doubles} precision \
2889    {expr {1e-97}} \
2890    1e-97
2891test util-16.1.17.-96 {8.4 compatible formatting of doubles} precision \
2892    {expr {1e-96}} \
2893    9.9999999999999991e-97
2894test util-16.1.17.-95 {8.4 compatible formatting of doubles} precision \
2895    {expr {1e-95}} \
2896    9.9999999999999999e-96
2897test util-16.1.17.-94 {8.4 compatible formatting of doubles} precision \
2898    {expr {1e-94}} \
2899    9.9999999999999996e-95
2900test util-16.1.17.-93 {8.4 compatible formatting of doubles} precision \
2901    {expr {1e-93}} \
2902    9.999999999999999e-94
2903test util-16.1.17.-92 {8.4 compatible formatting of doubles} precision \
2904    {expr {1e-92}} \
2905    9.9999999999999999e-93
2906test util-16.1.17.-91 {8.4 compatible formatting of doubles} precision \
2907    {expr {1e-91}} \
2908    1e-91
2909test util-16.1.17.-90 {8.4 compatible formatting of doubles} precision \
2910    {expr {1e-90}} \
2911    9.9999999999999999e-91
2912test util-16.1.17.-89 {8.4 compatible formatting of doubles} precision \
2913    {expr {1e-89}} \
2914    1e-89
2915test util-16.1.17.-88 {8.4 compatible formatting of doubles} precision \
2916    {expr {1e-88}} \
2917    9.9999999999999993e-89
2918test util-16.1.17.-87 {8.4 compatible formatting of doubles} precision \
2919    {expr {1e-87}} \
2920    1e-87
2921test util-16.1.17.-86 {8.4 compatible formatting of doubles} precision \
2922    {expr {1e-86}} \
2923    1.0000000000000001e-86
2924test util-16.1.17.-85 {8.4 compatible formatting of doubles} precision \
2925    {expr {1e-85}} \
2926    9.9999999999999998e-86
2927test util-16.1.17.-84 {8.4 compatible formatting of doubles} precision \
2928    {expr {1e-84}} \
2929    1e-84
2930test util-16.1.17.-83 {8.4 compatible formatting of doubles} precision \
2931    {expr {1e-83}} \
2932    1e-83
2933test util-16.1.17.-82 {8.4 compatible formatting of doubles} precision \
2934    {expr {1e-82}} \
2935    9.9999999999999996e-83
2936test util-16.1.17.-81 {8.4 compatible formatting of doubles} precision \
2937    {expr {1e-81}} \
2938    9.9999999999999996e-82
2939test util-16.1.17.-80 {8.4 compatible formatting of doubles} precision \
2940    {expr {1e-80}} \
2941    9.9999999999999996e-81
2942test util-16.1.17.-79 {8.4 compatible formatting of doubles} precision \
2943    {expr {1e-79}} \
2944    1e-79
2945test util-16.1.17.-78 {8.4 compatible formatting of doubles} precision \
2946    {expr {1e-78}} \
2947    1e-78
2948test util-16.1.17.-77 {8.4 compatible formatting of doubles} precision \
2949    {expr {1e-77}} \
2950    9.9999999999999993e-78
2951test util-16.1.17.-76 {8.4 compatible formatting of doubles} precision \
2952    {expr {1e-76}} \
2953    9.9999999999999993e-77
2954test util-16.1.17.-75 {8.4 compatible formatting of doubles} precision \
2955    {expr {1e-75}} \
2956    9.9999999999999996e-76
2957test util-16.1.17.-74 {8.4 compatible formatting of doubles} precision \
2958    {expr {1e-74}} \
2959    9.9999999999999996e-75
2960test util-16.1.17.-73 {8.4 compatible formatting of doubles} precision \
2961    {expr {1e-73}} \
2962    1e-73
2963test util-16.1.17.-72 {8.4 compatible formatting of doubles} precision \
2964    {expr {1e-72}} \
2965    9.9999999999999997e-73
2966test util-16.1.17.-71 {8.4 compatible formatting of doubles} precision \
2967    {expr {1e-71}} \
2968    9.9999999999999992e-72
2969test util-16.1.17.-70 {8.4 compatible formatting of doubles} precision \
2970    {expr {1e-70}} \
2971    1e-70
2972test util-16.1.17.-69 {8.4 compatible formatting of doubles} precision \
2973    {expr {1e-69}} \
2974    9.9999999999999996e-70
2975test util-16.1.17.-68 {8.4 compatible formatting of doubles} precision \
2976    {expr {1e-68}} \
2977    1.0000000000000001e-68
2978test util-16.1.17.-67 {8.4 compatible formatting of doubles} precision \
2979    {expr {1e-67}} \
2980    9.9999999999999994e-68
2981test util-16.1.17.-66 {8.4 compatible formatting of doubles} precision \
2982    {expr {1e-66}} \
2983    9.9999999999999998e-67
2984test util-16.1.17.-65 {8.4 compatible formatting of doubles} precision \
2985    {expr {1e-65}} \
2986    9.9999999999999992e-66
2987test util-16.1.17.-64 {8.4 compatible formatting of doubles} precision \
2988    {expr {1e-64}} \
2989    9.9999999999999997e-65
2990test util-16.1.17.-63 {8.4 compatible formatting of doubles} precision \
2991    {expr {1e-63}} \
2992    1.0000000000000001e-63
2993test util-16.1.17.-62 {8.4 compatible formatting of doubles} precision \
2994    {expr {1e-62}} \
2995    1e-62
2996test util-16.1.17.-61 {8.4 compatible formatting of doubles} precision \
2997    {expr {1e-61}} \
2998    1e-61
2999test util-16.1.17.-60 {8.4 compatible formatting of doubles} precision \
3000    {expr {1e-60}} \
3001    9.9999999999999997e-61
3002test util-16.1.17.-59 {8.4 compatible formatting of doubles} precision \
3003    {expr {1e-59}} \
3004    1e-59
3005test util-16.1.17.-58 {8.4 compatible formatting of doubles} precision \
3006    {expr {1e-58}} \
3007    1e-58
3008test util-16.1.17.-57 {8.4 compatible formatting of doubles} precision \
3009    {expr {1e-57}} \
3010    9.9999999999999995e-58
3011test util-16.1.17.-56 {8.4 compatible formatting of doubles} precision \
3012    {expr {1e-56}} \
3013    1e-56
3014test util-16.1.17.-55 {8.4 compatible formatting of doubles} precision \
3015    {expr {1e-55}} \
3016    9.9999999999999999e-56
3017test util-16.1.17.-54 {8.4 compatible formatting of doubles} precision \
3018    {expr {1e-54}} \
3019    1e-54
3020test util-16.1.17.-53 {8.4 compatible formatting of doubles} precision \
3021    {expr {1e-53}} \
3022    1e-53
3023test util-16.1.17.-52 {8.4 compatible formatting of doubles} precision \
3024    {expr {1e-52}} \
3025    1e-52
3026test util-16.1.17.-51 {8.4 compatible formatting of doubles} precision \
3027    {expr {1e-51}} \
3028    1e-51
3029test util-16.1.17.-50 {8.4 compatible formatting of doubles} precision \
3030    {expr {1e-50}} \
3031    1e-50
3032test util-16.1.17.-49 {8.4 compatible formatting of doubles} precision \
3033    {expr {1e-49}} \
3034    9.9999999999999994e-50
3035test util-16.1.17.-48 {8.4 compatible formatting of doubles} precision \
3036    {expr {1e-48}} \
3037    9.9999999999999997e-49
3038test util-16.1.17.-47 {8.4 compatible formatting of doubles} precision \
3039    {expr {1e-47}} \
3040    9.9999999999999997e-48
3041test util-16.1.17.-46 {8.4 compatible formatting of doubles} precision \
3042    {expr {1e-46}} \
3043    1e-46
3044test util-16.1.17.-45 {8.4 compatible formatting of doubles} precision \
3045    {expr {1e-45}} \
3046    9.9999999999999998e-46
3047test util-16.1.17.-44 {8.4 compatible formatting of doubles} precision \
3048    {expr {1e-44}} \
3049    9.9999999999999995e-45
3050test util-16.1.17.-43 {8.4 compatible formatting of doubles} precision \
3051    {expr {1e-43}} \
3052    1.0000000000000001e-43
3053test util-16.1.17.-42 {8.4 compatible formatting of doubles} precision \
3054    {expr {1e-42}} \
3055    1e-42
3056test util-16.1.17.-41 {8.4 compatible formatting of doubles} precision \
3057    {expr {1e-41}} \
3058    1e-41
3059test util-16.1.17.-40 {8.4 compatible formatting of doubles} precision \
3060    {expr {1e-40}} \
3061    9.9999999999999993e-41
3062test util-16.1.17.-39 {8.4 compatible formatting of doubles} precision \
3063    {expr {1e-39}} \
3064    9.9999999999999993e-40
3065test util-16.1.17.-38 {8.4 compatible formatting of doubles} precision \
3066    {expr {1e-38}} \
3067    9.9999999999999996e-39
3068test util-16.1.17.-37 {8.4 compatible formatting of doubles} precision \
3069    {expr {1e-37}} \
3070    1.0000000000000001e-37
3071test util-16.1.17.-36 {8.4 compatible formatting of doubles} precision \
3072    {expr {1e-36}} \
3073    9.9999999999999994e-37
3074test util-16.1.17.-35 {8.4 compatible formatting of doubles} precision \
3075    {expr {1e-35}} \
3076    1e-35
3077test util-16.1.17.-34 {8.4 compatible formatting of doubles} precision \
3078    {expr {1e-34}} \
3079    9.9999999999999993e-35
3080test util-16.1.17.-33 {8.4 compatible formatting of doubles} precision \
3081    {expr {1e-33}} \
3082    1.0000000000000001e-33
3083test util-16.1.17.-32 {8.4 compatible formatting of doubles} precision \
3084    {expr {1e-32}} \
3085    1.0000000000000001e-32
3086test util-16.1.17.-31 {8.4 compatible formatting of doubles} precision \
3087    {expr {1e-31}} \
3088    1.0000000000000001e-31
3089test util-16.1.17.-30 {8.4 compatible formatting of doubles} precision \
3090    {expr {1e-30}} \
3091    1.0000000000000001e-30
3092test util-16.1.17.-29 {8.4 compatible formatting of doubles} precision \
3093    {expr {1e-29}} \
3094    9.9999999999999994e-30
3095test util-16.1.17.-28 {8.4 compatible formatting of doubles} precision \
3096    {expr {1e-28}} \
3097    9.9999999999999997e-29
3098test util-16.1.17.-27 {8.4 compatible formatting of doubles} precision \
3099    {expr {1e-27}} \
3100    1e-27
3101test util-16.1.17.-26 {8.4 compatible formatting of doubles} precision \
3102    {expr {1e-26}} \
3103    1e-26
3104test util-16.1.17.-25 {8.4 compatible formatting of doubles} precision \
3105    {expr {1e-25}} \
3106    1e-25
3107test util-16.1.17.-24 {8.4 compatible formatting of doubles} precision \
3108    {expr {1e-24}} \
3109    9.9999999999999992e-25
3110test util-16.1.17.-23 {8.4 compatible formatting of doubles} precision \
3111    {expr {1e-23}} \
3112    9.9999999999999996e-24
3113test util-16.1.17.-22 {8.4 compatible formatting of doubles} precision \
3114    {expr {1e-22}} \
3115    1e-22
3116test util-16.1.17.-21 {8.4 compatible formatting of doubles} precision \
3117    {expr {1e-21}} \
3118    9.9999999999999991e-22
3119test util-16.1.17.-20 {8.4 compatible formatting of doubles} precision \
3120    {expr {1e-20}} \
3121    9.9999999999999995e-21
3122test util-16.1.17.-19 {8.4 compatible formatting of doubles} precision \
3123    {expr {1e-19}} \
3124    9.9999999999999998e-20
3125test util-16.1.17.-18 {8.4 compatible formatting of doubles} precision \
3126    {expr {1e-18}} \
3127    1.0000000000000001e-18
3128test util-16.1.17.-17 {8.4 compatible formatting of doubles} precision \
3129    {expr {1e-17}} \
3130    1.0000000000000001e-17
3131test util-16.1.17.-16 {8.4 compatible formatting of doubles} precision \
3132    {expr {1e-16}} \
3133    9.9999999999999998e-17
3134test util-16.1.17.-15 {8.4 compatible formatting of doubles} precision \
3135    {expr {1e-15}} \
3136    1.0000000000000001e-15
3137test util-16.1.17.-14 {8.4 compatible formatting of doubles} precision \
3138    {expr {1e-14}} \
3139    1e-14
3140test util-16.1.17.-13 {8.4 compatible formatting of doubles} precision \
3141    {expr {1e-13}} \
3142    1e-13
3143test util-16.1.17.-12 {8.4 compatible formatting of doubles} precision \
3144    {expr {1e-12}} \
3145    9.9999999999999998e-13
3146test util-16.1.17.-11 {8.4 compatible formatting of doubles} precision \
3147    {expr {1e-11}} \
3148    9.9999999999999994e-12
3149test util-16.1.17.-10 {8.4 compatible formatting of doubles} precision \
3150    {expr {1e-10}} \
3151    1e-10
3152test util-16.1.17.-9 {8.4 compatible formatting of doubles} precision \
3153    {expr {1e-9}} \
3154    1.0000000000000001e-09
3155test util-16.1.17.-8 {8.4 compatible formatting of doubles} precision \
3156    {expr {1e-8}} \
3157    1e-08
3158test util-16.1.17.-7 {8.4 compatible formatting of doubles} precision \
3159    {expr {1e-7}} \
3160    9.9999999999999995e-08
3161test util-16.1.17.-6 {8.4 compatible formatting of doubles} precision \
3162    {expr {1e-6}} \
3163    9.9999999999999995e-07
3164test util-16.1.17.-5 {8.4 compatible formatting of doubles} precision \
3165    {expr {1e-5}} \
3166    1.0000000000000001e-05
3167test util-16.1.17.-4 {8.4 compatible formatting of doubles} precision \
3168    {expr {1e-4}} \
3169    0.0001
3170test util-16.1.17.-3 {8.4 compatible formatting of doubles} precision \
3171    {expr {1e-3}} \
3172    0.001
3173test util-16.1.17.-2 {8.4 compatible formatting of doubles} precision \
3174    {expr {1e-2}} \
3175    0.01
3176test util-16.1.17.-1 {8.4 compatible formatting of doubles} precision \
3177    {expr {1e-1}} \
3178    0.10000000000000001
3179test util-16.1.17.0 {8.4 compatible formatting of doubles} precision \
3180    {expr {1e0}} \
3181    1.0
3182test util-16.1.17.1 {8.4 compatible formatting of doubles} precision \
3183    {expr {1e1}} \
3184    10.0
3185test util-16.1.17.2 {8.4 compatible formatting of doubles} precision \
3186    {expr {1e2}} \
3187    100.0
3188test util-16.1.17.3 {8.4 compatible formatting of doubles} precision \
3189    {expr {1e3}} \
3190    1000.0
3191test util-16.1.17.4 {8.4 compatible formatting of doubles} precision \
3192    {expr {1e4}} \
3193    10000.0
3194test util-16.1.17.5 {8.4 compatible formatting of doubles} precision \
3195    {expr {1e5}} \
3196    100000.0
3197test util-16.1.17.6 {8.4 compatible formatting of doubles} precision \
3198    {expr {1e6}} \
3199    1000000.0
3200test util-16.1.17.7 {8.4 compatible formatting of doubles} precision \
3201    {expr {1e7}} \
3202    10000000.0
3203test util-16.1.17.8 {8.4 compatible formatting of doubles} precision \
3204    {expr {1e8}} \
3205    100000000.0
3206test util-16.1.17.9 {8.4 compatible formatting of doubles} precision \
3207    {expr {1e9}} \
3208    1000000000.0
3209test util-16.1.17.10 {8.4 compatible formatting of doubles} precision \
3210    {expr {1e10}} \
3211    10000000000.0
3212test util-16.1.17.11 {8.4 compatible formatting of doubles} precision \
3213    {expr {1e11}} \
3214    100000000000.0
3215test util-16.1.17.12 {8.4 compatible formatting of doubles} precision \
3216    {expr {1e12}} \
3217    1000000000000.0
3218test util-16.1.17.13 {8.4 compatible formatting of doubles} precision \
3219    {expr {1e13}} \
3220    10000000000000.0
3221test util-16.1.17.14 {8.4 compatible formatting of doubles} precision \
3222    {expr {1e14}} \
3223    100000000000000.0
3224test util-16.1.17.15 {8.4 compatible formatting of doubles} precision \
3225    {expr {1e15}} \
3226    1000000000000000.0
3227test util-16.1.17.16 {8.4 compatible formatting of doubles} precision \
3228    {expr {1e16}} \
3229    10000000000000000.0
3230test util-16.1.17.17 {8.4 compatible formatting of doubles} precision \
3231    {expr {1e17}} \
3232    1e+17
3233test util-16.1.17.18 {8.4 compatible formatting of doubles} precision \
3234    {expr {1e18}} \
3235    1e+18
3236test util-16.1.17.19 {8.4 compatible formatting of doubles} precision \
3237    {expr {1e19}} \
3238    1e+19
3239test util-16.1.17.20 {8.4 compatible formatting of doubles} precision \
3240    {expr {1e20}} \
3241    1e+20
3242test util-16.1.17.21 {8.4 compatible formatting of doubles} precision \
3243    {expr {1e21}} \
3244    1e+21
3245test util-16.1.17.22 {8.4 compatible formatting of doubles} precision \
3246    {expr {1e22}} \
3247    1e+22
3248test util-16.1.17.23 {8.4 compatible formatting of doubles} precision \
3249    {expr {1e23}} \
3250    9.9999999999999992e+22
3251test util-16.1.17.24 {8.4 compatible formatting of doubles} precision \
3252    {expr {1e24}} \
3253    9.9999999999999998e+23
3254test util-16.1.17.25 {8.4 compatible formatting of doubles} precision \
3255    {expr {1e25}} \
3256    1.0000000000000001e+25
3257test util-16.1.17.26 {8.4 compatible formatting of doubles} precision \
3258    {expr {1e26}} \
3259    1e+26
3260test util-16.1.17.27 {8.4 compatible formatting of doubles} precision \
3261    {expr {1e27}} \
3262    1e+27
3263test util-16.1.17.28 {8.4 compatible formatting of doubles} precision \
3264    {expr {1e28}} \
3265    9.9999999999999996e+27
3266test util-16.1.17.29 {8.4 compatible formatting of doubles} precision \
3267    {expr {1e29}} \
3268    9.9999999999999991e+28
3269test util-16.1.17.30 {8.4 compatible formatting of doubles} precision \
3270    {expr {1e30}} \
3271    1e+30
3272test util-16.1.17.31 {8.4 compatible formatting of doubles} precision \
3273    {expr {1e31}} \
3274    9.9999999999999996e+30
3275test util-16.1.17.32 {8.4 compatible formatting of doubles} precision \
3276    {expr {1e32}} \
3277    1.0000000000000001e+32
3278test util-16.1.17.33 {8.4 compatible formatting of doubles} precision \
3279    {expr {1e33}} \
3280    9.9999999999999995e+32
3281test util-16.1.17.34 {8.4 compatible formatting of doubles} precision \
3282    {expr {1e34}} \
3283    9.9999999999999995e+33
3284test util-16.1.17.35 {8.4 compatible formatting of doubles} precision \
3285    {expr {1e35}} \
3286    9.9999999999999997e+34
3287test util-16.1.17.36 {8.4 compatible formatting of doubles} precision \
3288    {expr {1e36}} \
3289    1e+36
3290test util-16.1.17.37 {8.4 compatible formatting of doubles} precision \
3291    {expr {1e37}} \
3292    9.9999999999999995e+36
3293test util-16.1.17.38 {8.4 compatible formatting of doubles} precision \
3294    {expr {1e38}} \
3295    9.9999999999999998e+37
3296test util-16.1.17.39 {8.4 compatible formatting of doubles} precision \
3297    {expr {1e39}} \
3298    9.9999999999999994e+38
3299test util-16.1.17.40 {8.4 compatible formatting of doubles} precision \
3300    {expr {1e40}} \
3301    1e+40
3302test util-16.1.17.41 {8.4 compatible formatting of doubles} precision \
3303    {expr {1e41}} \
3304    1e+41
3305test util-16.1.17.42 {8.4 compatible formatting of doubles} precision \
3306    {expr {1e42}} \
3307    1e+42
3308test util-16.1.17.43 {8.4 compatible formatting of doubles} precision \
3309    {expr {1e43}} \
3310    1e+43
3311test util-16.1.17.44 {8.4 compatible formatting of doubles} precision \
3312    {expr {1e44}} \
3313    1.0000000000000001e+44
3314test util-16.1.17.45 {8.4 compatible formatting of doubles} precision \
3315    {expr {1e45}} \
3316    9.9999999999999993e+44
3317test util-16.1.17.46 {8.4 compatible formatting of doubles} precision \
3318    {expr {1e46}} \
3319    9.9999999999999999e+45
3320test util-16.1.17.47 {8.4 compatible formatting of doubles} precision \
3321    {expr {1e47}} \
3322    1e+47
3323test util-16.1.17.48 {8.4 compatible formatting of doubles} precision \
3324    {expr {1e48}} \
3325    1e+48
3326test util-16.1.17.49 {8.4 compatible formatting of doubles} precision \
3327    {expr {1e49}} \
3328    9.9999999999999995e+48
3329test util-16.1.17.50 {8.4 compatible formatting of doubles} precision \
3330    {expr {1e50}} \
3331    1.0000000000000001e+50
3332test util-16.1.17.51 {8.4 compatible formatting of doubles} precision \
3333    {expr {1e51}} \
3334    9.9999999999999999e+50
3335test util-16.1.17.52 {8.4 compatible formatting of doubles} precision \
3336    {expr {1e52}} \
3337    9.9999999999999999e+51
3338test util-16.1.17.53 {8.4 compatible formatting of doubles} precision \
3339    {expr {1e53}} \
3340    9.9999999999999999e+52
3341test util-16.1.17.54 {8.4 compatible formatting of doubles} precision \
3342    {expr {1e54}} \
3343    1.0000000000000001e+54
3344test util-16.1.17.55 {8.4 compatible formatting of doubles} precision \
3345    {expr {1e55}} \
3346    1e+55
3347test util-16.1.17.56 {8.4 compatible formatting of doubles} precision \
3348    {expr {1e56}} \
3349    1.0000000000000001e+56
3350test util-16.1.17.57 {8.4 compatible formatting of doubles} precision \
3351    {expr {1e57}} \
3352    1e+57
3353test util-16.1.17.58 {8.4 compatible formatting of doubles} precision \
3354    {expr {1e58}} \
3355    9.9999999999999994e+57
3356test util-16.1.17.59 {8.4 compatible formatting of doubles} precision \
3357    {expr {1e59}} \
3358    9.9999999999999997e+58
3359test util-16.1.17.60 {8.4 compatible formatting of doubles} precision \
3360    {expr {1e60}} \
3361    9.9999999999999995e+59
3362test util-16.1.17.61 {8.4 compatible formatting of doubles} precision \
3363    {expr {1e61}} \
3364    9.9999999999999995e+60
3365test util-16.1.17.62 {8.4 compatible formatting of doubles} precision \
3366    {expr {1e62}} \
3367    1e+62
3368test util-16.1.17.63 {8.4 compatible formatting of doubles} precision \
3369    {expr {1e63}} \
3370    1.0000000000000001e+63
3371test util-16.1.17.64 {8.4 compatible formatting of doubles} precision \
3372    {expr {1e64}} \
3373    1e+64
3374test util-16.1.17.65 {8.4 compatible formatting of doubles} precision \
3375    {expr {1e65}} \
3376    9.9999999999999999e+64
3377test util-16.1.17.66 {8.4 compatible formatting of doubles} precision \
3378    {expr {1e66}} \
3379    9.9999999999999995e+65
3380test util-16.1.17.67 {8.4 compatible formatting of doubles} precision \
3381    {expr {1e67}} \
3382    9.9999999999999998e+66
3383test util-16.1.17.68 {8.4 compatible formatting of doubles} precision \
3384    {expr {1e68}} \
3385    9.9999999999999995e+67
3386test util-16.1.17.69 {8.4 compatible formatting of doubles} precision \
3387    {expr {1e69}} \
3388    1.0000000000000001e+69
3389test util-16.1.17.70 {8.4 compatible formatting of doubles} precision \
3390    {expr {1e70}} \
3391    1.0000000000000001e+70
3392test util-16.1.17.71 {8.4 compatible formatting of doubles} precision \
3393    {expr {1e71}} \
3394    1e+71
3395test util-16.1.17.72 {8.4 compatible formatting of doubles} precision \
3396    {expr {1e72}} \
3397    9.9999999999999994e+71
3398test util-16.1.17.73 {8.4 compatible formatting of doubles} precision \
3399    {expr {1e73}} \
3400    9.9999999999999998e+72
3401test util-16.1.17.74 {8.4 compatible formatting of doubles} precision \
3402    {expr {1e74}} \
3403    9.9999999999999995e+73
3404test util-16.1.17.75 {8.4 compatible formatting of doubles} precision \
3405    {expr {1e75}} \
3406    9.9999999999999993e+74
3407test util-16.1.17.76 {8.4 compatible formatting of doubles} precision \
3408    {expr {1e76}} \
3409    1e+76
3410test util-16.1.17.77 {8.4 compatible formatting of doubles} precision \
3411    {expr {1e77}} \
3412    9.9999999999999998e+76
3413test util-16.1.17.78 {8.4 compatible formatting of doubles} precision \
3414    {expr {1e78}} \
3415    1e+78
3416test util-16.1.17.79 {8.4 compatible formatting of doubles} precision \
3417    {expr {1e79}} \
3418    9.9999999999999997e+78
3419test util-16.1.17.80 {8.4 compatible formatting of doubles} precision \
3420    {expr {1e80}} \
3421    1e+80
3422test util-16.1.17.81 {8.4 compatible formatting of doubles} precision \
3423    {expr {1e81}} \
3424    9.9999999999999992e+80
3425test util-16.1.17.82 {8.4 compatible formatting of doubles} precision \
3426    {expr {1e82}} \
3427    9.9999999999999996e+81
3428test util-16.1.17.83 {8.4 compatible formatting of doubles} precision \
3429    {expr {1e83}} \
3430    1e+83
3431test util-16.1.17.84 {8.4 compatible formatting of doubles} precision \
3432    {expr {1e84}} \
3433    1.0000000000000001e+84
3434test util-16.1.17.85 {8.4 compatible formatting of doubles} precision \
3435    {expr {1e85}} \
3436    1e+85
3437test util-16.1.17.86 {8.4 compatible formatting of doubles} precision \
3438    {expr {1e86}} \
3439    1e+86
3440test util-16.1.17.87 {8.4 compatible formatting of doubles} precision \
3441    {expr {1e87}} \
3442    9.9999999999999996e+86
3443test util-16.1.17.88 {8.4 compatible formatting of doubles} precision \
3444    {expr {1e88}} \
3445    9.9999999999999996e+87
3446test util-16.1.17.89 {8.4 compatible formatting of doubles} precision \
3447    {expr {1e89}} \
3448    9.9999999999999999e+88
3449test util-16.1.17.90 {8.4 compatible formatting of doubles} precision \
3450    {expr {1e90}} \
3451    9.9999999999999997e+89
3452test util-16.1.17.91 {8.4 compatible formatting of doubles} precision \
3453    {expr {1e91}} \
3454    1.0000000000000001e+91
3455test util-16.1.17.92 {8.4 compatible formatting of doubles} precision \
3456    {expr {1e92}} \
3457    1e+92
3458test util-16.1.17.93 {8.4 compatible formatting of doubles} precision \
3459    {expr {1e93}} \
3460    1e+93
3461test util-16.1.17.94 {8.4 compatible formatting of doubles} precision \
3462    {expr {1e94}} \
3463    1e+94
3464test util-16.1.17.95 {8.4 compatible formatting of doubles} precision \
3465    {expr {1e95}} \
3466    1e+95
3467test util-16.1.17.96 {8.4 compatible formatting of doubles} precision \
3468    {expr {1e96}} \
3469    1e+96
3470test util-16.1.17.97 {8.4 compatible formatting of doubles} precision \
3471    {expr {1e97}} \
3472    1.0000000000000001e+97
3473test util-16.1.17.98 {8.4 compatible formatting of doubles} precision \
3474    {expr {1e98}} \
3475    1e+98
3476test util-16.1.17.99 {8.4 compatible formatting of doubles} precision \
3477    {expr {1e99}} \
3478    9.9999999999999997e+98
3479test util-16.1.17.100 {8.4 compatible formatting of doubles} precision \
3480    {expr {1e100}} \
3481    1e+100
3482test util-16.1.17.101 {8.4 compatible formatting of doubles} precision \
3483    {expr {1e101}} \
3484    9.9999999999999998e+100
3485test util-16.1.17.102 {8.4 compatible formatting of doubles} precision \
3486    {expr {1e102}} \
3487    9.9999999999999998e+101
3488test util-16.1.17.103 {8.4 compatible formatting of doubles} precision \
3489    {expr {1e103}} \
3490    1e+103
3491test util-16.1.17.104 {8.4 compatible formatting of doubles} precision \
3492    {expr {1e104}} \
3493    1e+104
3494test util-16.1.17.105 {8.4 compatible formatting of doubles} precision \
3495    {expr {1e105}} \
3496    9.9999999999999994e+104
3497test util-16.1.17.106 {8.4 compatible formatting of doubles} precision \
3498    {expr {1e106}} \
3499    1.0000000000000001e+106
3500test util-16.1.17.107 {8.4 compatible formatting of doubles} precision \
3501    {expr {1e107}} \
3502    9.9999999999999997e+106
3503test util-16.1.17.108 {8.4 compatible formatting of doubles} precision \
3504    {expr {1e108}} \
3505    1e+108
3506test util-16.1.17.109 {8.4 compatible formatting of doubles} precision \
3507    {expr {1e109}} \
3508    9.9999999999999998e+108
3509test util-16.1.17.110 {8.4 compatible formatting of doubles} precision \
3510    {expr {1e110}} \
3511    1e+110
3512test util-16.1.17.111 {8.4 compatible formatting of doubles} precision \
3513    {expr {1e111}} \
3514    9.9999999999999996e+110
3515test util-16.1.17.112 {8.4 compatible formatting of doubles} precision \
3516    {expr {1e112}} \
3517    9.9999999999999993e+111
3518test util-16.1.17.113 {8.4 compatible formatting of doubles} precision \
3519    {expr {1e113}} \
3520    1e+113
3521test util-16.1.17.114 {8.4 compatible formatting of doubles} precision \
3522    {expr {1e114}} \
3523    1e+114
3524test util-16.1.17.115 {8.4 compatible formatting of doubles} precision \
3525    {expr {1e115}} \
3526    1e+115
3527test util-16.1.17.116 {8.4 compatible formatting of doubles} precision \
3528    {expr {1e116}} \
3529    1e+116
3530test util-16.1.17.117 {8.4 compatible formatting of doubles} precision \
3531    {expr {1e117}} \
3532    1.0000000000000001e+117
3533test util-16.1.17.118 {8.4 compatible formatting of doubles} precision \
3534    {expr {1e118}} \
3535    9.9999999999999997e+117
3536test util-16.1.17.119 {8.4 compatible formatting of doubles} precision \
3537    {expr {1e119}} \
3538    9.9999999999999994e+118
3539test util-16.1.17.120 {8.4 compatible formatting of doubles} precision \
3540    {expr {1e120}} \
3541    9.9999999999999998e+119
3542test util-16.1.17.121 {8.4 compatible formatting of doubles} precision \
3543    {expr {1e121}} \
3544    1e+121
3545test util-16.1.17.122 {8.4 compatible formatting of doubles} precision \
3546    {expr {1e122}} \
3547    1e+122
3548test util-16.1.17.123 {8.4 compatible formatting of doubles} precision \
3549    {expr {1e123}} \
3550    9.9999999999999998e+122
3551test util-16.1.17.124 {8.4 compatible formatting of doubles} precision \
3552    {expr {1e124}} \
3553    9.9999999999999995e+123
3554test util-16.1.17.125 {8.4 compatible formatting of doubles} precision \
3555    {expr {1e125}} \
3556    9.9999999999999992e+124
3557test util-16.1.17.126 {8.4 compatible formatting of doubles} precision \
3558    {expr {1e126}} \
3559    9.9999999999999992e+125
3560test util-16.1.17.127 {8.4 compatible formatting of doubles} precision \
3561    {expr {1e127}} \
3562    9.9999999999999995e+126
3563test util-16.1.17.128 {8.4 compatible formatting of doubles} precision \
3564    {expr {1e128}} \
3565    1.0000000000000001e+128
3566test util-16.1.17.129 {8.4 compatible formatting of doubles} precision \
3567    {expr {1e129}} \
3568    1e+129
3569test util-16.1.17.130 {8.4 compatible formatting of doubles} precision \
3570    {expr {1e130}} \
3571    1.0000000000000001e+130
3572test util-16.1.17.131 {8.4 compatible formatting of doubles} precision \
3573    {expr {1e131}} \
3574    9.9999999999999991e+130
3575test util-16.1.17.132 {8.4 compatible formatting of doubles} precision \
3576    {expr {1e132}} \
3577    9.9999999999999999e+131
3578test util-16.1.17.133 {8.4 compatible formatting of doubles} precision \
3579    {expr {1e133}} \
3580    1e+133
3581test util-16.1.17.134 {8.4 compatible formatting of doubles} precision \
3582    {expr {1e134}} \
3583    9.9999999999999992e+133
3584test util-16.1.17.135 {8.4 compatible formatting of doubles} precision \
3585    {expr {1e135}} \
3586    9.9999999999999996e+134
3587test util-16.1.17.136 {8.4 compatible formatting of doubles} precision \
3588    {expr {1e136}} \
3589    1.0000000000000001e+136
3590test util-16.1.17.137 {8.4 compatible formatting of doubles} precision \
3591    {expr {1e137}} \
3592    1e+137
3593test util-16.1.17.138 {8.4 compatible formatting of doubles} precision \
3594    {expr {1e138}} \
3595    1e+138
3596test util-16.1.17.139 {8.4 compatible formatting of doubles} precision \
3597    {expr {1e139}} \
3598    1e+139
3599test util-16.1.17.140 {8.4 compatible formatting of doubles} precision \
3600    {expr {1e140}} \
3601    1.0000000000000001e+140
3602test util-16.1.17.141 {8.4 compatible formatting of doubles} precision \
3603    {expr {1e141}} \
3604    1e+141
3605test util-16.1.17.142 {8.4 compatible formatting of doubles} precision \
3606    {expr {1e142}} \
3607    1.0000000000000001e+142
3608test util-16.1.17.143 {8.4 compatible formatting of doubles} precision \
3609    {expr {1e143}} \
3610    1e+143
3611test util-16.1.17.144 {8.4 compatible formatting of doubles} precision \
3612    {expr {1e144}} \
3613    1e+144
3614test util-16.1.17.145 {8.4 compatible formatting of doubles} precision \
3615    {expr {1e145}} \
3616    9.9999999999999999e+144
3617test util-16.1.17.146 {8.4 compatible formatting of doubles} precision \
3618    {expr {1e146}} \
3619    9.9999999999999993e+145
3620test util-16.1.17.147 {8.4 compatible formatting of doubles} precision \
3621    {expr {1e147}} \
3622    9.9999999999999998e+146
3623test util-16.1.17.148 {8.4 compatible formatting of doubles} precision \
3624    {expr {1e148}} \
3625    1e+148
3626test util-16.1.17.149 {8.4 compatible formatting of doubles} precision \
3627    {expr {1e149}} \
3628    1e+149
3629test util-16.1.17.150 {8.4 compatible formatting of doubles} precision \
3630    {expr {1e150}} \
3631    9.9999999999999998e+149
3632test util-16.1.17.151 {8.4 compatible formatting of doubles} precision \
3633    {expr {1e151}} \
3634    1e+151
3635test util-16.1.17.152 {8.4 compatible formatting of doubles} precision \
3636    {expr {1e152}} \
3637    1e+152
3638test util-16.1.17.153 {8.4 compatible formatting of doubles} precision \
3639    {expr {1e153}} \
3640    1e+153
3641test util-16.1.17.154 {8.4 compatible formatting of doubles} precision \
3642    {expr {1e154}} \
3643    1e+154
3644test util-16.1.17.155 {8.4 compatible formatting of doubles} precision \
3645    {expr {1e155}} \
3646    1e+155
3647test util-16.1.17.156 {8.4 compatible formatting of doubles} precision \
3648    {expr {1e156}} \
3649    9.9999999999999998e+155
3650test util-16.1.17.157 {8.4 compatible formatting of doubles} precision \
3651    {expr {1e157}} \
3652    9.9999999999999998e+156
3653test util-16.1.17.158 {8.4 compatible formatting of doubles} precision \
3654    {expr {1e158}} \
3655    9.9999999999999995e+157
3656test util-16.1.17.159 {8.4 compatible formatting of doubles} precision \
3657    {expr {1e159}} \
3658    9.9999999999999993e+158
3659test util-16.1.17.160 {8.4 compatible formatting of doubles} precision \
3660    {expr {1e160}} \
3661    1e+160
3662test util-16.1.17.161 {8.4 compatible formatting of doubles} precision \
3663    {expr {1e161}} \
3664    1e+161
3665test util-16.1.17.162 {8.4 compatible formatting of doubles} precision \
3666    {expr {1e162}} \
3667    9.9999999999999994e+161
3668test util-16.1.17.163 {8.4 compatible formatting of doubles} precision \
3669    {expr {1e163}} \
3670    9.9999999999999994e+162
3671test util-16.1.17.164 {8.4 compatible formatting of doubles} precision \
3672    {expr {1e164}} \
3673    1e+164
3674test util-16.1.17.165 {8.4 compatible formatting of doubles} precision \
3675    {expr {1e165}} \
3676    9.999999999999999e+164
3677test util-16.1.17.166 {8.4 compatible formatting of doubles} precision \
3678    {expr {1e166}} \
3679    9.9999999999999994e+165
3680test util-16.1.17.167 {8.4 compatible formatting of doubles} precision \
3681    {expr {1e167}} \
3682    1e+167
3683test util-16.1.17.168 {8.4 compatible formatting of doubles} precision \
3684    {expr {1e168}} \
3685    9.9999999999999993e+167
3686test util-16.1.17.169 {8.4 compatible formatting of doubles} precision \
3687    {expr {1e169}} \
3688    9.9999999999999993e+168
3689test util-16.1.17.170 {8.4 compatible formatting of doubles} precision \
3690    {expr {1e170}} \
3691    1e+170
3692test util-16.1.17.171 {8.4 compatible formatting of doubles} precision \
3693    {expr {1e171}} \
3694    9.9999999999999995e+170
3695test util-16.1.17.172 {8.4 compatible formatting of doubles} precision \
3696    {expr {1e172}} \
3697    1.0000000000000001e+172
3698test util-16.1.17.173 {8.4 compatible formatting of doubles} precision \
3699    {expr {1e173}} \
3700    1e+173
3701test util-16.1.17.174 {8.4 compatible formatting of doubles} precision \
3702    {expr {1e174}} \
3703    1.0000000000000001e+174
3704test util-16.1.17.175 {8.4 compatible formatting of doubles} precision \
3705    {expr {1e175}} \
3706    9.9999999999999994e+174
3707test util-16.1.17.176 {8.4 compatible formatting of doubles} precision \
3708    {expr {1e176}} \
3709    1e+176
3710test util-16.1.17.177 {8.4 compatible formatting of doubles} precision \
3711    {expr {1e177}} \
3712    1e+177
3713test util-16.1.17.178 {8.4 compatible formatting of doubles} precision \
3714    {expr {1e178}} \
3715    1.0000000000000001e+178
3716test util-16.1.17.179 {8.4 compatible formatting of doubles} precision \
3717    {expr {1e179}} \
3718    9.9999999999999998e+178
3719test util-16.1.17.180 {8.4 compatible formatting of doubles} precision \
3720    {expr {1e180}} \
3721    1e+180
3722test util-16.1.17.181 {8.4 compatible formatting of doubles} precision \
3723    {expr {1e181}} \
3724    9.9999999999999992e+180
3725test util-16.1.17.182 {8.4 compatible formatting of doubles} precision \
3726    {expr {1e182}} \
3727    1.0000000000000001e+182
3728test util-16.1.17.183 {8.4 compatible formatting of doubles} precision \
3729    {expr {1e183}} \
3730    9.9999999999999995e+182
3731test util-16.1.17.184 {8.4 compatible formatting of doubles} precision \
3732    {expr {1e184}} \
3733    1e+184
3734test util-16.1.17.185 {8.4 compatible formatting of doubles} precision \
3735    {expr {1e185}} \
3736    9.9999999999999998e+184
3737test util-16.1.17.186 {8.4 compatible formatting of doubles} precision \
3738    {expr {1e186}} \
3739    9.9999999999999998e+185
3740test util-16.1.17.187 {8.4 compatible formatting of doubles} precision \
3741    {expr {1e187}} \
3742    9.9999999999999991e+186
3743test util-16.1.17.188 {8.4 compatible formatting of doubles} precision \
3744    {expr {1e188}} \
3745    1e+188
3746test util-16.1.17.189 {8.4 compatible formatting of doubles} precision \
3747    {expr {1e189}} \
3748    1e+189
3749test util-16.1.17.190 {8.4 compatible formatting of doubles} precision \
3750    {expr {1e190}} \
3751    1.0000000000000001e+190
3752test util-16.1.17.191 {8.4 compatible formatting of doubles} precision \
3753    {expr {1e191}} \
3754    1.0000000000000001e+191
3755test util-16.1.17.192 {8.4 compatible formatting of doubles} precision \
3756    {expr {1e192}} \
3757    1e+192
3758test util-16.1.17.193 {8.4 compatible formatting of doubles} precision \
3759    {expr {1e193}} \
3760    1.0000000000000001e+193
3761test util-16.1.17.194 {8.4 compatible formatting of doubles} precision \
3762    {expr {1e194}} \
3763    9.9999999999999994e+193
3764test util-16.1.17.195 {8.4 compatible formatting of doubles} precision \
3765    {expr {1e195}} \
3766    9.9999999999999998e+194
3767test util-16.1.17.196 {8.4 compatible formatting of doubles} precision \
3768    {expr {1e196}} \
3769    9.9999999999999995e+195
3770test util-16.1.17.197 {8.4 compatible formatting of doubles} precision \
3771    {expr {1e197}} \
3772    9.9999999999999995e+196
3773test util-16.1.17.198 {8.4 compatible formatting of doubles} precision \
3774    {expr {1e198}} \
3775    1e+198
3776test util-16.1.17.199 {8.4 compatible formatting of doubles} precision \
3777    {expr {1e199}} \
3778    1.0000000000000001e+199
3779test util-16.1.17.200 {8.4 compatible formatting of doubles} precision \
3780    {expr {1e200}} \
3781    9.9999999999999997e+199
3782test util-16.1.17.201 {8.4 compatible formatting of doubles} precision \
3783    {expr {1e201}} \
3784    1e+201
3785test util-16.1.17.202 {8.4 compatible formatting of doubles} precision \
3786    {expr {1e202}} \
3787    9.999999999999999e+201
3788test util-16.1.17.203 {8.4 compatible formatting of doubles} precision \
3789    {expr {1e203}} \
3790    9.9999999999999999e+202
3791test util-16.1.17.204 {8.4 compatible formatting of doubles} precision \
3792    {expr {1e204}} \
3793    9.9999999999999999e+203
3794test util-16.1.17.205 {8.4 compatible formatting of doubles} precision \
3795    {expr {1e205}} \
3796    1e+205
3797test util-16.1.17.206 {8.4 compatible formatting of doubles} precision \
3798    {expr {1e206}} \
3799    1e+206
3800test util-16.1.17.207 {8.4 compatible formatting of doubles} precision \
3801    {expr {1e207}} \
3802    1e+207
3803test util-16.1.17.208 {8.4 compatible formatting of doubles} precision \
3804    {expr {1e208}} \
3805    9.9999999999999998e+207
3806test util-16.1.17.209 {8.4 compatible formatting of doubles} precision \
3807    {expr {1e209}} \
3808    1.0000000000000001e+209
3809test util-16.1.17.210 {8.4 compatible formatting of doubles} precision \
3810    {expr {1e210}} \
3811    9.9999999999999993e+209
3812test util-16.1.17.211 {8.4 compatible formatting of doubles} precision \
3813    {expr {1e211}} \
3814    9.9999999999999996e+210
3815test util-16.1.17.212 {8.4 compatible formatting of doubles} precision \
3816    {expr {1e212}} \
3817    9.9999999999999991e+211
3818test util-16.1.17.213 {8.4 compatible formatting of doubles} precision \
3819    {expr {1e213}} \
3820    9.9999999999999998e+212
3821test util-16.1.17.214 {8.4 compatible formatting of doubles} precision \
3822    {expr {1e214}} \
3823    9.9999999999999995e+213
3824test util-16.1.17.215 {8.4 compatible formatting of doubles} precision \
3825    {expr {1e215}} \
3826    9.9999999999999991e+214
3827test util-16.1.17.216 {8.4 compatible formatting of doubles} precision \
3828    {expr {1e216}} \
3829    1e+216
3830test util-16.1.17.217 {8.4 compatible formatting of doubles} precision \
3831    {expr {1e217}} \
3832    9.9999999999999996e+216
3833test util-16.1.17.218 {8.4 compatible formatting of doubles} precision \
3834    {expr {1e218}} \
3835    1.0000000000000001e+218
3836test util-16.1.17.219 {8.4 compatible formatting of doubles} precision \
3837    {expr {1e219}} \
3838    9.9999999999999997e+218
3839test util-16.1.17.220 {8.4 compatible formatting of doubles} precision \
3840    {expr {1e220}} \
3841    1e+220
3842test util-16.1.17.221 {8.4 compatible formatting of doubles} precision \
3843    {expr {1e221}} \
3844    1e+221
3845test util-16.1.17.222 {8.4 compatible formatting of doubles} precision \
3846    {expr {1e222}} \
3847    1e+222
3848test util-16.1.17.223 {8.4 compatible formatting of doubles} precision \
3849    {expr {1e223}} \
3850    1e+223
3851test util-16.1.17.224 {8.4 compatible formatting of doubles} precision \
3852    {expr {1e224}} \
3853    9.9999999999999997e+223
3854test util-16.1.17.225 {8.4 compatible formatting of doubles} precision \
3855    {expr {1e225}} \
3856    9.9999999999999993e+224
3857test util-16.1.17.226 {8.4 compatible formatting of doubles} precision \
3858    {expr {1e226}} \
3859    9.9999999999999996e+225
3860test util-16.1.17.227 {8.4 compatible formatting of doubles} precision \
3861    {expr {1e227}} \
3862    1.0000000000000001e+227
3863test util-16.1.17.228 {8.4 compatible formatting of doubles} precision \
3864    {expr {1e228}} \
3865    9.9999999999999992e+227
3866test util-16.1.17.229 {8.4 compatible formatting of doubles} precision \
3867    {expr {1e229}} \
3868    9.9999999999999999e+228
3869test util-16.1.17.230 {8.4 compatible formatting of doubles} precision \
3870    {expr {1e230}} \
3871    1.0000000000000001e+230
3872test util-16.1.17.231 {8.4 compatible formatting of doubles} precision \
3873    {expr {1e231}} \
3874    1.0000000000000001e+231
3875test util-16.1.17.232 {8.4 compatible formatting of doubles} precision \
3876    {expr {1e232}} \
3877    1.0000000000000001e+232
3878test util-16.1.17.233 {8.4 compatible formatting of doubles} precision \
3879    {expr {1e233}} \
3880    9.9999999999999997e+232
3881test util-16.1.17.234 {8.4 compatible formatting of doubles} precision \
3882    {expr {1e234}} \
3883    1e+234
3884test util-16.1.17.235 {8.4 compatible formatting of doubles} precision \
3885    {expr {1e235}} \
3886    1.0000000000000001e+235
3887test util-16.1.17.236 {8.4 compatible formatting of doubles} precision \
3888    {expr {1e236}} \
3889    1.0000000000000001e+236
3890test util-16.1.17.237 {8.4 compatible formatting of doubles} precision \
3891    {expr {1e237}} \
3892    9.9999999999999994e+236
3893test util-16.1.17.238 {8.4 compatible formatting of doubles} precision \
3894    {expr {1e238}} \
3895    1e+238
3896test util-16.1.17.239 {8.4 compatible formatting of doubles} precision \
3897    {expr {1e239}} \
3898    9.9999999999999999e+238
3899test util-16.1.17.240 {8.4 compatible formatting of doubles} precision \
3900    {expr {1e240}} \
3901    1e+240
3902test util-16.1.17.241 {8.4 compatible formatting of doubles} precision \
3903    {expr {1e241}} \
3904    1.0000000000000001e+241
3905test util-16.1.17.242 {8.4 compatible formatting of doubles} precision \
3906    {expr {1e242}} \
3907    1.0000000000000001e+242
3908test util-16.1.17.243 {8.4 compatible formatting of doubles} precision \
3909    {expr {1e243}} \
3910    1.0000000000000001e+243
3911test util-16.1.17.244 {8.4 compatible formatting of doubles} precision \
3912    {expr {1e244}} \
3913    1.0000000000000001e+244
3914test util-16.1.17.245 {8.4 compatible formatting of doubles} precision \
3915    {expr {1e245}} \
3916    1e+245
3917test util-16.1.17.246 {8.4 compatible formatting of doubles} precision \
3918    {expr {1e246}} \
3919    1.0000000000000001e+246
3920test util-16.1.17.247 {8.4 compatible formatting of doubles} precision \
3921    {expr {1e247}} \
3922    9.9999999999999995e+246
3923test util-16.1.17.248 {8.4 compatible formatting of doubles} precision \
3924    {expr {1e248}} \
3925    1e+248
3926test util-16.1.17.249 {8.4 compatible formatting of doubles} precision \
3927    {expr {1e249}} \
3928    9.9999999999999992e+248
3929test util-16.1.17.250 {8.4 compatible formatting of doubles} precision \
3930    {expr {1e250}} \
3931    9.9999999999999992e+249
3932test util-16.1.17.251 {8.4 compatible formatting of doubles} precision \
3933    {expr {1e251}} \
3934    1e+251
3935test util-16.1.17.252 {8.4 compatible formatting of doubles} precision \
3936    {expr {1e252}} \
3937    1.0000000000000001e+252
3938test util-16.1.17.253 {8.4 compatible formatting of doubles} precision \
3939    {expr {1e253}} \
3940    9.9999999999999994e+252
3941test util-16.1.17.254 {8.4 compatible formatting of doubles} precision \
3942    {expr {1e254}} \
3943    9.9999999999999994e+253
3944test util-16.1.17.255 {8.4 compatible formatting of doubles} precision \
3945    {expr {1e255}} \
3946    9.9999999999999999e+254
3947test util-16.1.17.256 {8.4 compatible formatting of doubles} precision \
3948    {expr {1e256}} \
3949    1e+256
3950test util-16.1.17.257 {8.4 compatible formatting of doubles} precision \
3951    {expr {1e257}} \
3952    1e+257
3953test util-16.1.17.258 {8.4 compatible formatting of doubles} precision \
3954    {expr {1e258}} \
3955    1.0000000000000001e+258
3956test util-16.1.17.259 {8.4 compatible formatting of doubles} precision \
3957    {expr {1e259}} \
3958    9.9999999999999993e+258
3959test util-16.1.17.260 {8.4 compatible formatting of doubles} precision \
3960    {expr {1e260}} \
3961    1.0000000000000001e+260
3962test util-16.1.17.261 {8.4 compatible formatting of doubles} precision \
3963    {expr {1e261}} \
3964    9.9999999999999993e+260
3965test util-16.1.17.262 {8.4 compatible formatting of doubles} precision \
3966    {expr {1e262}} \
3967    1e+262
3968test util-16.1.17.263 {8.4 compatible formatting of doubles} precision \
3969    {expr {1e263}} \
3970    1e+263
3971test util-16.1.17.264 {8.4 compatible formatting of doubles} precision \
3972    {expr {1e264}} \
3973    1e+264
3974test util-16.1.17.265 {8.4 compatible formatting of doubles} precision \
3975    {expr {1e265}} \
3976    1.0000000000000001e+265
3977test util-16.1.17.266 {8.4 compatible formatting of doubles} precision \
3978    {expr {1e266}} \
3979    1e+266
3980test util-16.1.17.267 {8.4 compatible formatting of doubles} precision \
3981    {expr {1e267}} \
3982    9.9999999999999997e+266
3983test util-16.1.17.268 {8.4 compatible formatting of doubles} precision \
3984    {expr {1e268}} \
3985    9.9999999999999997e+267
3986test util-16.1.17.269 {8.4 compatible formatting of doubles} precision \
3987    {expr {1e269}} \
3988    1e+269
3989test util-16.1.17.270 {8.4 compatible formatting of doubles} precision \
3990    {expr {1e270}} \
3991    1e+270
3992test util-16.1.17.271 {8.4 compatible formatting of doubles} precision \
3993    {expr {1e271}} \
3994    9.9999999999999995e+270
3995test util-16.1.17.272 {8.4 compatible formatting of doubles} precision \
3996    {expr {1e272}} \
3997    1.0000000000000001e+272
3998test util-16.1.17.273 {8.4 compatible formatting of doubles} precision \
3999    {expr {1e273}} \
4000    9.9999999999999995e+272
4001test util-16.1.17.274 {8.4 compatible formatting of doubles} precision \
4002    {expr {1e274}} \
4003    9.9999999999999992e+273
4004test util-16.1.17.275 {8.4 compatible formatting of doubles} precision \
4005    {expr {1e275}} \
4006    9.9999999999999996e+274
4007test util-16.1.17.276 {8.4 compatible formatting of doubles} precision \
4008    {expr {1e276}} \
4009    1.0000000000000001e+276
4010test util-16.1.17.277 {8.4 compatible formatting of doubles} precision \
4011    {expr {1e277}} \
4012    1e+277
4013test util-16.1.17.278 {8.4 compatible formatting of doubles} precision \
4014    {expr {1e278}} \
4015    9.9999999999999996e+277
4016test util-16.1.17.279 {8.4 compatible formatting of doubles} precision \
4017    {expr {1e279}} \
4018    1.0000000000000001e+279
4019test util-16.1.17.280 {8.4 compatible formatting of doubles} precision \
4020    {expr {1e280}} \
4021    1e+280
4022test util-16.1.17.281 {8.4 compatible formatting of doubles} precision \
4023    {expr {1e281}} \
4024    1e+281
4025test util-16.1.17.282 {8.4 compatible formatting of doubles} precision \
4026    {expr {1e282}} \
4027    1e+282
4028test util-16.1.17.283 {8.4 compatible formatting of doubles} precision \
4029    {expr {1e283}} \
4030    9.9999999999999996e+282
4031test util-16.1.17.284 {8.4 compatible formatting of doubles} precision \
4032    {expr {1e284}} \
4033    1.0000000000000001e+284
4034test util-16.1.17.285 {8.4 compatible formatting of doubles} precision \
4035    {expr {1e285}} \
4036    9.9999999999999998e+284
4037test util-16.1.17.286 {8.4 compatible formatting of doubles} precision \
4038    {expr {1e286}} \
4039    1e+286
4040test util-16.1.17.287 {8.4 compatible formatting of doubles} precision \
4041    {expr {1e287}} \
4042    1.0000000000000001e+287
4043test util-16.1.17.288 {8.4 compatible formatting of doubles} precision \
4044    {expr {1e288}} \
4045    1e+288
4046test util-16.1.17.289 {8.4 compatible formatting of doubles} precision \
4047    {expr {1e289}} \
4048    1.0000000000000001e+289
4049test util-16.1.17.290 {8.4 compatible formatting of doubles} precision \
4050    {expr {1e290}} \
4051    1.0000000000000001e+290
4052test util-16.1.17.291 {8.4 compatible formatting of doubles} precision \
4053    {expr {1e291}} \
4054    9.9999999999999996e+290
4055test util-16.1.17.292 {8.4 compatible formatting of doubles} precision \
4056    {expr {1e292}} \
4057    1e+292
4058test util-16.1.17.293 {8.4 compatible formatting of doubles} precision \
4059    {expr {1e293}} \
4060    9.9999999999999992e+292
4061test util-16.1.17.294 {8.4 compatible formatting of doubles} precision \
4062    {expr {1e294}} \
4063    1.0000000000000001e+294
4064test util-16.1.17.295 {8.4 compatible formatting of doubles} precision \
4065    {expr {1e295}} \
4066    9.9999999999999998e+294
4067test util-16.1.17.296 {8.4 compatible formatting of doubles} precision \
4068    {expr {1e296}} \
4069    9.9999999999999998e+295
4070test util-16.1.17.297 {8.4 compatible formatting of doubles} precision \
4071    {expr {1e297}} \
4072    1e+297
4073test util-16.1.17.298 {8.4 compatible formatting of doubles} precision \
4074    {expr {1e298}} \
4075    9.9999999999999996e+297
4076test util-16.1.17.299 {8.4 compatible formatting of doubles} precision \
4077    {expr {1e299}} \
4078    1.0000000000000001e+299
4079test util-16.1.17.300 {8.4 compatible formatting of doubles} precision \
4080    {expr {1e300}} \
4081    1.0000000000000001e+300
4082test util-16.1.17.301 {8.4 compatible formatting of doubles} precision \
4083    {expr {1e301}} \
4084    1.0000000000000001e+301
4085test util-16.1.17.302 {8.4 compatible formatting of doubles} precision \
4086    {expr {1e302}} \
4087    1.0000000000000001e+302
4088test util-16.1.17.303 {8.4 compatible formatting of doubles} precision \
4089    {expr {1e303}} \
4090    1e+303
4091test util-16.1.17.304 {8.4 compatible formatting of doubles} precision \
4092    {expr {1e304}} \
4093    9.9999999999999994e+303
4094test util-16.1.17.305 {8.4 compatible formatting of doubles} precision \
4095    {expr {1e305}} \
4096    9.9999999999999994e+304
4097test util-16.1.17.306 {8.4 compatible formatting of doubles} precision \
4098    {expr {1e306}} \
4099    1e+306
4100test util-16.1.17.307 {8.4 compatible formatting of doubles} precision \
4101    {expr {1e307}} \
4102    9.9999999999999999e+306
4103
4104test util-17.1 {bankers' rounding [Bug 3349507]} {ieeeFloatingPoint} {
4105    set r {}
4106    foreach {input} {
4107	0x1ffffffffffffc000
4108	0x1ffffffffffffc800
4109	0x1ffffffffffffd000
4110	0x1ffffffffffffd800
4111	0x1ffffffffffffe000
4112	0x1ffffffffffffe800
4113	0x1fffffffffffff000
4114	0x1fffffffffffff800
4115    } {
4116	binary scan [binary format q [expr {double($input)}]] wu x
4117	lappend r [format %#llx $x]
4118	binary scan [binary format q [expr {double(-$input)}]] wu x
4119	lappend r [format %#llx $x]
4120    }
4121    set r
4122} [list {*}{
4123    0x43fffffffffffffc 0xc3fffffffffffffc
4124    0x43fffffffffffffc 0xc3fffffffffffffc
4125    0x43fffffffffffffd 0xc3fffffffffffffd
4126    0x43fffffffffffffe 0xc3fffffffffffffe
4127    0x43fffffffffffffe 0xc3fffffffffffffe
4128    0x43fffffffffffffe 0xc3fffffffffffffe
4129    0x43ffffffffffffff 0xc3ffffffffffffff
4130    0x4400000000000000 0xc400000000000000
4131}]
4132
4133test util-18.1 {Tcl_ObjPrintf} {testprint} {
4134    testprint %lld [expr {2**63-1}]
4135} {9223372036854775807}
4136
4137test util-18.2 {Tcl_ObjPrintf} {testprint} {
4138    testprint %I64d [expr {2**63-1}]
4139} {9223372036854775807}
4140
4141test util-18.3 {Tcl_ObjPrintf} {testprint} {
4142    testprint %qd [expr {2**63-1}]
4143} {9223372036854775807}
4144
4145test util-18.4 {Tcl_ObjPrintf} {testprint} {
4146    testprint %jd [expr {2**63-1}]
4147} {9223372036854775807}
4148
4149test util-18.5 {Tcl_ObjPrintf} {testprint} {
4150    testprint %lld [expr {-2**63}]
4151} {-9223372036854775808}
4152
4153test util-18.6 {Tcl_ObjPrintf} {testprint} {
4154    testprint %I64d [expr {-2**63}]
4155} {-9223372036854775808}
4156
4157test util-18.7 {Tcl_ObjPrintf} {testprint} {
4158    testprint %qd [expr {-2**63}]
4159} {-9223372036854775808}
4160
4161test util-18.8 {Tcl_ObjPrintf} {testprint} {
4162    testprint %jd [expr {-2**63}]
4163} {-9223372036854775808}
4164
4165test util-18.9 {Tcl_ObjPrintf} {testprint} {
4166    testprint "%I64d %I32d" [expr {-2**63+2}]
4167} {-9223372036854775806 2}
4168
4169test util-18.10 {Tcl_ObjPrintf} {testprint} {
4170    testprint "%I64d %p" 65535
4171} {65535 0xffff}
4172
4173test util-18.11 {Tcl_ObjPrintf} {testprint} {
4174    testprint "%I64d %td" 65536
4175} {65536 65536}
4176
4177test util-18.12 {Tcl_ObjPrintf} {testprint} {
4178    testprint "%I64d %Id" 65537
4179} {65537 65537}
4180
4181if {[catch {set ::tcl_precision $saved_precision}]} {
4182    unset ::tcl_precision
4183}
4184
4185# cleanup
4186::tcltest::cleanupTests
4187return
4188
4189# Local Variables:
4190# mode: tcl
4191# End:
4192