Merge pull request #2223 from GuiltyDolphin/sigfigs-trigger-fix

SigFigs: Fix triggering
master
Zaahir Moolla 2016-02-03 13:32:32 -05:00
commit b78c88ea0c
2 changed files with 10 additions and 8 deletions

View File

@ -5,7 +5,7 @@ use strict;
use DDG::Goodie;
with 'DDG::GoodieRole::NumberStyler';
triggers any => 'sigfigs', 'sig figs', 'sf', 'significant';
triggers any => 'sigfigs', 'sig figs', 'significant';
zci answer_type => "sig_figs";
zci is_cached => 1;
@ -35,9 +35,9 @@ my $number_re = number_style_regex();
handle query_raw => sub {
my $query = $_;
$query =~ s/.*?(sf|sig(nificant)? ?(fig(ure)?|digit)s)[^,.\d]*+//i;
$query =~ s/.*?(sig(nificant)? ?(fig(ure)?|digit)s)[^,.\d]*+//i;
return if $query eq '';
$query =~ /^($number_re)\D*?$/ or return;
$query =~ /^($number_re)\??$/ or return;
my $number_match = $1;
my $style = number_style_for($number_match);
return unless $style;

View File

@ -28,24 +28,26 @@ sub build_test { test_zci(build_structured_answer(@_)) }
ddg_goodie_test(
[qw( DDG::Goodie::SigFigs)],
'sf 78' => build_test('2', '78'),
'sigfigs 78' => build_test('2', '78'),
"sigfigs 10.12404" => build_test('7', '10.12404'),
"significant digits of 3030." => build_test('4', '3,030.'),
"significant figures 0.0100235" => build_test('6', '0.0100235'),
"sf 302.056" => build_test('6', '302.056'),
"sig figs 302.056" => build_test('6', '302.056'),
"significant figs 045.30" => build_test('4', '045.30'),
'sigfigs 01.1234000' => build_test('8', '01.1234000'),
'significant figures 000123000' => build_test('3', '000,123,000'),
'sigfigs 0' => build_test('0', '0'),
'sf 001,70' => build_test('3', '001,70'),
'sf 1_200.' => build_test('4', '1,200.'),
'sf 1. 5h' => build_test('2', '1.5'),
'sig figs 001,70' => build_test('3', '001,70'),
'significant figs 1_200.' => build_test('4', '1,200.'),
'sig figs 501,.3' => build_test('4', '501,.3'),
'sf' => undef,
'sf 78' => undef,
'significant figures a' => undef,
'significant figures of 1.230' => build_test('4', '1.230'),
'sig figs 1h1' => undef,
'significant figures 1. 5h' => undef,
'sig figs 000.' => build_test('0', '000.'),
# As Question
'What are the significant figures of 312?' => build_test('3', '312'),
'How many sig figs are there in 11.3' => build_test('3', '11.3'),
);