zeroclickinfo-goodies/t/Coin.t

45 lines
1.5 KiB
Perl
Raw Normal View History

2013-02-09 10:19:53 -08:00
#!/usr/bin/env perl
use strict;
use warnings;
use Test::More;
use Test::Deep;
2013-02-09 10:19:53 -08:00
use DDG::Test::Goodie;
zci answer_type => 'coin';
2014-10-14 23:46:29 -07:00
zci is_cached => 0;
2013-02-09 10:19:53 -08:00
2016-05-22 13:36:07 -07:00
sub build_test {
my ($input, $text, $title) = @_;
return test_zci($text, structured_answer => {
data => {
title => $title,
subtitle => "Flip coin: $input"
},
templates => {
group => 'text'
}
});
}
my $single_text_re = re(qr/(heads|tails) \(random\)/);
my $single_title_re = re(qr/^(heads|tails)$/);
2013-02-09 10:19:53 -08:00
ddg_goodie_test(
2014-10-14 23:46:29 -07:00
[qw( DDG::Goodie::Coin )],
2016-05-22 13:36:07 -07:00
'flip a coin' => build_test(1, $single_text_re, $single_title_re),
'flip coin' => build_test(1, $single_text_re, $single_title_re),
'coin flip' => build_test(1, $single_text_re, $single_title_re),
'coin toss' => build_test(1, $single_text_re, $single_title_re),
'flip 1 coin' => build_test(1, $single_text_re, $single_title_re),
'heads or tails' => build_test(1, $single_text_re, $single_title_re),
'heads or tails?' => build_test(1, $single_text_re, $single_title_re),
'toss a coin' => build_test(1, $single_text_re, $single_title_re),
'toss 1 coin' => build_test(1, $single_text_re, $single_title_re),
'flip 2 coins' => build_test(2, re(qr/(heads|tails), (heads|tails) \(random\)/), re(qr/(heads|tails), /)),
'toss 2 coins' => build_test(2, re(qr/(heads|tails), (heads|tails) \(random\)/), re(qr/(heads|tails), /)),
'flip 4 coins' => build_test(4, re(qr/((heads|tails),? ){4}\(random\)/), re(qr/(heads|tails),? /))
2013-02-09 10:19:53 -08:00
);
2016-05-16 06:18:04 -07:00
done_testing;