Fix formatting durations with fractions with leading zeroes #59
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The
duration
formatting function gives incorrect results for values with leading zeroes in the fraction component, for example I see this result:The total time is 20.9 seconds, but when divided by ten for the average it gives 2.9 seconds, not 2.09. Also see the min, max, and percentiles not making sense. This does change the output for cases like 1.0s to 1.000s, but I think it's better to show the precision in that case anyway.
Another issue was the division was always floored since it was using integer division, I've changed to using a float for the division down to a nice unit and using
format
's builtin rounding off at the time of printing.Finally, for nanoseconds there's no actual fractional precision, so I added a special case for that to only show whole nanoseconds.
I've added tests for these cases as well of course.