RegressionTests__SmallIntegerTest.st
author Claus Gittinger <cg@exept.de>
Tue, 09 Jul 2019 18:53:03 +0200
changeset 2327 bf482d49aeaf
parent 2326 5c21d3f32845
child 2490 121b0230557c
permissions -rw-r--r--
#QUALITY by exept class: RegressionTests::StringTests added: #test82c_expanding
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2326
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
     1
"{ Encoding: utf8 }"
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
     2
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
     3
"{ Package: 'stx:goodies/regression' }"
310
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
"{ NameSpace: RegressionTests }"
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
TestCase subclass:#SmallIntegerTest
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	instanceVariableNames:''
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
	classVariableNames:''
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
	poolDictionaries:''
1074
905aea054cf4 category
Claus Gittinger <cg@exept.de>
parents: 619
diff changeset
    11
	category:'tests-Regression-Numbers'
310
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
!
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
!SmallIntegerTest methodsFor:'tests-arithmetic'!
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
testDivide
1835
e23ee59eb10c #BUGFIX by sr
sr
parents: 1766
diff changeset
    18
        |zero us1 us2 us3 us4 usm2 usm4|
619
f918fa22ad81 Circumvent compiler error about div by zero
Stefan Vogel <sv@exept.de>
parents: 364
diff changeset
    19
1835
e23ee59eb10c #BUGFIX by sr
sr
parents: 1766
diff changeset
    20
        "circumvent compiler error about division by zero"
e23ee59eb10c #BUGFIX by sr
sr
parents: 1766
diff changeset
    21
        zero := 0.
619
f918fa22ad81 Circumvent compiler error about div by zero
Stefan Vogel <sv@exept.de>
parents: 364
diff changeset
    22
1835
e23ee59eb10c #BUGFIX by sr
sr
parents: 1766
diff changeset
    23
        self assert: 2 / 1 = 2.
e23ee59eb10c #BUGFIX by sr
sr
parents: 1766
diff changeset
    24
        self assert: (3 / 2) isFraction.
e23ee59eb10c #BUGFIX by sr
sr
parents: 1766
diff changeset
    25
        self assert: 4 / 2 = 2.
e23ee59eb10c #BUGFIX by sr
sr
parents: 1766
diff changeset
    26
        self assert: 4 / -2 = -2.
e23ee59eb10c #BUGFIX by sr
sr
parents: 1766
diff changeset
    27
        self assert: -4 / 2 = -2.
e23ee59eb10c #BUGFIX by sr
sr
parents: 1766
diff changeset
    28
        self assert: -4 / -2 = 2.
e23ee59eb10c #BUGFIX by sr
sr
parents: 1766
diff changeset
    29
        self should: [ 1 / zero ] raise: ZeroDivide.
1223
708a62eac280 class: RegressionTests::SmallIntegerTest
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
    30
1835
e23ee59eb10c #BUGFIX by sr
sr
parents: 1766
diff changeset
    31
        us1 := 1.
e23ee59eb10c #BUGFIX by sr
sr
parents: 1766
diff changeset
    32
        us2 := 2.
e23ee59eb10c #BUGFIX by sr
sr
parents: 1766
diff changeset
    33
        us3 := 3.
e23ee59eb10c #BUGFIX by sr
sr
parents: 1766
diff changeset
    34
        us4 := 4.
e23ee59eb10c #BUGFIX by sr
sr
parents: 1766
diff changeset
    35
        usm2 := -2.
e23ee59eb10c #BUGFIX by sr
sr
parents: 1766
diff changeset
    36
        usm4 := -4.
1223
708a62eac280 class: RegressionTests::SmallIntegerTest
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
    37
1835
e23ee59eb10c #BUGFIX by sr
sr
parents: 1766
diff changeset
    38
        self assert: us2 / us1 = us2.
e23ee59eb10c #BUGFIX by sr
sr
parents: 1766
diff changeset
    39
        self assert: (us3 / us2) isFraction.
e23ee59eb10c #BUGFIX by sr
sr
parents: 1766
diff changeset
    40
        self assert: us4 / us2 = 2.
e23ee59eb10c #BUGFIX by sr
sr
parents: 1766
diff changeset
    41
        self assert: us4 / usm2 = -2.
