Data-Edit-Struct

 view release on metacpan or  search on metacpan

t/splice.t  view on Meta::CPAN

#! perl

use Test2::Bundle::Extended;
use Test2::API qw[ context ];

use Ref::Util qw[ is_arrayref ];
use Data::Edit::Struct qw[ edit ];

subtest 'container' => sub {

    my %defaults = (
        dtype => 'container',
        stype => 'container',
    );

    subtest 'no replacement (e.g. deletion)' => sub {

        cmp_splice( %defaults, %$_ )
          for ( {
                input => [ 10, 20, 30, 40 ],
            },

            {
                input  => [ 10, 20, 30, 40 ],
                offset => 1,
            },
            {
                input  => [ 10, 20, 30, 40 ],
                offset => 1,
                length => 2,
            },
          );

    };

    subtest 'replacement' => sub {

        cmp_splice( %defaults, %$_ )
          for ( {
                input => [ 10, 20, 30, 40 ],
                src   => [ 50, 60 ],
            },

            {
                input  => [ 10, 20, 30, 40 ],
                offset => 1,
                src    => [ 50, 60 ],
            },
            {
                input  => [ 10, 20, 30, 40 ],
                offset => 1,
                length => 2,
                src    => [ 50, 60 ],
            },
            {
                input  => [ 10, 20, 30, 40 ],
                offset => 1,
                length => 2,
                src    => [ 50, 60 ],
                stype  => 'element',
            },
            {
                input  => [ 10, 20, 30, 40 ],
                offset => 1,
                length => 2,
                src    => 'foo',



( run in 1.693 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )