On 11/11/2016 10:31 AM, pineapple via Digitalmars-d-learn wrote:
On Thursday, 10 November 2016 at 16:47:30 UTC, Adam D. Ruppe wrote:
On Thursday, 10 November 2016 at 16:41:56 UTC, Charles Hixson wrote:
It's *supposed* to be nan, and the assert message reports that it
is, but it should pass the assert test, not throw an assertion.
What am I doing wrong?
How did you set it? There are like billions of different NaNs. I'm
not sure if isnan checks for all of them. (I'm also not sure that it
doesn't, the docs don't specify.)
you might try using std.math.isNaN instead and see what it does.
Incidentally, I just recently submitted a PR to fix this.
What probably happened is that you're referring to a limited `isnan`
method defined as a unittest utility method in object.d that should
have been private but wasn't.
You want to use `isNan` instead.
Thank you. Unfortunately:
import std.math;
...
assert (isNan (c.curActivation), "cell has unexpected
curActivation: %s".format(c.curActivation));
yields:
cell.d(292): Error: undefined identifier 'isNan', did you mean
overloadset 'isnan'?
while:
import std.math;
...
assert (std.math.isnan (c.curActivation), "cell has unexpected
curActivation: %s".format(c.curActivation));
yields:
core.exception.AssertError@cell.d(310): cell has unexpected idno:
636144943519357244
That is, indeed, an unexpected value, unless it's some representation of
Nan, in which case it should have passed the assert. I notice that it
doesn't appear to be a float, which puzzles me.