Fixed PercentOf.t and minor bugs on .pm file
parent
4e1eb737ea
commit
c271c7c660
|
@ -0,0 +1,49 @@
|
|||
package DDG::Goodie::PercentOf;
|
||||
# Operations with percentuals
|
||||
|
||||
use DDG::Goodie;
|
||||
|
||||
zci answer_type => "percent_of";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "PercentOf";
|
||||
description "Makes Operations with percentuals";
|
||||
primary_example_queries "4-50%", "349*16%";
|
||||
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/PercentOf/PercentOf.pm";
|
||||
attribution github => ["puskin94", "puskin"],
|
||||
twitter => "twitterhandle";
|
||||
|
||||
my $result;
|
||||
|
||||
triggers query_nowhitespace => qr/\d{1,3}\%$/;
|
||||
|
||||
handle query_nowhitespace => sub {
|
||||
|
||||
my $input = $_;
|
||||
|
||||
return unless $input =~ qr/(\d+)(\+|\*|\/|\-)(\d+)\%/;
|
||||
|
||||
|
||||
if ($2 eq '-') {
|
||||
$result = ( $1 - (($1 * $3) / 100) );
|
||||
} elsif ($2 eq '+') {
|
||||
$result = ( $1 + (($1 * $3) / 100) );
|
||||
} elsif ($2 eq '*') {
|
||||
$result = ( $1 * (($1 * $3) / 100) );
|
||||
} elsif ($2 eq '/') {
|
||||
$result = ( $1 / (($1 * $3) / 100) );
|
||||
}
|
||||
|
||||
my $text = "Result: $result";
|
||||
return $text,
|
||||
structured_answer => {
|
||||
input => [$input],
|
||||
operation => 'Calculate',
|
||||
result => $result
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
1;
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Test::More;
|
||||
use DDG::Test::Goodie;
|
||||
|
||||
zci answer_type => "percent_of";
|
||||
zci is_cached => 1;
|
||||
|
||||
ddg_goodie_test(
|
||||
[qw( DDG::Goodie::PercentOf )],
|
||||
|
||||
'4+50%' => test_zci('Result: 6',
|
||||
structured_answer => {
|
||||
input => ["4+50%"],
|
||||
operation => "Calculate",
|
||||
result => 6
|
||||
}),
|
||||
|
||||
'456+120%' => test_zci('Result: 1003.2',
|
||||
structured_answer => {
|
||||
input => ["456+120%"],
|
||||
operation => "Calculate",
|
||||
result => 1003.2
|
||||
}),
|
||||
|
||||
'urldecode hello%20there' => undef,
|
||||
'34$+16' => undef,
|
||||
'12+5t%' => undef
|
||||
);
|
||||
|
||||
done_testing;
|
Loading…
Reference in New Issue