[Pkg] The Trunk: CollectionsTests-ul.250.mcz
commits at source.squeak.org
commits at source.squeak.org
Wed Sep 9 18:38:07 UTC 2015
Levente Uzonyi uploaded a new version of CollectionsTests to project The Trunk:
http://source.squeak.org/trunk/CollectionsTests-ul.250.mcz
==================== Summary ====================
Name: CollectionsTests-ul.250
Author: ul
Time: 9 September 2015, 8:33:02.788 pm
UUID: eab1e808-8b9c-4d1e-beaa-d6476b070026
Ancestors: CollectionsTests-ul.249
ByteArrayTest>>verifyPlatformIndepentendIntegerAccessorsMatch:for:setter:getter:storageBits:bigEndian: checks all possible index ranges of the given ByteArray.
=============== Diff against CollectionsTests-ul.249 ===============
Item was changed:
----- Method: ByteArrayTest>>verifyPlatformIndepentendIntegerAccessorsAtBitBordersSetter:getter:unsigned:storageBits: (in category 'testing - platform independent access') -----
verifyPlatformIndepentendIntegerAccessorsAtBitBordersSetter: setter getter: getter unsigned: unsigned storageBits: storageBits
| byteArray minValue maxValue baseValues |
+ byteArray := ByteArray new: storageBits // 8 * 2.
- byteArray := ByteArray new: storageBits // 8.
unsigned
ifTrue: [
minValue := 0.
maxValue := 1 << storageBits - 1.
baseValues := #(0 1) ]
ifFalse: [
minValue := -1 << (storageBits - 1).
maxValue := 1 << (storageBits - 1) - 1.
baseValues := #(-1 0 1) ].
#(true false) do: [ :bigEndian |
0 to: storageBits - 1 do: [ :bits |
baseValues do: [ :baseValue |
| centerValue |
centerValue := baseValue << bits.
centerValue - 1 to: centerValue + 1 do: [ :value |
(value between: minValue and: maxValue) ifTrue: [
self
verifyPlatformIndepentendIntegerAccessorsMatch: byteArray
for: value
setter: setter
getter: getter
storageBits: storageBits
bigEndian: bigEndian ] ] ] ] ]
!
Item was changed:
----- Method: ByteArrayTest>>verifyPlatformIndepentendIntegerAccessorsMatch:for:setter:getter:storageBits:bigEndian: (in category 'testing - platform independent access') -----
verifyPlatformIndepentendIntegerAccessorsMatch: byteArray for: value setter: setter getter: getter storageBits: storageBits bigEndian: bigEndian
+ | expectedSetterResult getterResult bytes |
- | expectedSetterResult getterResult |
expectedSetterResult := self byteArrayFor: value bits: storageBits bigEndian: bigEndian.
+ bytes := storageBits // 8.
+ 1 to: byteArray size - bytes + 1 do: [ :index |
+ byteArray
+ perform: setter
+ with: index
+ with: value
+ with: bigEndian.
+ 1 to: bytes do: [ :byteIndex |
+ self
+ assert: (expectedSetterResult at: byteIndex)
+ equals: (byteArray at: index + byteIndex - 1) ].
+ getterResult := byteArray
+ perform: getter
+ with: index
+ with: bigEndian.
+ self assert: value equals: getterResult ]!
- byteArray perform: setter with: 1 with: value with: bigEndian.
- self assert: expectedSetterResult equals: byteArray.
- getterResult := byteArray perform: getter with: 1 with: bigEndian.
- self assert: value equals: getterResult!
Item was changed:
----- Method: ByteArrayTest>>verifyPlatformIndepentendIntegerAccessorsWithRandomValuesSetter:getter:unsigned:storageBits:random: (in category 'testing - platform independent access') -----
verifyPlatformIndepentendIntegerAccessorsWithRandomValuesSetter: setter getter: getter unsigned: unsigned storageBits: storageBits random: random
| byteArray randomMax randomOffset |
+ byteArray := ByteArray new: storageBits // 8 * 2.
- byteArray := ByteArray new: storageBits // 8.
randomMax := 1 << storageBits.
randomOffset := unsigned
ifTrue: [ -1 ]
ifFalse: [ -1 << (storageBits - 1) - 1 ].
10000 timesRepeat: [
| value |
value := (random nextInt: randomMax) + randomOffset.
#(true false) do: [ :bigEndian |
self
verifyPlatformIndepentendIntegerAccessorsMatch: byteArray
for: value
setter: setter
getter: getter
storageBits: storageBits
bigEndian: bigEndian ] ]!
More information about the Packages
mailing list