46 lines
1.9 KiB
Perl
Executable File
46 lines
1.9 KiB
Perl
Executable File
#!/usr/bin/env perl
|
|
|
|
use strict;
|
|
use warnings;
|
|
use Test::More;
|
|
use Test::Deep;
|
|
use DDG::Test::Goodie;
|
|
|
|
zci answer_type => 'fibonacci';
|
|
zci is_cached => 1;
|
|
|
|
sub build_structured_answer {
|
|
my ($text_answer, $title, $subtitle) = @_;
|
|
|
|
return $text_answer, structured_answer => {
|
|
data => {
|
|
title => "$title",
|
|
subtitle => "$subtitle"
|
|
},
|
|
templates => {
|
|
group => 'text'
|
|
}
|
|
};
|
|
}
|
|
|
|
sub build_test { test_zci(build_structured_answer(@_)) };
|
|
|
|
ddg_goodie_test(
|
|
[qw(DDG::Goodie::Fibonacci)],
|
|
'fib 7' => build_test("The 7th fibonacci number is 13 (assuming f(0) = 0)", 13, "7th Fibonacci number"),
|
|
'fibonacci 33' => build_test("The 33rd fibonacci number is 3524578 (assuming f(0) = 0)", 3524578, '33rd Fibonacci number'),
|
|
q`what's the 6th fibonacci number?` => build_test("The 6th fibonacci number is 8 (assuming f(0) = 0)", 8, '6th Fibonacci number'),
|
|
'10th number in the fibonacci sequence?' => build_test("The 10th fibonacci number is 55 (assuming f(0) = 0)", 55, '10th Fibonacci number'),
|
|
'what is the 18th number in the fibonacci series' => build_test("The 18th fibonacci number is 2584 (assuming f(0) = 0)", 2584, '18th Fibonacci number'),
|
|
'What is the 2nd fibonacci number' => build_test("The 2nd fibonacci number is 1 (assuming f(0) = 0)", 1, '2nd Fibonacci number'),
|
|
'what is the 250001 fib' => undef,
|
|
'is 14 a fibonacci number' => build_test("14 is not a Fibonacci number", "No", '14 is not a Fibonacci number'),
|
|
'is 13 in the fibonacci sequence?' => build_test("13 is a Fibonacci number", "Yes", '13 is a Fibonacci number'),
|
|
'is 6 a fib?' => build_test("6 is not a Fibonacci number", "No", "6 is not a Fibonacci number"),
|
|
'is 1000000000000000000000000000000000000000000000 a fib' => undef,
|
|
'tell a fib' => undef,
|
|
'what are fibonacci numbers?' => undef,
|
|
);
|
|
|
|
done_testing;
|