e23ee59eb10c #BUGFIX by sr
sr
parents: 1766
diff changeset
    42
        self assert: usm4 / us2 = -2.
e23ee59eb10c #BUGFIX by sr
sr
parents: 1766
diff changeset
    43
        self assert: usm4 / usm2 = 2.
364
fd3ff5ad69f5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
    44
!
fd3ff5ad69f5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
    45
fd3ff5ad69f5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
    46
testMultiply
fd3ff5ad69f5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
    47
    |i ii|
fd3ff5ad69f5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
    48
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    49
    #(
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    50
	16r3fff
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    51
	16r7fff
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    52
	16rffff
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    53
	16r3fffffff
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    54
	16r7fffffff
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    55
	16rffffffff
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    56
	16r20000000
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    57
	16r40000000
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    58
	16r80000000
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    59
	16r100000000
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    60
	16r20000001
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    61
	16r40000001
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    62
	16r80000001
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    63
	16r100000001
1223
708a62eac280 class: RegressionTests::SmallIntegerTest
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
    64
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    65
	"/ for 64 bit machines:
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    66
	16r3fffffffffffffff
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    67
	16r7fffffffffffffff
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    68
	16rffffffffffffffff
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    69
	16r2000000000000000
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    70
	16r4000000000000000
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    71
	16r8000000000000000
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    72
	16r10000000000000000
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    73
	16r2000000000000001
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    74
	16r4000000000000001
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    75
	16r8000000000000001
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    76
	16r10000000000000001
364
fd3ff5ad69f5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
    77
    ) do:[:x |
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    78
	i := x.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    79
	ii := i * i.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    80
	self assert:((ii / i) = i).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    81
	i class == SmallInteger ifTrue:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    82
	    self assert:((ii / i) == i).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    83
	].
364
fd3ff5ad69f5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
    84
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    85
	i := x negated.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    86
	ii := i * i.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    87
	self assert:((ii / i) = i).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    88
	i class == SmallInteger ifTrue:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    89
	    self assert:((ii / i) == i).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    90
	].
364
fd3ff5ad69f5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
    91
    ].
fd3ff5ad69f5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
    92
!
fd3ff5ad69f5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
    93
fd3ff5ad69f5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
    94
testNegation
1596
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
    95
    |i iN iNN iNNN|
364
fd3ff5ad69f5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
    96
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
    97
    #(
1596
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
    98
        16r1fffffff
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
    99
        16r3fffffff
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   100
        16r7fffffff
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   101
        16rffffffff
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   102
        16r20000000
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   103
        16r40000000
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   104
        16r80000000
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   105
        16r100000000
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   106
        16r20000001
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   107
        16r40000001
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   108
        16r80000001
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   109
        16r100000001
1223
708a62eac280 class: RegressionTests::SmallIntegerTest
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   110
1596
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   111
        "/ for 64bit machines:
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   112
        16r3fffffffffffffff
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   113
        16r7fffffffffffffff
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   114
        16rffffffffffffffff
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   115
        16r2000000000000000
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   116
        16r4000000000000000
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   117
        16r8000000000000000
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   118
        16r10000000000000000
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   119
        16r2000000000000001
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   120
        16r4000000000000001
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   121
        16r8000000000000001
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   122
        16r10000000000000001
364
fd3ff5ad69f5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
   123
    ) do:[:x |
1596
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   124
        i := x.
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   125
        iN := i negated.
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   126
        iNN := iN negated.
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   127
        iNNN := iNN negated.
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   128
        self assert:(i = iNN).
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   129
        i class == SmallInteger ifTrue:[
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   130
            self assert:(i == iNN).
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   131
        ].
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   132
        self assert:(iN = iNNN).
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   133
        iN class == SmallInteger ifTrue:[
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   134
            self assert:(iN == iNNN).
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   135
        ].
364
fd3ff5ad69f5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
   136
    ].
1306
9b2ba728b70e #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1223
diff changeset
   137
    self assert:(SmallInteger maxVal negated class == SmallInteger).
9b2ba728b70e #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1223
diff changeset
   138
    self assert:(SmallInteger maxVal negated negated == SmallInteger maxVal).
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
   139
