Chris Cunningham
2018-10-26 22:21:20 UTC
Hi.
I'm slowly (very) working towards crating a usable test for validating for
classes where #= is true, #hash will also be true.
Last week, the Date issue showed up. This week?
Intervals:
(0 to: 1) = (0 to: 5/3). "true"
(0 to: 1) hash = (0 to: 5/3) hash. "false"
CharacterBlock:
| cb1 cb2 |
cb1 := (CharacterBlock new stringIndex: 5 text: 'StandardText' asText
topLeft: (***@100) extent: (***@20)).
cb2 := (CharacterBlock new stringIndex: 5 text: 'StandardText' asText
topLeft: (***@200) extent: (***@20)).
cb1 = cb2. "true"
cb1 hash = cb2 hash. "false"
These were found by comparing a random sampling of instances of classes
that implement #= or #hash (or both), and finding which have these deviant
properties. The hard part is figuring out instances that are going to have
issues - Date didn't show up in my prototype scanning. Also most classes
don't have instances floating around to compare.
Thanks,
-cbc
I'm slowly (very) working towards crating a usable test for validating for
classes where #= is true, #hash will also be true.
Last week, the Date issue showed up. This week?
Intervals:
(0 to: 1) = (0 to: 5/3). "true"
(0 to: 1) hash = (0 to: 5/3) hash. "false"
CharacterBlock:
| cb1 cb2 |
cb1 := (CharacterBlock new stringIndex: 5 text: 'StandardText' asText
topLeft: (***@100) extent: (***@20)).
cb2 := (CharacterBlock new stringIndex: 5 text: 'StandardText' asText
topLeft: (***@200) extent: (***@20)).
cb1 = cb2. "true"
cb1 hash = cb2 hash. "false"
These were found by comparing a random sampling of instances of classes
that implement #= or #hash (or both), and finding which have these deviant
properties. The hard part is figuring out instances that are going to have
issues - Date didn't show up in my prototype scanning. Also most classes
don't have instances floating around to compare.
Thanks,
-cbc