Hi Joe,

Thanks a lot for taking the time to review !

Please see comments inlined.

On 23/09/2014 04:51, Joe Darcy wrote:
Hello,

I've looked over the proposed changeset as well.

I don't see a problem with the code, but I'm not (yet) convinced it is right.

For future work, I think be clearer to combine the CEILING and FLOOR cases to share a loop with a condition test based on CEILING/FLOOR lie.
Agreed.
In the test, again for future work, I think it would be clearer to create a custom class to represent the tuple of information needed for a test case as opposed to spreading that information about over a set of parallel arrays.
Sure. With this set of separate independent arrays, the test is currently not much readable, and is weak with regards of maintenance
and evolutivity.

For the new work in question, it might be clearer to me if the HALF_UP and HALF_DOWN cases were combined into a single block since they share much of the logic. The unique logic for each mode would be easier to see if the differences were placed together.
I think so too. I even think it might be good to group HALF_EVEN with those two, since behaviour of dtoa impacts
these 3 cases in the same manner when very close to tie.

Will change the code to group HALF_UP and HALF_DOWN.

Thanks,
Olivier.


Thanks,

-Joe

On 09/22/2014 08:50 AM, Brian Burkhalter wrote:
Hi Olivier,

On Sep 22, 2014, at 7:56 AM, olivier.lagn...@oracle.com wrote:

and 2) use braces around all the statements contained in if/else blocks (see below). Comment #2 is nit-picky.
I tried to keep the same flavour of writing as in HALF_DOWN and HALF_EVEN cases, i.e. don't use brace for terminal/leaf return true/false statements. This is not the standard however, at least in this file. Will use braces in all case (i.e. the 3 of HALF_UP, HALF_DOWN and HALF_EVEN).
I did not look at the other case. If your formatting matches the rest of the file then I think it is OK to leave it as-is.

Lastly and this is not really part of your changeset, but I found it curious that the test prints the details of all cases that succeed as opposed to those that fail. I would think that either all results or the failures alone ought to be printed instead of successes only. See for example the partial diff below the DigitList diff.
Since these are most often corner and tricky test cases I think it interesting to have the details of each result,
including infos of both why returned result is correct or wrong.
That can help the reader to understand all these tricky cases.
The bad side of it being that it prints a lot of text, with failure cases (hoepfully few) lost in the middle of it,
thus making failures possibly not immediate to detect.

Here is an example of what is printed in case of failure:
"
========================================
***Error formatting double value from string : 0.6868d
NumberFormat pattern is  : #,##0.###
Maximum number of fractional digits : 3
Fractional rounding digit : 4
Position of value relative to tie : above
Rounding Mode : HALF_UP
BigDecimal output : 0.68679999999999996607158436745521612465381622314453125
FloatingDecimal output : 0.6868
Error. Formatted result different from expected.
Expected output is : "0.687"
Formated output is : "0.686"
========================================
I missed that output: I was looking for the word “failure.”

There is also a reminder of the number of errors at the end of the report:
"
==> 4 tests failed

Test failed with 4 formating error(s).
"

May be providing a reminder (value + rounding-mode + rounding position)
of the failure cases at the end of the would be better ?
Like:
"
Test failed with 4 formating error(s) for following cases :
- 0.3126d, HALF_UP rounding, 3 fractional digits
- 0.6868d, HALF_UP rounding, 3 fractional digits
- 1.798876d, HALF_UP rounding, 5 fractional digits
- 1.796889d, HALF_UP rounding, 5 fractional digits
"

Would doing so be ok ?
If the test is already printing out the information you showed above (“Error formatting …”) then I think it is enough but the verbiage should perhaps match the reminder, e.g., “Failure: Error formatting double …”

Thanks,

Brian


Reply via email to