1306
9b2ba728b70e #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1223
diff changeset
   140
    self assert:(SmallInteger maxVal negated -1 == SmallInteger minVal).
9b2ba728b70e #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1223
diff changeset
   141
    self assert:(SmallInteger minVal negated negated class == SmallInteger).
1596
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   142
77e41a57cda0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   143
    "Modified: / 28-02-2017 / 16:42:04 / cg"
310
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
! !
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
2109
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   146
!SmallIntegerTest methodsFor:'tests-bit fiddling'!
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   147
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   148
testBitCount
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   149
     1 to:1000000 do:[:n |
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   150
        self assert:(n bitCount = ((n printStringRadix:2) occurrencesOf:$1))
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   151
     ].
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   152
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   153
     #( 16r00000000
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   154
        16r00010000 16r00100000 16r01000000 16r10000000
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   155
        16r00020000 16r00200000 16r02000000 16r20000000
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   156
        16r00040000 16r00400000 16r04000000 16r40000000
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   157
        16r00080000 16r00800000 16r08000000 16r80000000
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   158
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   159
        16rFFFFFFFF 16r7FFFFFFF 16r3FFFFFFF 16r1FFFFFFF
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   160
        16rEEEEEEEE 16r7EEEEEEE 16r3EEEEEEE 16r1EEEEEEE
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   161
        16rDDDDDDDD 16r7DDDDDDD 16r3DDDDDDD 16r1DDDDDDD
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   162
        16rCCCCCCCC 16r7CCCCCCC 16r3CCCCCCC 16r1CCCCCCC
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   163
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   164
        16r8000000000010000 16r8000000000100000 16r8000000001000000 16r8000000010000000
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   165
        16r8000000000020000 16r8000000000200000 16r8000000002000000 16r8000000020000000
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   166
        16r8000000000040000 16r8000000000400000 16r8000000004000000 16r8000000040000000
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   167
        16r8000000000080000 16r8000000000800000 16r8000000008000000 16r8000000080000000
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   168
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   169
        16r80000000FFFFFFFF 16r800000007FFFFFFF 16r800000003FFFFFFF 16r800000001FFFFFFF
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   170
        16r80000000EEEEEEEE 16r800000007EEEEEEE 16r800000003EEEEEEE 16r800000001EEEEEEE
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   171
        16r80000000DDDDDDDD 16r800000007DDDDDDD 16r800000003DDDDDDD 16r800000001DDDDDDD
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   172
        16r80000000CCCCCCCC 16r800000007CCCCCCC 16r800000003CCCCCCC 16r800000001CCCCCCC
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   173
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   174
        16rFFFFFFFFFFFFFFFF 16r7FFFFFFFFFFFFFFF 16r3FFFFFFFFFFFFFFF 16r1FFFFFFFFFFFFFFF
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   175
     ) do:[:n |
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   176
        self assert:(n bitCount = ((n printStringRadix:2) occurrencesOf:$1))
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   177
     ].
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   178
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   179
    "Created: / 20-03-2019 / 12:43:06 / Claus Gittinger"
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   180
!
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   181
2144
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   182
testBitReversed
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   183
    #( 
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   184
        2r10000000 2r00000001
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   185
        2r01000000 2r00000010
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   186
        2r00100000 2r00000100
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   187
        2r00010000 2r00001000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   188
        2r00001000 2r00010000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   189
        2r00000100 2r00100000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   190
        2r00000010 2r01000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   191
        2r00000001 2r10000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   192
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   193
        "/ high bits are to be ignored (i.e. clear) 
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   194
        2r100000001 2r10000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   195
        2r110000000 2r00000001
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   196
    )
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   197
    pairWiseDo:[:in :expected |
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   198
        self assert:(in bitReversed8 == expected)
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   199
    ].
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   200
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   201
    #( 
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   202
        2r1000000000000000 2r0000000000000001
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   203
        2r0100000000000000 2r0000000000000010
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   204
        2r0010000000000000 2r0000000000000100
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   205
        2r0001000000000000 2r0000000000001000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   206
        2r0000100000000000 2r0000000000010000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   207
        2r0000010000000000 2r0000000000100000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   208
        2r0000001000000000 2r0000000001000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   209
        2r0000000100000000 2r0000000010000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   210
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   211
        2r0000000010000000 2r0000000100000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   212
        2r0000000001000000 2r0000001000000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   213
        2r0000000000100000 2r0000010000000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   214
        2r0000000000010000 2r0000100000000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   215
        2r0000000000001000 2r0001000000000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   216
        2r0000000000000100 2r0010000000000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   217
        2r0000000000000010 2r0100000000000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   218
        2r0000000000000001 2r1000000000000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   219
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   220
        "/ high bits are to be ignored (i.e. clear) 
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   221
        2r10000000000000001 2r1000000000000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   222
        2r11000000000000000 2r0000000000000001
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   223
    )
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   224
    pairWiseDo:[:in :expected |
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   225
        self assert:(in bitReversed16 == expected)
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   226
    ].
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   227
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   228
    #( 
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   229
        2r10000000000000000000000000000000 2r00000000000000000000000000000001
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   230
        2r01000000000000000000000000000000 2r00000000000000000000000000000010
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   231
        2r00100000000000000000000000000000 2r00000000000000000000000000000100
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   232
        2r00010000000000000000000000000000 2r00000000000000000000000000001000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   233
        2r00001000000000000000000000000000 2r00000000000000000000000000010000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   234
        2r00000100000000000000000000000000 2r00000000000000000000000000100000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   235
        2r00000010000000000000000000000000 2r00000000000000000000000001000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   236
        2r00000001000000000000000000000000 2r00000000000000000000000010000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   237
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   238
        2r00000000100000000000000000000000 2r00000000000000000000000100000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   239
        2r00000000010000000000000000000000 2r00000000000000000000001000000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   240
        2r00000000001000000000000000000000 2r00000000000000000000010000000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   241
        2r00000000000100000000000000000000 2r00000000000000000000100000000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   242
        2r00000000000010000000000000000000 2r00000000000000000001000000000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   243
        2r00000000000001000000000000000000 2r00000000000000000010000000000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   244
        2r00000000000000100000000000000000 2r00000000000000000100000000000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   245
        2r00000000000000010000000000000000 2r00000000000000001000000000000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   246
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   247
        2r00000000000000001000000000000000 2r00000000000000010000000000000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   248
        2r00000000000000000100000000000000 2r00000000000000100000000000000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   249
        2r00000000000000000010000000000000 2r00000000000001000000000000000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   250
        2r00000000000000000001000000000000 2r00000000000010000000000000000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   251
        2r00000000000000000000100000000000 2r00000000000100000000000000000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   252
        2r00000000000000000000010000000000 2r00000000001000000000000000000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   253
        2r00000000000000000000001000000000 2r00000000010000000000000000000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   254
        2r00000000000000000000000100000000 2r00000000100000000000000000000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   255
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   256
        2r00000000000000000000000010000000 2r00000001000000000000000000000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   257
        2r00000000000000000000000001000000 2r00000010000000000000000000000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   258
        2r00000000000000000000000000100000 2r00000100000000000000000000000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   259
        2r00000000000000000000000000010000 2r00001000000000000000000000000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   260
        2r00000000000000000000000000001000 2r00010000000000000000000000000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   261
        2r00000000000000000000000000000100 2r00100000000000000000000000000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   262
        2r00000000000000000000000000000010 2r01000000000000000000000000000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   263
        2r00000000000000000000000000000001 2r10000000000000000000000000000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   264
        
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   265
        "/ high bits are to be ignored (i.e. clear) 
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   266
        2r100000000000000000000000000000001 2r10000000000000000000000000000000
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   267
        2r110000000000000000000000000000000 2r00000000000000000000000000000001
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   268
    )
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   269
    pairWiseDo:[:in :expected |
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   270
        self assert:(in bitReversed32 = expected)
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   271
    ].
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   272
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   273
    "Created: / 24-03-2019 / 13:13:28 / Claus Gittinger"
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   274
!
6ae2075f4d5b #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   275
2109
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   276
testBitShift
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   277
    #(
