My guess for the Sunday part was, that maybe time zones and/or daylight savings time are tripping you up, because the DST change is next weekend.
But as Tuesday would have to skip 25 hours to come close to a weekend day, I'm not exactly sure there, unless there also is an off-by-one error somewhere, so that you're unclear on whether a week starts with day 1 or day 0.
What you should learn from there is that you shouldn't just output the value from ->is_weekday in your test diagnostics but also the parameter given to it as input. I often use:
my $timestamp = UnixDate(ParseDate('last sunday'), "%s"); if (! is $obj->is_weekday($timestamp), 0, 'Sunday ($ts) is weekend')) +{ diag "Last sunday = " . localtime($timestamp) . " ($timestamp)"; diag "ParseDate('last sunday'):" . ParseDate('last sunday'); };
That way, you gather more data.
Another lesson to be learned would be to use static timestamps instead of timestamps depending on the time when a test is run. That way you get at least consistent failures/successes, but in your case, that would hide the error in your module(s).
In reply to Re: Inscrutable test failure
by Corion
in thread Inscrutable test failure
by dsheroh
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |