RegressionTests__MetaNumbersTest.st
author Claus Gittinger <cg@exept.de>
Tue, 09 Jul 2019 18:53:03 +0200
changeset 2327 bf482d49aeaf
parent 1706 5a6d4c85ea80
permissions -rw-r--r--
#QUALITY by exept class: RegressionTests::StringTests added: #test82c_expanding
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1706
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
     1
"{ Encoding: utf8 }"
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
     2
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
     3
"{ Package: 'stx:goodies/regression' }"
204
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
"{ NameSpace: RegressionTests }"
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
TestCase subclass:#MetaNumbersTest
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	instanceVariableNames:''
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
	classVariableNames:''
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
	poolDictionaries:''
1071
4a02a41dce21 category
Claus Gittinger <cg@exept.de>
parents: 672
diff changeset
    11
	category:'tests-Regression-Numbers'
204
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
!
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
!MetaNumbersTest methodsFor:'tests'!
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
test01_Nan
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
    "NaN in all avaliable formats."
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
    |check|
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
    check := [:nan |
1706
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    23
        self assert:( nan isNaN ).
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    24
        self assert:( nan isFinite not ).
204
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
1706
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    26
        nan isLimitedPrecisionReal ifTrue:[
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    27
            self assert:( nan asFloat isNaN ).
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    28
            self assert:( nan asLargeFloat isNaN ).
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    29
            self assert:( nan asShortFloat isNaN ).
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    30
            self assert:( nan asLongFloat isNaN ).
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    31
        ].
204
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
1706
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    33
        "/ self assert:( nan asFraction isNaN ).
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    34
        "/ self assert:( nan asInteger isNaN ).
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    35
        self should:[ nan asFraction ] raise:DomainError.
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    36
        self should:[ nan asInteger ] raise:DomainError.
204
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
1706
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    38
        self assert:( nan + 1 ) isNaN.
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    39
        self assert:( nan + 1.0 ) isNaN.
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    40
        self assert:( nan + 1.0 asShortFloat ) isNaN.
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    41
        self assert:( nan + 1.0 asLongFloat ) isNaN.
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    42
        self assert:( nan + 1.0 asLargeFloat ) isNaN.
204
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
1706
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    44
        self assert:( 1 + nan ) isNaN.
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    45
        self assert:( 1.0 + nan ) isNaN.
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    46
        self assert:( 1.0 asShortFloat + nan ) isNaN.
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    47
        self assert:( 1.0 asLongFloat + nan ) isNaN.
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    48
        self assert:( 1.0 asLargeFloat + nan ) isNaN.
204
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
1706
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    50
        self assert:( nan - 1 ) isNaN.
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    51
        self assert:( nan - 1.0 ) isNaN.
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    52
        self assert:( nan - 1.0 asShortFloat ) isNaN.
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    53
        self assert:( nan - 1.0 asLongFloat ) isNaN.
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    54
        self assert:( nan - 1.0 asLargeFloat ) isNaN.
204
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
1706
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    56
        self assert:( 1 - nan ) isNaN.
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    57
        self assert:( 1.0 - nan ) isNaN.
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    58
        self assert:( 1.0 asShortFloat - nan ) isNaN.
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    59
        self assert:( 1.0 asLongFloat - nan ) isNaN.
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    60
        self assert:( 1.0 asLargeFloat - nan ) isNaN.
204
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
1706
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    62
        self assert:( nan * 1 ) isNaN.
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    63
        self assert:( nan * 1.0 ) isNaN.
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    64
        self assert:( nan * 1.0 asShortFloat ) isNaN.
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    65
        self assert:( nan * 1.0 asLongFloat ) isNaN.
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    66
        self assert:( nan * 1.0 asLargeFloat ) isNaN.
204
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
1706
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    68
        self assert:( 1 * nan ) isNaN.
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    69
        self assert:( 1.0 * nan ) isNaN.
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    70
        self assert:( 1.0 asShortFloat * nan ) isNaN.
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    71
        self assert:( 1.0 asLongFloat * nan ) isNaN.
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    72
        self assert:( 1.0 asLargeFloat * nan ) isNaN.
204
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
1706
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    74
        self assert:( nan / 1 ) isNaN.
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    75
        self assert:( nan / 1.0 ) isNaN.
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    76
        self assert:( nan / 1.0 asShortFloat ) isNaN.
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    77
        self assert:( nan / 1.0 asLongFloat ) isNaN.
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    78
        self assert:( nan / 1.0 asLargeFloat ) isNaN.
204
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
1706
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    80
        "/ skipped not sure if error division by zero or just return nan
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    81
"/        self assert:( 1 / nan ) isNaN.
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    82
"/        self assert:( 1.0 / nan ) isNaN.
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    83
"/        self assert:( 1.0 asShortFloat / nan ) isNaN.
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    84
"/        self assert:( 1.0 asLongFloat / nan ) isNaN.
5a6d4c85ea80 #BUGFIX by sr
sr
parents: 1447
diff changeset
    85
"/        self assert:( 1.0 asLargeFloat / nan ) isNaN.
204
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
    ].
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
    check value:(0.0 uncheckedDivide: 0.0).
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
    check value:(0.0 asShortFloat uncheckedDivide: 0.0).
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
    check value:(0.0 asLongFloat uncheckedDivide: 0.0).
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
    check value:(0.0 asLargeFloat uncheckedDivide: 0.0).
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
    check value:(0 uncheckedDivide: 0).
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
    "
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
     self basicNew test01_Nan
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
    "
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
!
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
test02_Inf
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
    "Infinity in all avaliable formats."
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
    |check posInf negInf|
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   104
    check :=
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   105
	[:v1 :v2 |
204
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   107
	    posInf := v1 uncheckedDivide: v2.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   108
	    negInf := v1 negated uncheckedDivide: v2.
204
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   110
	    v1 isLimitedPrecisionReal ifTrue:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   111
		self assert:( posInf isMemberOf:v1 class ).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   112
		self assert:( negInf isMemberOf:v1 class ).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   113
	    ].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   114
	    self assert:( posInf isNaN not ).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   115
	    self assert:( posInf isFinite not ).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   116
	    self assert:( posInf isInfinite ).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   117
	    self assert:( posInf positive ).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   118
	    self assert:( posInf negative not ).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   119
	    self assert:( posInf isNegativeInfinity not).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   120
	    self assert:( posInf isPositiveInfinity ).