2326
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   278
        (1 1 2)
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   279
        (1 2 4)
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   280
        (1 3 8)
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   281
        (1 7 16r080)
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   282
        (1 8 16r100)
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   283
        (1 15 16r08000)
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   284
        (1 16 16r10000)
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   285
        (1 17 16r20000)
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   286
        (1 30 16r040000000)
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   287
        (1 31 16r080000000)
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   288
        (1 32 16r100000000)
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   289
        (1 33 16r200000000)
2109
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   290
2326
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   291
        (1 62 16r04000000000000000)
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   292
        (1 63 16r08000000000000000)
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   293
        (1 64 16r10000000000000000)
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   294
        (1 65 16r20000000000000000)
2109
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   295
2326
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   296
        (1 126 16r040000000000000000000000000000000)
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   297
        (1 127 16r080000000000000000000000000000000)
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   298
        (1 128 16r100000000000000000000000000000000)
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   299
        (1 129 16r200000000000000000000000000000000)
2109
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   300
2326
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   301
        (16r10 1 16r20)
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   302
        (16r10 2 16r40)
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   303
        (16r10 3 16r80)
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   304
        (16r10 7 16r0800)
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   305
        (16r10 8 16r1000)
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   306
        (16r10 15 16r080000)
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   307
        (16r10 16 16r100000)
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   308
        (16r10 17 16r200000)
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   309
        (16r10 30 16r0400000000)
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   310
        (16r10 31 16r0800000000)
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   311
        (16r10 32 16r1000000000)
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   312
        (16r10 33 16r2000000000)
