Files

2250 lines
66 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# This file is a Tcl script to test the code in the file tclUtil.c.
# This file is organized in the standard fashion for Tcl tests.
#
# Copyright © 1995-1998 Sun Microsystems, Inc.
# Copyright © 1998-1999 Scriptics Corporation.
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
if {"::tcltest" ni [namespace children]} {
package require tcltest 2.5
namespace import -force ::tcltest::*
}
::tcltest::loadTestedCommands
catch [list package require -exact tcl::test [info patchlevel]]
testConstraint controversialNaN 1
testConstraint testbytestring [llength [info commands testbytestring]]
testConstraint testdstring [llength [info commands testdstring]]
testConstraint testconcatobj [llength [info commands testconcatobj]]
testConstraint testdoubledigits [llength [info commands testdoubledigits]]
testConstraint testprint [llength [info commands testprint]]
testConstraint longIs64bit [expr {$tcl_platform(wordSize) == 8}]
# Big test for correct ordering of data in [expr]
proc testIEEE {} {
variable ieeeValues
binary scan [binary format dd -1.0 1.0] c* c
switch -exact -- $c {
{0 0 0 0 0 0 -16 -65 0 0 0 0 0 0 -16 63} {
# little endian
binary scan \x00\x00\x00\x00\x00\x00\xF0\xFF d \
ieeeValues(-Infinity)
binary scan \x00\x00\x00\x00\x00\x00\xF0\xBF d \
ieeeValues(-Normal)
binary scan \x00\x00\x00\x00\x00\x00\x08\x80 d \
ieeeValues(-Subnormal)
binary scan \x00\x00\x00\x00\x00\x00\x00\x80 d \
ieeeValues(-0)
binary scan \x00\x00\x00\x00\x00\x00\x00\x00 d \
ieeeValues(+0)
binary scan \x00\x00\x00\x00\x00\x00\x08\x00 d \
ieeeValues(+Subnormal)
binary scan \x00\x00\x00\x00\x00\x00\xF0\x3F d \
ieeeValues(+Normal)
binary scan \x00\x00\x00\x00\x00\x00\xF0\x7F d \
ieeeValues(+Infinity)
binary scan \x00\x00\x00\x00\x00\x00\xF8\x7F d \
ieeeValues(NaN)
binary scan \x00\x00\x00\x00\x00\x00\xF8\xFF d \
ieeeValues(-NaN)
binary scan \xEF\xCD\xAB\x89\x67\x45\xFB\xFF d \
ieeeValues(-NaN(3456789abcdef))
set ieeeValues(littleEndian) 1
return 1
}
{-65 -16 0 0 0 0 0 0 63 -16 0 0 0 0 0 0} {
binary scan \xFF\xF0\x00\x00\x00\x00\x00\x00 d \
ieeeValues(-Infinity)
binary scan \xBF\xF0\x00\x00\x00\x00\x00\x00 d \
ieeeValues(-Normal)
binary scan \x80\x08\x00\x00\x00\x00\x00\x00 d \
ieeeValues(-Subnormal)
binary scan \x80\x00\x00\x00\x00\x00\x00\x00 d \
ieeeValues(-0)
binary scan \x00\x00\x00\x00\x00\x00\x00\x00 d \
ieeeValues(+0)
binary scan \x00\x08\x00\x00\x00\x00\x00\x00 d \
ieeeValues(+Subnormal)
binary scan \x3F\xF0\x00\x00\x00\x00\x00\x00 d \
ieeeValues(+Normal)
binary scan \x7F\xF0\x00\x00\x00\x00\x00\x00 d \
ieeeValues(+Infinity)
binary scan \x7F\xF8\x00\x00\x00\x00\x00\x00 d \
ieeeValues(NaN)
binary scan \xFF\xF8\x00\x00\x00\x00\x00\x00 d \
ieeeValues(-NaN)
binary scan \xFF\xFB\x45\x67\x89\xAB\xCD\xEF d \
ieeeValues(-NaN(3456789abcdef))
set ieeeValues(littleEndian) 0
return 1
}
default {
return 0
}
}
}
testConstraint ieeeFloatingPoint [testIEEE]
proc convertDouble { x } {
variable ieeeValues
if { $ieeeValues(littleEndian) } {
binary scan [binary format w $x] d result
} else {
binary scan [binary format W $x] d result
}
return $result
}
proc verdonk_test {sig binexp shouldbe exp} {
regexp {([-+]?)([0-9a-f]+)} $sig -> signum sig
scan $sig %llx sig
if {$signum eq {-}} {
set signum [expr {1<<63}]
} else {
set signum 0
}
regexp {E([-+]?[0-9]+)} $binexp -> binexp
set word [expr {$signum | (($binexp + 0x3ff)<<52)|($sig & ~(1<<52))}]
binary scan [binary format w $word] q double
regexp {([-+])(\d+)_(\d+)\&} $shouldbe -> signum digits1 digits2
regexp {E([-+]\d+)} $exp -> decexp
incr decexp [expr {[string length $digits1] - 1}]
lassign [testdoubledigits $double [string length $digits1] e] \
outdigits decpt outsign
if {[string index $digits2 0] >= 5} {
incr digits1
}
if {$outsign != $signum || $outdigits != $digits1 || $decpt != $decexp} {
return -code error "result is ${outsign}0.${outdigits}E$decpt\
should be ${signum}0.${digits1}E$decexp"
}
}
test util-1.1 {TclFindElement procedure - binary element in middle of list} {
lindex {0 foo\x00help 1} 1
} "foo\x00help"
test util-1.2 {TclFindElement procedure - binary element at end of list} {
lindex {0 foo\x00help} 1
} "foo\x00help"
test util-2.1 {TclCopyAndCollapse procedure - normal string} {
lindex {0 foo} 1
} {foo}
test util-2.2 {TclCopyAndCollapse procedure - string with backslashes} {
lindex {0 foo\n\x00help 1} 1
} "foo\n\x00help"
test util-3.1 {Tcl_ScanCountedElement procedure - don't leave unmatched braces} {
# This test checks for a very tricky feature. Any list element
# generated with Tcl_ScanCountedElement and Tcl_ConvertElement must
# have the property that it can be enclosing in curly braces to make
# an embedded sub-list. If this property doesn't hold, then
# Tcl_DStringStartSublist doesn't work.
set x {}
lappend x "# \\\{ \\"
concat $x [llength "{$x}"]
} {\#\ \\\{\ \\ 1}
test util-3.2 {Tcl_ConverCountedElement procedure - quote leading '#'} {
list # # a
} {{#} # a}
test util-3.3 {Tcl_ConverCountedElement procedure - quote leading '#'} {
list #\{ # a
} {\#\{ # a}
test util-3.4 {Tcl_ConverCountedElement procedure - quote leading '#'} {
proc # {} {return #}
set result [eval [list #]]
rename # {}
set result
} {#}
test util-3.4.1 {Tcl_ConverCountedElement procedure - quote leading '#'} {
proc # {} {return #}
set cmd [list #]
append cmd "" ;# force string rep generation
set result [eval $cmd]
rename # {}
set result
} {#}
test util-3.5 {Tcl_ConverCountedElement procedure - quote leading '#'} {
proc #\{ {} {return #}
set result [eval [list #\{]]
rename #\{ {}
set result
} {#}
test util-3.5.1 {Tcl_ConverCountedElement procedure - quote leading '#'} {
proc #\{ {} {return #}
set cmd [list #\{]
append cmd "" ;# force string rep generation
set result [eval $cmd]
rename #\{ {}
set result
} {#}
test util-3.6 {Tcl_ConvertElement, Bug 3371644} {
interp create #\\
interp alias {} x #\\ concat
interp target {} x ;# Crash if bug not fixed
interp delete #\\
} {}
test util-4.1 {Tcl_ConcatObj - backslash-space at end of argument} {
concat a {b\ } c
} {a b\ c}
test util-4.2 {Tcl_ConcatObj - backslash-space at end of argument} {
concat a {b\ } c
} {a b\ c}
test util-4.3 {Tcl_ConcatObj - backslash-space at end of argument} {
concat a {b\\ } c
} {a b\\ c}
test util-4.4 {Tcl_ConcatObj - backslash-space at end of argument} {
concat a {b } c
} {a b c}
test util-4.5 {Tcl_ConcatObj - backslash-space at end of argument} {
concat a { } c
} {a c}
test util-4.6 {Tcl_ConcatObj - utf-8 sequence with "whitespace" char} {
# Check for Bug #227512. If this violates C isspace, then it returns \xC3.
concat \xE0
} \xE0
test util-4.7 {Tcl_ConcatObj - refCount safety} testconcatobj {
# Check for Bug #1447328 (actually, bugs in its original "fix"). One of the
# symptoms was Bug #2055782.
testconcatobj
} {}
test util-4.8 {Tcl_ConcatObj - [Bug 26649439c7]} {
concat [list foo] [list #]
} {foo {#}}
proc Wrapper_Tcl_StringMatch {pattern string} {
# Forces use of Tcl_StringMatch, not Tcl_UniCharCaseMatch
switch -glob -- $string $pattern {return 1} default {return 0}
}
test util-5.1 {Tcl_StringMatch} {
Wrapper_Tcl_StringMatch ab*c abc
} 1
test util-5.2 {Tcl_StringMatch} {
Wrapper_Tcl_StringMatch ab**c abc
} 1
test util-5.3 {Tcl_StringMatch} {
Wrapper_Tcl_StringMatch ab* abcdef
} 1
test util-5.4 {Tcl_StringMatch} {
Wrapper_Tcl_StringMatch *c abc
} 1
test util-5.5 {Tcl_StringMatch} {
Wrapper_Tcl_StringMatch *3*6*9 0123456789
} 1
test util-5.6 {Tcl_StringMatch} {
Wrapper_Tcl_StringMatch *3*6*9 01234567890
} 0
test util-5.7 {Tcl_StringMatch: UTF-8} {
Wrapper_Tcl_StringMatch *u 乏u
} 1
test util-5.8 {Tcl_StringMatch} {
Wrapper_Tcl_StringMatch a?c abc
} 1
test util-5.9 {Tcl_StringMatch: UTF-8} {
# skip one character in string
Wrapper_Tcl_StringMatch a?c a乏c
} 1
test util-5.10 {Tcl_StringMatch} {
Wrapper_Tcl_StringMatch a??c abc
} 0
test util-5.11 {Tcl_StringMatch} {
Wrapper_Tcl_StringMatch ?1??4???8? 0123456789
} 1
test util-5.12 {Tcl_StringMatch} {
Wrapper_Tcl_StringMatch {[abc]bc} abc
} 1
test util-5.13 {Tcl_StringMatch: UTF-8} {
# string += Tcl_UtfToUniChar(string, &ch);
Wrapper_Tcl_StringMatch "\[乏xy\]bc" "乏bc"
} 1
test util-5.14 {Tcl_StringMatch} {
# if ((*pattern == ']') || (*pattern == '\x00'))
# badly formed pattern
Wrapper_Tcl_StringMatch {[]} {[]}
} 0
test util-5.15 {Tcl_StringMatch} {
# if ((*pattern == ']') || (*pattern == '\x00'))
# badly formed pattern
Wrapper_Tcl_StringMatch {[} {[}
} 0
test util-5.16 {Tcl_StringMatch} {
Wrapper_Tcl_StringMatch {a[abc]c} abc
} 1
test util-5.17 {Tcl_StringMatch: UTF-8} {
# pattern += Tcl_UtfToUniChar(pattern, &endChar);
# get 1 UTF-8 character
Wrapper_Tcl_StringMatch "a\[a乏c]c" "a乏c"
} 1
test util-5.18 {Tcl_StringMatch: UTF-8} testbytestring {
# pattern += Tcl_UtfToUniChar(pattern, &endChar);
# proper advance: wrong answer would match on UTF trail byte of 乏
Wrapper_Tcl_StringMatch {a[a乏c]c} [testbytestring a\x8Fc]
} 0
test util-5.19 {Tcl_StringMatch: UTF-8} {
# pattern += Tcl_UtfToUniChar(pattern, &endChar);
# proper advance.
Wrapper_Tcl_StringMatch {a[a乏c]c} "acc"
} 1
test util-5.20 {Tcl_StringMatch} {
Wrapper_Tcl_StringMatch {a[xyz]c} abc
} 0
test util-5.21 {Tcl_StringMatch} {
Wrapper_Tcl_StringMatch {12[2-7]45} 12345
} 1
test util-5.22 {Tcl_StringMatch: UTF-8 range} {
Wrapper_Tcl_StringMatch "\[一-乏]" "0"
} 0
test util-5.23 {Tcl_StringMatch: UTF-8 range} {
Wrapper_Tcl_StringMatch "\[一-乏]" "丳"
} 1
test util-5.24 {Tcl_StringMatch: UTF-8 range} {
Wrapper_Tcl_StringMatch "\[一-乏]" "("
} 0
test util-5.25 {Tcl_StringMatch} {
Wrapper_Tcl_StringMatch {12[ab2-4cd]45} 12345
} 1
test util-5.26 {Tcl_StringMatch} {
Wrapper_Tcl_StringMatch {12[ab2-4cd]45} 12b45
} 1
test util-5.27 {Tcl_StringMatch} {
Wrapper_Tcl_StringMatch {12[ab2-4cd]45} 12d45
} 1
test util-5.28 {Tcl_StringMatch} {
Wrapper_Tcl_StringMatch {12[ab2-4cd]45} 12145
} 0
test util-5.29 {Tcl_StringMatch} {
Wrapper_Tcl_StringMatch {12[ab2-4cd]45} 12545
} 0
test util-5.30 {Tcl_StringMatch: forwards range} {
Wrapper_Tcl_StringMatch {[k-w]} "z"
} 0
test util-5.31 {Tcl_StringMatch: forwards range} {
Wrapper_Tcl_StringMatch {[k-w]} "w"
} 1
test util-5.32 {Tcl_StringMatch: forwards range} {
Wrapper_Tcl_StringMatch {[k-w]} "r"
} 1
test util-5.33 {Tcl_StringMatch: forwards range} {
Wrapper_Tcl_StringMatch {[k-w]} "k"
} 1
test util-5.34 {Tcl_StringMatch: forwards range} {
Wrapper_Tcl_StringMatch {[k-w]} "a"
} 0
test util-5.35 {Tcl_StringMatch: reverse range} {
Wrapper_Tcl_StringMatch {[w-k]} "z"
} 0
test util-5.36 {Tcl_StringMatch: reverse range} {
Wrapper_Tcl_StringMatch {[w-k]} "w"
} 1
test util-5.37 {Tcl_StringMatch: reverse range} {
Wrapper_Tcl_StringMatch {[w-k]} "r"
} 1
test util-5.38 {Tcl_StringMatch: reverse range} {
Wrapper_Tcl_StringMatch {[w-k]} "k"
} 1
test util-5.39 {Tcl_StringMatch: reverse range} {
Wrapper_Tcl_StringMatch {[w-k]} "a"
} 0
test util-5.40 {Tcl_StringMatch: skip correct number of ']'} {
Wrapper_Tcl_StringMatch {[A-]x} Ax
} 0
test util-5.41 {Tcl_StringMatch: skip correct number of ']'} {
Wrapper_Tcl_StringMatch {[A-]]x} Ax
} 1
test util-5.42 {Tcl_StringMatch: skip correct number of ']'} {
Wrapper_Tcl_StringMatch {[A-]]x} \xE1x
} 0
test util-5.43 {Tcl_StringMatch: skip correct number of ']'} {
Wrapper_Tcl_StringMatch \[A-]\xE1]x \xE1x
} 1
test util-5.44 {Tcl_StringMatch: skip correct number of ']'} {
Wrapper_Tcl_StringMatch {[A-]h]x} hx
} 1
test util-5.45 {Tcl_StringMatch} {
# if (*pattern == '\x00')
# badly formed pattern, still treats as a set
Wrapper_Tcl_StringMatch {[a} a
} 1
test util-5.46 {Tcl_StringMatch} {
Wrapper_Tcl_StringMatch {a\*b} a*b
} 1
test util-5.47 {Tcl_StringMatch} {
Wrapper_Tcl_StringMatch {a\*b} ab
} 0
test util-5.48 {Tcl_StringMatch} {
Wrapper_Tcl_StringMatch {a\*\?\[\]\\\x} "a*?\[\]\\x"
} 1
test util-5.49 {Tcl_StringMatch} {
Wrapper_Tcl_StringMatch ** ""
} 1
test util-5.50 {Tcl_StringMatch} {
Wrapper_Tcl_StringMatch *. ""
} 0
test util-5.51 {Tcl_StringMatch} {
Wrapper_Tcl_StringMatch "" ""
} 1
test util-5.52 {Tcl_StringMatch} {
Wrapper_Tcl_StringMatch \[a\x00 a\x80
} 0
test util-6.5 {Tcl_PrintDouble - make sure there's a decimal point} {
concat x[expr {2.0}]
} {x2.0}
test util-6.6 {Tcl_PrintDouble - make sure there's a decimal point} {
concat x[expr {3.0e98}]
} {x3e+98}
# This test always succeeded in the C locale anyway...
test util-8.1 {TclNeedSpace - correct utf-8 handling} {
# Bug 411825
# Note that this test relies on the fact that
# [interp target] calls on Tcl_AppendElement()
# which calls on TclNeedSpace(). If [interp target]
# is ever updated, this test will no longer test
# TclNeedSpace.
interp create 吠
interp create [list 吠 foo]
interp alias {} fooset [list 吠 foo] set
set result [interp target {} fooset]
interp delete 吠
set result
} "吠 foo"
test util-8.2 {TclNeedSpace - correct utf-8 handling} testdstring {
# Bug 411825
# This tests the same bug as the previous test, but
# should be more future-proof, as the DString
# operations will likely continue to call TclNeedSpace
testdstring free
testdstring append 吠 -1
testdstring element foo
llength [testdstring get]
} 2
test util-8.3 {TclNeedSpace - correct utf-8 handling} testdstring {
# Bug 411825 - new variant reported by Dossy Shiobara
testdstring free
testdstring append \xA0 -1
testdstring element foo
llength [testdstring get]
} 2
test util-8.4 {TclNeedSpace - correct utf-8 handling} testdstring {
# Another bug uncovered while fixing 411825
testdstring free
testdstring append {\ } -1
testdstring append \{ -1
testdstring element foo
llength [testdstring get]
} 2
test util-8.5 {TclNeedSpace - correct utf-8 handling} testdstring {
testdstring free
testdstring append {\\ } -1
testdstring element foo
list [llength [testdstring get]] [string length [testdstring get]]
} {2 6}
test util-8.6 {TclNeedSpace - correct utf-8 handling} testdstring {
testdstring free
testdstring append {\\ } -1
testdstring append \{ -1
testdstring element foo
testdstring append \} -1
list [llength [testdstring get]] [string length [testdstring get]]
} {2 8}
test util-8.7 {TclNeedSpace - watch out for escaped space} testdstring {
testdstring free
testdstring append {\ } -1
testdstring start
testdstring end
# Should make {\ {}}
list [llength [testdstring get]] [string index [testdstring get] 3]
} {2 \{}
test util-8.8 {TclNeedSpace - watch out for escaped space} testdstring {
testdstring free
testdstring append {\\ } -1
testdstring start
testdstring end
# Should make {\\ {}}
list [llength [testdstring get]] [string index [testdstring get] 3]
} {2 \{}
test util-8.9 {TclNeedSpace - watch out for escaped space} testdstring {
testdstring free
testdstring append {\\\ } -1
testdstring start
testdstring end
# Should make {\\\ {}}
list [llength [testdstring get]] [string index [testdstring get] 5]
} {2 \{}
test util-8.10 {TclNeedSpace - watch out for escaped space} testdstring {
testdstring free
testdstring append {\\\\\\\ } -1
testdstring start
testdstring end
# Should make {\\\\\\\ {}}
list [llength [testdstring get]] [string index [testdstring get] 9]
} {2 \{}
test util-8.11 {TclNeedSpace - watch out for escaped space} testdstring {
testdstring free
testdstring append {\\\\\\\\ } -1
testdstring start
testdstring end
# Should make {\\\\\\\\ {}}
list [llength [testdstring get]] [string index [testdstring get] 9]
} {2 \{}
test util-9.0.0 {Tcl_GetIntForIndex} {
string index abcd 0
} a
test util-9.0.1 {Tcl_GetIntForIndex} {
string index abcd 0x0
} a
test util-9.0.2 {Tcl_GetIntForIndex} {
string index abcd -0x0
} a
test util-9.0.3 {Tcl_GetIntForIndex} {
string index abcd { 0 }
} a
test util-9.0.4 {Tcl_GetIntForIndex} {
string index abcd { 0x0 }
} a
test util-9.0.5 {Tcl_GetIntForIndex} {
string index abcd { -0x0 }
} a
test util-9.0.6 {Tcl_GetIntForIndex} {
string index abcd 01
} b
test util-9.0.7 {Tcl_GetIntForIndex} {
string index abcd { 01 }
} b
test util-9.0.8 {Tcl_GetIntForIndex} {
string index abcd { 0d0 }
} a
test util-9.0.9 {Tcl_GetIntForIndex} {
string index abcd { -0d0 }
} a
test util-9.1.0 {Tcl_GetIntForIndex} {
string index abcd 3
} d
test util-9.1.1 {Tcl_GetIntForIndex} {
string index abcd { 3 }
} d
test util-9.1.2 {Tcl_GetIntForIndex} {
string index abcdefghijk 0xa
} k
test util-9.1.3 {Tcl_GetIntForIndex} {
string index abcdefghijk { 0xa }
} k
test util-9.1.4 {Tcl_GetIntForIndex} {
string index abcdefghijk 0d10
} k
test util-9.1.5 {Tcl_GetIntForIndex} {
string index abcdefghijk { 0d10 }
} k
test util-9.2.0 {Tcl_GetIntForIndex} {
string index abcd end
} d
test util-9.2.1 {Tcl_GetIntForIndex} -body {
string index abcd { end}
} -returnCodes error -match glob -result *
test util-9.2.2 {Tcl_GetIntForIndex} -body {
string index abcd {end }
} -returnCodes error -match glob -result *
test util-9.3 {Tcl_GetIntForIndex} -body {
# Deprecated
string index abcd en
} -returnCodes error -match glob -result *
test util-9.4 {Tcl_GetIntForIndex} -body {
# Deprecated
string index abcd e
} -returnCodes error -match glob -result *
test util-9.5.0 {Tcl_GetIntForIndex} {
string index abcd end-1
} c
test util-9.5.1 {Tcl_GetIntForIndex} {
string index abcd {end-1 }
} c
test util-9.5.2 {Tcl_GetIntForIndex} -body {
string index abcd { end-1}
} -returnCodes error -match glob -result *
test util-9.6 {Tcl_GetIntForIndex} {
string index abcd end+-1
} c
test util-9.7 {Tcl_GetIntForIndex} {
string index abcd end+1
} {}
test util-9.8 {Tcl_GetIntForIndex} {
string index abcd end--1
} {}
test util-9.9.0 {Tcl_GetIntForIndex} {
string index abcd 0+0
} a
test util-9.9.1 {Tcl_GetIntForIndex} {
string index abcd { 0+0 }
} a
test util-9.10 {Tcl_GetIntForIndex} {
string index abcd 0-0
} a
test util-9.11 {Tcl_GetIntForIndex} {
string index abcd 1+0
} b
test util-9.12 {Tcl_GetIntForIndex} {
string index abcd 1-0
} b
test util-9.13 {Tcl_GetIntForIndex} {
string index abcd 1+1
} c
test util-9.14 {Tcl_GetIntForIndex} {
string index abcd 1-1
} a
test util-9.15 {Tcl_GetIntForIndex} {
string index abcd -1+2
} b
test util-9.16 {Tcl_GetIntForIndex} {
string index abcd -1--2
} b
test util-9.17 {Tcl_GetIntForIndex} {
string index abcd { -1+2 }
} b
test util-9.18 {Tcl_GetIntForIndex} {
string index abcd { -1--2 }
} b
test util-9.19 {Tcl_GetIntForIndex} -body {
string index a {}
} -returnCodes error -match glob -result *
test util-9.20 {Tcl_GetIntForIndex} -body {
string index a { }
} -returnCodes error -match glob -result *
test util-9.21 {Tcl_GetIntForIndex} -body {
string index a " \r\t\n"
} -returnCodes error -match glob -result *
test util-9.22 {Tcl_GetIntForIndex} -body {
string index a +
} -returnCodes error -match glob -result *
test util-9.23 {Tcl_GetIntForIndex} -body {
string index a -
} -returnCodes error -match glob -result *
test util-9.24 {Tcl_GetIntForIndex} -body {
string index a x
} -returnCodes error -match glob -result *
test util-9.25 {Tcl_GetIntForIndex} -body {
string index a +x
} -returnCodes error -match glob -result *
test util-9.26 {Tcl_GetIntForIndex} -body {
string index a -x
} -returnCodes error -match glob -result *
test util-9.27 {Tcl_GetIntForIndex} -body {
string index a 0y
} -returnCodes error -match glob -result *
test util-9.28 {Tcl_GetIntForIndex} -body {
string index a 1*
} -returnCodes error -match glob -result *
test util-9.29 {Tcl_GetIntForIndex} -body {
string index a 0+
} -returnCodes error -match glob -result *
test util-9.30 {Tcl_GetIntForIndex} -body {
string index a {0+ }
} -returnCodes error -match glob -result *
test util-9.31 {Tcl_GetIntForIndex} -body {
string index a 0x
} -returnCodes error -match glob -result *
test util-9.31.1 {Tcl_GetIntForIndex} -body {
string index a 0d
} -returnCodes error -match glob -result *
test util-9.32 {Tcl_GetIntForIndex} -body {
string index a 0x1FFFFFFFF+0
} -result {}
test util-9.33 {Tcl_GetIntForIndex} -body {
string index a 100000000000+0
} -result {}
test util-9.33.1 {Tcl_GetIntForIndex} -body {
string index a 0d100000000000+0
} -result {}
test util-9.34 {Tcl_GetIntForIndex} -body {
string index a 1.0
} -returnCodes error -match glob -result *
test util-9.35 {Tcl_GetIntForIndex} -body {
string index a 1e23
} -returnCodes error -match glob -result *
test util-9.36 {Tcl_GetIntForIndex} -body {
string index a 1.5e2
} -returnCodes error -match glob -result *
test util-9.37 {Tcl_GetIntForIndex} -body {
string index a 0+x
} -returnCodes error -match glob -result *
test util-9.38 {Tcl_GetIntForIndex} -body {
string index a 0+0x
} -returnCodes error -match glob -result *
test util-9.39 {Tcl_GetIntForIndex} -body {
string index a 0+0xg
} -returnCodes error -match glob -result *
test util-9.40 {Tcl_GetIntForIndex} -body {
string index a 0+0xg
} -returnCodes error -match glob -result *
test util-9.41 {Tcl_GetIntForIndex} -body {
string index a 0+1.0
} -returnCodes error -match glob -result *
test util-9.42 {Tcl_GetIntForIndex} -body {
string index a 0+1e2
} -returnCodes error -match glob -result *
test util-9.43 {Tcl_GetIntForIndex} -body {
string index a 0+1.5e1
} -returnCodes error -match glob -result *
test util-9.44 {Tcl_GetIntForIndex} -body {
string index a 0+1000000000000
} -result {}
test util-9.45 {Tcl_GetIntForIndex} -body {
string index abcd end+2305843009213693950
} -result {}
test util-9.46 {Tcl_GetIntForIndex} -body {
string index abcd end+4294967294
} -result {}
# TIP 502
test util-9.47 {Tcl_GetIntForIndex} -body {
string index abcd 0x10000000000000000
} -result {}
test util-9.48 {Tcl_GetIntForIndex} {
string index abcd -0x10000000000000000
} {}
test util-9.49 {Tcl_GetIntForIndex} -body {
string index abcd end*1
} -returnCodes error -match glob -result *
test util-9.50 {Tcl_GetIntForIndex} -body {
string index abcd {end- 1}
} -returnCodes error -match glob -result *
test util-9.51 {Tcl_GetIntForIndex} -body {
string index abcd end-end
} -returnCodes error -match glob -result *
test util-9.52 {Tcl_GetIntForIndex} -body {
string index abcd end-x
} -returnCodes error -match glob -result *
test util-9.53 {Tcl_GetIntForIndex} -body {
string index abcd end-0.1
} -returnCodes error -match glob -result *
test util-9.54 {Tcl_GetIntForIndex} {
string index abcd end-0x10000000000000000
} {}
test util-9.55 {Tcl_GetIntForIndex} -body {
string index abcd end+0x10000000000000000
} -result {}
test util-9.56 {Tcl_GetIntForIndex} -body {
string index abcd end--0x10000000000000000
} -result {}
test util-9.57 {Tcl_GetIntForIndex} {
string index abcd end+-0x10000000000000000
} {}
test util-9.58 {Tcl_GetIntForIndex} -body {
string index abcd end--0x8000000000000000
} -result {}
test util-9.59 {Tcl_GetIntForIndex} {
string index abcd 0-0x10000000000000000
} {}
test util-10.1 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x0000000000000000
} {0.0}
test util-10.2 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x8000000000000000
} {-0.0}
test util-10.3 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x7ef754e31cd072da
} {4e+303}
test util-10.4 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xd08afcef51f0fb5f
} {-1e+80}
test util-10.5 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x7ed754e31cd072da
} {1e+303}
test util-10.6 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xfee754e31cd072da
} {-2e+303}
test util-10.7 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x0afe07b27dd78b14
} {1e-255}
test util-10.8 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x93ae29e9c56687fe
} {-7e-214}
test util-10.9 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x376be03d0bf225c7
} {1e-41}
test util-10.10 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xa0ca2fe76a3f9475
} {-1e-150}
test util-10.11 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x7fa9a2028368022e
} {9e+306}
test util-10.12 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xdfc317e5ef3ab327
} {-2e+153}
test util-10.13 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x5fd317e5ef3ab327
} {4e+153}
test util-10.14 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xdfe317e5ef3ab327
} {-8e+153}
test util-10.15 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x00feb8e84fa0b278
} {7e-304}
test util-10.16 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x8133339131c46f8b
} {-7e-303}
test util-10.17 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x35dc0f92a6276c9d
} {3e-49}
test util-10.18 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xa445ce1f143d7ad2
} {-6e-134}
test util-10.19 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x2d2c0794d9d40e96
} {4.3e-91}
test util-10.20 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xad3c0794d9d40e96
} {-8.6e-91}
test util-10.21 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x30ecd5bee57763e6
} {5.1e-73}
test util-10.22 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x68ad1c26db7d0dae
} {1.7e+196}
test util-10.23 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xbfa3f7ced916872b
} {-0.039}
test util-10.24 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x64b7d93193f78fc6
} {1.51e+177}
test util-10.25 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x98ea82a1631eeb30
} {-1.19e-188}
test util-10.26 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xd216c309024bab4b
} {-2.83e+87}
test util-10.27 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x0dfdbbac6f83a821
} {2.7869147e-241}
test util-10.28 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xdadc569e968e0944
} {-4.91080654e+129}
test util-10.29 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x5acc569e968e0944
} {2.45540327e+129}
test util-10.30 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xab5fc575867314ee
} {-9.078555839e-100}
test util-10.31 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xdabc569e968e0944
} {-1.227701635e+129}
test util-10.32 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x2b6fc575867314ee
} {1.8157111678e-99}
test util-10.33 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xb3b8bf7e7fa6f02a
} {-1.5400733123779e-59}
test util-10.34 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xcd83de005bd620df
} {-2.6153245263757307e+65}
test util-10.35 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x6cdf92bacb3cb40c
} {2.7210404151224248e+216}
test util-10.36 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xecef92bacb3cb40c
} {-5.4420808302448496e+216}
test util-10.37 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x49342dbf25096cf5
} {4.5e+44}
test util-10.38 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xd06afcef51f0fb5f
} {-2.5e+79}
test util-10.39 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x49002498ea6df0c4
} {4.5e+43}
test util-10.40 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xfeb754e31cd072da
} {-2.5e+302}
test util-10.41 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x1d22deac01e2b4f7
} {2.5e-168}
test util-10.42 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xaccb1df536c13eee
} {-6.5e-93}
test util-10.43 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x3650711fed5b19a4
} {4.5e-47}
test util-10.44 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xb6848d67e8b1e00d
} {-4.5e-46}
test util-10.45 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x4bac8c574c0c6be7
} {3.5e+56}
test util-10.46 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xccd756183c147514
} {-1.5e+62}
test util-10.47 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x4ca2ab469676c410
} {1.5e+61}
test util-10.48 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xcf5539684e774b48
} {-1.5e+74}
test util-10.49 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x2e12e5f5dfa4fe9d
} {9.5e-87}
test util-10.50 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x8b9bdc2417bf7787
} {-9.5e-253}
test util-10.51 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x00eeb8e84fa0b278
} {3.5e-304}
test util-10.52 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xadde3cbc9907fdc8
} {-9.5e-88}
test util-10.53 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x2bb0ad836f269a17
} {3.05e-98}
test util-10.54 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x950b39ae1909c31b
} {-2.65e-207}
test util-10.55 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x1bfb2ab18615fcc6
} {6.865e-174}
test util-10.56 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x98f3e1f90a573064
} {-1.785e-188}
test util-10.57 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x5206c309024bab4b
} {1.415e+87}
test util-10.58 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xcc059bd3ad46e346
} {-1.6955e+58}
test util-10.59 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x47bdf4170f0fdecc
} {3.9815e+37}
test util-10.60 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x59e7e1e0f1c7a4ac
} {1.263005e+125}
test util-10.61 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xda1dda592e398dd7
} {-1.263005e+126}
test util-10.62 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xdc4e597c0b94b7ae
} {-4.4118455e+136}
test util-10.63 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x5aac569e968e0944
} {6.138508175e+128}
test util-10.64 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xdabc569e968e0944
} {-1.227701635e+129}
test util-10.65 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x6ce7ae0c186d8709
} {4.081560622683637e+216}
test util-10.66 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x44b52d02c7e14af7
} {1.0000000000000001e+23}
test util-10.67 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xc589d971e4fe8402
} {-1e+27}
test util-10.68 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x4599d971e4fe8402
} {2e+27}
test util-10.69 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xc5a9d971e4fe8402
} {-4e+27}
test util-10.70 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x3e45798ee2308c3a
} {1e-8}
test util-10.71 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xbe55798ee2308c3a
} {-2e-8}
test util-10.72 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x3e65798ee2308c3a
} {4e-8}
test util-10.73 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xbabef2d0f5da7dd9
} {-1e-25}
test util-10.74 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x44da784379d99db4
} {5e+23}
test util-10.75 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xc4fa784379d99db4
} {-2e+24}
test util-10.76 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x4503da329b633647
} {3e+24}
test util-10.77 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xc54cf389cd46047d
} {-7e+25}
test util-10.78 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x3fc999999999999a
} {0.2}
test util-10.79 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xbfd3333333333333
} {-0.3}
test util-10.80 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x3cf6849b86a12b9b
} {5e-15}
test util-10.81 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xbd16849b86a12b9b
} {-2e-14}
test util-10.82 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x3b87ccfc73126788
} {6.3e-22}
test util-10.83 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xbbbdc03b8fd7016a
} {-6.3e-21}
test util-10.84 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x3fa3f7ced916872b
} {0.039}
test util-10.85 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x460b297cad9f70b6
} {2.69e+29}
test util-10.86 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xc61b297cad9f70b6
} {-5.38e+29}
test util-10.87 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x3adcdc06b20ef183
} {3.73e-25}
test util-10.88 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x45fb297cad9f70b6
} {1.345e+29}
test util-10.89 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xc60b297cad9f70b6
} {-2.69e+29}
test util-10.90 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xbc050a246ecd44f3
} {-1.4257e-19}
test util-10.91 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xbec19b96f36ec68b
} {-2.09901e-6}
test util-10.92 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x3dcc06d366394441
} {5.0980203373e-11}
test util-10.93 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xc79f58ac4db68c90
} {-1.04166211811e+37}
test util-10.94 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x4569d971e4fe8402
} {2.5e+26}
test util-10.95 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xc50dc74be914d16b
} {-4.5e+24}
test util-10.96 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x4534adf4b7320335
} {2.5e+25}
test util-10.97 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xc54ae22487c1042b
} {-6.5e+25}
test util-10.98 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x3c987fe49aab41e0
} {8.5e-17}
test util-10.99 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xbc2f5c05e4b23fd7
} {-8.5e-19}
test util-10.100 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x3d5faa7ab552a552
} {4.5e-13}
test util-10.101 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xbdbb7cdfd9d7bdbb
} {-2.5e-11}
test util-10.102 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x44f3da329b633647
} {1.5e+24}
test util-10.103 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xc53cf389cd46047d
} {-3.5e+25}
test util-10.104 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x454f04ef12cb04cf
} {7.5e+25}
test util-10.105 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xc55f04ef12cb04cf
} {-1.5e+26}
test util-10.106 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x3fc3333333333333
} {0.15}
test util-10.107 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xbdb07e1fe91b0b70
} {-1.5e-11}
test util-10.108 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x3de49da7e361ce4c
} {1.5e-10}
test util-10.109 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xbe19c511dc3a41df
} {-1.5e-9}
test util-10.110 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xc5caa83d74267822
} {-1.65e+28}
test util-10.111 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x4588f1d5969453de
} {9.65e+26}
test util-10.112 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x3b91d9bd564dcda6
} {9.45e-22}
test util-10.113 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xbcfa58973ecbede6
} {-5.85e-15}
test util-10.114 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x45eb297cad9f70b6
} {6.725e+28}
test util-10.115 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xc5fb297cad9f70b6
} {-1.345e+29}
test util-10.116 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x3accdc06b20ef183
} {1.865e-25}
test util-10.117 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xbd036071dcae4565
} {-8.605e-15}
test util-10.118 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x462cb968d297dde8
} {1.137885e+30}
test util-10.119 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0xc661f3e1839eeab1
} {-1.137885e+31}
test util-10.120 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x474e9cec176c96f8
} {3.179033335e+35}
test util-10.121 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x3dbc06d366394441
} {2.54901016865e-11}
test util-10.122 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
convertDouble 0x478f58ac4db68c90
} {5.20831059055e+36}
test util-11.1 {Tcl_PrintDouble - scaling} {
expr {1.1e-5}
} {1.1e-5}
test util-11.2 {Tcl_PrintDouble - scaling} {
expr {1.1e-4}
} {0.00011}
test util-11.3 {Tcl_PrintDouble - scaling} {
expr {1.1e-3}
} {0.0011}
test util-11.4 {Tcl_PrintDouble - scaling} {
expr {1.1e-2}
} {0.011}
test util-11.5 {Tcl_PrintDouble - scaling} {
expr {1.1e-1}
} {0.11}
test util-11.6 {Tcl_PrintDouble - scaling} {
expr {1.1e0}
} {1.1}
test util-11.7 {Tcl_PrintDouble - scaling} {
expr {1.1e1}
} {11.0}
test util-11.8 {Tcl_PrintDouble - scaling} {
expr {1.1e2}
} {110.0}
test util-11.9 {Tcl_PrintDouble - scaling} {
expr {1.1e3}
} {1100.0}
test util-11.10 {Tcl_PrintDouble - scaling} {
expr {1.1e4}
} {11000.0}
test util-11.11 {Tcl_PrintDouble - scaling} {
expr {1.1e5}
} {110000.0}
test util-11.12 {Tcl_PrintDouble - scaling} {
expr {1.1e6}
} {1100000.0}
test util-11.13 {Tcl_PrintDouble - scaling} {
expr {1.1e7}
} {11000000.0}
test util-11.14 {Tcl_PrintDouble - scaling} {
expr {1.1e8}
} {110000000.0}
test util-11.15 {Tcl_PrintDouble - scaling} {
expr {1.1e9}
} {1100000000.0}
test util-11.16 {Tcl_PrintDouble - scaling} {
expr {1.1e10}
} {11000000000.0}
test util-11.17 {Tcl_PrintDouble - scaling} {
expr {1.1e11}
} {110000000000.0}
test util-11.18 {Tcl_PrintDouble - scaling} {
expr {1.1e12}
} {1100000000000.0}
test util-11.19 {Tcl_PrintDouble - scaling} {
expr {1.1e13}
} {11000000000000.0}
test util-11.20 {Tcl_PrintDouble - scaling} {
expr {1.1e14}
} {110000000000000.0}
test util-11.21 {Tcl_PrintDouble - scaling} {
expr {1.1e15}
} {1100000000000000.0}
test util-11.22 {Tcl_PrintDouble - scaling} {
expr {1.1e16}
} {11000000000000000.0}
test util-11.23 {Tcl_PrintDouble - scaling} {
expr {1.1e17}
} {1.1e+17}
test util-12.1 {TclDoubleDigits - Inf} {testdoubledigits ieeeFloatingPoint} {
testdoubledigits Inf -1 shortest
} {Infinity 9999 +}
test util-12.2 {TclDoubleDigits - -Inf} {testdoubledigits ieeeFloatingPoint} {
testdoubledigits -Inf -1 shortest
} {Infinity 9999 -}
test util-12.3 {TclDoubleDigits - NaN} {testdoubledigits ieeeFloatingPoint} {
testdoubledigits $ieeeValues(NaN) -1 shortest
} {NaN 9999 +}
test util-12.4 {TclDoubleDigits - NaN} {*}{
-constraints {testdoubledigits ieeeFloatingPoint controversialNaN}
-body {
testdoubledigits -NaN -1 shortest
}
-result {NaN 9999 -}
}
test util-12.5 {TclDoubleDigits - 0} testdoubledigits {
testdoubledigits 0.0 -1 shortest
} {0 0 +}
test util-12.6 {TclDoubleDigits - -0} testdoubledigits {
testdoubledigits -0.0 -1 shortest
} {0 0 -}
# Verdonk test vectors
test util-13.1 {just over exact - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 1754e31cd072da E+1008 +4_000000000000000000& E+303
}
-result {}
}
test util-13.2 {just over exact - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1afcef51f0fb5f E+265 -1_000000000000000000& E+80
}
-result {}
}
test util-13.3 {just over exact - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 1754e31cd072da E+1006 +1_000000000000000000& E+303
}
-result {}
}
test util-13.4 {just over exact - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1754e31cd072da E+1007 -2_000000000000000000& E+303
}
-result {}
}
test util-13.5 {just over exact - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 1e07b27dd78b14 E-848 +1_00000000000000000& E-255
}
-result {}
}
test util-13.6 {just over exact - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1e29e9c56687fe E-709 -7_00000000000000000& E-214
}
-result {}
}
test util-13.7 {just over exact - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 1be03d0bf225c7 E-137 +1_00000000000000000& E-41
}
-result {}
}
test util-13.8 {just over exact - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1a2fe76a3f9475 E-499 -1_00000000000000000& E-150
}
-result {}
}
test util-13.9 {just under exact - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 19a2028368022e E+1019 +8_999999999999999999& E+306
}
-result {}
}
test util-13.10 {just under exact - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1317e5ef3ab327 E+509 -1_999999999999999999& E+153
}
-result {}
}
test util-13.11 {just under exact - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 1317e5ef3ab327 E+510 +3_99999999999999999& E+153
}
-result {}
}
test util-13.12 {just under exact - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1317e5ef3ab327 E+511 -7_99999999999999999& E+153
}
-result {}
}
test util-13.13 {just under exact - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 1eb8e84fa0b278 E-1008 +6_999999999999999999& E-304
}
-result {}
}
test util-13.14 {just under exact - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -13339131c46f8b E-1004 -6_999999999999999999& E-303
}
-result {}
}
test util-13.15 {just under exact - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 1c0f92a6276c9d E-162 +2_999999999999999999& E-49
}
-result {}
}
test util-13.16 {just under exact - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -15ce1f143d7ad2 E-443 -5_99999999999999999& E-134
}
-result {}
}
test util-13.17 {just over exact - 2 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 1c0794d9d40e96 E-301 +43_000000000000000000& E-92
}
-result {}
}
test util-13.18 {just over exact - 2 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1c0794d9d40e96 E-300 -86_000000000000000000& E-92
}
-result {}
}
test util-13.19 {just over exact - 2 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 1cd5bee57763e6 E-241 +51_000000000000000000& E-74
}
-result {}
}
test util-13.20 {just under exact - 2 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 1d1c26db7d0dae E+651 +16_999999999999999999& E+195
}
-result {}
}
test util-13.21 {just under exact - 2 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -13f7ced916872b E-5 -38_999999999999999999& E-3
}
-result {}
}
test util-13.22 {just over exact - 3 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 17d93193f78fc6 E+588 +151_0000000000000000000& E+175
}
-result {}
}
test util-13.23 {just over exact - 3 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1a82a1631eeb30 E-625 -119_000000000000000000& E-190
}
-result {}
}
test util-13.24 {just under exact - 3 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -16c309024bab4b E+290 -282_999999999999999999& E+85
}
-result {}
}
test util-13.25 {just over exact - 8 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 1dbbac6f83a821 E-800 +27869147_0000000000000000000& E-248
}
-result {}
}
test util-13.26 {just under exact - 9 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1c569e968e0944 E+430 -491080653_9999999999999999999& E+121
}
-result {}
}
test util-13.27 {just under exact - 9 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 1c569e968e0944 E+429 +245540326_9999999999999999999& E+121
}
-result {}
}
test util-13.28 {just over exact - 10 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1fc575867314ee E-330 -9078555839_0000000000000000000& E-109
}
-result {}
}
test util-13.29 {just under exact - 10 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1c569e968e0944 E+428 -1227701634_9999999999999999999& E+120
}
-result {}
}
test util-13.30 {just over exact - 11 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 1fc575867314ee E-329 +18157111678_0000000000000000000& E-109
}
-result {}
}
test util-13.31 {just over exact - 14 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -18bf7e7fa6f02a E-196 -15400733123779_0000000000000000000& E-72
}
-result {}
}
test util-13.32 {just over exact - 17 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -13de005bd620df E+217 -26153245263757307_0000000000000000000& E+49
}
-result {}
}
test util-13.33 {just over exact - 18 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 1f92bacb3cb40c E+718 +272104041512242479_0000000000000000000& E+199
}
-result {}
}
test util-13.34 {just over exact - 18 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1f92bacb3cb40c E+719 -544208083024484958_0000000000000000000& E+199
}
-result {}
}
test util-13.35 {just over half ulp - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 142dbf25096cf5 E+148 +4_500000000000000000& E+44
}
-result {}
}
test util-13.36 {just over half ulp - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1afcef51f0fb5f E+263 -2_500000000000000000& E+79
}
-result {}
}
test util-13.37 {just over half ulp - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 102498ea6df0c4 E+145 +4_500000000000000000& E+43
}
-result {}
}
test util-13.38 {just over half ulp - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1754e31cd072da E+1004 -2_500000000000000000& E+302
}
-result {}
}
test util-13.39 {just over half ulp - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 12deac01e2b4f7 E-557 +2_50000000000000000& E-168
}
-result {}
}
test util-13.40 {just over half ulp - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1b1df536c13eee E-307 -6_50000000000000000& E-93
}
-result {}
}
test util-13.41 {just over half ulp - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 10711fed5b19a4 E-154 +4_50000000000000000& E-47
}
-result {}
}
test util-13.42 {just over half ulp - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -148d67e8b1e00d E-151 -4_50000000000000000& E-46
}
-result {}
}
test util-13.43 {just under half ulp - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 1c8c574c0c6be7 E+187 +3_49999999999999999& E+56
}
-result {}
}
test util-13.44 {just under half ulp - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1756183c147514 E+206 -1_49999999999999999& E+62
}
-result {}
}
test util-13.45 {just under half ulp - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 12ab469676c410 E+203 +1_49999999999999999& E+61
}
-result {}
}
test util-13.46 {just under half ulp - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1539684e774b48 E+246 -1_49999999999999999& E+74
}
-result {}
}
test util-13.47 {just under half ulp - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 12e5f5dfa4fe9d E-286 +9_499999999999999999& E-87
}
-result {}
}
test util-13.48 {just under half ulp - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1bdc2417bf7787 E-838 -9_499999999999999999& E-253
}
-result {}
}
test util-13.49 {just under half ulp - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 1eb8e84fa0b278 E-1009 +3_499999999999999999& E-304
}
-result {}
}
test util-13.50 {just under half ulp - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1e3cbc9907fdc8 E-290 -9_499999999999999999& E-88
}
-result {}
}
test util-13.51 {just over half ulp - 2 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 10ad836f269a17 E-324 +30_500000000000000000& E-99
}
-result {}
}
test util-13.52 {just over half ulp - 2 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1b39ae1909c31b E-687 -26_500000000000000000& E-208
}
-result {}
}
test util-13.53 {just over half ulp - 3 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 1b2ab18615fcc6 E-576 +686_500000000000000000& E-176
}
-result {}
}
test util-13.54 {just over half ulp - 3 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -13e1f90a573064 E-624 -178_500000000000000000& E-190
}
-result {}
}
test util-13.55 {just under half ulp - 3 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 16c309024bab4b E+289 +141_499999999999999999& E+85
}
-result {}
}
test util-13.56 {just under half ulp - 4 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -159bd3ad46e346 E+193 -1695_499999999999999999& E+55
}
-result {}
}
test util-13.57 {just under half ulp - 4 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 1df4170f0fdecc E+124 +3981_499999999999999999& E+34
}
-result {}
}
test util-13.58 {just over half ulp - 6 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 17e1e0f1c7a4ac E+415 +126300_5000000000000000000& E+120
}
-result {}
}
test util-13.59 {just over half ulp - 6 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1dda592e398dd7 E+418 -126300_5000000000000000000& E+121
}
-result {}
}
test util-13.60 {just under half ulp - 7 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1e597c0b94b7ae E+453 -4411845_499999999999999999& E+130
}
-result {}
}
test util-13.61 {just under half ulp - 9 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 1c569e968e0944 E+427 +613850817_4999999999999999999& E+120
}
-result {}
}
test util-13.62 {just under half ulp - 9 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1c569e968e0944 E+428 -122770163_49999999999999999999& E+121
}
-result {}
}
test util-13.63 {just over half ulp - 18 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 17ae0c186d8709 E+719 +408156062268363718_5000000000000000000& E+199
}
-result {}
}
test util-13.64 {just over exact - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 152d02c7e14af7 E+76 +1_0000000000000000& E+23
}
-result {}
}
test util-13.65 {just over exact - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -19d971e4fe8402 E+89 -1_0000000000000000& E+27
}
-result {}
}
test util-13.66 {just over exact - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 19d971e4fe8402 E+90 +2_0000000000000000& E+27
}
-result {}
}
test util-13.67 {just over exact - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -19d971e4fe8402 E+91 -4_0000000000000000& E+27
}
-result {}
}
test util-13.68 {just over exact - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 15798ee2308c3a E-27 +1_0000000000000000& E-8
}
-result {}
}
test util-13.69 {just over exact - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -15798ee2308c3a E-26 -2_0000000000000000& E-8
}
-result {}
}
test util-13.70 {just over exact - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 15798ee2308c3a E-25 +4_0000000000000000& E-8
}
-result {}
}
test util-13.71 {just over exact - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1ef2d0f5da7dd9 E-84 -1_0000000000000000& E-25
}
-result {}
}
test util-13.72 {just under exact - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 1a784379d99db4 E+78 +4_9999999999999999& E+23
}
-result {}
}
test util-13.73 {just under exact - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1a784379d99db4 E+80 -1_9999999999999999& E+24
}
-result {}
}
test util-13.74 {just under exact - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 13da329b633647 E+81 +2_9999999999999999& E+24
}
-result {}
}
test util-13.75 {just under exact - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1cf389cd46047d E+85 -6_9999999999999999& E+25
}
-result {}
}
test util-13.76 {just under exact - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 19999999999999 E-3 +1_99999999999999999& E-1
}
-result {}
}
test util-13.77 {just under exact - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -13333333333333 E-2 -2_99999999999999999& E-1
}
-result {}
}
test util-13.78 {just under exact - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 16849b86a12b9b E-48 +4_99999999999999999& E-15
}
-result {}
}
test util-13.79 {just under exact - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -16849b86a12b9b E-46 -1_99999999999999999& E-14
}
-result {}
}
test util-13.80 {just over exact - 2 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 17ccfc73126788 E-71 +63_00000000000000000& E-23
}
-result {}
}
test util-13.81 {just over exact - 2 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1dc03b8fd7016a E-68 -63_00000000000000000& E-22
}
-result {}
}
test util-13.82 {just under exact - 2 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 13f7ced916872b E-5 +38_999999999999999999& E-3
}
-result {}
}
test util-13.83 {just over exact - 3 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 1b297cad9f70b6 E+97 +269_000000000000000000& E+27
}
-result {}
}
test util-13.84 {just over exact - 3 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1b297cad9f70b6 E+98 -538_00000000000000000& E+27
}
-result {}
}
test util-13.85 {just over exact - 3 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 1cdc06b20ef183 E-82 +373_00000000000000000& E-27
}
-result {}
}
test util-13.86 {just over exact - 4 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 1b297cad9f70b6 E+96 +1345_00000000000000000& E+26
}
-result {}
}
# this one is not 4 digits, it is 3, and it is covered above.
test util-13.87 {just over exact - 4 digits} {*}{
-constraints {testdoubledigits knownBadTest}
-body {
verdonk_test -1b297cad9f70b6 E+97 -2690_00000000000000000& E+26
}
-result {}
}
test util-13.88 {just over exact - 5 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -150a246ecd44f3 E-63 -14257_00000000000000000& E-23
}
-result {}
}
test util-13.89 {just under exact - 6 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -119b96f36ec68b E-19 -209900_999999999999999999& E-11
}
-result {}
}
test util-13.90 {just over exact - 11 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 1c06d366394441 E-35 +50980203373_000000000000000000& E-21
}
-result {}
}
test util-13.91 {just under exact - 12 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1f58ac4db68c90 E+122 -104166211810_99999999999999999& E+26
}
-result {}
}
test util-13.92 {just over half ulp - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 19d971e4fe8402 E+87 +2_5000000000000000& E+26
}
-result {}
}
test util-13.93 {just over half ulp - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1dc74be914d16b E+81 -4_500000000000000& E+24
}
-result {}
}
test util-13.94 {just over half ulp - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 14adf4b7320335 E+84 +2_500000000000000& E+25
}
-result {}
}
test util-13.95 {just over half ulp - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1ae22487c1042b E+85 -6_5000000000000000& E+25
}
-result {}
}
test util-13.96 {just over half ulp - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 187fe49aab41e0 E-54 +8_5000000000000000& E-17
}
-result {}
}
test util-13.97 {just over half ulp - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1f5c05e4b23fd7 E-61 -8_5000000000000000& E-19
}
-result {}
}
test util-13.98 {just over half ulp - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 1faa7ab552a552 E-42 +4_5000000000000000& E-13
}
-result {}
}
test util-13.99 {just over half ulp - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1b7cdfd9d7bdbb E-36 -2_5000000000000000& E-11
}
-result {}
}
test util-13.100 {just under half ulp - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 13da329b633647 E+80 +1_4999999999999999& E+24
}
-result {}
}
test util-13.101 {just under half ulp - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1cf389cd46047d E+84 -3_49999999999999999& E+25
}
-result {}
}
test util-13.102 {just under half ulp - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 1f04ef12cb04cf E+85 +7_4999999999999999& E+25
}
-result {}
}
test util-13.103 {just under half ulp - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1f04ef12cb04cf E+86 -1_4999999999999999& E+26
}
-result {}
}
test util-13.104 {just under half ulp - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 13333333333333 E-3 +1_49999999999999999& E-1
}
-result {}
}
test util-13.105 {just under half ulp - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -107e1fe91b0b70 E-36 -1_49999999999999999& E-11
}
-result {}
}
test util-13.106 {just under half ulp - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 149da7e361ce4c E-33 +1_49999999999999999& E-10
}
-result {}
}
test util-13.107 {just under half ulp - 1 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -19c511dc3a41df E-30 -1_49999999999999999& E-9
}
-result {}
}
test util-13.108 {just over half ulp - 2 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1aa83d74267822 E+93 -16_5000000000000000& E+27
}
-result {}
}
test util-13.109 {just over half ulp - 2 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 18f1d5969453de E+89 +96_5000000000000000& E+25
}
-result {}
}
test util-13.110 {just over half ulp - 2 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 11d9bd564dcda6 E-70 +94_50000000000000000& E-23
}
-result {}
}
test util-13.111 {just over half ulp - 2 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1a58973ecbede6 E-48 -58_50000000000000000& E-16
}
-result {}
}
test util-13.112 {just over half ulp - 3 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 1b297cad9f70b6 E+95 +672_50000000000000000& E+26
}
-result {}
}
test util-13.113 {just over half ulp - 3 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -1b297cad9f70b6 E+96 -134_500000000000000000& E+27
}
-result {}
}
test util-13.114 {just over half ulp - 3 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 1cdc06b20ef183 E-83 +186_50000000000000000& E-27
}
-result {}
}
test util-13.115 {just over half ulp - 3 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -136071dcae4565 E-47 -860_50000000000000000& E-17
}
-result {}
}
test util-13.116 {just over half ulp - 6 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 1cb968d297dde8 E+99 +113788_50000000000000000& E+25
}
-result {}
}
test util-13.117 {just over half ulp - 6 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test -11f3e1839eeab1 E+103 -113788_50000000000000000& E+26
}
-result {}
}
test util-13.118 {just under half ulp - 9 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 1e9cec176c96f8 E+117 +317903333_49999999999999999& E+27
}
-result {}
}
test util-13.119 {just over half ulp - 11 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 1c06d366394441 E-36 +25490101686_500000000000000000& E-21
}
-result {}
}
test util-13.120 {just under half ulp - 11 digits} {*}{
-constraints testdoubledigits
-body {
verdonk_test 1f58ac4db68c90 E+121 +52083105905_49999999999999999& E+26
}
-result {}
}
test util-14.1 {funky NaN} {*}{
-constraints {ieeeFloatingPoint controversialNaN}
-body {
set ieeeValues(-NaN)
}
-result -NaN
}
test util-14.2 {funky NaN} {*}{
-constraints {ieeeFloatingPoint controversialNaN}
-body {
set ieeeValues(-NaN(3456789abcdef))
}
-result -NaN(3456789abcdef)
}
test util-15.1 {largest subnormal} {*}{
-body {
binary scan [binary format w 0x000fffffffffffff] q x
set x
}
-result 2.225073858507201e-308
-cleanup {
unset x
}
}
test util-15.2 {largest subnormal} {*}{
-body {
binary scan [binary format w 0x800fffffffffffff] q x
set x
}
-result -2.225073858507201e-308
-cleanup {
unset x
}
}
test util-15.3 {largest subnormal} {*}{
-body {
binary scan [binary format q 2.225073858507201e-308] w x
format %#lx $x
}
-result 0xfffffffffffff
-cleanup {
unset x
}
}
test util-15.4 {largest subnormal} {*}{
-body {
binary scan [binary format q -2.225073858507201e-308] w x
format %#lx $x
}
-result 0x800fffffffffffff
-cleanup {
unset x
}
}
test util-15.5 {smallest normal} {*}{
-body {
binary scan [binary format w 0x0010000000000000] q x
set x
}
-result 2.2250738585072014e-308
-cleanup {
unset x
}
}
test util-15.6 {smallest normal} {*}{
-body {
binary scan [binary format w 0x8010000000000000] q x
set x
}
-result -2.2250738585072014e-308
-cleanup {
unset x
}
}
test util-15.7 {smallest normal} {*}{
-body {
binary scan [binary format q 2.2250738585072014e-308] w x
format %#lx $x
}
-result 0x10000000000000
-cleanup {
unset x
}
}
test util-15.8 {smallest normal} {*}{
-body {
binary scan [binary format q -2.2250738585072014e-308] w x
format %#lx $x
}
-result 0x8010000000000000
-cleanup {
unset x
}
}
test util-17.1 {bankers' rounding [Bug 3349507]} {ieeeFloatingPoint} {
set r {}
foreach {input} {
0x1ffffffffffffc000
0x1ffffffffffffc800
0x1ffffffffffffd000
0x1ffffffffffffd800
0x1ffffffffffffe000
0x1ffffffffffffe800
0x1fffffffffffff000
0x1fffffffffffff800
} {
binary scan [binary format q [expr {double($input)}]] wu x
lappend r [format %#llx $x]
binary scan [binary format q [expr {double(-$input)}]] wu x
lappend r [format %#llx $x]
}
set r
} [list {*}{
0x43fffffffffffffc 0xc3fffffffffffffc
0x43fffffffffffffc 0xc3fffffffffffffc
0x43fffffffffffffd 0xc3fffffffffffffd
0x43fffffffffffffe 0xc3fffffffffffffe
0x43fffffffffffffe 0xc3fffffffffffffe
0x43fffffffffffffe 0xc3fffffffffffffe
0x43ffffffffffffff 0xc3ffffffffffffff
0x4400000000000000 0xc400000000000000
}]
test util-18.1 {Tcl_ObjPrintf} {testprint} {
testprint %lld [expr {2**63-1}]
} {9223372036854775807}
test util-18.2 {Tcl_ObjPrintf} {testprint} {
testprint %I64d [expr {2**63-1}]
} {9223372036854775807}
test util-18.3 {Tcl_ObjPrintf} {testprint} {
testprint %qd [expr {2**63-1}]
} {9223372036854775807}
test util-18.4 {Tcl_ObjPrintf} {testprint} {
testprint %jd [expr {2**63-1}]
} {9223372036854775807}
test util-18.5 {Tcl_ObjPrintf} {testprint} {
testprint %lld [expr {-2**63}]
} {-9223372036854775808}
test util-18.6 {Tcl_ObjPrintf} {testprint} {
testprint %I64d [expr {-2**63}]
} {-9223372036854775808}
test util-18.7 {Tcl_ObjPrintf} {testprint} {
testprint %qd [expr {-2**63}]
} {-9223372036854775808}
test util-18.8 {Tcl_ObjPrintf} {testprint} {
testprint %jd [expr {-2**63}]
} {-9223372036854775808}
test util-18.9 {Tcl_ObjPrintf} {testprint} {
testprint "%I64d %I32d" [expr {-2**63+2}]
} {-9223372036854775806 2}
test util-18.10 {Tcl_ObjPrintf} {testprint} {
testprint "%I64d %p" 65535
} {65535 0xffff}
test util-18.11 {Tcl_ObjPrintf} {testprint} {
testprint "%I64d %td" 65536
} {65536 65536}
test util-18.12 {Tcl_ObjPrintf} {testprint} {
testprint "%I64d %Id" 65537
} {65537 65537}
test util-18.13 {Tcl_ObjPrintf} -constraints {testprint longIs64bit} -body {
testprint "%llu %ju %lu" -1
} -result {18446744073709551615 18446744073709551615 18446744073709551615}
test util-18.14 {Tcl_ObjPrintf} -constraints {testprint longIs64bit} -body {
testprint "%llu %zu %lu" -1
} -result {18446744073709551615 18446744073709551615 18446744073709551615}
# cleanup
::tcltest::cleanupTests
return
# Local Variables:
# mode: tcl
# End: