update percent-error to pass tests

master
hunterlang 2012-03-22 20:11:41 -04:00
parent f9c9ecb159
commit 2804bc9a99
2 changed files with 6 additions and 5 deletions

View File

@ -8,7 +8,7 @@ zci answer_type => "percent_error";
zci is_cached => 1;
handle query_parts => sub {
shift;
shift if @_[0] eq 'error' || @_[0] eq 'err';
shift if $_[0] eq 'error' || $_[0] eq 'err';
my $length = @_;
return unless $length == 2;
@ -19,9 +19,10 @@ handle query_parts => sub {
return unless $acc =~ /^-?\d+?(?:\.\d+|)$/ && $exp =~ /^-?\d+?(?:\.\d+|)$/;
my $diff = abs $acc - $exp;
my $err = abs ($diff/$acc*100);
my $per = abs ($diff/$acc);
my $err = $per*100;
my $html = qq(Accepted: <a href="javascript:;" onclick="document.x.q.value='$acc';document.x.q.focus();">$acc</a> Experimental: <a href="javascript:;" onclick="document.x.q.value='$exp';document.x.q.focus();">$exp</a> Error: <a href="javascript:;" onclick="document.x.q.value='$err';document.x.q.focus();">$err</a>);
my $html = qq(Accepted: <a href="javascript:;" onclick="document.x.q.value='$acc';document.x.q.focus();">$acc</a> Experimental: <a href="javascript:;" onclick="document.x.q.value='$exp';document.x.q.focus();">$exp</a> Error: <a href="javascript:;" onclick="document.x.q.value='$per';document.x.q.focus();">$err%</a>);
return "Accepted: $acc Experimental: $exp Error: $err%", html => $html;
};

View File

@ -12,8 +12,8 @@ ddg_goodie_test(
[qw(
DDG::Goodie::PercentError
)],
'%err 41 43' => test_zci('Accepted: 41 Experimental: 43 Error: 4.8780487804878%'),
'percent-error 34.5 35' => test_zci('Accepted: 34.5 Experimental: 35 Error: 1.44927536231884%'),
'%err 41 43' => test_zci('Accepted: 41 Experimental: 43 Error: 4.8780487804878%', html => qq(Accepted: <a href="javascript:;" onclick="document.x.q.value='41';document.x.q.focus();">41</a> Experimental: <a href="javascript:;" onclick="document.x.q.value='43';document.x.q.focus();">43</a> Error: <a href="javascript:;" onclick="document.x.q.value='0.0487804878048781';document.x.q.focus();">4.8780487804878%</a>), answer_type => 'percent_error'),
'percent-error 34.5 35' => test_zci('Accepted: 34.5 Experimental: 35 Error: 1.44927536231884%', html => qq(Accepted: <a href="javascript:;" onclick="document.x.q.value='34.5';document.x.q.focus();">34.5</a> Experimental: <a href="javascript:;" onclick="document.x.q.value='35';document.x.q.focus();">35</a> Error: <a href="javascript:;" onclick="document.x.q.value='0.0144927536231884';document.x.q.focus();">1.44927536231884%</a>), answer_type => 'percent_error'),
);
done_testing;