Dlang tour - Unittesting example
ag0aep6g
anonymous at example.com
Tue Oct 2 13:29:46 UTC 2018
On 10/02/2018 03:24 PM, Basile B. wrote:
> The problem is the NaN madness.
> Since several values are NaN there's this strange stuff:
>
> void main()
> {
> import std.stdio;
> import std.math : isNaN;
> double d;
>
> writeln(d.init); // nan
> writeln(d); // nan
> writeln(d.nan); // nan
>
> assert(d.isNaN);
> assert(d == d.nan); // fails
> assert(d == d.init); // fails
> }
>
> the last assert is just crazy.
NaN simply isn't equal to itself. Has nothing to do with there being
multiple NaNs. `d == d`, `double.nan == double.nan`, `double.init ==
double.init` are all false, too.
More information about the Digitalmars-d-learn
mailing list