Thread overview
[phobos] Failing unit tests on Windows
Nov 19, 2010
David Simcha
Nov 19, 2010
Don Clugston
Nov 19, 2010
David Simcha
November 18, 2010
Don's gamma function code apparently fails some unit tests on Windows. I can't figure out why it passes on Brad's automated tester.  I'm using Windows 7 64-bit, Phobos revision 2181, and DMD 2.050.  I'm running the tests the standard way (make -fwin32.mak unittest).  I also tried running the unit tests just for the gamma function module in CodeBlocks, both with and without -O, -inline, and -release.  I get the following unit test failure:

core.exception.AssertError at std.internal.math.gammafunction(816): unittest failure

The relevant line of code is:

assert(betaIncompleteInv(0x1.ff1275ae5b939bcap-41, 4.6713e18, 0.0813601)==0x1.f97749d90c7adba8p-63);

November 19, 2010
On 19 November 2010 02:50, David Simcha <dsimcha at gmail.com> wrote:
> Don's gamma function code apparently fails some unit tests on Windows. ?I can't figure out why it passes on Brad's automated tester. ?I'm using Windows 7 64-bit, Phobos revision 2181, and DMD 2.050. ?I'm running the tests the standard way (make -fwin32.mak unittest). ?I also tried running the unit tests just for the gamma function module in CodeBlocks, both with and without -O, -inline, and -release. ?I get the following unit test failure:
>
> core.exception.AssertError at std.internal.math.gammafunction(816): unittest
> failure
>
> The relevant line of code is:
>
> assert(betaIncompleteInv(0x1.ff1275ae5b939bcap-41, 4.6713e18,
> 0.0813601)==0x1.f97749d90c7adba8p-63);

It definitely passes for me (WinXP, 32 bit) with the DMD from svn, and
also with the binary from 2.050.
Can you please run this:

import std.mathspecial;
import std.stdio;

void main()
{
writefln("%a", betaIncompleteInverse(0x1.ff1275ae5b939bcap-41, 4.6713e18,
 0.0813601));
writefln("%a %a", 4.6713e18, 0.0813601);
}
November 18, 2010
Output:

0x1.f9774a97a772b1fcp-63
0x1.034f2a66cd21p+62 0x1.4d403f8b304a5p-4

On 11/18/2010 11:40 PM, Don Clugston wrote:
> import std.mathspecial;
> import std.stdio;
>
> void main()
> {
> writefln("%a", betaIncompleteInverse(0x1.ff1275ae5b939bcap-41, 4.6713e18,
>   0.0813601));
> writefln("%a %a", 4.6713e18, 0.0813601);
> }