Mantis Bugtracker

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0007180 [Squeak] Collections minor always 09-09-08 20:16 04-18-10 22:05
Reporter nicolas cellier View Status public  
Assigned To andreas
Priority normal Resolution fixed  
Status closed   Product Version 3.10
Summary 0007180: Interval method indexOf: / includes: incomplete fix in squeak3.10
Description Some patches from 0001602 has been harvested in 3.10 image.
However, as clearly stated in 0001603 by german morales, and further reported and explained by me at 0006455 and 0001602, the patch is not complete:

For example, take the proof from German Morales:

self assert:
 ((100 to: 500 by: 100)
   indexOf: 250) = 0.

does work as expected.
Now append twelve zeros to the numbers, that's essentially the same test, say expressed in nanometer instead of kilometer:

self assert: ((100000000000000 to: 500000000000000 by: 100000000000000)
   indexOf: 250000000000000) = 0.

The later fails because of the intention to do the test with fuzzyness.
1) Fuzzyness should not apply to exact arithmetic.
2) Fuzzyness should be corrected in case of Float (see example in 0006455).

In order to ease the hard job of harvesters, notably concerning the handling of BUG status, I have to open a new issue.
Additional Information Another problem seems that 0001603 has not been harvested.
Consequently, Interval>>indexOf: and Interval>>includes: won't agree on the inclusion of an element.

Note that correction proposed by German Morales at 0001603 is still not complete, as illustrated in 0006455. This is why I further uploaded some more patches/tests.

Two more things I do not like about fuzzy Float test:
1) It is not general enough: the fuzzy threshold is arbitrary and vain.
1a) It is arbitrary, because it is not to the Kernel to decide if 3 or 12
    figures or whatever should be tested, this is application dependent.
1b) It is vain because I can construct some Interval that won't even includes
    it's own elements (See note in 0001602), though the noble fuzziness efforts.
2) It is not general enough:
   why not make a fuzzy inclusion tests for some other kind of Collection?

My opinion is that, since not general enough, we should not bother with fuzzyness in the Kernel.
We should either warn the user in Interval comment: USE WITH INTERVAL OF FLOAT AT YOUR OWN RISKS, and let him implement his own application-tailored fuzzyness.
Or we should provide some message passing some arbitrary fuzzy threshold argument.
In the later case, a default implementation using a default threshold would be acceptable eventually.

Whatever my opinion, the least would be to implement fuzzyness correctly.
Links to tests and patchs will be in following notes.
Attached Files

- Relationships
parent of 0001603closed nicolas cellier [BUG][FIX] Interval method includes: 

- Notes
(0012622 - 405 - 571 - 571 - 571 - 571 - 571)
nicolas cellier
09-09-08 20:37

"All material is already in mantis 1602
And in mantis 1603
I do not duplicate these files, but only provide an Installer hook."

"fix begin"
Installer mantis ensureFix: '1603 [BUG][FIX] Interval method includes:'.
"fix test"
"fix end"
(0013259 - 64 - 64 - 224 - 224 - 224 - 224)
nicolas cellier
08-24-09 19:59

Fixed in [^]

- Issue History
Date Modified Username Field Change
09-09-08 20:16 nicolas cellier New Issue
09-09-08 20:37 nicolas cellier Note Added: 0012622
12-08-08 22:39 Keith_Hodges Relationship added parent of 0001603
01-10-09 02:13 Keith_Hodges Status new => pending
01-10-09 02:27 Keith_Hodges Status pending => testing
01-10-09 03:40 Keith_Hodges Status testing => resolved
01-10-09 03:40 Keith_Hodges Fixed in Version  => 3.11
01-10-09 03:40 Keith_Hodges Resolution open => fixed
01-10-09 03:40 Keith_Hodges Assigned To  => Keith_Hodges
01-10-09 03:41 Keith_Hodges Status resolved => testing
08-24-09 19:59 nicolas cellier Note Added: 0013259
10-03-09 19:33 Keith_Hodges Status testing => assigned
10-03-09 19:33 Keith_Hodges Assigned To Keith_Hodges => andreas
10-03-09 20:08 nicolas cellier Status assigned => resolved
10-03-09 20:08 nicolas cellier Fixed in Version 3.11 => trunk
04-18-10 22:05 andreas Status resolved => closed

Mantis 1.0.8[^]
Copyright © 2000 - 2007 Mantis Group
56 total queries executed.
38 unique queries executed.
Powered by Mantis Bugtracker