Update Goodies to use Test::Deep

* Ensure Test::Deep is imported.

* Replace '-ANY-' with ignore()

* Replace regexes with re(...)
master
Ben Moon 2016-05-16 14:07:57 +01:00
parent 8eeddb5c19
commit 5f85cf4121
180 changed files with 855 additions and 709 deletions

28
t/ABC.t
View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'choice';
@ -12,7 +13,7 @@ sub create_structured_answer
{
my $data = shift;
return {
data => $data, #'-ANY-',
data => $data, #ignore(),
templates => {
group => 'text',
moreAt => 0
@ -30,28 +31,28 @@ ddg_goodie_test(
'choose his or or her house' => undef,
'choose from products like turkey or venison' => undef,
'choose pick or axe' => test_zci(
qr/(pick|axe) \(Random\)/,
structured_answer => create_structured_answer('-ANY-')
re(qr/(pick|axe) \(Random\)/),
structured_answer => create_structured_answer(ignore())
),
'choose yes or no' => test_zci(
qr/(yes|no) \(Random\)/,
structured_answer => create_structured_answer('-ANY-')
re(qr/(yes|no) \(Random\)/),
structured_answer => create_structured_answer(ignore())
),
'choose this or that or none' => test_zci(
qr/(this|that|none) \(Random\)/,
structured_answer => create_structured_answer('-ANY-')
re(qr/(this|that|none) \(Random\)/),
structured_answer => create_structured_answer(ignore())
),
'pick this or that or none' => test_zci(
qr/(this|that|none) \(Random\)/,
structured_answer => create_structured_answer('-ANY-')
re(qr/(this|that|none) \(Random\)/),
structured_answer => create_structured_answer(ignore())
),
'select heads or tails' => test_zci(
qr/(heads|tails) \(Random\)/,
structured_answer => create_structured_answer('-ANY-')
re(qr/(heads|tails) \(Random\)/),
structured_answer => create_structured_answer(ignore())
),
'choose heads or tails' => test_zci(
qr/(heads|tails) \(Random\)/,
structured_answer => create_structured_answer('-ANY-')
re(qr/(heads|tails) \(Random\)/),
structured_answer => create_structured_answer(ignore())
),
'choose duckduckgo or google or bing or something' => test_zci(
'duckduckgo (Non-random)',
@ -70,4 +71,3 @@ ddg_goodie_test(
);
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'date_conversion';
@ -84,4 +85,4 @@ sub make_structured_answer {
};
};
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'anagram';
@ -42,4 +43,4 @@ ddg_goodie_test(
'anagrams of "Mixing it up"' => undef,
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'aspect_ratio';
@ -33,4 +34,4 @@ ddg_goodie_test(
'aspect ratio 1:1.5 ?:15' => build_test('1:1.5', '10:15')
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'atbash';
@ -92,4 +93,4 @@ ddg_goodie_test(
),
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'average';
@ -42,4 +43,3 @@ ddg_goodie_test(
);
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => "bpmto_ms";
@ -30,49 +31,49 @@ ddg_goodie_test(
"120 beats per minute to ms" => test_zci(
$plaintext_120,
structured_answer => {
data => '-ANY-',
data => ignore(),
# [
# {
# note_type => "Whole Note",
# triplet => 1333,
# dotted => 3000,
# milliseconds => 2000,
# image => qr/.*/
# image => re(qr/.*/)
# },
# {
# note_type => "Half Note",
# triplet => 667,
# dotted => 1500,
# milliseconds => 1000,
# image => qr/.*/
# image => re(qr/.*/)
# },
# {
# note_type => "Quarter Note",
# triplet => 333,
# dotted => 750,
# milliseconds => 500,
# image => qr/.*/
# image => re(qr/.*/)
# },
# {
# note_type => "1/8 Note",
# triplet => 167,
# dotted => 375,
# milliseconds => 250,
# image => qr/.*/
# image => re(qr/.*/)
# },
# {
# note_type => "1/16 Note",
# triplet => 83,
# dotted => 188,
# milliseconds => 125,
# image => qr/.*/
# image => re(qr/.*/)
# },
# {
# note_type => "1/32 Note",
# triplet => 42,
# dotted => 94,
# milliseconds => 63,
# image => qr/.*/
# image => re(qr/.*/)
# }
# ],
meta => {
@ -92,49 +93,49 @@ ddg_goodie_test(
"61 beats per minute to ms" => test_zci(
$plaintext_61,
structured_answer => {
data => '-ANY-',
data => ignore(),
# [
# {
# note_type => "Whole Note",
# triplet => 2623,
# dotted => 5902,
# milliseconds => 3934,
# image => qr/.*/
# image => re(qr/.*/)
# },
# {
# note_type => "Half Note",
# triplet => 1311,
# dotted => 2951,
# milliseconds => 1967,
# image => qr/.*/
# image => re(qr/.*/)
# },
# {
# note_type => "Quarter Note",
# triplet => 656,
# dotted => 1475,
# milliseconds => 984,
# image => qr/.*/
# image => re(qr/.*/)
# },
# {
# note_type => "1/8 Note",
# triplet => 328,
# dotted => 738,
# milliseconds => 492,
# image => qr/.*/
# image => re(qr/.*/)
# },
# {
# note_type => "1/16 Note",
# triplet => 164,
# dotted => 369,
# milliseconds => 246,
# image => qr/.*/
# image => re(qr/.*/)
# },
# {
# note_type => "1/32 Note",
# triplet => 82,
# dotted => 184,
# milliseconds => 123,
# image => qr/.*/
# image => re(qr/.*/)
# }
# ],
meta => {
@ -156,4 +157,4 @@ ddg_goodie_test(
'bpm' => undef,
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => "brt";
@ -30,4 +31,4 @@ ddg_goodie_test(
"brt 12345678901234567890" => undef
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'conversion';
@ -39,4 +40,3 @@ ddg_goodie_test(
);
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'base64_conversion';
@ -45,4 +46,4 @@ ddg_goodie_test(
"base64 decode" => undef,
);
done_testing;
done_testing;

View File

@ -2,6 +2,7 @@ use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'expression_description';
@ -12,7 +13,7 @@ ddg_goodie_test(
'DDG::Goodie::BashPrimaryExpressions'
],
"bash [ -a b ]" => test_zci(
qr/.+ true if b exists./,
re(qr/.+ true if b exists./),
structured_answer => {
data => {
intro => "[ -a b ]",
@ -39,9 +40,9 @@ ddg_goodie_test(
}
),
'bash [[ "abc" < "cba" ]]' => test_zci(
qr/.+ true if "abc" string-sorts before "cba" in the current locale./,
re(qr/.+ true if "abc" string-sorts before "cba" in the current locale./),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -52,9 +53,9 @@ ddg_goodie_test(
}
),
'bash [ 2 -gt 1 ]' => test_zci(
qr/.+ true if 2 is numerically greater than 1./,
re(qr/.+ true if 2 is numerically greater than 1./),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -65,9 +66,9 @@ ddg_goodie_test(
}
),
'bash [ ! hello == world ]' => test_zci(
qr/.+ false if the strings hello and world are equal./,
re(qr/.+ false if the strings hello and world are equal./),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -78,9 +79,9 @@ ddg_goodie_test(
}
),
'bash [[ /tmp/hello -nt /etc/test ]]' => test_zci (
qr#.+ true if /tmp/hello has been changed more recently than /etc/test or if /tmp/hello exists and /etc/test does not.#,
re(qr#.+ true if /tmp/hello has been changed more recently than /etc/test or if /tmp/hello exists and /etc/test does not.#),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -91,9 +92,9 @@ ddg_goodie_test(
}
),
'bash [ -z hello ]' => test_zci(
qr/.+ true if the length of 'hello' is zero./,
re(qr/.+ true if the length of 'hello' is zero./),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -104,9 +105,9 @@ ddg_goodie_test(
}
),
'bash if [[ "abc" -lt "cba" ]]' => test_zci(
qr/.+ true if "abc" is numerically less than "cba"./,
re(qr/.+ true if "abc" is numerically less than "cba"./),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -120,4 +121,4 @@ ddg_goodie_test(
'bash if [ ![ 1 -lt 2 ] ]' => undef,
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => "beam_me_up_scotty";
@ -32,4 +33,4 @@ ddg_goodie_test(
'scotty beam us up' => undef,
);
done_testing;
done_testing;

View File

@ -1,6 +1,7 @@
#!/usr/bin/env perl
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
use utf8;
@ -77,4 +78,4 @@ ddg_goodie_test(
%ctrl_tests
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'binary_conversion';
@ -56,4 +57,4 @@ ddg_goodie_test(
'to binary' => undef,
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
use utf8;
@ -65,4 +66,4 @@ ddg_goodie_test(
'what do number and letter codes in a lens name mean' => undef
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => "birth_stone";
@ -35,4 +36,4 @@ ddg_goodie_test(
'may birth stone' => build_test('May', 'Emerald')
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => "bitsum";
@ -46,4 +47,4 @@ ddg_goodie_test(
'bitsum 0b' => undef,
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => "blood_donor";
@ -89,4 +90,4 @@ ddg_goodie_test(
),
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
use Convert::Braille;
use utf8;
@ -43,4 +44,4 @@ ddg_goodie_test(
'braille to braille is good' => undef,
);
done_testing;
done_testing;

View File

@ -3,13 +3,14 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'caesar_cipher';
zci is_cached => 1;
my $decode_response = {
data => '-ANY-', # We only need to check it is the right template.
data => ignore(), # We only need to check it is the right template.
meta => {
sourceUrl => 'https://en.wikipedia.org/wiki/Caesar_cipher',
sourceName => 'Wikipedia',
@ -70,4 +71,4 @@ ddg_goodie_test(
'how to decode caesar' => undef,
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'root';
@ -49,4 +50,4 @@ ddg_goodie_test(
}
),
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
use DDG::Goodie::Calculator; # For function subtests.
use utf8;
@ -18,7 +19,7 @@ ddg_goodie_test(
structured_answer => {
input => ['2 - 2'],
operation => 'Calculate',
result => qr/>0</
result => re(qr/>0</)
}
),
'solve 2+2' => test_zci(
@ -27,7 +28,7 @@ ddg_goodie_test(
structured_answer => {
input => ['2 + 2'],
operation => 'Calculate',
result => qr/>4</
result => re(qr/>4</)
}
),
'2^8' => test_zci(
@ -36,7 +37,7 @@ ddg_goodie_test(
structured_answer => {
input => ['2 ^ 8'],
operation => 'Calculate',
result => qr/>256</
result => re(qr/>256</)
}
),
'2 *7' => test_zci(
@ -45,7 +46,7 @@ ddg_goodie_test(
structured_answer => {
input => ['2 * 7'],
operation => 'Calculate',
result => qr/>14</
result => re(qr/>14</)
}
),
'4 ∙ 5' => test_zci(
@ -54,7 +55,7 @@ ddg_goodie_test(
structured_answer => {
input => ['4 * 5'],
operation => 'Calculate',
result => qr/>20</
result => re(qr/>20</)
}
),
'6 ⋅ 7' => test_zci(
@ -63,7 +64,7 @@ ddg_goodie_test(
structured_answer => {
input => ['6 * 7'],
operation => 'Calculate',
result => qr/>42</
result => re(qr/>42</)
}
),
'3 × dozen' => test_zci(
@ -72,7 +73,7 @@ ddg_goodie_test(
structured_answer => {
input => ['3 * dozen'],
operation => 'Calculate',
result => qr/>36</
result => re(qr/>36</)
}
),
'dozen ÷ 4' => test_zci(
@ -81,7 +82,7 @@ ddg_goodie_test(
structured_answer => {
input => ['dozen / 4'],
operation => 'Calculate',
result => qr/>3</
result => re(qr/>3</)
}
),
'1 dozen * 2' => test_zci(
@ -90,7 +91,7 @@ ddg_goodie_test(
structured_answer => {
input => ['1 dozen * 2'],
operation => 'Calculate',
result => qr/>24</
result => re(qr/>24</)
}
),
'dozen + dozen' => test_zci(
@ -99,7 +100,7 @@ ddg_goodie_test(
structured_answer => {
input => ['dozen + dozen'],
operation => 'Calculate',
result => qr/>24</
result => re(qr/>24</)
}
),
'2divided by 4' => test_zci(
@ -108,7 +109,7 @@ ddg_goodie_test(
structured_answer => {
input => ['2 divided by 4'],
operation => 'Calculate',
result => qr/>0.5</
result => re(qr/>0.5</)
}
),
'2^2' => test_zci(
@ -117,7 +118,7 @@ ddg_goodie_test(
structured_answer => {
input => ['2 ^ 2'],
operation => 'Calculate',
result => qr/>4</
result => re(qr/>4</)
}
),
'2^0.2' => test_zci(
@ -126,7 +127,7 @@ ddg_goodie_test(
structured_answer => {
input => ['2 ^ 0.2'],
operation => 'Calculate',
result => qr/>1\.14869835499704</
result => re(qr/>1\.14869835499704</)
}
),
'cos(0)' => test_zci(
@ -135,7 +136,7 @@ ddg_goodie_test(
structured_answer => {
input => ['cos(0)'],
operation => 'Calculate',
result => qr/>1</
result => re(qr/>1</)
}
),
'tan(1)' => test_zci(
@ -144,7 +145,7 @@ ddg_goodie_test(
structured_answer => {
input => ['tan(1)'],
operation => 'Calculate',
result => qr/>1\.5574077246549</
result => re(qr/>1\.5574077246549</)
}
),
'tanh(1)' => test_zci(
@ -153,7 +154,7 @@ ddg_goodie_test(
structured_answer => {
input => ['tanh(1)'],
operation => 'Calculate',
result => qr/>0\.761594155955765</
result => re(qr/>0\.761594155955765</)
}
),
'cotan(1)' => test_zci(
@ -162,7 +163,7 @@ ddg_goodie_test(
structured_answer => {
input => ['cotan(1)'],
operation => 'Calculate',
result => qr/>0\.642092615934331</
result => re(qr/>0\.642092615934331</)
}
),
'sin(1)' => test_zci(
@ -171,7 +172,7 @@ ddg_goodie_test(
structured_answer => {
input => ['sin(1)'],
operation => 'Calculate',
result => qr/>0\.841470984807897</
result => re(qr/>0\.841470984807897</)
}
),
'csc(1)' => test_zci(
@ -180,7 +181,7 @@ ddg_goodie_test(
structured_answer => {
input => ['csc(1)'],
operation => 'Calculate',
result => qr/>1\.18839510577812</
result => re(qr/>1\.18839510577812</)
}
),
'sec(1)' => test_zci(
@ -189,7 +190,7 @@ ddg_goodie_test(
structured_answer => {
input => ['sec(1)'],
operation => 'Calculate',
result => qr/>1\.85081571768093</
result => re(qr/>1\.85081571768093</)
}
),
'log(3)' => test_zci(
@ -198,7 +199,7 @@ ddg_goodie_test(
structured_answer => {
input => ['log(3)'],
operation => 'Calculate',
result => qr/>1\.09861228866811</
result => re(qr/>1\.09861228866811</)
}
),
'ln(3)' => test_zci(
@ -207,7 +208,7 @@ ddg_goodie_test(
structured_answer => {
input => ['log(3)'],
operation => 'Calculate',
result => qr/>1\.09861228866811</
result => re(qr/>1\.09861228866811</)
}
),
'log10(100.00)' => test_zci(
@ -216,7 +217,7 @@ ddg_goodie_test(
structured_answer => {
input => ['log10(100.00)'],
operation => 'Calculate',
result => qr/>2</
result => re(qr/>2</)
}
),
'log_10(100.00)' => test_zci(
@ -225,7 +226,7 @@ ddg_goodie_test(
structured_answer => {
input => ['log_10(100.00)'],
operation => 'Calculate',
result => qr/>2</
result => re(qr/>2</)
}
),
'log_2(16)' => test_zci(
@ -234,7 +235,7 @@ ddg_goodie_test(
structured_answer => {
input => ['log_2(16)'],
operation => 'Calculate',
result => qr/>4</
result => re(qr/>4</)
}
),
'log_23(25)' => test_zci(
@ -243,7 +244,7 @@ ddg_goodie_test(
structured_answer => {
input => ['log_23(25)'],
operation => 'Calculate',
result => qr/>1\.0265928122321</
result => re(qr/>1\.0265928122321</)
}
),
'log23(25)' => test_zci(
@ -252,7 +253,7 @@ ddg_goodie_test(
structured_answer => {
input => ['log23(25)'],
operation => 'Calculate',
result => qr/>1\.0265928122321</
result => re(qr/>1\.0265928122321</)
}
),
'$3.43+$34.45' => test_zci(
@ -261,7 +262,7 @@ ddg_goodie_test(
structured_answer => {
input => ['$3.43 + $34.45'],
operation => 'Calculate',
result => qr/>\$37\.88</
result => re(qr/>\$37\.88</)
}
),
'$3.45+$34.45' => test_zci(
@ -270,7 +271,7 @@ ddg_goodie_test(
structured_answer => {
input => ['$3.45 + $34.45'],
operation => 'Calculate',
result => qr/>\$37\.90</
result => re(qr/>\$37\.90</)
}
),
'$3+$34' => test_zci(
@ -279,7 +280,7 @@ ddg_goodie_test(
structured_answer => {
input => ['$3 + $34'],
operation => 'Calculate',
result => qr/>\$37\.00</
result => re(qr/>\$37\.00</)
}
),
'$3,4+$34,4' => test_zci(
@ -288,7 +289,7 @@ ddg_goodie_test(
structured_answer => {
input => ['$3,4 + $34,4'],
operation => 'Calculate',
result => qr/>\$37,80</
result => re(qr/>\$37,80</)
}
),
'64*343' => test_zci(
@ -297,7 +298,7 @@ ddg_goodie_test(
structured_answer => {
input => ['64 * 343'],
operation => 'Calculate',
result => qr/>21,952</
result => re(qr/>21,952</)
}
),
'1E2 + 1' => test_zci(
@ -306,7 +307,7 @@ ddg_goodie_test(
structured_answer => {
input => ['(1 * 10 ^ 2) + 1'],
operation => 'Calculate',
result => qr/>101</
result => re(qr/>101</)
}
),
'1 + 1E2' => test_zci(
@ -315,7 +316,7 @@ ddg_goodie_test(
structured_answer => {
input => ['1 + (1 * 10 ^ 2)'],
operation => 'Calculate',
result => qr/>101</
result => re(qr/>101</)
}
),
'2 * 3 + 1E2' => test_zci(
@ -324,7 +325,7 @@ ddg_goodie_test(
structured_answer => {
input => ['2 * 3 + (1 * 10 ^ 2)'],
operation => 'Calculate',
result => qr/>106</
result => re(qr/>106</)
}
),
'1E2 + 2 * 3' => test_zci(
@ -333,7 +334,7 @@ ddg_goodie_test(
structured_answer => {
input => ['(1 * 10 ^ 2) + 2 * 3'],
operation => 'Calculate',
result => qr/>106</
result => re(qr/>106</)
}
),
'1E2 / 2' => test_zci(
@ -342,7 +343,7 @@ ddg_goodie_test(
structured_answer => {
input => ['(1 * 10 ^ 2) / 2'],
operation => 'Calculate',
result => qr/>50</
result => re(qr/>50</)
}
),
'2 / 1E2' => test_zci(
@ -351,7 +352,7 @@ ddg_goodie_test(
structured_answer => {
input => ['2 / (1 * 10 ^ 2)'],
operation => 'Calculate',
result => qr/>0\.02</
result => re(qr/>0\.02</)
}
),
'424334+2253828' => test_zci(
@ -360,7 +361,7 @@ ddg_goodie_test(
structured_answer => {
input => ['424334 + 2253828'],
operation => 'Calculate',
result => qr/>2,678,162</
result => re(qr/>2,678,162</)
}
),
'4.243,34+22.538,28' => test_zci(
@ -369,7 +370,7 @@ ddg_goodie_test(
structured_answer => {
input => ['4.243,34 + 22.538,28'],
operation => 'Calculate',
result => qr/>26\.781,62</
result => re(qr/>26\.781,62</)
}
),
'sin(1,0) + 1,05' => test_zci(
@ -378,7 +379,7 @@ ddg_goodie_test(
structured_answer => {
input => ['sin(1,0) + 1,05'],
operation => 'Calculate',
result => qr/>1,8914709848079</
result => re(qr/>1,8914709848079</)
}
),
'21 + 15 x 0 + 5' => test_zci(
@ -387,7 +388,7 @@ ddg_goodie_test(
structured_answer => {
input => ['21 + 15 * 0 + 5'],
operation => 'Calculate',
result => qr/>26</
result => re(qr/>26</)
}
),
'0.8158 - 0.8157' => test_zci(
@ -396,7 +397,7 @@ ddg_goodie_test(
structured_answer => {
input => ['0.8158 - 0.8157'],
operation => 'Calculate',
result => qr/>0\.0001</
result => re(qr/>0\.0001</)
}
),
'2,90 + 4,6' => test_zci(
@ -405,7 +406,7 @@ ddg_goodie_test(
structured_answer => {
input => ['2,90 + 4,6'],
operation => 'Calculate',
result => qr/>7,50</
result => re(qr/>7,50</)
}
),
'2,90 + sec(4,6)' => test_zci(
@ -414,7 +415,7 @@ ddg_goodie_test(
structured_answer => {
input => ['2,90 + sec(4,6)'],
operation => 'Calculate',
result => qr/>-6,01642861135959</
result => re(qr/>-6,01642861135959</)
}
),
'100 - 96.54' => test_zci(
@ -423,7 +424,7 @@ ddg_goodie_test(
structured_answer => {
input => ['100 - 96.54'],
operation => 'Calculate',
result => qr/>3\.46</
result => re(qr/>3\.46</)
}
),
'1. + 1.' => test_zci(
@ -432,7 +433,7 @@ ddg_goodie_test(
structured_answer => {
input => ['1. + 1.'],
operation => 'Calculate',
result => qr/>2</
result => re(qr/>2</)
}
),
'1 + sin(pi)' => test_zci(
@ -441,7 +442,7 @@ ddg_goodie_test(
structured_answer => {
input => ['1 + sin(pi)'],
operation => 'Calculate',
result => qr/>1</
result => re(qr/>1</)
}
),
'1 - 1' => test_zci(
@ -450,7 +451,7 @@ ddg_goodie_test(
structured_answer => {
input => ['1 - 1'],
operation => 'Calculate',
result => qr/>0</
result => re(qr/>0</)
}
),
'sin(pi/2)' => test_zci(
@ -459,7 +460,7 @@ ddg_goodie_test(
structured_answer => {
input => ['sin(pi / 2)'],
operation => 'Calculate',
result => qr/>1</
result => re(qr/>1</)
}
),
'sin(pi)' => test_zci(
@ -468,7 +469,7 @@ ddg_goodie_test(
structured_answer => {
input => ['sin(pi)'],
operation => 'Calculate',
result => qr/>0</
result => re(qr/>0</)
}
),
'cos(2pi)' => test_zci(
@ -477,7 +478,7 @@ ddg_goodie_test(
structured_answer => {
input => ['cos(2 pi)'],
operation => 'Calculate',
result => qr/>1</
result => re(qr/>1</)
}
),
'5 squared' => test_zci(
@ -486,7 +487,7 @@ ddg_goodie_test(
structured_answer => {
input => ['5 ^ 2'],
operation => 'Calculate',
result => qr/>25</
result => re(qr/>25</)
}
),
'sqrt(4)' => test_zci(
@ -495,7 +496,7 @@ ddg_goodie_test(
structured_answer => {
input => ['sqrt(4)'],
operation => 'Calculate',
result => qr/>2</
result => re(qr/>2</)
}
),
'1.0 + 5 squared' => test_zci(
@ -504,7 +505,7 @@ ddg_goodie_test(
structured_answer => {
input => ['1.0 + 5 ^ 2'],
operation => 'Calculate',
result => qr/>26</
result => re(qr/>26</)
}
),
'3 squared + 4 squared' => test_zci(
@ -513,7 +514,7 @@ ddg_goodie_test(
structured_answer => {
input => ['3 ^ 2 + 4 ^ 2'],
operation => 'Calculate',
result => qr/>25</
result => re(qr/>25</)
}
),
'2,2 squared' => test_zci(
@ -522,7 +523,7 @@ ddg_goodie_test(
structured_answer => {
input => ['2,2 ^ 2'],
operation => 'Calculate',
result => qr/>4,84</
result => re(qr/>4,84</)
}
),
'0.8^2 + 0.6^2' => test_zci(
@ -531,7 +532,7 @@ ddg_goodie_test(
structured_answer => {
input => ['0.8 ^ 2 + 0.6 ^ 2'],
operation => 'Calculate',
result => qr/>1</,
result => re(qr/>1</),
}
),
'2 squared ^ 3' => test_zci(
@ -540,7 +541,7 @@ ddg_goodie_test(
structured_answer => {
input => ['2 ^ 2 ^ 3'],
operation => 'Calculate',
result => qr/>256</
result => re(qr/>256</)
}
),
'2 squared ^ 3.06' => test_zci(
@ -549,7 +550,7 @@ ddg_goodie_test(
structured_answer => {
input => ['2 ^ 2 ^ 3.06'],
operation => 'Calculate',
result => qr/>323\.972172143725</
result => re(qr/>323\.972172143725</)
}
),
'2^3 squared' => test_zci(
@ -558,7 +559,7 @@ ddg_goodie_test(
structured_answer => {
input => ['2 ^ 3 ^ 2'],
operation => 'Calculate',
result => qr/>512</
result => re(qr/>512</)
}
),
'sqrt(2)' => test_zci(
@ -567,7 +568,7 @@ ddg_goodie_test(
structured_answer => {
input => ['sqrt(2)'],
operation => 'Calculate',
result => qr/>1\.4142135623731</
result => re(qr/>1\.4142135623731</)
}
),
'sqrt(3 pi / 4 + 1) + 1' => test_zci(
@ -576,7 +577,7 @@ ddg_goodie_test(
structured_answer => {
input => ['sqrt(3 pi / 4 + 1) + 1'],
operation => 'Calculate',
result => qr/>2\.83199194599549</
result => re(qr/>2\.83199194599549</)
}
),
'4 score + 7' => test_zci(
@ -585,7 +586,7 @@ ddg_goodie_test(
structured_answer => {
input => ['4 score + 7'],
operation => 'Calculate',
result => qr/>87</
result => re(qr/>87</)
}
),
'418.1 / 2' => test_zci(
@ -594,7 +595,7 @@ ddg_goodie_test(
structured_answer => {
input => ['418.1 / 2'],
operation => 'Calculate',
result => qr/>209\.05</
result => re(qr/>209\.05</)
}
),
'418.005 / 8' => test_zci(
@ -603,7 +604,7 @@ ddg_goodie_test(
structured_answer => {
input => ['418.005 / 8'],
operation => 'Calculate',
result => qr/>52\.250625</
result => re(qr/>52\.250625</)
}
),
'(pi^4+pi^5)^(1/6)' => test_zci(
@ -612,7 +613,7 @@ ddg_goodie_test(
structured_answer => {
input => ['(pi ^ 4 + pi ^ 5) ^ (1 / 6)'],
operation => 'Calculate',
result => qr/>2\.71828180861191</
result => re(qr/>2\.71828180861191</)
}
),
'(pi^4+pi^5)^(1/6)+1' => test_zci(
@ -621,7 +622,7 @@ ddg_goodie_test(
structured_answer => {
input => ['(pi ^ 4 + pi ^ 5) ^ (1 / 6) + 1'],
operation => 'Calculate',
result => qr/>3\.71828180861191</
result => re(qr/>3\.71828180861191</)
}
),
'5^4^(3-2)^1' => test_zci(
@ -630,7 +631,7 @@ ddg_goodie_test(
structured_answer => {
input => ['5 ^ 4 ^ (3 - 2) ^ 1'],
operation => 'Calculate',
result => qr/>625</
result => re(qr/>625</)
}
),
'(5-4)^(3-2)^1' => test_zci(
@ -639,7 +640,7 @@ ddg_goodie_test(
structured_answer => {
input => ['(5 - 4) ^ (3 - 2) ^ 1'],
operation => 'Calculate',
result => qr/>1</
result => re(qr/>1</)
}
),
'(5+4-3)^(2-1)' => test_zci(
@ -648,7 +649,7 @@ ddg_goodie_test(
structured_answer => {
input => ['(5 + 4 - 3) ^ (2 - 1)'],
operation => 'Calculate',
result => qr/>6</
result => re(qr/>6</)
}
),
'5^((4-3)*(2+1))+6' => test_zci(
@ -657,7 +658,7 @@ ddg_goodie_test(
structured_answer => {
input => ['5 ^ ((4 - 3) * (2 + 1)) + 6'],
operation => 'Calculate',
result => qr/>131</
result => re(qr/>131</)
}
),
'20x07' => test_zci(
@ -666,7 +667,7 @@ ddg_goodie_test(
structured_answer => {
input => ['20 * 07'],
operation => 'Calculate',
result => qr/>140</
result => re(qr/>140</)
}
),
'83.166.167.160/33' => test_zci(
@ -675,7 +676,7 @@ ddg_goodie_test(
structured_answer => {
input => ['83.166.167.160 / 33'],
operation => 'Calculate',
result => qr/>2\.520\.186\.883,63636</
result => re(qr/>2\.520\.186\.883,63636</)
}
),
'123.123.123.123/255.255.255.256' => test_zci(
@ -684,7 +685,7 @@ ddg_goodie_test(
structured_answer => {
input => ['123.123.123.123 / 255.255.255.256'],
operation => 'Calculate',
result => qr/>0,482352941174581</
result => re(qr/>0,482352941174581</)
}
),
'4E5 +1 ' => test_zci(
@ -693,7 +694,7 @@ ddg_goodie_test(
structured_answer => {
input => ['(4 * 10 ^ 5) + 1'],
operation => 'Calculate',
result => qr/>400,001</
result => re(qr/>400,001</)
}
),
'4e5 +1 ' => test_zci(
@ -702,7 +703,7 @@ ddg_goodie_test(
structured_answer => {
input => ['(4 * 10 ^ 5) + 1'],
operation => 'Calculate',
result => qr/>400,001</
result => re(qr/>400,001</)
}
),
'3e-2* 9 ' => test_zci(
@ -711,7 +712,7 @@ ddg_goodie_test(
structured_answer => {
input => ['(3 * 10 ^- 2) * 9'],
operation => 'Calculate',
result => qr/>0.27</
result => re(qr/>0.27</)
}
),
'7e-4 *8' => test_zci(
@ -720,7 +721,7 @@ ddg_goodie_test(
structured_answer => {
input => ['(7 * 10 ^- 4) * 8'],
operation => 'Calculate',
result => qr/>0.0056</
result => re(qr/>0.0056</)
}
),
'6 * 2e-11' => test_zci(
@ -729,7 +730,7 @@ ddg_goodie_test(
structured_answer => {
input => ['6 * (2 * 10 ^- 11)'],
operation => 'Calculate',
result => qr/>1\.2 \* 10<sup>-10<\/sup></
result => re(qr/>1\.2 \* 10<sup>-10<\/sup></)
}
),
'7 + 7e-7' => test_zci(
@ -738,7 +739,7 @@ ddg_goodie_test(
structured_answer => {
input => ['7 + (7 * 10 ^- 7)'],
operation => 'Calculate',
result => qr/>7.0000007</
result => re(qr/>7.0000007</)
}
),
'1 * 7 + e-7' => test_zci(
@ -747,7 +748,7 @@ ddg_goodie_test(
structured_answer => {
input => ['1 * 7 + e - 7'],
operation => 'Calculate',
result => qr/>2.71828182845905</
result => re(qr/>2.71828182845905</)
}
),
'7 * e- 5' => test_zci(
@ -756,7 +757,7 @@ ddg_goodie_test(
structured_answer => {
input => ['7 * e - 5'],
operation => 'Calculate',
result => qr/>14.0279727992134</
result => re(qr/>14.0279727992134</)
}
),
'pi/1e9' => test_zci(
@ -765,7 +766,7 @@ ddg_goodie_test(
structured_answer => {
input => ['pi / (1 * 10 ^ 9)'],
operation => 'Calculate',
result => qr/>3\.14159265358979 \* 10<sup>-9<\/sup></
result => re(qr/>3\.14159265358979 \* 10<sup>-9<\/sup></)
}
),
'pi*1e9' => test_zci(
@ -774,7 +775,7 @@ ddg_goodie_test(
structured_answer => {
input => ['pi * (1 * 10 ^ 9)'],
operation => 'Calculate',
result => qr/>3,141,592,653\.58979</
result => re(qr/>3,141,592,653\.58979</)
}
),
'1 234 + 5 432' => test_zci(
@ -783,7 +784,7 @@ ddg_goodie_test(
structured_answer => {
input => ['1234 + 5432'],
operation => 'Calculate',
result => qr/6,666/
result => re(qr/6,666/)
}
),
'1_234 + 5_432' => test_zci(
@ -792,7 +793,7 @@ ddg_goodie_test(
structured_answer => {
input => ['1234 + 5432'],
operation => 'Calculate',
result => qr/6,666/
result => re(qr/6,666/)
}
),
'(0.4e^(0))*cos(0)' => test_zci(
@ -801,7 +802,7 @@ ddg_goodie_test(
structured_answer => {
input => ['(0.4e ^ (0)) * cos(0)'],
operation => 'Calculate',
result => qr'0.4'
result => re(qr'0.4')
}
),
'2pi' => test_zci(
@ -810,7 +811,7 @@ ddg_goodie_test(
structured_answer => {
input => ['2 pi'],
operation => 'Calculate',
result => qr"6.28318530717958"
result => re(qr"6.28318530717958")
}
),
'fact(3)' => test_zci(
@ -819,7 +820,7 @@ ddg_goodie_test(
structured_answer => {
input => ['fact(3)'],
operation => 'Calculate',
result => qr/>6</
result => re(qr/>6</)
}
),
'factorial(3)' => test_zci(
@ -828,7 +829,7 @@ ddg_goodie_test(
structured_answer => {
input => ['fact(3)'],
operation => 'Calculate',
result => qr/>6</
result => re(qr/>6</)
}
),
'123.123.123.123/255.255.255.255' => undef,
@ -860,4 +861,4 @@ ddg_goodie_test(
'(01780) 111 111' => undef,
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'calendar_conversion';
@ -48,4 +49,4 @@ ddg_goodie_test(
'22nd Aug 2003 in gregorian time' => undef,
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
use Test::MockTime qw( :all );
@ -14,9 +15,9 @@ ddg_goodie_test(
DDG::Goodie::CalendarToday
)],
'calendar' => test_zci(
qr/\nS M T W T F S[ ]+[A-Za-z]+ [0-9]{4}\n.+/,
re(qr/\nS M T W T F S[ ]+[A-Za-z]+ [0-9]{4}\n.+/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -27,9 +28,9 @@ ddg_goodie_test(
}
),
'calendar november' => test_zci(
qr/\nS M T W T F S November [0-9]{4}\n.+/,
re(qr/\nS M T W T F S November [0-9]{4}\n.+/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -40,9 +41,9 @@ ddg_goodie_test(
}
),
'calendar november 12th' => test_zci(
qr/\nS M T W T F S November [0-9]{4}\n.+/,
re(qr/\nS M T W T F S November [0-9]{4}\n.+/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -53,9 +54,9 @@ ddg_goodie_test(
}
),
'calendar last november' => test_zci(
qr/\nS M T W T F S November [0-9]{4}\n.+/,
re(qr/\nS M T W T F S November [0-9]{4}\n.+/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -66,9 +67,9 @@ ddg_goodie_test(
}
),
'calendar next november' => test_zci(
qr/\nS M T W T F S November [0-9]{4}\n.+/,
re(qr/\nS M T W T F S November [0-9]{4}\n.+/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -217,7 +218,7 @@ S M T W T F S November 2009
29 30
",
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -236,7 +237,7 @@ S M T W T F S November 2015
|29| 30
",
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -255,7 +256,7 @@ S M T W T F S November 2015
|29| 30
",
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -275,7 +276,7 @@ S M T W T F S November 1980
30
",
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -294,7 +295,7 @@ S M T W T F S November 2009
29 30
",
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -305,9 +306,9 @@ S M T W T F S November 2009
}
),
'next november on a calendar' => test_zci(
qr/\nS M T W T F S November [0-9]{4}\n.+/,
re(qr/\nS M T W T F S November [0-9]{4}\n.+/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -318,9 +319,9 @@ S M T W T F S November 2009
}
),
'calendar for november' => test_zci(
qr/\nS M T W T F S November [0-9]{4}\n.+/,
re(qr/\nS M T W T F S November [0-9]{4}\n.+/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -339,7 +340,7 @@ S M T W T F S November 2009
29 30
",
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -351,9 +352,9 @@ S M T W T F S November 2009
),
'22/8/2003 to the hijri calendar' => undef,
"today's calendar" => test_zci(
qr/\nS M T W T F S [A-Z][a-z]+ [0-9]{4}\n.+/,
re(qr/\nS M T W T F S [A-Z][a-z]+ [0-9]{4}\n.+/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -364,9 +365,9 @@ S M T W T F S November 2009
}
),
"november's calendar" => test_zci(
qr/\nS M T W T F S November [0-9]{4}\n.+/,
re(qr/\nS M T W T F S November [0-9]{4}\n.+/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -379,14 +380,14 @@ S M T W T F S November 2009
);
# Special focus on relative dates, examining the "today" circle
my $test_location_tz = qr/\(EDT, UTC-4\)/;
my $test_location_tz = re(qr/\(EDT, UTC-4\)/);
set_fixed_time("2014-06-11T09:45:56");
ddg_goodie_test(
[qw(
DDG::Goodie::CalendarToday
)],
"calendar yesterday" => test_zci(
qr/June 2014.*\|10\|/s,
re(qr/June 2014.*\|10\|/s),
structured_answer => {
data => {
month_year => "June 2014",
@ -445,7 +446,7 @@ ddg_goodie_test(
}
),
"calendar today" => test_zci(
qr/June 2014.*\|11\|/s,
re(qr/June 2014.*\|11\|/s),
structured_answer => {
data => {
month_year => "June 2014",
@ -504,7 +505,7 @@ ddg_goodie_test(
}
),
"calendar tomorrow" => test_zci(
qr/June 2014.*\|12\|/s,
re(qr/June 2014.*\|12\|/s),
structured_answer => {
data => {
month_year => "June 2014",
@ -563,7 +564,7 @@ ddg_goodie_test(
}
),
"calendar 20 days ago" => test_zci(
qr/May 2014.*\|22\|/s,
re(qr/May 2014.*\|22\|/s),
structured_answer => {
data => {
month_year => "May 2014",
@ -627,7 +628,7 @@ ddg_goodie_test(
}
),
"calendar in 20 days" => test_zci(
qr/July 2014.*\| 1\|/s,
re(qr/July 2014.*\| 1\|/s),
structured_answer => {
data => {
month_year => "July 2014",
@ -689,7 +690,7 @@ ddg_goodie_test(
}
),
"calendar last week" => test_zci(
qr/June 2014.*\| 4\|/s,
re(qr/June 2014.*\| 4\|/s),
structured_answer => {
data => {
month_year => "June 2014",
@ -748,7 +749,7 @@ ddg_goodie_test(
}
),
"calendar next week" =>
test_zci(qr/June 2014.*\|18\|/s,
test_zci(re(qr/June 2014.*\|18\|/s),
structured_answer => {
data => {
month_year => "June 2014",
@ -807,7 +808,7 @@ ddg_goodie_test(
}
),
"calendar last year" =>
test_zci(qr/June 2013.*\|11\|/s,
test_zci(re(qr/June 2013.*\|11\|/s),
structured_answer => {
data => {
month_year => "June 2013",
@ -874,7 +875,7 @@ ddg_goodie_test(
}
),
"calendar next year" =>
test_zci(qr/June 2015.*\|11\|/s,
test_zci(re(qr/June 2015.*\|11\|/s),
structured_answer => {
data => {
month_year => "June 2015",
@ -937,4 +938,3 @@ ddg_goodie_test(
restore_time();
done_testing;

View File

@ -4,6 +4,7 @@ use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => "calling_codes";
@ -93,4 +94,4 @@ ddg_goodie_test(
"calling code 599" => undef,
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => "camel_case";
@ -44,4 +45,4 @@ ddg_goodie_test(
'camelcase this' => undef
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'chars';
@ -103,4 +104,3 @@ ddg_goodie_test(
);
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'chess960_position';
@ -15,7 +16,7 @@ ddg_goodie_test(
'chess960 random' => test_zci(
'Chess 960',
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => "text",
item => 0,
@ -28,4 +29,3 @@ ddg_goodie_test(
);
done_testing;

View File

@ -4,6 +4,7 @@ use strict;
use warnings;
use Test::MockTime qw( :all );
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
use utf8;
@ -132,4 +133,3 @@ ddg_goodie_test(
restore_time();
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => "coffee_to_water_ratio";
@ -79,4 +80,4 @@ ddg_goodie_test(
),
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'coin';
@ -11,85 +12,85 @@ zci is_cached => 0;
ddg_goodie_test(
[qw( DDG::Goodie::Coin )],
'flip a coin' => test_zci(
qr/(heads|tails) \(random\)/,
re(qr/(heads|tails) \(random\)/),
structured_answer => {
input => [1],
operation => 'Flip coin',
result => qr/^(heads|tails)$/
result => re(qr/^(heads|tails)$/)
}
),
'flip coin' => test_zci(
qr/(heads|tails) \(random\)/,
re(qr/(heads|tails) \(random\)/),
structured_answer => {
input => [1],
operation => 'Flip coin',
result => qr/^(heads|tails)$/
result => re(qr/^(heads|tails)$/)
}
),
'flip 1 coin' => test_zci(
qr/(heads|tails) \(random\)/,
re(qr/(heads|tails) \(random\)/),
structured_answer => {
input => [1],
operation => 'Flip coin',
result => qr/^(heads|tails)$/
result => re(qr/^(heads|tails)$/)
}
),
'flip 2 coins' => test_zci(
qr/(heads|tails), (heads|tails) \(random\)/,
re(qr/(heads|tails), (heads|tails) \(random\)/),
structured_answer => {
input => [2],
operation => 'Flip coin',
result => qr/(heads|tails), /
result => re(qr/(heads|tails), /)
}
),
'toss a coin' => test_zci(
qr/(heads|tails) \(random\)/,
re(qr/(heads|tails) \(random\)/),
structured_answer => {
input => [1],
operation => 'Flip coin',
result => qr/^(heads|tails)$/
result => re(qr/^(heads|tails)$/)
}
),
'toss 1 coin' => test_zci(
qr/(heads|tails) \(random\)/,
re(qr/(heads|tails) \(random\)/),
structured_answer => {
input => [1],
operation => 'Flip coin',
result => qr/^(heads|tails)$/
result => re(qr/^(heads|tails)$/)
}
),
'toss 2 coins' => test_zci(
qr/(heads|tails), (heads|tails) \(random\)/,
re(qr/(heads|tails), (heads|tails) \(random\)/),
structured_answer => {
input => [2],
operation => 'Flip coin',
result => qr/(heads|tails), /
result => re(qr/(heads|tails), /)
}
),
'heads or tails' => test_zci(
qr/(heads|tails) \(random\)/,
re(qr/(heads|tails) \(random\)/),
structured_answer => {
input => [1],
operation => 'Flip coin',
result => qr/^(heads|tails)$/
result => re(qr/^(heads|tails)$/)
}
),
'heads or tails?' => test_zci(
qr/(heads|tails) \(random\)/,
re(qr/(heads|tails) \(random\)/),
structured_answer => {
input => [1],
operation => 'Flip coin',
result => qr/^(heads|tails)$/
result => re(qr/^(heads|tails)$/)
}
),
'flip 4 coins' => test_zci(
qr/((heads|tails),? ){4}\(random\)/,
re(qr/((heads|tails),? ){4}\(random\)/),
structured_answer => {
input => [4],
operation => 'Flip coin',
result => qr/(heads|tails),? /
result => re(qr/(heads|tails),? /)
}
),
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'color_code';
@ -13,7 +14,7 @@ my $green_answer = 'Hex: #00FF00 ~ RGBA(0, 255, 0, 1) ~ RGB(0%, 100%, 0%) ~ HSL(
my %basic_answer = (
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => "combination";
@ -38,4 +39,4 @@ ddg_goodie_test(
'1000000000000 choose 2000' => undef,
);
done_testing;
done_testing;

View File

@ -4,6 +4,7 @@ use strict;
use warnings;
use utf8;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => "constants";
@ -54,4 +55,4 @@ ddg_goodie_test(
"why?" => undef,
);
done_testing;
done_testing;

View File

@ -2,6 +2,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
use utf8;
zci answer_type => 'conversions';
@ -2815,4 +2816,4 @@ ddg_goodie_test(
'1E300 miles in metres' => undef,
'5 pas.i to atm' => undef,
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
use utf8;
@ -102,14 +103,14 @@ ddg_goodie_test(
'convert 39.75 degrees to farenheit' => undef,
#Check for to-format name
'16.5° S, 68.15° W dms' => test_zci(qr/./,
'16.5° S, 68.15° W dms' => test_zci(re(qr/./),
structured_answer => {
input => ["16.5° S", "68.15° W"],
operation => "Convert to DMS",
result => "16&deg; 30&prime; S, 68&deg; 9&prime; W",
}
),
'16° 30 S, 68° 9 W decimal' => test_zci(qr/./,
'16° 30 S, 68° 9 W decimal' => test_zci(re(qr/./),
structured_answer => {
input => ["16° 30 S", "68° 9 W"],
operation => "Convert to decimal",
@ -119,4 +120,3 @@ ddg_goodie_test(
);
done_testing;

View File

@ -4,6 +4,7 @@ use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => "country_codes";
@ -44,4 +45,4 @@ ddg_goodie_test(
'iso code for english' => undef,
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'crypthashcheck';
@ -171,4 +172,3 @@ ddg_goodie_test(
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'currency_in';
@ -84,4 +85,4 @@ ddg_goodie_test(
)
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => "cusip";
@ -56,7 +57,7 @@ ddg_goodie_test(
),
'cusip check 037833100' => test_zci("037833100 is a properly formatted CUSIP number.",
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
}
@ -64,7 +65,7 @@ ddg_goodie_test(
),
'cusip 844741108' => test_zci("844741108 is a properly formatted CUSIP number.",
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
}
@ -72,7 +73,7 @@ ddg_goodie_test(
),
'037833100 cusip' => test_zci("037833100 is a properly formatted CUSIP number.",
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
}
@ -80,7 +81,7 @@ ddg_goodie_test(
),
'037833100 cusip check' => test_zci("037833100 is a properly formatted CUSIP number.",
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
}
@ -90,7 +91,7 @@ ddg_goodie_test(
# starting white space should be stripped
'cusip 037833100' => test_zci("037833100 is a properly formatted CUSIP number.",
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
}
@ -100,7 +101,7 @@ ddg_goodie_test(
# ending white space should be stripped
'cusip 037833100 ' => test_zci("037833100 is a properly formatted CUSIP number.",
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
}
@ -110,7 +111,7 @@ ddg_goodie_test(
# starting and ending white space should be stripped
'cusip 037833100 ' => test_zci("037833100 is a properly formatted CUSIP number.",
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
}
@ -120,7 +121,7 @@ ddg_goodie_test(
# same AAPL queries with an incorrect check digit
'cusip 03783310A' => test_zci("03783310A is not a properly formatted CUSIP number.",
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
}
@ -128,7 +129,7 @@ ddg_goodie_test(
),
'cusip 03783310A' => test_zci("03783310A is not a properly formatted CUSIP number.",
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
}
@ -136,7 +137,7 @@ ddg_goodie_test(
),
'cusip 03783310A ' => test_zci("03783310A is not a properly formatted CUSIP number.",
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
}
@ -144,7 +145,7 @@ ddg_goodie_test(
),
'cusip 03783310A ' => test_zci("03783310A is not a properly formatted CUSIP number.",
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
}
@ -154,7 +155,7 @@ ddg_goodie_test(
# check CUSIP IDs with capital letters (these are for GOOG and Blackberry)
'cusip 38259P706' => test_zci("38259P706 is a properly formatted CUSIP number.",
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
}
@ -162,7 +163,7 @@ ddg_goodie_test(
),
'cusip 38259P508' => test_zci("38259P508 is a properly formatted CUSIP number.",
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
}
@ -170,7 +171,7 @@ ddg_goodie_test(
),
'cusip 09228F103' => test_zci("09228F103 is a properly formatted CUSIP number.",
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
}
@ -180,7 +181,7 @@ ddg_goodie_test(
# check the same CUSIP IDs with lower case letters
'cusip 38259p706' => test_zci("38259P706 is a properly formatted CUSIP number.",
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
}
@ -188,7 +189,7 @@ ddg_goodie_test(
),
'cusip 38259p508' => test_zci("38259P508 is a properly formatted CUSIP number.",
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
}
@ -196,7 +197,7 @@ ddg_goodie_test(
),
'cusip 09228f103' => test_zci("09228F103 is a properly formatted CUSIP number.",
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
}
@ -208,7 +209,7 @@ ddg_goodie_test(
# if possible, these tests should be replaced with verified CUSIP IDs
'cusip 037833*00' => test_zci("037833*00 is not a properly formatted CUSIP number.",
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
}
@ -216,7 +217,7 @@ ddg_goodie_test(
),
'cusip 037833*02' => test_zci("037833*02 is a properly formatted CUSIP number.",
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
}
@ -224,7 +225,7 @@ ddg_goodie_test(
),
'cusip 0378331#0' => test_zci("0378331#0 is not a properly formatted CUSIP number.",
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
}
@ -232,7 +233,7 @@ ddg_goodie_test(
),
'cusip 0378331#7' => test_zci("0378331#7 is a properly formatted CUSIP number.",
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
}
@ -240,7 +241,7 @@ ddg_goodie_test(
),
'cusip 037833@00' => test_zci("037833\@00 is not a properly formatted CUSIP number.",
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
}
@ -248,7 +249,7 @@ ddg_goodie_test(
),
'cusip 037833@01' => test_zci("037833\@01 is a properly formatted CUSIP number.",
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
}
@ -259,7 +260,7 @@ ddg_goodie_test(
# even though they are always invalid IDs
'cusip 03783310*' => test_zci("03783310* is not a properly formatted CUSIP number.",
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
}
@ -267,7 +268,7 @@ ddg_goodie_test(
),
'cusip 03783310#' => test_zci("03783310# is not a properly formatted CUSIP number.",
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
}
@ -275,7 +276,7 @@ ddg_goodie_test(
),
'cusip 03783310@' => test_zci("03783310\@ is not a properly formatted CUSIP number.",
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
}
@ -285,7 +286,7 @@ ddg_goodie_test(
# Odd CUSIP IDs should not break the IA
'cusip ********8' => test_zci("********8 is not a properly formatted CUSIP number.",
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
}
@ -293,7 +294,7 @@ ddg_goodie_test(
),
'cusip ########9' => test_zci("########9 is not a properly formatted CUSIP number.",
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
}
@ -301,7 +302,7 @@ ddg_goodie_test(
),
'cusip @#*@#*@#*' => test_zci("\@#*\@#*\@#* is not a properly formatted CUSIP number.",
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
}
@ -310,4 +311,3 @@ ddg_goodie_test(
);
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'dhl';
@ -28,4 +29,3 @@ ddg_goodie_test(
);
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use Test::MockTime qw( :all );
use DDG::Test::Goodie;
use DDG::Test::Location;
@ -125,4 +126,4 @@ location_test([ qw( DDG::Goodie::DateMath ) ],
'time ago' => undef,
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
use Test::MockTime qw( :all );
@ -70,4 +71,4 @@ ddg_goodie_test(
restore_time();
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
use Test::MockTime qw( :all );
@ -76,57 +77,57 @@ ddg_goodie_test(
},
),
'days between jan 1 and jan 15 inclusive' => test_zci(
qr/^There are 15 days between.+inclusive\.$/,
re(qr/^There are 15 days between.+inclusive\.$/),
structured_answer => {
input => '-ANY-',
input => ignore(),
operation => 'Days between, inclusive',
result => 15
},
),
'days between jan 1 and 15th feb' => test_zci(
qr/^There are 45 days between.+and 15 Feb [0-9]{4}\.$/,
re(qr/^There are 45 days between.+and 15 Feb [0-9]{4}\.$/),
structured_answer => {
input => '-ANY-',
input => ignore(),
operation => 'Days between',
result => 45
},
),
'number of days between jan 1 and 15th feb' => test_zci(
qr/^There are 45 days between.+and 15 Feb [0-9]{4}\.$/,
re(qr/^There are 45 days between.+and 15 Feb [0-9]{4}\.$/),
structured_answer => {
input => '-ANY-',
input => ignore(),
operation => 'Days between',
result => 45
},
),
'number of days from jan 1 and 15th feb' => test_zci(
qr/^There are 45 days between.+and 15 Feb [0-9]{4}\.$/,
re(qr/^There are 45 days between.+and 15 Feb [0-9]{4}\.$/),
structured_answer => {
input => '-ANY-',
input => ignore(),
operation => 'Days between',
result => 45
},
),
'days from jan 1 and 15th feb' => test_zci(
qr/^There are 45 days between.+and 15 Feb [0-9]{4}\.$/,
re(qr/^There are 45 days between.+and 15 Feb [0-9]{4}\.$/),
structured_answer => {
input => '-ANY-',
input => ignore(),
operation => 'Days between',
result => 45
},
),
'days between today and tomorrow' => test_zci(
qr/^There are 1 days between.+ and.+\.$/,
re(qr/^There are 1 days between.+ and.+\.$/),
structured_answer => {
input => '-ANY-',
input => ignore(),
operation => 'Days between',
result => 1
},
),
'how many days between feb 2 and feb 17' => test_zci(
qr/^There are 15 days between.+ and.+\.$/,
re(qr/^There are 15 days between.+ and.+\.$/),
structured_answer => {
input => '-ANY-',
input => ignore(),
operation => 'Days between',
result => 15
},
@ -149,4 +150,4 @@ ddg_goodie_test(
);
restore_time();
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'dessert';
@ -13,81 +14,81 @@ ddg_goodie_test(
'DDG::Goodie::Dessert'
],
'desserts beginning with a' => test_zci(
qr/(.*?) is a dessert that begins with 'a'\.$/,
re(qr/(.*?) is a dessert that begins with 'a'\.$/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'info',
}
}
),
'desserts beginning with A' => test_zci(
qr/(.*?) is a dessert that begins with 'A'\.$/,
re(qr/(.*?) is a dessert that begins with 'A'\.$/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'info',
}
}
),
'dessert start with a' => test_zci(
qr/(.*?) is a dessert that begins with 'a'\.$/,
re(qr/(.*?) is a dessert that begins with 'a'\.$/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'info',
}
}
),
'desserts starting with a' => test_zci(
qr/(.*?) is a dessert that begins with 'a'\.$/,
re(qr/(.*?) is a dessert that begins with 'a'\.$/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'info',
}
}
),
'dessert starts with a' => test_zci(
qr/(.*?) is a dessert that begins with 'a'\.$/,
re(qr/(.*?) is a dessert that begins with 'a'\.$/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'info',
}
}
),
'desserts beginning with z' => test_zci(
qr/(.*?) is a dessert that begins with 'z'\.$/,
re(qr/(.*?) is a dessert that begins with 'z'\.$/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'info',
}
}
),
'a dessert that begins with a' => test_zci(
qr/(.*?) is a dessert that begins with 'a'\.$/,
re(qr/(.*?) is a dessert that begins with 'a'\.$/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'info',
}
}
),
'a dessert that starts with the letter a' => test_zci(
qr/(.*?) is a dessert that begins with 'a'\.$/,
re(qr/(.*?) is a dessert that begins with 'a'\.$/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'info',
}
}
),
'dessert that begins with the letter z' => test_zci(
qr/(.*?) is a dessert that begins with 'z'\.$/,
re(qr/(.*?) is a dessert that begins with 'z'\.$/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'info',
}
@ -95,4 +96,4 @@ ddg_goodie_test(
),
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'dewey_decimal';
@ -21,4 +22,4 @@ ddg_goodie_test(
'dewey 644' => test_zci('644 is household utilities in the Dewey Decimal System.', html => '644 is <a href="/?q=household">household</a> utilities in the Dewey Decimal System.'),
);
done_testing;
done_testing;

111
t/Dice.t
View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'dice_roll';
@ -17,9 +18,9 @@ ddg_goodie_test(
# Check trigger kicks in.
'throw dice' => test_zci(
qr/^., .$/,
re(qr/^., .$/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
options => {
@ -29,9 +30,9 @@ ddg_goodie_test(
}
),
'throw dices' => test_zci(
qr/^., .$/,
re(qr/^., .$/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
options => {
@ -41,9 +42,9 @@ ddg_goodie_test(
}
),
'roll dice' => test_zci(
qr/^., .$/,
re(qr/^., .$/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
options => {
@ -53,9 +54,9 @@ ddg_goodie_test(
}
),
'throw die' => test_zci(
qr/^.$/,
re(qr/^.$/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
options => {
@ -68,9 +69,9 @@ ddg_goodie_test(
# Simple "dice" query
"roll 5 dice" => test_zci(
qr/., ., ., ., .$/,
re(qr/., ., ., ., .$/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
options => {
@ -82,9 +83,9 @@ ddg_goodie_test(
# Simple shorthand query
"roll 2d6" => test_zci(
qr/^\d (\+|-) \d$/,
re(qr/^\d (\+|-) \d$/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
options => {
@ -96,9 +97,9 @@ ddg_goodie_test(
# Query with numbers as words
"roll five dice" => test_zci(
qr/., ., ., ., .$/,
re(qr/., ., ., ., .$/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
options => {
@ -108,9 +109,9 @@ ddg_goodie_test(
}
),
"roll twenty five dice" => test_zci(
qr/., ., ., ., .$/,
re(qr/., ., ., ., .$/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
options => {
@ -120,9 +121,9 @@ ddg_goodie_test(
}
),
"roll fifty-four dice" => test_zci(
qr/., ., ., ., .$/,
re(qr/., ., ., ., .$/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
options => {
@ -132,9 +133,9 @@ ddg_goodie_test(
}
),
"roll seven dices" => test_zci(
qr/., ., ., ., .$/,
re(qr/., ., ., ., .$/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
options => {
@ -147,9 +148,9 @@ ddg_goodie_test(
"roll foo dice" => undef,
"throw 1d20" => test_zci(
qr/^\d{1,2}$/,
re(qr/^\d{1,2}$/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
options => {
@ -159,9 +160,9 @@ ddg_goodie_test(
}
),
"roll d20" => test_zci(
qr/^\d{1,2}$/,
re(qr/^\d{1,2}$/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
options => {
@ -173,9 +174,9 @@ ddg_goodie_test(
# Simple shorthand queries with +-
"roll 3d12 + 4" => test_zci(
qr/^\d{1,2} (\+|-) \d{1,2} (\+|-) \d{1,2} (\+|-) \d{1,2}$/,
re(qr/^\d{1,2} (\+|-) \d{1,2} (\+|-) \d{1,2} (\+|-) \d{1,2}$/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
options => {
@ -185,9 +186,9 @@ ddg_goodie_test(
}
),
"roll 3d8 - 8" => test_zci(
qr/^\d (\+|-) \d (\+|-) \d (\+|-) \d$/,
re(qr/^\d (\+|-) \d (\+|-) \d (\+|-) \d$/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
options => {
@ -197,9 +198,9 @@ ddg_goodie_test(
}
),
"roll 4d6-l" => test_zci(
qr/^([1-6] \+ ){3}[1-6] - [1-6]$/,
re(qr/^([1-6] \+ ){3}[1-6] - [1-6]$/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
options => {
@ -211,9 +212,9 @@ ddg_goodie_test(
# Simple conjunctive "dice" query
"throw 2 dice and 3 dice" => test_zci(
qr/., .., ., .Total: \d+$/,
re(qr/., .., ., .Total: \d+$/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'list',
options => {
@ -225,9 +226,9 @@ ddg_goodie_test(
# Shorthand conjunctive query
"roll 2w6 and d20" => test_zci(
qr/^\d (\+|-) \d = \d+\d+Total: \d+$/,
re(qr/^\d (\+|-) \d = \d+\d+Total: \d+$/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'list',
options => {
@ -239,9 +240,9 @@ ddg_goodie_test(
# Shorthand conjunctive queries with +-
"roll 2d6 and 3d12 + 4" => test_zci(
qr/^\d (\+|-) \d = \d+\d{1,2} (\+|-) \d{1,2} (\+|-) \d{1,2} (\+|-) \d{1,2} = \d+Total: \d+$/,
re(qr/^\d (\+|-) \d = \d+\d{1,2} (\+|-) \d{1,2} (\+|-) \d{1,2} (\+|-) \d{1,2} = \d+Total: \d+$/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'list',
options => {
@ -251,9 +252,9 @@ ddg_goodie_test(
}
),
"roll 2d6 and 3d12 - 4" => test_zci(
qr/^\d (\+|-) \d = \d+\d{1,2} (\+|-) \d{1,2} (\+|-) \d{1,2} (\+|-) \d{1,2} = -?\d+Total: \d+$/,
re(qr/^\d (\+|-) \d = \d+\d{1,2} (\+|-) \d{1,2} (\+|-) \d{1,2} (\+|-) \d{1,2} = -?\d+Total: \d+$/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'list',
options => {
@ -263,9 +264,9 @@ ddg_goodie_test(
}
),
"throw 3d12 - 4 and 2d6" => test_zci(
qr/^\d{1,2} (\+|-) \d{1,2} (\+|-) \d{1,2} (\+|-) \d{1,2} = -?\d{1,2}\d (\+|-) \d = \d+Total: \d+$/,
re(qr/^\d{1,2} (\+|-) \d{1,2} (\+|-) \d{1,2} (\+|-) \d{1,2} = -?\d{1,2}\d (\+|-) \d = \d+Total: \d+$/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'list',
options => {
@ -275,9 +276,9 @@ ddg_goodie_test(
}
),
"throw 2d6 and 3d12 + 4" => test_zci(
qr/^\d (\+|-) \d = \d+\d{1,2} (\+|-) \d{1,2} (\+|-) \d{1,2} (\+|-) \d{1,2} = \d+Total: \d+$/,
re(qr/^\d (\+|-) \d = \d+\d{1,2} (\+|-) \d{1,2} (\+|-) \d{1,2} (\+|-) \d{1,2} = \d+Total: \d+$/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'list',
options => {
@ -287,9 +288,9 @@ ddg_goodie_test(
}
),
"roll 2d6 and 4w6-l" => test_zci(
qr/^\d (\+|-) \d = \d+([1-6] \+ ){3}[1-6] - [1-6] = \d{1,2}Total: \d+$/,
re(qr/^\d (\+|-) \d = \d+([1-6] \+ ){3}[1-6] - [1-6] = \d{1,2}Total: \d+$/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'list',
options => {
@ -299,9 +300,9 @@ ddg_goodie_test(
}
),
"roll 2 dice and 3d5 + 4" => test_zci(
qr/^., .\d{1,2} (\+|-) \d{1,2} (\+|-) \d{1,2} (\+|-) \d{1,2} = \d+Total: \d+$/,
re(qr/^., .\d{1,2} (\+|-) \d{1,2} (\+|-) \d{1,2} (\+|-) \d{1,2} = \d+Total: \d+$/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'list',
options => {
@ -325,9 +326,9 @@ ddg_goodie_test(
"roll 2d3 and 2d4-a" => undef,
"throw die" => test_zci(
qr/^.$/,
re(qr/^.$/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
options => {
@ -338,9 +339,9 @@ ddg_goodie_test(
),
'roll 3d12' => test_zci(
qr/\d{1,2} \+ \d{1,2} \+ \d{1,2}/,
re(qr/\d{1,2} \+ \d{1,2} \+ \d{1,2}/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
options => {
@ -350,9 +351,9 @@ ddg_goodie_test(
}
),
'roll 3d12 and 2d4' => test_zci(
qr/\d{1,2} \+ \d{1,2} \+ \d{1,2} = \d+[1-4]+ \+ [1-4]+ = \dTotal: \d+/,
re(qr/\d{1,2} \+ \d{1,2} \+ \d{1,2} = \d+[1-4]+ \+ [1-4]+ = \dTotal: \d+/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'list',
options => {
@ -362,9 +363,9 @@ ddg_goodie_test(
}
),
'roll 2 dice and 3d5' => test_zci(
qr/[1-5]+ \+ [1-5]+ \+ [1-5]+ = \d+Total: \d+/,
re(qr/[1-5]+ \+ [1-5]+ \+ [1-5]+ = \d+Total: \d+/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'list',
options => {
@ -375,4 +376,4 @@ ddg_goodie_test(
),
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'duckduckgo';
@ -174,4 +175,3 @@ ddg_goodie_test(
);
done_testing;

View File

@ -1,6 +1,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'conversion';
@ -41,4 +42,4 @@ ddg_goodie_test(
'11px to em at base-pixel size 23px' => build_test('0.478em', '11', 'px', '23'),
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'email_validation';
@ -11,63 +12,63 @@ zci is_cached => 1;
ddg_goodie_test(
['DDG::Goodie::EmailValidator'],
'validate my email foo@example.com' => test_zci(
qr/appears to be valid/,
re(qr/appears to be valid/),
structured_answer => {
input => ['foo@example.com'],
operation => 'Email address validation',
result => qr/appears to be valid/
result => re(qr/appears to be valid/)
}
),
'validate my email foo+abc@example.com' => test_zci(
qr/appears to be valid/,
re(qr/appears to be valid/),
structured_answer => {
input => ['foo+abc@example.com'],
operation => 'Email address validation',
result => qr/appears to be valid/
result => re(qr/appears to be valid/)
}
),
'validate my email foo.bar@example.com' => test_zci(
qr/appears to be valid/,
re(qr/appears to be valid/),
structured_answer => {
input => ['foo.bar@example.com'],
operation => 'Email address validation',
result => qr/appears to be valid/
result => re(qr/appears to be valid/)
}
),
'validate user@exampleaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.com'
=> test_zci(
qr/Please check the address/,
re(qr/Please check the address/),
structured_answer => {
input => '-ANY-',
input => ignore(),
operation => 'Email address validation',
result => qr/Please check the address/,
result => re(qr/Please check the address/),
}
),
'validate foo@example.com' => test_zci(
qr/appears to be valid/,
re(qr/appears to be valid/),
structured_answer => {
input => ['foo@example.com'],
operation => 'Email address validation',
result => qr/appears to be valid/
result => re(qr/appears to be valid/)
}
),
'validate foo@!!!.com' => test_zci(
qr/Please check the fully qualified domain name/,
re(qr/Please check the fully qualified domain name/),
structured_answer => {
input => ['foo@!!!.com'],
operation => 'Email address validation',
result => qr/Please check the fully qualified domain name/,
result => re(qr/Please check the fully qualified domain name/),
}
),
'validate foo@example.lmnop' => test_zci(
qr/Please check the top-level domain/,
re(qr/Please check the top-level domain/),
structured_answer => {
input => ['foo@example.lmnop'],
operation => 'Email address validation',
result => qr/Please check the top-level domain/,
result => re(qr/Please check the top-level domain/),
}
),
'validate foo' => undef,
);
done_testing;
done_testing;

View File

@ -4,6 +4,7 @@ use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'figlet';
@ -205,4 +206,4 @@ ddg_goodie_test(
'big text' => undef,
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => "factors";
@ -30,4 +31,4 @@ ddg_goodie_test(
'72 factors' => build_test('Factors of 72: 1, 2, 3, 4, 6, 8, 9, 12, 18, 24, 36, 72', '72', '1, 2, 3, 4, 6, 8, 9, 12, 18, 24, 36, 72'),
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'fedex';
@ -33,4 +34,4 @@ ddg_goodie_test(
)
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => "fen_viewer";
@ -20,4 +21,4 @@ ddg_goodie_test(
'fen ' => undef,
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'fibonacci';
@ -30,4 +31,4 @@ ddg_goodie_test(
'what are fibonacci numbers?' => undef,
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => "firefoxos";
@ -10,7 +11,7 @@ zci is_cached => 1;
#Structured answer template data
my $templateData = {
data => '-ANY-',
data => ignore(),
meta => {
sourceName => "Mozilla Developer Network",
sourceUrl => "https://developer.mozilla.org/en-US/Apps/Reference/Firefox_OS_device_APIs"
@ -39,4 +40,4 @@ ddg_goodie_test(
'firefox os api' => undef
);
done_testing;
done_testing;

View File

@ -4,6 +4,7 @@ use strict;
use warnings;
use utf8;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'flip_text';
@ -38,4 +39,4 @@ ddg_goodie_test(
'spin text <<"hello\' % & * () = + . #@!^(/world">>' => build_test('<<"hello\' % & * () = + . #@!^(/world">>','<<„pʃɹoʍ/)∨¡@# ˙ + = () ⅋ % ,oʃʃǝɥ„>>'),
);
done_testing;
done_testing;

View File

@ -34,4 +34,3 @@ ddg_goodie_test(
);
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci is_cached => 1;
@ -26,4 +27,4 @@ ddg_goodie_test(
'frequency of B in battle' => test_zci('Frequency: b:1/6'),
);
done_testing;
done_testing;

View File

@ -8,6 +8,7 @@ use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'frequency_spectrum';
@ -18,10 +19,10 @@ ddg_goodie_test(
#Primary example
'50 hz' => test_zci(
#qr/radio.+SLF.+audible.+double-bass.+piano.+tuba/,
qr/radio/,
#re(qr/radio.+SLF.+audible.+double-bass.+piano.+tuba/),
re(qr/radio/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -34,9 +35,9 @@ ddg_goodie_test(
#Secondary example
'400 thz' => test_zci(
qr/infrared/,
re(qr/infrared/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -49,10 +50,10 @@ ddg_goodie_test(
#Misc
'1,000 hz' => test_zci(
#qr/radio.+audible.+human.+voice.+viola.+violin.+guitar.+mandolin.+banjo.+piano.+saxophone.+flute.+clarinet.+oboe/,
qr/radio/,
#re(qr/radio.+audible.+human.+voice.+viola.+violin.+guitar.+mandolin.+banjo.+piano.+saxophone.+flute.+clarinet.+oboe/),
re(qr/radio/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -63,9 +64,9 @@ ddg_goodie_test(
}
),
'1000000.99 hz' => test_zci(
qr/radio.+MF/,
re(qr/radio.+MF/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -76,9 +77,9 @@ ddg_goodie_test(
}
),
'29.1 hz' => test_zci(
qr/radio.+ELF/,
re(qr/radio.+ELF/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -91,10 +92,10 @@ ddg_goodie_test(
#No whitespace between number and unit
'50hz' => test_zci(
#qr/radio.+SLF.+audible.+double-bass.+piano.+tuba/,
qr/radio/,
#re(qr/radio.+SLF.+audible.+double-bass.+piano.+tuba/),
re(qr/radio/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -105,9 +106,9 @@ ddg_goodie_test(
}
),
'400terahertz' => test_zci(
qr/infrared/,
re(qr/infrared/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -120,9 +121,9 @@ ddg_goodie_test(
#Mixed case
'400 THz' => test_zci(
qr/infrared/,
re(qr/infrared/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -134,10 +135,10 @@ ddg_goodie_test(
),
'1000 HZ' => test_zci(
#qr/radio.+audible.+human.+voice.+viola.+violin.+guitar.+mandolin.+banjo.+piano.+saxophone.+flute.+clarinet.+oboe/,
qr/radio/,
#re(qr/radio.+audible.+human.+voice.+viola.+violin.+guitar.+mandolin.+banjo.+piano.+saxophone.+flute.+clarinet.+oboe/),
re(qr/radio/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -150,9 +151,9 @@ ddg_goodie_test(
#Commas in number
'1,000,000.99 hz' => test_zci(
qr/radio.+MF/,
re(qr/radio.+MF/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -165,9 +166,9 @@ ddg_goodie_test(
#Can you test with all the colours of the wind?
'650 nm' => test_zci(
qr/visible.+red/,
re(qr/visible.+red/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -178,9 +179,9 @@ ddg_goodie_test(
}
),
'610 nanometers' => test_zci(
qr/visible.+orange/,
re(qr/visible.+orange/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -191,9 +192,9 @@ ddg_goodie_test(
}
),
'580 nanometres' => test_zci(
qr/visible.+yellow/,
re(qr/visible.+yellow/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -204,9 +205,9 @@ ddg_goodie_test(
}
),
'536 nanometer' => test_zci(
qr/visible.+green/,
re(qr/visible.+green/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -217,9 +218,9 @@ ddg_goodie_test(
}
),
'478.1 nm' => test_zci(
qr/visible.+blue/,
re(qr/visible.+blue/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -230,9 +231,9 @@ ddg_goodie_test(
}
),
'380.000000000 nanometres' => test_zci(
qr/visible.+violet/,
re(qr/visible.+violet/),
structured_answer => {
data => '-ANY-',
data => ignore(),
templates => {
group => 'text',
item => 0,
@ -258,4 +259,4 @@ ddg_goodie_test(
'600 nmeters' => undef,
);
done_testing;
done_testing;

View File

@ -3,12 +3,13 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'guid';
zci is_cached => 0;
my @answer = (qr/^([a-zA-Z]|\d){8}-([a-zA-Z]|\d){4}-([a-zA-Z]|\d){4}-([a-zA-Z]|\d){4}-([a-zA-Z]|\d){12}$/, structured_answer => { input =>[], operation => 'Random GUID', result =>qr/^([a-zA-Z]|\d){8}-([a-zA-Z]|\d){4}-([a-zA-Z]|\d){4}-([a-zA-Z]|\d){4}-([a-zA-Z]|\d){12}$/});
my @answer = (re(qr/^([a-zA-Z]|\d){8}-([a-zA-Z]|\d){4}-([a-zA-Z]|\d){4}-([a-zA-Z]|\d){4}-([a-zA-Z]|\d){12}$/), structured_answer => { input =>[], operation => 'Random GUID', result =>re(qr/^([a-zA-Z]|\d){8}-([a-zA-Z]|\d){4}-([a-zA-Z]|\d){4}-([a-zA-Z]|\d){4}-([a-zA-Z]|\d){12}$/)});
ddg_goodie_test([qw( DDG::Goodie::GUID ) ],
@ -25,4 +26,4 @@ ddg_goodie_test([qw( DDG::Goodie::GUID ) ],
'what is a guid' => undef,
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 2048;
@ -16,7 +17,7 @@ ddg_goodie_test(
'Play 2048',
structured_answer => {
data => '-ANY-',
data => ignore(),
# data => [{
# dimension => 4,
@ -35,7 +36,7 @@ ddg_goodie_test(
'Play 256',
structured_answer => {
data => '-ANY-',
data => ignore(),
# data => [{
# dimension => 7,
@ -53,4 +54,4 @@ ddg_goodie_test(
'2048 online' => undef
);
done_testing;
done_testing;

View File

@ -35,4 +35,4 @@ ddg_goodie_test(
'please generate mac address' => build_test(),
);
done_testing;
done_testing;

View File

@ -1,6 +1,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
use utf8;
@ -9,8 +10,8 @@ zci is_cached => 0;
sub build_result {
my $result = shift;
return $result, structured_answer => {
data => "-ANY-",
return re($result), structured_answer => {
data => ignore(),
templates => {
group => 'info',
options => {
@ -75,4 +76,4 @@ ddg_goodie_test(
'30 words of utter Shakespearean nonsense' => build_test(werds($shake_word, 30)),
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'golden_ratio';
@ -29,4 +30,4 @@ ddg_goodie_test(
'golden ratio ?:123.345' => test_zci('Golden ratio: 76.2314023423558 : 123.345'),
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => "greatest_common_factor";
@ -46,4 +47,4 @@ ddg_goodie_test(
'gcd 0 0' => build_test('0 and 0', 0),
);
done_testing;
done_testing;

View File

@ -4,6 +4,7 @@ use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'guitarchord';
@ -14,32 +15,32 @@ ddg_goodie_test(
'G#m6 guitar chord' => test_zci(
'G#m6',
heading=>'G#m6',
html => qr#.*Guitar chord diagram for G\#m6.*#s
html => re(qr#.*Guitar chord diagram for G\#m6.*#s)
),
'Abaug7 guitar chord' => test_zci(
'Abaug7',
heading=>'Abaug7',
html => qr#.*Guitar chord diagram for Abaug7.*#s
html => re(qr#.*Guitar chord diagram for Abaug7.*#s)
),
'A7/b9 guitar chord' => test_zci(
'A7(b9)',
heading=>'A7(b9)',
html => qr#.*Guitar chord diagram for A7\(b9\).*#s
html => re(qr#.*Guitar chord diagram for A7\(b9\).*#s)
),
'guitar chord Cm7' => test_zci(
'Cm7',
heading=>'Cm7',
html => qr#.*Guitar chord diagram for Cm7.*#s
html => re(qr#.*Guitar chord diagram for Cm7.*#s)
),
'guitar chord Db7sus4' => test_zci(
'Db7sus4',
heading=>'Db7sus4',
html => qr#.*Guitar chord diagram for Db7sus4.*#s
html => re(qr#.*Guitar chord diagram for Db7sus4.*#s)
),
'guitar chord f min' => test_zci(
'Fm',
heading=>'Fm',
html => qr#.*Guitar chord diagram for Fm.*#s
html => re(qr#.*Guitar chord diagram for Fm.*#s)
),
# check that certain things don't trigger it:
'C# programming' => undef,
@ -50,4 +51,4 @@ ddg_goodie_test(
'G' => undef
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'hkdk';
@ -23,4 +24,3 @@ ddg_goodie_test(
);
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'html_entity';
@ -10,8 +11,8 @@ zci is_cached => 1;
sub any_structured_answer {
return {
input => '-ANY-',
result => '-ANY-',
input => ignore(),
result => ignore(),
operation => "HTML Entity Decode"
};
}
@ -36,9 +37,9 @@ ddg_goodie_test(
'htmlentity for #x3c' => test_zci("Decoded HTML Entity: <", structured_answer => any_structured_answer()),
# "&cent;" succeeds
'html decode &cent;' => test_zci(qr/.*/, structured_answer => any_structured_answer()),
'html decode &cent;' => test_zci(re(qr/.*/), structured_answer => any_structured_answer()),
# "&cent" also succeeds (missing back ";" is OK)
'html decode &cent' => test_zci(qr/.*/, structured_answer => any_structured_answer()),
'html decode &cent' => test_zci(re(qr/.*/), structured_answer => any_structured_answer()),
# "cent" fails during the regex match because of the missing front "&" (stricter for text to eliminate false positive encoding hits)
'html decode cent' => undef,
# "cent;" fails during the regex match for the same reasons as above
@ -55,11 +56,11 @@ ddg_goodie_test(
'html decode apostrophe' => undef,
# natural querying
'What is the decoded html entity for &#960;?' => test_zci(qr/.*/, structured_answer => any_structured_answer()),
'What is the decoded html entity for &#960;?' => test_zci(re(qr/.*/), structured_answer => any_structured_answer()),
# natural querying
'what is decoded html entity for #960 ?' => test_zci(qr/.*/, structured_answer => any_structured_answer()),
'what is decoded html entity for #960 ?' => test_zci(re(qr/.*/), structured_answer => any_structured_answer()),
# no "html" in query
'the decoded entity for &#333; is?' => test_zci(qr/.*/, structured_answer => any_structured_answer()),
'the decoded entity for &#333; is?' => test_zci(re(qr/.*/), structured_answer => any_structured_answer()),
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
use utf8;
@ -12,7 +13,7 @@ zci is_cached => 1;
sub make_structured_answer {
my ($qr) = @_;
return {
input => '-ANY-',
input => ignore(),
operation => "HTML Entity Encode",
result => $qr,
};
@ -40,26 +41,26 @@ ddg_goodie_test(
[qw(DDG::Goodie::HTMLEntitiesEncode)],
# Simple tests
'html code em dash' => test_zci("Encoded HTML Entity: &mdash;", structured_answer => make_structured_answer(qr/mdash/)),
'html em dash' => test_zci("Encoded HTML Entity: &mdash;", structured_answer => make_structured_answer(qr/mdash/)),
'em-dash html' => test_zci("Encoded HTML Entity: &mdash;", structured_answer => make_structured_answer(qr/mdash/)), # hyphens ignored
'html encode "em-dash"' => test_zci("Encoded HTML Entity: &mdash;", structured_answer => make_structured_answer(qr/mdash/)), # quotes ignored
'ApoSTrophe escapehtml' => test_zci("Encoded HTML Entity: &#39;", structured_answer => make_structured_answer(qr/#39/)), # mixed cases in query
'html code em dash' => test_zci("Encoded HTML Entity: &mdash;", structured_answer => make_structured_answer(re(qr/mdash/))),
'html em dash' => test_zci("Encoded HTML Entity: &mdash;", structured_answer => make_structured_answer(re(qr/mdash/))),
'em-dash html' => test_zci("Encoded HTML Entity: &mdash;", structured_answer => make_structured_answer(re(qr/mdash/))), # hyphens ignored
'html encode "em-dash"' => test_zci("Encoded HTML Entity: &mdash;", structured_answer => make_structured_answer(re(qr/mdash/))), # quotes ignored
'ApoSTrophe escapehtml' => test_zci("Encoded HTML Entity: &#39;", structured_answer => make_structured_answer(re(qr/#39/))), # mixed cases in query
# Basic varieties in querying accented chars
'html entity A-acute' => test_zci("Encoded HTML Entity: &Aacute;",structured_answer => make_structured_answer(qr/Aacute/)),
'html entity for E Grave' => test_zci("Encoded HTML Entity: &Egrave;", structured_answer => make_structured_answer(qr/Egrave/)),
'html Ograve' => test_zci("Encoded HTML Entity: &Ograve;", structured_answer => make_structured_answer(qr/Ograve/)),
'html entity A-acute' => test_zci("Encoded HTML Entity: &Aacute;",structured_answer => make_structured_answer(re(qr/Aacute/))),
'html entity for E Grave' => test_zci("Encoded HTML Entity: &Egrave;", structured_answer => make_structured_answer(re(qr/Egrave/))),
'html Ograve' => test_zci("Encoded HTML Entity: &Ograve;", structured_answer => make_structured_answer(re(qr/Ograve/))),
# Single typed-in character queries
'html escape &' => test_zci("Encoded HTML Entity: &amp;", structured_answer => make_structured_answer(qr/amp/)), # &
'html escape "' => test_zci("Encoded HTML Entity: &quot;", structured_answer => make_structured_answer(qr/quot/)), # "
'how to html escape &?' => test_zci("Encoded HTML Entity: &amp;", structured_answer => make_structured_answer(qr/amp/)), # ?
'how to html escape "&"?' => test_zci("Encoded HTML Entity: &amp;", structured_answer => make_structured_answer(qr/amp/)), # &
'how to html escape ??' => test_zci("Encoded HTML Entity: &#63;", structured_answer => make_structured_answer(qr/#63/)), # ?
'how do you html escape a "?"?' => test_zci("Encoded HTML Entity: &#63;", structured_answer => make_structured_answer(qr/#63/)), # ?
'html escape """' => test_zci("Encoded HTML Entity: &quot;", structured_answer => make_structured_answer(qr/quot/)), # "
'$ sign htmlentity' => test_zci("Encoded HTML Entity: &#36;", structured_answer => make_structured_answer(qr/#36/)), # $
'html escape &' => test_zci("Encoded HTML Entity: &amp;", structured_answer => make_structured_answer(re(qr/amp/))), # &
'html escape "' => test_zci("Encoded HTML Entity: &quot;", structured_answer => make_structured_answer(re(qr/quot/))), # "
'how to html escape &?' => test_zci("Encoded HTML Entity: &amp;", structured_answer => make_structured_answer(re(qr/amp/))), # ?
'how to html escape "&"?' => test_zci("Encoded HTML Entity: &amp;", structured_answer => make_structured_answer(re(qr/amp/))), # &
'how to html escape ??' => test_zci("Encoded HTML Entity: &#63;", structured_answer => make_structured_answer(re(qr/#63/))), # ?
'how do you html escape a "?"?' => test_zci("Encoded HTML Entity: &#63;", structured_answer => make_structured_answer(re(qr/#63/))), # ?
'html escape """' => test_zci("Encoded HTML Entity: &quot;", structured_answer => make_structured_answer(re(qr/quot/))), # "
'$ sign htmlentity' => test_zci("Encoded HTML Entity: &#36;", structured_answer => make_structured_answer(re(qr/#36/))), # $
# Return two matching entities for ambiguous query
'pound symbol html encode ' => test_zci(
@ -71,9 +72,9 @@ ddg_goodie_test(
),
# Ignore words and whitespace
'html code of pilcrow sign' => test_zci("Encoded HTML Entity: &#182;", structured_answer => make_structured_answer(qr/#182/)), # of, sign
'html escape greater than symbol' => test_zci("Encoded HTML Entity: &gt;", structured_answer => make_structured_answer(qr/gt/)), # symbol
'space html character code' => test_zci("Encoded HTML Entity: &nbsp;", structured_answer => make_structured_answer(qr/nbsp/)), # Ignore extra whitespace
'html code of pilcrow sign' => test_zci("Encoded HTML Entity: &#182;", structured_answer => make_structured_answer(re(qr/#182/))), # of, sign
'html escape greater than symbol' => test_zci("Encoded HTML Entity: &gt;", structured_answer => make_structured_answer(re(qr/gt/))), # symbol
'space html character code' => test_zci("Encoded HTML Entity: &nbsp;", structured_answer => make_structured_answer(re(qr/nbsp/))), # Ignore extra whitespace
# Better hash hits substitutions
# 'right angle brackets' should work even though the defined key contains the singular 'bracket'
@ -85,7 +86,7 @@ ddg_goodie_test(
}, ["Single right pointing angle quote ()", "Double right pointing angle quote (»)"], "right angle brackets")
),
# 'double quotes' should work even though the defined key contains the singular 'quote'
'double quotes htmlescape' => test_zci("Encoded HTML Entity: &quot;", structured_answer => make_structured_answer(qr/quot/)),
'double quotes htmlescape' => test_zci("Encoded HTML Entity: &quot;", structured_answer => make_structured_answer(re(qr/quot/))),
# Should not work
'html encode &#43;' => undef,
@ -93,24 +94,24 @@ ddg_goodie_test(
'html encode is it magic' => undef,
# Natural querying
'What is the html character code for pi' => test_zci("Encoded HTML Entity: &#960;", structured_answer => make_structured_answer(qr/#960/)),
'whatis html entity for en-dash' => test_zci("Encoded HTML Entity: &ndash;", structured_answer => make_structured_answer(qr/ndash/)), # whatis spelling
'how do I escape the greater-than symbol html' => test_zci("Encoded HTML Entity: &gt;", structured_answer => make_structured_answer(qr/gt/)),
'What is the html character code for pi' => test_zci("Encoded HTML Entity: &#960;", structured_answer => make_structured_answer(re(qr/#960/))),
'whatis html entity for en-dash' => test_zci("Encoded HTML Entity: &ndash;", structured_answer => make_structured_answer(re(qr/ndash/))), # whatis spelling
'how do I escape the greater-than symbol html' => test_zci("Encoded HTML Entity: &gt;", structured_answer => make_structured_answer(re(qr/gt/))),
# the "a/A" belonging to "acute" matters, but the "a" immediately after "character" is removed
'How to get a a acute character in html code' => test_zci("Encoded HTML Entity: &aacute;", structured_answer => make_structured_answer(qr/aacute/)),
'how to get a a-acute character in html code' => test_zci("Encoded HTML Entity: &aacute;", structured_answer => make_structured_answer(qr/aacute/)),
'how to get a aacute character in html code' => test_zci("Encoded HTML Entity: &aacute;", structured_answer => make_structured_answer(qr/aacute/)),
'how to get a A acute character in html code' => test_zci("Encoded HTML Entity: &Aacute;", structured_answer => make_structured_answer(qr/Aacute/)),
'how to get a A-acute character in html code' => test_zci("Encoded HTML Entity: &Aacute;", structured_answer => make_structured_answer(qr/Aacute/)),
'how to get a Aacute character in html code' => test_zci("Encoded HTML Entity: &Aacute;", structured_answer => make_structured_answer(qr/Aacute/)),
'How to get a a acute character in html code' => test_zci("Encoded HTML Entity: &aacute;", structured_answer => make_structured_answer(re(qr/aacute/))),
'how to get a a-acute character in html code' => test_zci("Encoded HTML Entity: &aacute;", structured_answer => make_structured_answer(re(qr/aacute/))),
'how to get a aacute character in html code' => test_zci("Encoded HTML Entity: &aacute;", structured_answer => make_structured_answer(re(qr/aacute/))),
'how to get a A acute character in html code' => test_zci("Encoded HTML Entity: &Aacute;", structured_answer => make_structured_answer(re(qr/Aacute/))),
'how to get a A-acute character in html code' => test_zci("Encoded HTML Entity: &Aacute;", structured_answer => make_structured_answer(re(qr/Aacute/))),
'how to get a Aacute character in html code' => test_zci("Encoded HTML Entity: &Aacute;", structured_answer => make_structured_answer(re(qr/Aacute/))),
# Question marks ignored
'the encoded html entity of apostrophe is?' => test_zci("Encoded HTML Entity: &#39;", structured_answer => make_structured_answer(qr/#39/)),
'how to encode an apostrophe in html ? ' => test_zci("Encoded HTML Entity: &#39;", structured_answer => make_structured_answer(qr/#39/)), # spaces around the end
'the encoded html entity of apostrophe is?' => test_zci("Encoded HTML Entity: &#39;", structured_answer => make_structured_answer(re(qr/#39/))),
'how to encode an apostrophe in html ? ' => test_zci("Encoded HTML Entity: &#39;", structured_answer => make_structured_answer(re(qr/#39/))), # spaces around the end
# Question mark matters
'how to encode "?" in html' => test_zci("Encoded HTML Entity: &#63;", structured_answer => make_structured_answer(qr/#63/)),
'how to encode "?" in html' => test_zci("Encoded HTML Entity: &#63;", structured_answer => make_structured_answer(re(qr/#63/))),
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
use DDG::Test::Location;
use DDG::Request;
@ -48,7 +49,7 @@ ddg_goodie_test(
query_raw => "$query",
location => test_location("$locations[$_]")
),
test_zci(qr/24 Hour Suicide Hotline/, structured_answer => { input => [], operation => qr/24 Hour Suicide Hotline/, result => qr/[0-9]{2}/}),
test_zci(re(qr/24 Hour Suicide Hotline/), structured_answer => { input => [], operation => re(qr/24 Hour Suicide Hotline/), result => re(qr/[0-9]{2}/)}),
} 0 .. scalar @locations - 1
} 0 .. scalar @queries - 1),
(map {
@ -63,4 +64,4 @@ ddg_goodie_test(
} 0 .. scalar @ok_queries - 1),
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'ascii';
@ -35,4 +36,4 @@ ddg_goodie_test(
'ascii 0x466f7220736f6d6520726561736f6e2c2049206465636964656420746f2061736b20612073656172636820656e67696e6520746f20636f6e766572742068657820746f2041534349492e0d0a436f6f6c2c20746869732073656172636820656e67696e6520646f65732069742c20756e74696c20492072756e206f7574206f662073706163652e' => build_test('0x466f7220736f6d6520726561736f6e2c2049206465636964656420746f2061736b20612073656172636820656e67696e6520746f20636f6e766572742068657820746f2041534349492e0d0a436f6f6c2c20746869732073656172636820656e67696e6520646f65732069742c20756e74696c20492072756e206f7574206f662073706163652e', 'For some reason, I decided to ask a search engine to convert hex to ASCII.<code title="carriage return">[CR]</code><code title="linefeed">[LF]</code>Cool, this search engine does it, until I run out of &hellip;'),
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'hex_to_dec';
@ -62,4 +63,3 @@ ddg_goodie_test(
);
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
use utf8;
@ -27,4 +28,3 @@ ddg_goodie_test(
);
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'ips';
@ -28,4 +29,3 @@ ddg_goodie_test(
);
done_testing;

View File

@ -5,6 +5,7 @@ use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => "iso639";
@ -55,4 +56,4 @@ ddg_goodie_test(
"iso639 xyz" => undef,
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
use Locale::Country;
@ -50,4 +51,4 @@ ddg_goodie_test(
"day of independence of bhutan" => answer("Bhutan", "December 17th, 1907")
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'jira';
@ -61,4 +62,4 @@ ddg_goodie_test(
),
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => "john_cena";
@ -32,4 +33,4 @@ ddg_goodie_test(
'famous wrestler' => undef,
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
use utf8;
@ -179,4 +180,4 @@ ddg_goodie_test(
'ハ.ツha.tsu in romaji' => undef,
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'kernel_taint';
@ -19,4 +20,4 @@ ddg_goodie_test(
'2 kernel taint description' => test_zci('- A module was force loaded by insmod -f. Set by modutils >= 2.4.9 and module-init-tools.', html => '<ul><li>A module was force loaded by insmod -f. Set by modutils >= 2.4.9 and module-init-tools.</li></ul><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/sysctl/kernel.txt">Read more</a>')
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'lasership';
@ -24,4 +25,3 @@ ddg_goodie_test(
);
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'Latex';
@ -14,17 +15,17 @@ ddg_goodie_test(
)],
"latex integral" => test_zci('LaTeX command: \int_lowerbound^upperbound
Example: $\int_a^b f(x)dx$',
html => qr/\\int_lowerbound\^upperbound/,
html => re(qr/\\int_lowerbound\^upperbound/),
heading => 'Integral (LaTeX)'),
"tex integral" => test_zci('LaTeX command: \int_lowerbound^upperbound
Example: $\int_a^b f(x)dx$',
html => qr/\\int_lowerbound\^upperbound/,
html => re(qr/\\int_lowerbound\^upperbound/),
heading => 'Integral (LaTeX)'),
'latex summation' => test_zci('LaTeX command: \sum_{lower}^{upper}
Example: $\sum_{i=0}^{10} x^{2}$',
html => qr/\\sum_\{lower\}\^\{upper\}/,
html => re(qr/\\sum_\{lower\}\^\{upper\}/),
heading => 'Summation (LaTeX)'),
);
done_testing;
done_testing;

View File

@ -5,6 +5,7 @@ use warnings;
use Test::MockTime qw( :all );
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'leap_year';
@ -137,4 +138,4 @@ ddg_goodie_test(
);
restore_time();
done_testing();
done_testing();

View File

@ -4,6 +4,7 @@ use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
use utf8;
@ -56,4 +57,4 @@ ddg_goodie_test(
'l33tsp34k' => undef,
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
use DDG::Test::Location;
use DDG::Request;
@ -237,4 +238,4 @@ ddg_goodie_test (
);
done_testing;
done_testing;

View File

@ -1,6 +1,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
use utf8;
@ -9,8 +10,8 @@ zci is_cached => 0;
sub build_result {
my $result = shift;
return $result, structured_answer => {
data => "-ANY-",
return re($result), structured_answer => {
data => ignore(),
meta => {
sourceName => "Lipsum",
sourceUrl => "http://lipsum.com/"
@ -83,4 +84,4 @@ ddg_goodie_test(
);
done_testing;
done_testing;

View File

@ -4,6 +4,7 @@ use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'lowercase';
@ -38,4 +39,4 @@ ddg_goodie_test(
'how to lowercase text' => undef
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => "md4";
@ -85,4 +86,4 @@ ddg_goodie_test(
'md5 this string' => undef,
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'md5';
@ -180,4 +181,4 @@ ddg_goodie_test(
),
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => "mac_address";
@ -57,4 +58,4 @@ ddg_goodie_test(
'mac address 1E:00:00:00:00:00' => undef,
);
done_testing;
done_testing;

View File

@ -3,14 +3,15 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => "magic_eight_ball";
zci is_cached => 0;
my $possibleAnswers = qr/(It is certain|It is decidedly so|Without a doubt|Yes, definitely|You may rely on it|As I see it, yes|Most likely|Outlook good|Yes|Signs point to yes|Reply hazy try again|Ask again later|Better not tell you now|Cannot predict now|Concentrate and ask again|Don't count on it|My reply is no|My sources say no|Outlook not so good|Very doubtful)/;
my $possibleAnswers = re(qr/(It is certain|It is decidedly so|Without a doubt|Yes, definitely|You may rely on it|As I see it, yes|Most likely|Outlook good|Yes|Signs point to yes|Reply hazy try again|Ask again later|Better not tell you now|Cannot predict now|Concentrate and ask again|Don't count on it|My reply is no|My sources say no|Outlook not so good|Very doubtful)/);
my $possibleStructuredAnswer = qr/^(?:It is certain|It is decidedly so|Without a doubt|Yes, definitely|You may rely on it|As I see it, yes|Most likely|Outlook good|Yes|Signs point to yes|Reply hazy try again|Ask again later|Better not tell you now|Cannot predict now|Concentrate and ask again|Don&#39;t count on it|My reply is no|My sources say no|Outlook not so good|Very doubtful)$/;
my $possibleStructuredAnswer = re(qr/^(?:It is certain|It is decidedly so|Without a doubt|Yes, definitely|You may rely on it|As I see it, yes|Most likely|Outlook good|Yes|Signs point to yes|Reply hazy try again|Ask again later|Better not tell you now|Cannot predict now|Concentrate and ask again|Don&#39;t count on it|My reply is no|My sources say no|Outlook not so good|Very doubtful)$/);
ddg_goodie_test(
[qw( DDG::Goodie::MagicEightBall )],
@ -43,4 +44,4 @@ ddg_goodie_test(
'magic 8ball' => undef
);
done_testing;
done_testing;

View File

@ -4,6 +4,7 @@ use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'xkcd_sandwich';
@ -34,4 +35,4 @@ ddg_goodie_test(
'0 make me a sandwich' => undef,
);
done_testing;
done_testing;

View File

@ -4,6 +4,7 @@ use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'markdown_reference';
@ -71,4 +72,4 @@ ddg_goodie_test(
'markdown cheat sheet list' => undef,
);
done_testing;
done_testing;

View File

@ -4,6 +4,7 @@ use strict;
use warnings;
use utf8;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
use URI::Escape;
@ -141,4 +142,4 @@ sub make_structured_answer {
};
};
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'moon_phase';
@ -14,8 +15,8 @@ my $quarter = qr/(?:First|Third)$space_plus(?:Quarter)/;
my $named = qr/(?:New|Full)$space_plus(?:Moon)/;
my $phases = qr/$wax_wane|$quarter|$named/;
my $ascii_answer = qr/^The current lunar phase is: $phases$/;
my $html_answer = qr%^The current lunar phase is: <a href="\?q=$phases">$phases</a>$%;
my $ascii_answer = re(qr/^The current lunar phase is: $phases$/);
my $html_answer = re(qr%^The current lunar phase is: <a href="\?q=$phases">$phases</a>$%);
ddg_goodie_test(
[qw( DDG::Goodie::MoonPhases)],
@ -24,7 +25,7 @@ ddg_goodie_test(
structured_answer => {
input => [],
operation => 'Current lunar phase',
result => $phases,
result => re($phases),
}
),
'lunar phase' => test_zci(
@ -32,7 +33,7 @@ ddg_goodie_test(
structured_answer => {
input => [],
operation => 'Current lunar phase',
result => $phases,
result => re($phases),
}
),
'phase of the moon' => test_zci(
@ -40,7 +41,7 @@ ddg_goodie_test(
structured_answer => {
input => [],
operation => 'Current lunar phase',
result => $phases,
result => re($phases),
}
),
'what is the current lunar phase' => test_zci(
@ -48,9 +49,9 @@ ddg_goodie_test(
structured_answer => {
input => [],
operation => 'Current lunar phase',
result => $phases,
result => re($phases),
}
),
);
done_testing;
done_testing;

View File

@ -4,6 +4,7 @@ use strict;
use warnings;
use utf8;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'morse';
@ -43,4 +44,4 @@ ddg_goodie_test([qw(
'morse code for cheat sheet' => undef,
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => 'nletterwords';
@ -16,8 +17,8 @@ ddg_goodie_test(
'1 char words' => test_zci('Random 1 letter words: a, I.'),
'1 character word' => test_zci('Random 1 letter words: a, I.'),
'one letter words' => test_zci('Random 1 letter words: a, I.'),
'5 letter words' => test_zci(qr/Random 5 letter words: ((\w){5},? ?){30}/),
'12 character word' => test_zci(qr/Random 12 letter words: ((\w){12},? ?){30}/),
'5 letter words' => test_zci(re(qr/Random 5 letter words: ((\w){5},? ?){30}/)),
'12 character word' => test_zci(re(qr/Random 12 letter words: ((\w){12},? ?){30}/)),
);
done_testing;
done_testing;

View File

@ -5,6 +5,7 @@ use strict;
use warnings;
use Locale::Country;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => "name_days";
@ -176,4 +177,4 @@ ddg_goodie_test(
'name day' => undef,
);
done_testing;
done_testing;

View File

@ -3,6 +3,7 @@
use strict;
use warnings;
use Test::More;
use Test::Deep;
use DDG::Test::Goodie;
zci answer_type => "note_frequency";
@ -37,4 +38,4 @@ ddg_goodie_test(
"notefreq c9" => undef,
);
done_testing;
done_testing;

Some files were not shown because too many files have changed in this diff Show More