2109
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   313
2326
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   314
        (16r10 62 16r040000000000000000)
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   315
        (16r10 63 16r080000000000000000)
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   316
        (16r10 64 16r100000000000000000)
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   317
        (16r10 65 16r200000000000000000)
2109
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   318
2326
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   319
        (16r10 126 16r0400000000000000000000000000000000)
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   320
        (16r10 127 16r0800000000000000000000000000000000)
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   321
        (16r10 128 16r1000000000000000000000000000000000)
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   322
        (16r10 129 16r2000000000000000000000000000000000)
2109
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   323
    ) triplesDo:[:val :cnt :expected |
2326
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   324
        |rslt1 rslt2|
2109
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   325
2326
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   326
        rslt1 := val bitShift:cnt.
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   327
        self assert:(rslt1 = expected).
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   328
        expected class == SmallInteger ifTrue:[
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   329
            self assert:(rslt1 == expected)
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   330
        ].
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   331
        rslt2 := rslt1 bitShift:cnt negated.
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   332
        self assert:(rslt2 = val).
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   333
        val class == SmallInteger ifTrue:[
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   334
            self assert:(rslt2 == val)
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   335
        ].
2109
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   336
    ].
2326
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   337
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   338
    "/ negative shifts:
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   339
    self assert:(-1 bitShift:-1) == -1. 
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   340
    self assert:(-1 bitShift:-31) == -1. 
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   341
    self assert:(-1 bitShift:-32) == -1. 
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   342
    self assert:(-1 bitShift:-33) == -1. 
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   343
    self assert:(-1 bitShift:-63) == -1. 
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   344
    self assert:(-1 bitShift:-64) == -1. 
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   345
    self assert:(-1 bitShift:-65) == -1. 
5c21d3f32845 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2144
diff changeset
   346
    self assert:(-1 bitShift:-100) == -1. 