204
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   122
	    self assert:( negInf isNaN not ).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   123
	    self assert:( negInf isFinite not ).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   124
	    self assert:( negInf isInfinite ).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   125
	    self assert:( negInf positive not).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   126
	    self assert:( negInf negative ).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   127
	    self assert:( negInf isNegativeInfinity ).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   128
	    self assert:( negInf isPositiveInfinity not ).
204
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   130
	    self assert:( negInf + negInf = negInf).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   131
	    self assert:( posInf + posInf = posInf).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   132
	    "/ self assert:( negInf + posInf) isNaN.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   133
	    self assert:( Number undefinedResultSignal ignoreIn:[ negInf + posInf]) isNaN.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   134
	    "/ self should:[ negInf + posInf ] raise:Number undefinedResultSignal.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   135
	    self assert:( Number undefinedResultSignal ignoreIn:[ posInf + negInf]) isNaN.
204
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   137
	    self assert:( negInf - posInf = negInf).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   138
	    self assert:( Number undefinedResultSignal ignoreIn:[ negInf - negInf]) isNaN.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   139
	    self assert:( posInf - negInf = posInf).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   140
	    self assert:( Number undefinedResultSignal ignoreIn:[ posInf - posInf]) isNaN.
204
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   142
	    self assert:( posInf + v1) = posInf.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   143
	    self assert:( posInf - v1) = posInf.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   144
	    self assert:( negInf + v1) = negInf.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   145
	    self assert:( negInf - v1) = negInf.
204
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   147
	    self assert:( posInf + 1) = posInf.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   148
	    self assert:( posInf + 1.0) = posInf.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   149
	    self assert:( posInf + 1.0 asShortFloat) = posInf.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   150
	    self assert:( posInf + 1.0 asLongFloat) = posInf.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   151
	    self assert:( posInf + 1.0 asLargeFloat) = posInf.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   152
	    self assert:( posInf + (1/2)) = posInf.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   153
	    self assert:( posInf + 100 factorial) = posInf.
204
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   155
	    self assert:( negInf + 1) = negInf.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   156
	    self assert:( negInf + 1.0) = negInf.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   157
	    self assert:( negInf + 1.0 asShortFloat) = negInf.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   158
	    self assert:( negInf + 1.0 asLongFloat) = negInf.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   159
	    self assert:( negInf + 1.0 asLargeFloat) = negInf.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   160
	    self assert:( negInf + (1/2)) = negInf.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   161
	    "take care, that the factorial is not poitive infinite when converting"
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   162
	    self assert:( negInf + 20 factorial asShortFloat) = negInf.
204
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   164
	    self assert:( 1 + posInf) = posInf.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   165
	    self assert:( 1.0 + posInf) = posInf.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   166
	    self assert:( 1.0 asShortFloat + posInf) = posInf.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   167
	    self assert:( 1.0 asLongFloat + posInf) = posInf.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   168
	    self assert:( 1.0 asLargeFloat + posInf) = posInf.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   169
	    self assert:( (1/2) + posInf) = posInf.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   170
	    self assert:( 20 factorial + posInf) = posInf.
204
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   172
	    self assert:( 1 + negInf) = negInf.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   173
	    self assert:( 1.0 + negInf) = negInf.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   174
	    self assert:( 1.0 asShortFloat + negInf) = negInf.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   175
	    self assert:( 1.0 asLongFloat + negInf) = negInf.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   176
	    self assert:( 1.0 asLargeFloat + negInf) = negInf.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   177
	    self assert:( (1/2) + negInf) = negInf.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   178
	    "take care, that the factorial is not poitive infinite when converting"
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   179
	    self assert:( 20 factorial + negInf) = negInf.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   180
	].
204
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   182
    check value: 1.0 value: 0.0.
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   183
    check value: 1.0 asShortFloat value: 0.0 asShortFloat.
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   184
    check value: 1.0 asLongFloat value: 0.0 asLongFloat.
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
    check value: 1.0 asLargeFloat value: 0.0 asLargeFloat.
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
    check value: 1 value: 0.
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
    "
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
     self basicNew test02_Inf
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
    "
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
! !
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
!MetaNumbersTest class methodsFor:'documentation'!
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
version
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
    ^ '$Header$'
7a02eaf7f06b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
! !
1071
4a02a41dce21 category
Claus Gittinger <cg@exept.de>
parents: 672
diff changeset
   199