aboutsummaryrefslogtreecommitdiff
path: root/challenge-077/bob-lied/perl/t/FibSum.t
blob: 75b74c57aac586bb04673983e542c69d945b4b8f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# vim:set ts=4 sw=4 sts=4 et ai wm=0 nu:
#
#===============================================================================
# FILE: FibSum.t
# DESCRIPTION: Unit test for FibSum
#===============================================================================

use strict;
use warnings;
use v5.30;

use Test2::V0;

use FibSum qw(_fib);

is( _fib( 0),         0, "f(0)");
is( _fib( 1),         1, "f(1)");
is( _fib( 2),         1, "f(2)");
is( _fib( 3),         2, "f(3)");
is( _fib( 4),         3, "f(4)");
is( _fib(10),        55, "f(10)");
is( _fib(20),      6765, "f(20)");
is( _fib(30),    832040, "f(30)");
is( _fib(40), 102334155, "f(40)");
is( _fib(93), 12200160415121876738, "f(93)");

my $fsum = FibSum->new(6);
isa_ok($fsum, [ "FibSum" ], "Constructor");

my $fibList = $fsum->getFibList();
is( $fibList, [ 5, 3, 2, 1 ], "fibList for 6" );
is( $fsum->target(), 6,       "target for 6" );

is( $fsum->run(), [ [ 5, 1], [ 3, 2, 1] ], "FibSum(6)" );

is( FibSum->new(9)->run(), [ [8, 1], [5, 3, 1] ], "FibSum(9)");



done_testing();