Hi Dave,
[snipped]
>
>
> The test was wrong, I believe. Either that or the locale had
> a bug that is now fixed.
yes, It now passes on 5.8.0
[more snippage]
> I can't stress this enough. When tests fail, please rerun
> the tests with 'make test TEST_VERBOSE=1 TEST_FILES=t/...'
> This gives me extra info that makes it easier to track down
> the failures.
OK, I'm sorry about that. I will include this in the future
G:\modules\DateTime.pm>nmake test TEST_VERBOSE=1 TEST_FILES=t/20infinite.t
Microsoft (R) Program Maintenance Utility Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
F:\perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(1,
'blib\lib', 'blib\arch
)" t/20infinite.t
t/20infinite1..37
ok 1 - positive infinity should be infinite
ok 2 - negative infinity should be infinite
ok 3 - positive infinity should not be finite
ok 4 - negative infinity should not be finite
ok 5 - negative infinity is really negative
ok 6 - positive infinity is really positive
ok 7 - positive infinity is bigger than negative infinity
ok 8 - infinity - normal = infinity
ok 9 - normal + infinite duration = infinity
ok 10 - normal - infinity = neg infinity
not ok 11 - normal + neg infinite duration = neg infinity
# Failed test (t/20infinite.t at line 53)
# got: 'DateTime::Infinite::Future=HASH(0x1e2f4a0)'
# expected: 'DateTime::Infinite::Past=HASH(0x1dfee58)'
not ok 12 - infinity - infinity = nan (days)
# Failed test (t/20infinite.t at line 61)
# got: '-2147483648'
# expected: '2147483648'
not ok 13 - infinity - infinity = nan (seconds)
# Failed test (t/20infinite.t at line 61)
# got: '-2147483646'
# expected: '2147483648'
ok 14 - infinity + normal duration = infinity
ok 15 - infinity - normal duration = infinity
ok 16 - infinity (datetime) == infinity (number)
ok 17 - neg infinity (datetime) == neg infinity (number)
ok 18 - pos year is 1.\#INF
ok 19 - neg year is 1.\#INF
ok 20 - pos month is 1.\#INF
ok 21 - neg month is 1.\#INF
ok 22 - pos day is 1.\#INF
ok 23 - neg day is 1.\#INF
ok 24 - pos hour is 1.\#INF
ok 25 - neg hour is 1.\#INF
ok 26 - pos minute is 1.\#INF
ok 27 - neg minute is 1.\#INF
ok 28 - pos second is 1.\#INF
ok 29 - neg second is 1.\#INF
ok 30 - pos microsecond is 1.\#INF
ok 31 - neg microsecond is 1.\#INF
ok 32 - pos millisecond is 1.\#INF
ok 33 - neg millisecond is 1.\#INF
ok 34 - pos nanosecond is 1.\#INF
ok 35 - neg nanosecond is 1.\#INF
ok 36 - positive infinite is greater than now
ok 37 - negative infinite is less than now
# Looks like you failed 3 tests of 37.
dubious
Test returned status 3 (wstat 768, 0x300)
DIED. FAILED tests 11-13
Failed 3/37 tests, 91.89% okay
Failed TestStat Wstat Total Fail Failed List of Failed
---
t/20infinite.t3 768373 8.11% 11-13
Failed 1/1 test scripts, 0.00% okay. 3/37 subtests failed, 91.89% okay.
NMAKE : fatal error U1077: 'F:\perl\bin\perl.exe' : return code '0x2'
Stop.
G:\modules\DateTime.pm>
>
> I have no idea why this would suddenly start failing when it
> seemed to be fine last go-round.
yes, I checked this test using 5.6.1 and these tests pass on W2K
> I hate infinite numbers. I hate Windows.
> Whoever suggested DT::Infinite, damn you!
>
[more snippage]
>
> Just 5.8.0? Oh, goody.
nope :( I tried this with perl 5.8.1 RC2 and receive the
same types of errors.
>
> Absent someone with understanding IEEE math and how it works
> on Win32, I consider this unlikely to get fixed.
> I sure as heck don't know what's going on.
neither do I. Hopefully, someone on the DateTime
list can step up and take a look at it.
> I may simply add something to the DT::Infinite
> docs saying that it's known to be broken on Win32.
>
I hope this helps.
Ron Hill