RegressionTests__MiscArithmeticTests.st
author Claus Gittinger <cg@exept.de>
Tue, 09 Jul 2019 18:53:03 +0200
changeset 2327 bf482d49aeaf
parent 2325 070a15489964
child 2414 8cf9b2d022f5
permissions -rw-r--r--
#QUALITY by exept class: RegressionTests::StringTests added: #test82c_expanding
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2286
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/regression' }"
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"{ NameSpace: RegressionTests }"
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
TestCase subclass:#MiscArithmeticTests
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	instanceVariableNames:''
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
	category:'tests-Regression-Numbers'
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
!MiscArithmeticTests class methodsFor:'documentation'!
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
documentation
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
"
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
    documentation to be added.
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
    class:
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
        <a short class summary here, describing what instances represent>
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
    responsibilities:    
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
        <describing what my main role is>
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
    collaborators:    
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
        <describing with whom and how I talk to>
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
    API:
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
        <public api and main messages>
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
        
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
    example:
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
        <a one-line examples on how to use - can also be in a separate example method>
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
    implementation:
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
        <implementation points>
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
    [author:]
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
        Claus Gittinger
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
    [instance variables:]
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
    [class variables:]
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
    [see also:]
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
"
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
! !
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
!MiscArithmeticTests methodsFor:'tests'!
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
test01_sum
2325
070a15489964 #BUGFIX by Stefan Reise
sr
parents: 2313
diff changeset
    51
    <pragma: +STXExtendedArrayLiterals>
2286
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
    "tests the accumlated error when summing up many floats"
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
    |arr sum|
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
    arr := #(1e100 1 -1e100 1) asDoubleArray.
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
    sum := arr sum.
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
    sum = 2 ifFalse:[
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
        Transcript showCR:'ignored expected error in sum'.
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
    ].
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
    sum := arr esum.
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
    self assert:(sum = 2).
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
    arr := #(1e38 1 -1e38 1) asFloatArray.
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
    sum := arr sum.
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
    sum = 2 ifFalse:[
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
        Transcript showCR:'ignored expected error in sum'.
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
    ].
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
    sum := arr esum.
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
    self assert:(sum = 2).
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
    "/ same using literals    
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
    arr := #f32(1e38 1 -1e38 1).
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
    sum := arr esum.
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
    self assert:(sum = 2).
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
    arr := #f64(1e100 1 -1e100 1).
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
    sum := arr esum.
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
    self assert:(sum = 2).
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
    "
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
     self run:#test01_sum
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
     self new test01_sum
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
    "
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
    "Created: / 09-06-2019 / 10:35:16 / Claus Gittinger"
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
    "Modified: / 09-06-2019 / 14:20:16 / Claus Gittinger"
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
! !
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
!MiscArithmeticTests class methodsFor:'documentation'!
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
version_CVS
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
    ^ '$Header$'
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
! !
ea0092d86b52 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96