[squeak-dev] The Trunk: KernelTests-eem.224.mcz
Frank Shearar
frank.shearar at gmail.com
Mon May 28 14:59:27 UTC 2012
On 28 May 2012 14:33, Levente Uzonyi <leves at elte.hu> wrote:
> On Mon, 28 May 2012, Frank Shearar wrote:
>
>> On 27 May 2012 23:16, <commits at source.squeak.org> wrote:
>>>
>>> Eliot Miranda uploaded a new version of KernelTests to project The Trunk:
>>> http://source.squeak.org/trunk/KernelTests-eem.224.mcz
>>>
>>> ==================== Summary ====================
>>>
>>> Name: KernelTests-eem.224
>>> Author: eem
>>> Time: 27 May 2012, 3:16:16.618 pm
>>> UUID: 2d674fd0-22e3-4b5c-82ae-af5642c9614f
>>> Ancestors: KernelTests-nice.223
>>>
>>> Add a long test case for CompiledMethod = & hash
>>>
>>> =============== Diff against KernelTests-nice.223 ===============
>>>
>>> Item was added:
>>> + LongTestCase subclass: #CompiledMethodComparisonTest
>>> + instanceVariableNames: ''
>>> + classVariableNames: ''
>>> + poolDictionaries: ''
>>> + category: 'KernelTests-Methods'!
>>>
>>> Item was added:
>>> + ----- Method: CompiledMethodComparisonTest>>testHash (in category
>>> 'tests') -----
>>> + testHash
>>> + | ai |
>>> + ai := CompiledMethod allInstances.
>>> + ai do:
>>> + [:a|
>>> + ai do:
>>> + [:b|
>>> + a = b ifTrue: [self assert: a hash = b hash]]]!
>>>
>>>
>>
>> Not necessarily here, but it'd be good to see that (a = b) ifFalse:
>> [self deny: a hash = b hash] holds.
>
>
> That would be a nice property, but hash functions are not injective. If they
> were, then either the codomain would be too large (not SmallInteger in our
> case, which makes hashing impractical) or there were no need for the use of
> hashing at all, since there were no collisions.
Sure, collisions mean that you can have a ~= b and yet a hash = b
hash. Nevertheless, CompiledMethod define: #hash as: [^ 1] satisfies
the above test, so on its own it's insufficient. I wouldn't ask for
testing CM x CM - {CompiledMethods whose hashes collide} !
frank
> Levente
>
>>
>> frank
>>
>
>
>
More information about the Squeak-dev
mailing list
|