zeroclickinfo-goodies/t/Fibonacci.t

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;