[squeak-dev] The Inbox: CollectionsTests-cbc.296.mcz

Eliot Miranda eliot.miranda at gmail.com
Mon Oct 29 07:32:45 UTC 2018


Hi Chris,

On Sun, Oct 28, 2018 at 5:13 PM <commits at source.squeak.org> wrote:

> Chris Cunningham uploaded a new version of CollectionsTests to project The
> Inbox:
> http://source.squeak.org/inbox/CollectionsTests-cbc.296.mcz
>
> ==================== Summary ====================
>
> Name: CollectionsTests-cbc.296
> Author: cbc
> Time: 28 October 2018, 5:12:30.875512 pm
> UUID: 12a1d6bf-85c7-8d40-aa1c-022556c1cb18
> Ancestors: CollectionsTests-topa.295
>
> Test for #hash and #= bugs.  In anticipation of fixing these.
>
> =============== Diff against CollectionsTests-topa.295 ===============
>
> Item was added:
> + ----- Method: IntervalTest>>testHashBug3380 (in category 'tests') -----
> + testHashBug3380
> +       "Array and Interval equate, but their hashes didn't.  Test that
> this is fixed.
> +       It is about mantis bug http://bugs.squeak.org/view.php?id=6455"
> +       | interval array |
> +       interval := (1 to: 3).
> +       array:= #(1 2 3).
> +       self assert: interval equals: array.
>

At least for me I don't see why this should be true.  We have
hasEqualElements: for this, so

SequenceableCollection allSubclasses select:
[:c|
[(#(1 2 3) as: c) = #(1 2 3)] on: Error do: [:ex| false]]
an OrderedCollection(LinkedList Interval RunArray Array Mutex WeakArray
Monitor)

SequenceableCollection allSubclasses reject:
[:c|
[(#(1 2 3) as: c) = #(1 2 3)] on: Error do: [:ex| true]] an
OrderedCollection(OrderedCollection SourceFileArray SoundBuffer WordArray
ShortIntegerArray Bitmap FloatArray ShortRunArray ByteArray IntegerArray
SparseLargeTable PredicatedArray DoubleByteArray DoubleWordArray Semaphore
SortedCollection GraphicSymbol UrlArgumentList TraitComposition
ObjectFinalizerCollection WeakOrderedCollection StandardSourceFileArray
ExpandedSourceFileArray WordArrayForSegment ActionSequence
WeakActionSequence Cubic KedamaFloatArray SocketAddress SparseLargeArray
FloatCollection WeakActionSequenceTrappingErrors)

SequenceableCollection allSubclasses reject:
[:c|
[(#(1 2 3) as: c) hasEqualElements: #(1 2 3)] on: Error do: [:ex| true]] an
OrderedCollection(SoundBuffer ShortIntegerArray)

i.e. there are many SequenceableCollection subclasses, including
OrderedCollection, and all the integer arrays (ByteArray through
DoubleWordArray) that are not #= to an equivalent integer array.

I would throw out the assumption that intervals and arrays are equal; as
long as hasEqualElements: answers true things are good, no?

+       self assert: interval hash equals: array hash.!
>
> Item was added:
> + ----- Method: IntervalTest>>testHashEqualIfIntervalEqual (in category
> 'tests') -----
> + testHashEqualIfIntervalEqual
> +       | interval1 interval2 |
> +       interval1 := 0 to: 1.
> +       interval2 := 0 to: 5/3. "Taken from an actual issue in an image"
> +       self assert: interval1 equals: interval2.
> +       self assert: interval1 hash equals: interval2 hash.!
>
>
>

-- 
_,,,^..^,,,_
best, Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20181029/43cb44fb/attachment.html>


More information about the Squeak-dev mailing list