Badge-Simple
view release on metacpan or search on metacpan
t/badge-simple.t view on Meta::CPAN
pass "toStringC14N *exact* match";
return } # else:
my $exp = pick_apart_svg($exp_doc);
my $got = pick_apart_svg($got_doc);
is $got->{xml}, $exp->{xml}, 'NO exact match; cleaned XML matches';
for my $k (qw/ total_w l_w r_w l_txt_c r_txt_c /) {
my $delta = abs( $exp->{$k} - $got->{$k} );
my $max_err = $k eq 'total_w' ? 8 : 4; #TODO Later: Can we make these smaller?
if ($exp->{$k}<100) # for lengths of <100 pixels, apply error to pixel count
{ ok $delta<=$max_err, "$k: exp $$exp{$k}, got $$got{$k}, delta $delta is <= ${max_err}px" }
else { # for lengths of >=100 pixels, apply error to percentage difference
my $percent = sprintf "%0.1f", 100*$delta/$exp->{$k};
ok $percent<=$max_err, "$k: exp $$exp{$k}, got $$got{$k}, delta $delta ($percent%) <= $max_err%";
}
}
};
}
sub pick_apart_svg {
my $dom = shift;
my $xpc = XML::LibXML::XPathContext->new($dom);
$xpc->registerNs('s', 'http://www.w3.org/2000/svg');
my (%attr,%out);
( run in 0.415 second using v1.01-cache-2.11-cpan-709fd43a63f )