Algorithm-Merge

 view release on metacpan or  search on metacpan

t/20diff.t  view on Meta::CPAN

  [ qw(n o p   q r  ) ],
  [ qw(N o p P q r  ) ],
  [ [ map { $_ eq '-' ? undef : $_ } qw(c - n N) ],
    [                                qw(u o o o) ],
    [                                qw(u p p p) ],
    [ map { $_ eq '-' ? undef : $_ } qw(r p - P) ],
    [                                qw(u q q q) ],
    [                                qw(u r r r) ],
    [ map { $_ eq '-' ? undef : $_ } qw(o s - -) ],
  ]
];

push @tests, [
  [ qw(  o p p q r s) ],
  [ qw(n o p   q r  ) ],
  [ qw(  o p P q r  ) ],
  [ [ map { $_ eq '-' ? undef : $_ } qw(l - n -) ],
    [                                qw(u o o o) ],
    [                                qw(u p p p) ],
    [ map { $_ eq '-' ? undef : $_ } qw(r p - P) ],
    [                                qw(u q q q) ],
    [                                qw(u r r r) ],
    [ map { $_ eq '-' ? undef : $_ } qw(o s - -) ],
  ]
];


$tests = scalar(@tests) + 1;

} # END BEGIN

use Test::More tests => $tests;

require_ok('Algorithm::Merge');

my $out;

{ no warnings;
$Algorithm::Merge::DEBUG = $ENV{'DEBUG'};
}

foreach my $t (@tests) {
    if(UNIVERSAL::isa($t, 'CODE')) {
        eval { local $SIG{__DIE__}; $t -> (); };
        warn "$@\n" if $@ && $ENV{DEBUG};
        ok !$@;
    }
    else {
        eval {
            local $SIG{__DIE__};
            local $SIG{__WARN__} = sub { };
            $out = Algorithm::Merge::diff3(@{$t}[0, 1, 2]);
        };
        if($@ && $@ =~ m{^$error_message}o) {
            ok 1;
        }
        else {
            #my $sout = join(";", map { join(":", map { defined($_) ? "[$_]" : "" } @{$_}) } @{$out});
            #my $sexp = join(";", map { join(":", map { defined($_) ? "[$_]" : "" } @{$_}) } @{$t->[3]});

#            warn Data::Dumper -> Dump([$out, $t->[3]], [qw(Out Expected Diff)]); # if $ENV{DEBUG} && $sout ne $sexp;
            #ok $sout eq $sexp;
            is_deeply($out, $t->[3]);
        }
    }
}

exit 0;



( run in 0.577 second using v1.01-cache-2.11-cpan-df04353d9ac )