Algorithm-Merge
view release on metacpan or search on metacpan
[ 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 )