Bogus icon indicating copy to clipboard operation
Bogus copied to clipboard

Randomizer.Double returns Infinity for certain inputs

Open ChristoWolf opened this issue 3 years ago • 0 comments

Hi @bchavez!

Version Information

Software Version(s)
Bogus NuGet Package 34.0.1
.NET Core? .NET 6 SDK 6.0.200
Windows OS? Version 20H2 Enterprise
Visual Studio? Microsoft Visual Studio Enterprise 2022 (64-bit) - Current, version 17.1.0

What locale are you using with Bogus?

en

What is the expected behavior?

Calling Random.Double(double.MinValue, double.MaxValue) should generated a double between these constraints.

What is the actual behavior?

The method always returns Infinity. This does not happen though when using e.g.

  • double.MinValue, 0
  • or 0, double.MaxValue.

A quick look at the Double method revealed that there is no magnitute/value limitation in line 186. In particular, the calculation (max - min) + min causes this behavior. Similar behavior can be reproduced for the Float and Decimal randomizers.

Please provide a stack trace.

Bogus.dll!Bogus.Randomizer.Double(double min, double max) Line 186 C#

Any possible solutions?

See proposed solution in PR #429.

How do you reproduce the issue?

See above.

Do you have a unit test that can demonstrate the bug?

Added to PR #429.

Can you identify the location in Bogus' source code where the problem exists?

See above.

If the bug is confirmed, would you be willing to submit a PR?

Submitted PR #429.

ChristoWolf avatar May 04 '22 09:05 ChristoWolf