Added subhashof and superhashof, restructured various Hash modules to handle
sub and super.

Got rid of unexported hash_elements from Test::Deep.

Fixed a problem with circular set comparisons.


The cache is more efficient, using a single layer and weak refs, also
previously it could be fooled by reused addresses for objects (this is not
just theoretical).

Now Test::Deep::descend is responsible for pushing onto the stack as well as
pulling, this means most tests don't need to think about the stack at all

For the stack stuff, had to create lots of "only" modules these are tests
that should never be called on their own as they make assumptions about the
validity of the data, they are used as subtests inside others

cleaned up lots of copy and paste Data::Dumper and confess and various other
bits and pieces

Test::Deep::Cmp (and it's descendants) autopush themselves onto the stack of
any Test::Deep::* that uses them. Cuts even more cruft.

Now everything uses the compare in Test::Deep::Cmp which just does a deep
comparison. This is not perfect for All and Set but it's as good as what was
happeneing before now.

Wrapping unknown reftypes as shallow


Got rid of silly use lib in the tests, shouldn't have been in public

Added dependency on Test::More

Moved from type =>, vals => to exp =>, got => in stack entries

Individual descend()s no longer pop their data from the stack, that's taken
care of by Test::Deep::descend. This made things simpler in all the

Added support for sub/super se/bag comparisons, thanks to Boris Sukholitko

Added scalarref.t


Got rid of struct mode for num()

Large internal changes, now using a stack object rather than just an array.
This handles rendering the stack.

The comparisons handle rendering the got and expected values now.

num() and str() numify/stringify before comparing, this makes overload of ==
or eq irrelevant. This also prevents problems with the diag when something
stringifies differently to it's numificiation or differently each time you

fixed diag of overloaded refs to display the ref value, not the overloaded

nicer diags for booleans


Slight doc fix

Added coderef calling as a test


Fixed number.t to skip strict test when if Scalar::Util is not right

Major improvement of docs. No longer reads like it was written by a drunken


Overhaul of Test::Deep::descend, native types are now wrapped up in a
Test::Deep:Cmp object, moves lots of logic out of descend

Added ArrayLength, HashKeys, RefType, and Blessed comparisons

All tests now use Test::NoWarnings

Broke out descend tests into hash.t, array, regexpref.t, probably should
break out more

Updated version of Scalar::Util dependency, thanks to Steve Purkis


No longer using overload::StrVal() for looking behind overloads as it's
broken for Regexp refs in some versions of Perl.


Documented bool and included the files!!


cmp_deeply(undef, \"") calls overload::StrVal(undef)

added bool test

using Scalar::Util to get reftype and blessed class


Added prereq to Makefile.PL


First release