2250 lines
66 KiB
Plaintext
2250 lines
66 KiB
Plaintext
# 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:
|