http://qs321.pair.com?node_id=11119742


in reply to Inverting test conditions in Test::More ?

Looks like you could easily use Test::More::_deep_check to create is_not_deeply and submit a PR. Of course, either you're the first person ever to need this or there's something fundamentally wrong with whatever it is that you're doing. Is there a reason you must do "is_not_deeply" when a test to make sure "is_deeply" would suffice? I'm still not quite sure what it is you're testing.

>I could just serialize a nested structure

If you can ensure consistent/ordered serialization in the case of your structures being hash refs (or use Tie::IxHash somehow, I suppose. But this doesn't seem to be the right approach if you're reaching for deeply comparing two structures. Consider that you'd probably need to write unit tests to test that your serialization is coming out as expected.

Replies are listed 'Best First'.
Re^2: Inverting test conditions in Test::More ?
by LanX (Saint) on Jul 24, 2020 at 12:14 UTC
    Supposing I just wanted to test deeply nested structures ...

    > Looks like you could easily use Test::More::_deep_check

    that's an internal function, Test::More provides explain() for serialization within the regular API

    see also eq_array() and eq_hash() but "they may be deprecated in future versions."

    > If you can ensure consistent/ordered serialization in the case of your structures being hash refs

    Please note that the order of hash-keys within the same Perl run is guarantied to be stable.

    Furthermore is explain() ordering hash-keys alphabetically AFAICT.

    ( Data::Dump too IIRC )

    Cheers Rolf
    (addicted to the Perl Programming Language :)
    Wikisyntax for the Monastery

Re^2: Inverting test conditions in Test::More ?
by LanX (Saint) on Jul 24, 2020 at 09:36 UTC
    > Of course, either you're the first person ever to need this or there's something fundamentally wrong with whatever it is that you're doing

    Applying boolean logic to tests seems to be a straightforward idea.

    Just checking if I missed it to be documented / implemented.

    > submit a PR.

    A press release???

    Cheers Rolf
    (addicted to the Perl Programming Language :)
    Wikisyntax for the Monastery

      A press release???

      A pull request AKA a merge request. It's what all the cool kids are using instead of patches these days. :-)


      🦛

        > cool kids

        squeeee! yass feelin' cute xD