[Pkg] The Trunk: CollectionsTests-nice.218.mcz
commits at source.squeak.org
commits at source.squeak.org
Sun May 25 21:46:44 UTC 2014
Nicolas Cellier uploaded a new version of CollectionsTests to project The Trunk:
http://source.squeak.org/trunk/CollectionsTests-nice.218.mcz
==================== Summary ====================
Name: CollectionsTests-nice.218
Author: nice
Time: 25 May 2014, 11:46:20.057 pm
UUID: 09e9444f-318a-4c31-9ba9-139ee94fb3e0
Ancestors: CollectionsTests-nice.217
Fix a test that did not work anymore after change of Fraction>>hash
=============== Diff against CollectionsTests-nice.217 ===============
Item was changed:
----- Method: WeakSetTest>>testCollisions (in category 'testing') -----
testCollisions
| ws o1 o2 o5 on remember forget |
"create a weak set"
ws := WeakSet new: 15.
"select some fractions wanting same place in ws array"
+ o1 := (2 to: 200) select: [:i | (ws scanFor: 1 / i) = 1].
+ o2 := (2 to: 200) select: [:i | (ws scanFor: 1 / i) = 2].
+ o5 := (2 to: 200) select: [:i | (ws scanFor: 1 / i) = 5].
+ on := (2 to: 200) select: [:i | (ws scanFor: 1 / i) = (ws array size - 1)].
- o1 := (2 to: 100) select: [:i | (ws scanFor: 1 / i) = 1].
- o2 := (2 to: 100) select: [:i | (ws scanFor: 1 / i) = 2].
- o5 := (2 to: 100) select: [:i | (ws scanFor: 1 / i) = 5].
- on := (2 to: 100) select: [:i | (ws scanFor: 1 / i) = (ws array size - 1)].
"Add some fractions to the weak set, and remember a pointer for a few of them"
remember := OrderedCollection new.
forget := OrderedCollection new.
ws add: (remember add: 1 / o1 first).
ws add: (forget add: 1 / on second).
ws add: (forget add: 1 / o1 second).
ws add: (forget add: 1 / o5 second).
ws add: (forget add: 1 / o2 second).
ws add: (forget add: 1 / o1 third).
ws add: (remember add: 1 / o2 first).
ws add: (forget add: 1 / o5 third).
ws add: (forget add: 1 / on third).
ws add: (remember add: 1 / o2 fourth).
ws add: (remember add: 1 / on first).
ws add: (remember add: 1 / o5 first).
"forget and reclaim all entries but those in remember"
forget := nil.
Smalltalk garbageCollect.
remember do: [:m | self assert: (ws includes: m)].
ws add: 1/on second.
remember do: [:m | self assert: (ws includes: m)].
ws add: (remember add: 1 / o1 fourth).
ws add: (remember add: 1 / on fourth).
remember remove: (ws remove: (1 / o5 first)).
remember remove: (ws remove: (1 / on first)).
remember remove: (ws remove: (1 / o2 first)).
remember remove: (ws remove: (1 / o1 first)).
remember do: [:m | self assert: (ws includes: m)].
ws add: 1/on second.
ws add: 1/o5 second.
remember do: [:m | self assert: (ws includes: m)].
!
More information about the Packages
mailing list