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/20infinite....1..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 Test Stat Wstat Total Fail Failed List of Failed ---------------------------------------------------------------------------- --- t/20infinite.t 3 768 37 3 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