2109
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   347
!
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   348
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   349
testBitShiftNegative
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   350
    #(
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   351
        (-1 1 -2)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   352
        (-1 2 -4)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   353
        (-1 3 -8)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   354
        (-1 7 16r-080)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   355
        (-1 8 16r-100)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   356
        (-1 15 16r-08000)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   357
        (-1 16 16r-10000)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   358
        (-1 17 16r-20000)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   359
        (-1 30 16r-040000000)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   360
        (-1 31 16r-080000000)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   361
        (-1 32 16r-100000000)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   362
        (-1 33 16r-200000000)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   363
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   364
        (-1 62 16r-04000000000000000)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   365
        (-1 63 16r-08000000000000000)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   366
        (-1 64 16r-10000000000000000)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   367
        (-1 65 16r-20000000000000000)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   368
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   369
        (-1 126 16r-040000000000000000000000000000000)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   370
        (-1 127 16r-080000000000000000000000000000000)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   371
        (-1 128 16r-100000000000000000000000000000000)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   372
        (-1 129 16r-200000000000000000000000000000000)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   373
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   374
        (16r-10 1 16r-20)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   375
        (16r-10 2 16r-40)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   376
        (16r-10 3 16r-80)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   377
        (16r-10 7 16r-0800)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   378
        (16r-10 8 16r-1000)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   379
        (16r-10 15 16r-080000)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   380
        (16r-10 16 16r-100000)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   381
        (16r-10 17 16r-200000)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   382
        (16r-10 30 16r-0400000000)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   383
        (16r-10 31 16r-0800000000)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   384
        (16r-10 32 16r-1000000000)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   385
        (16r-10 33 16r-2000000000)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   386
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   387
        (16r-10 62 16r-040000000000000000)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   388
        (16r-10 63 16r-080000000000000000)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   389
        (16r-10 64 16r-100000000000000000)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   390
        (16r-10 65 16r-200000000000000000)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   391
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   392
        (16r-10 126 16r-0400000000000000000000000000000000)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   393
        (16r-10 127 16r-0800000000000000000000000000000000)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   394
        (16r-10 128 16r-1000000000000000000000000000000000)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   395
        (16r-10 129 16r-2000000000000000000000000000000000)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   396
    ) triplesDo:[:val :cnt :expected |
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   397
        |rslt1 rslt2|
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   398
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   399
        rslt1 := val bitShift:cnt.
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   400
        self assert:(rslt1 = expected).
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   401
        expected class == SmallInteger ifTrue:[
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   402
            self assert:(rslt1 == expected)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   403
        ].
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   404
        rslt2 := rslt1 bitShift:cnt negated.
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   405
        self assert:(rslt2 = val).
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   406
        val class == SmallInteger ifTrue:[
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   407
            self assert:(rslt2 == val)
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   408
        ].
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   409
    ].
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   410
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   411
    "Modified (format): / 19-09-2017 / 16:29:36 / stefan"
2111
76819317c155 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2109
diff changeset
   412
!
76819317c155 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2109
diff changeset
   413
76819317c155 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2109
diff changeset
   414
testParity
76819317c155 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2109
diff changeset
   415
     self assert:(1 parityOdd).
76819317c155 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2109
diff changeset
   416
     self assert:(2 parityOdd).
76819317c155 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2109
diff changeset
   417
     self assert:(3 parityOdd not).
76819317c155 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2109
diff changeset
   418
     self assert:(16r20000000 parityOdd).
76819317c155 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2109
diff changeset
   419
     self assert:(16r30000000 parityOdd not).
76819317c155 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2109
diff changeset
   420
     self assert:(16r40000000 parityOdd).
76819317c155 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2109
diff changeset
   421
     self assert:(16r50000000 parityOdd not).
76819317c155 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2109
diff changeset
   422
     self assert:(16rFFFFFFFF parityOdd not).
76819317c155 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2109
diff changeset
   423
     self assert:(16r2000000000000000 parityOdd).
76819317c155 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2109
diff changeset
   424
     self assert:(16r3000000000000000 parityOdd not).
76819317c155 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2109
diff changeset
   425
     self assert:(16r4000000000000000 parityOdd).
76819317c155 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2109
diff changeset
   426
     self assert:(16r5000000000000000 parityOdd not).
76819317c155 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2109
diff changeset
   427
     self assert:(16rFFFFFFFFFFFFFFFF parityOdd not).
76819317c155 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2109
diff changeset
   428
     self assert:(16r200000000000000000000000 parityOdd).
76819317c155 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2109
diff changeset
   429
     self assert:(16r300000000000000000000000 parityOdd not).
76819317c155 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2109
diff changeset
   430
     self assert:(16r400000000000000000000000 parityOdd).
76819317c155 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2109
diff changeset
   431
     self assert:(16r500000000000000000000000 parityOdd not).
76819317c155 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2109
diff changeset
   432
     self assert:(16rFFFFFFFFFFFFFFFFFFFFFFFF parityOdd not).
76819317c155 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2109
diff changeset
   433
76819317c155 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2109
diff changeset
   434
    "Created: / 20-03-2019 / 13:38:42 / Claus Gittinger"
