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