RegressionTests__QDoubleTests.st
author Claus Gittinger <cg@exept.de>
Tue, 13 Jun 2017 09:04:15 +0200
changeset 1606 148c8253d741
child 1607 00dc6d97bc10
permissions -rw-r--r--
initial checkin
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1606
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/regression' }"
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"{ NameSpace: RegressionTests }"
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
TestCase subclass:#QDoubleTests
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	instanceVariableNames:''
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
	category:'tests-regression'
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
!QDoubleTests class methodsFor:'documentation'!
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
documentation
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
"
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
    documentation to be added.
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
    [author:]
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
        cg
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
    [instance variables:]
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
    [class variables:]
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
    [see also:]
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
"
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
! !
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
!QDoubleTests methodsFor:'tests'!
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
test_01_instance_creation
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
    |d|
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
    d := QDouble fromFloat:1.0.
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
    "
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
     self run:#test_01_instance_creation
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
     self new test_01_instance_creation
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
    "
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
    "Created: / 12-06-2017 / 17:03:46 / cg"
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
    "Modified: / 12-06-2017 / 18:41:14 / cg"
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
!
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
test_02_addition
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
    |d1 d2 l1 l2 sum_l q1 q2 sum_d sum_q|
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
    d1 := 1.0.
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
    d2 := 1.0e-16.
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
    sum_d := d1 + d2.
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
    "/ precision is lost with doubles!!
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
    self assert:( sum_d - 1.0 = 0.0 ).
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
    
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
    l1 := 1.0 asLongFloat.
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
    l2 := 1.0e-16 asLongFloat.
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
    sum_l := l1 + l2.
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
    "/ no precision is lost with long doubles!!
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
    self assert:( (sum_l - (1.0 asLongFloat)) > 0.0 ).
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
    q1 := QDouble fromFloat:1.0.
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
    q2 := QDouble fromFloat:1.0e-16.
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
    sum_q := q1 + q2.
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
    
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
    "
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
     self run:#test_02_addition
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
     self new test_02_addition
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
    "
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
    "Created: / 12-06-2017 / 17:05:07 / cg"
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
    "Modified: / 12-06-2017 / 18:41:25 / cg"
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
!
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
test_03_subtract
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
    |d1 d2 l1 l2 diff_l q1 q2 diff_d diff_q|
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
    d1 := 1.0.
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
    d2 := 0.99999.
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
    diff_d := d1 - d2.
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
    "/ precision is lost with doubles!!
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
    
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
    l1 := 1.0 asLongFloat.
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
    l2 := 0.99999 asLongFloat.
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
    diff_l := l1 - l2.
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
    "/ no precision is lost with long doubles!!
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
    q1 := QDouble fromFloat:1.0.
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
    q2 := QDouble fromFloat:0.99999.
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
    diff_q := q1 - q2.
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
    
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
    "
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
     self run:#test_03_subtract
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
     self new test_03_subtract
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
    "
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
    "Created: / 12-06-2017 / 23:12:00 / cg"
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
! !
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
!QDoubleTests class methodsFor:'documentation'!
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
version
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
    ^ '$Header$'
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
!
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
version_CVS
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
    ^ '$Header$'
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
! !
148c8253d741 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110