Nicolas Cellier uploaded a new version of CollectionsTests to project The Trunk: http://source.squeak.org/trunk/CollectionsTests-nice.304.mcz
==================== Summary ====================
Name: CollectionsTests-nice.304 Author: nice Time: 6 April 2019, 3:55:40.624272 pm UUID: e6dfc4bf-906d-4e7d-8bb4-1fc6fc5bbe4b Ancestors: CollectionsTests-ul.303
More and less Interval tests
- Once upon a time, I changed reversed to answer an Interval, which is a good thing... Err, except for Interval of floats (which are generally not well behaved objects)... I don't know if we must revert reversed, or hack special case of Float Intervals (I have some idea), but we should at least document the behavior.
- Once upon a time, I fixed implementation of fuzzy inclusion in Interval. But I don't really approve the feature. Fuzzy inclusion produce several unconsistencies in Interval behavior which goes against a principle of least astonishment. As we say, you can cheat as long as you don't get caught... Gotcha!
- Remove testNumericTypes which does not assert anything, which seems to ignore the basics of Smalltalk selector precedence, and which would rely on abandoned equality between Interval and Array.
=============== Diff against CollectionsTests-ul.303 ===============
Item was added: + ----- Method: IntervalTest>>testIntervalOfFloatReversed (in category 'tests') ----- + testIntervalOfFloatReversed + self assert: (-16.3 to: 20.1 by: 1.3) reversed size + equals: (-16.3 to: 20.1 by: 1.3) size + description: 'reversed should preserve the size of a collection'. + self assert: (0.1 to: 0.9 by: 0.1) reversed asArray + equals: (0.1 to: 0.9 by: 0.1) asArray reversed + description: 'reversed should preserve the elements of a collection'.!
Item was removed: - ----- Method: IntervalTest>>testNumericTypes (in category 'tests') ----- - testNumericTypes - - (3 asNumber) to: 5 = #(3 4 5). - - 3.0 to: 5.0 = #(3.0 4.0 5.0). - 3.0 to: 5.0 by: 0.5 = #(3.0 3.5 4.0 4.5 5.0). - - 3/1 to: 5/1 = #(3 4 5). - 1/2 to: 5/2 by: 1/2 = #(1/2 1 3/2 2 5/2).!
Item was added: + ----- Method: IntervalTest>>testSurprisingFuzzyInclusionBehavior (in category 'tests') ----- + testSurprisingFuzzyInclusionBehavior + "If ever Interval implement fuzzy inclusion, then we can expect weird logic..." + self assert: ((0.1 to: 0.9 by: 0.1) asArray includes: 0.3) + ==> (((0.1 to: 0.9 by: 0.1) occurrencesOf: 0.3) > 0) + description: 'A Collection that includes something has at least one occurrence of something'. + self assert: ((0.1 to: 0.9 by: 0.1) lastIndexOf: 0.3) + >= ((0.1 to: 0.9 by: 0.1) indexOf: 0.3) + description: 'If the last index of an object in a SequenceableCollection should be greater or equal to the first index'.!
Le sam. 6 avr. 2019 à 15:55, commits@source.squeak.org a écrit :
Nicolas Cellier uploaded a new version of CollectionsTests to project The Trunk: http://source.squeak.org/trunk/CollectionsTests-nice.304.mcz
==================== Summary ====================
Name: CollectionsTests-nice.304 Author: nice Time: 6 April 2019, 3:55:40.624272 pm UUID: e6dfc4bf-906d-4e7d-8bb4-1fc6fc5bbe4b Ancestors: CollectionsTests-ul.303
More and less Interval tests
- Once upon a time, I changed reversed to answer an Interval, which is a
good thing... Err, except for Interval of floats (which are generally not well behaved objects)... I don't know if we must revert reversed, or hack special case of Float Intervals (I have some idea), but we should at least document the behavior.
- Once upon a time, I fixed implementation of fuzzy inclusion in Interval.
But I don't really approve the feature. Fuzzy inclusion produce several unconsistencies in Interval behavior which goes against a principle of least astonishment. As we say, you can cheat as long as you don't get caught... Gotcha!
- Remove testNumericTypes which does not assert anything, which seems to
ignore the basics of Smalltalk selector precedence, and which would rely on abandoned equality between Interval and Array.
=============== Diff against CollectionsTests-ul.303 ===============
Item was added:
- ----- Method: IntervalTest>>testIntervalOfFloatReversed (in category
'tests') -----
- testIntervalOfFloatReversed
self assert: (-16.3 to: 20.1 by: 1.3) reversed size
equals: (-16.3 to: 20.1 by: 1.3) size
description: 'reversed should preserve the size of a
collection'.
self assert: (0.1 to: 0.9 by: 0.1) reversed asArray
equals: (0.1 to: 0.9 by: 0.1) asArray reversed
description: 'reversed should preserve the elements of a
collection'.!
Item was removed:
- ----- Method: IntervalTest>>testNumericTypes (in category 'tests') -----
- testNumericTypes
(3 asNumber) to: 5 = #(3 4 5).
3.0 to: 5.0 = #(3.0 4.0 5.0).
3.0 to: 5.0 by: 0.5 = #(3.0 3.5 4.0 4.5 5.0).
3/1 to: 5/1 = #(3 4 5).
1/2 to: 5/2 by: 1/2 = #(1/2 1 3/2 2 5/2).!
Item was added:
- ----- Method: IntervalTest>>testSurprisingFuzzyInclusionBehavior (in
category 'tests') -----
- testSurprisingFuzzyInclusionBehavior
"If ever Interval implement fuzzy inclusion, then we can expect
weird logic..."
self assert: ((0.1 to: 0.9 by: 0.1) asArray includes: 0.3)
^ oops, this asArray is a slip!
==> (((0.1 to: 0.9 by: 0.1) occurrencesOf: 0.3) >
description: 'A Collection that includes something has at
least one occurrence of something'.
self assert: ((0.1 to: 0.9 by: 0.1) lastIndexOf: 0.3)
>= ((0.1 to: 0.9 by: 0.1) indexOf: 0.3)
description: 'If the last index of an object in a
SequenceableCollection should be greater or equal to the first index'.!
squeak-dev@lists.squeakfoundation.org