2109
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   435
! !
851570e26c15 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1882
diff changeset
   436
310
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   437
!SmallIntegerTest methodsFor:'tests-class protocol'!
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   438
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   439
testBasicNew
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
   440
    self should: [SmallInteger basicNew] raise: TestResult error.
310
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   441
!
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   442
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   443
testMaxVal
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   444
    "/ the original code did not check for pointer-size;
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   445
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   446
    Smalltalk isSmalltalkX ifTrue:[
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
   447
	SmallInteger maxBytes == 4 ifTrue:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
   448
	    self should: [SmallInteger maxVal = 16r3FFFFFFF].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
   449
	    self should: [SmallInteger maxVal == 16r3FFFFFFF].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
   450
	] ifFalse:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
   451
	    self should: [SmallInteger maxVal = 16r3FFFFFFFFFFFFFFF].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
   452
	    self should: [SmallInteger maxVal == 16r3FFFFFFFFFFFFFFF].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
   453
	].
310
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   454
    ] ifFalse:[
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
   455
	self should: [SmallInteger maxVal = 16r3FFFFFFF].
310
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   456
    ]
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   457
!
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   458
1347
e965d238a810 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1306
diff changeset
   459
testMaxValPointerSizeConsistency
e965d238a810 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1306
diff changeset
   460
    SmallInteger maxBytes == 4 ifTrue:[
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
   461
	self assert: ((SmallInteger maxBits == 31) or:[SmallInteger maxBits == 32]).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
   462
	self assert: (ExternalAddress pointerSize == 4).
1347
e965d238a810 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1306
diff changeset
   463
    ] ifFalse:[
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
   464
	self assert: ((SmallInteger maxBits == 63) or:[SmallInteger maxBits == 64]).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1347
diff changeset
   465
	self assert: (ExternalAddress pointerSize == 8).
1347
e965d238a810 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1306
diff changeset
   466
    ]
e965d238a810 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1306
diff changeset
   467
!
e965d238a810 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1306
diff changeset
   468
310
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   469
testMinVal
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   470
    "/ the original code did not check for pointer-size;
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   471
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   472
    Smalltalk isSmalltalkX ifTrue:[
1709
1377a649bd18 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 1596
diff changeset
   473
        SmallInteger maxBytes == 4 ifTrue:[
1377a649bd18 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 1596
diff changeset
   474
            self should: [SmallInteger minVal = 16r-40000000].
1377a649bd18 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 1596
diff changeset
   475
            self should: [SmallInteger minVal == 16r-40000000].
1377a649bd18 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 1596
diff changeset
   476
        ] ifFalse:[
1377a649bd18 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 1596
diff changeset
   477
            self should: [SmallInteger minVal = 16r-4000000000000000].
1377a649bd18 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 1596
diff changeset
   478
            self should: [SmallInteger minVal == 16r-4000000000000000].
1377a649bd18 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 1596
diff changeset
   479
        ].
310
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   480
    ] ifFalse:[
1709
1377a649bd18 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 1596
diff changeset
   481
        self should: [SmallInteger minVal = 16r-40000000].
310
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   482
    ]
1709
1377a649bd18 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 1596
diff changeset
   483
1377a649bd18 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 1596
diff changeset
   484
    "Modified (format): / 19-09-2017 / 16:29:45 / stefan"
310
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   485
!
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   486
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   487
testNew
2111
76819317c155 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2109
diff changeset
   488
    self should: [SmallInteger new] raise: Error.
76819317c155 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2109
diff changeset
   489
76819317c155 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2109
diff changeset
   490
    "Modified (comment): / 20-03-2019 / 14:57:12 / Claus Gittinger"
310
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   491
! !
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   492
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   493
!SmallIntegerTest class methodsFor:'documentation'!
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   494
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   495
version
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   496
    ^ '$Header$'
2111
76819317c155 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2109
diff changeset
   497
!
76819317c155 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2109
diff changeset
   498
76819317c155 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2109
diff changeset
   499
version_CVS
76819317c155 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2109
diff changeset
   500
    ^ '$Header$'
310
f7a1f000a281 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   501
! !
1074
905aea054cf4 category
Claus Gittinger <cg@exept.de>
parents: 619
diff changeset
   502