Dlang tour - Unittesting example

Basile B. b2.temp at gmx.com
Tue Oct 2 13:24:09 UTC 2018


On Tuesday, 2 October 2018 at 12:30:36 UTC, Joe wrote:
> On Tuesday, 2 October 2018 at 12:25:19 UTC, Joe wrote:
>> On Tuesday, 2 October 2018 at 09:59:28 UTC, bauss wrote:
>>> On Tuesday, 2 October 2018 at 04:13:01 UTC, Joe wrote:
>>>> There appears to be a problem with the example at
>>>>
>>>> https://tour.dlang.org/tour/en/gems/unittesting
>>>>
>>>> If compiled with -unittest, the resulting program crashes. 
>>>> It happens with ldc2 on Linux but it can also be seen if you 
>>>> click on "Export" and run it with dmd -unittest.
>>>
>>> I think it's more likely a problem with your OS.
>>>
>>> I am unable to reproduce that with either of dmd or ldc.
>>
>> Well then it's also a problem with run.dlang.io, since as I 
>> said it also happens when you run it there.
>
> I forgot to mention: at the end, it reports "1/1 unittests 
> FAILED". I see three tests--two in the struct and the separate 
> one--but the assertion failure is in line 49 (the standalone) 
> so apparently the other two are not being run (or reported).

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.


More information about the Digitalmars-d-learn mailing list