I cranked up the thoroughness of check_ignore because after I
incorporated your suggestion of pre-copying the arguments to the ignore
option, almost all of the errors that check_ignore was testing for were
not potential problems any more -- check_ignore in its original form had
been made nearly useless. So it was either eliminate check_ignore,
clutter the documentation with an almost useless method, or crank up its
power. I chose the last.
The fact that pre-copying elminates most bugs means the users of
Test::Weaken::check_ignore are now a smaller and more desperate class of
the debugging community, and will want and expect a pretty thorough check.
Looked at another way, I thought it might violate the Principle of Least
Surprise if the user could try out check_ignore and by default easily
get false positives due to lack of depth in the comparison. Best to
start out thorough and let the user back things off if that's too much.
The depth of checking can be easily lowered. One of the arguments to
check_ignore is a limit on the depth to which the before and after
objects will be compared. Since the base pointer counts in the depth,
setting the compare depth to 1, in effect, turns that check off.
As you suggest, I'm not too worried about the interface to check_ignore,
because it's not tied in with the rest of the package and is very easy
to pull out of the source and hack up any way the user wants.
On Fri Mar 06 16:55:43 2009, user42@zip.com.au wrote:
Show quoted text> "Jeffrey Kegler via RT" <bug-Test-Weaken@rt.cpan.org> writes:
> > Since this greatly eases the task the check_ignore static method was
> > designed for, I redesigned check_ignore. It now by default does a deep
> > comparison of the two objects, a much more time-consuming check, but
> > also a much more thorough one.
>
> I'm not sure I'm convinced. If it were mine I don't think I'd worry
> about it initially ... or leave it in an example script to be copied by
> anyone having strange trouble.