Re:FastDoubleParser: Java port of Daniel Lemires fast_double...
by dodobirdlord on Tuesday March 23, 2021 @02:33AM
(#26551750)
The successes of fuzzing projects like oss-fuzz have demonstrated significant shortcomings to hand-curating test cases in the manner you describe. Testing every 64bit float value is unrealistic, but testing a huge number of randomly selected values by cross-comparison with other libraries is a very good idea for code like this.
Re:FastDoubleParser: Java port of Daniel Lemires fast_double...
by java-man on Monday March 22, 2021 @08:51PM
(#26549569)
My point is based on experience. Yes, it's probably too much to ask to test all 2^64 cases, but I've been dealing with code in production that was failing precisely because some values lead to code paths that gave incorrect results.
In this particular case, I would have tested 2^N where N>32 random, unique values, at a minimum.
Of course, it depends on who the customer is. Some customers can tolerate a few bugs here and there; and some would incur million dollar losses.
unit testing doesn't mean that all possible values have to be tested. usually it's about code paths, i.e. standard, error and edge cases.