The Trunk: CollectionsTests-nice.304.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: CollectionsTests-nice.304.mcz

commits-2
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'.!


Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: CollectionsTests-nice.304.mcz

Nicolas Cellier


Le sam. 6 avr. 2019 à 15:55, <[hidden email]> 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) > 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'.!