#!/usr/bin/perl
# Runtime: 0.190s
use 5.014;
use lib qw(../lib);
use Math::Bacovia qw(:all);
use experimental qw(signatures);
use Test::More;
sub fibonacci ($t, $n) {
my $a = Power($n**2 + 4, Fraction(1, 2));
my $b = Fraction($a + Power(Power($a, 2) - 4, Fraction(1, 2)), 2);
Fraction(Power($b, $t) - Power(-$b, -$t), $a);
}
my $x = fibonacci(Symbol('n', 12), 1)->simple->simple;
my $y = fibonacci(Symbol('n', 12), Symbol('m', 1))->simple->simple;
say $x->pretty;
say $y->pretty;
plan tests => 4;
#<<<
#is($x->pretty, '((((1 + 5^(1/2))/2)^n - (-((1 + 5^(1/2))/2))^(-n))/5^(1/2))');
#is($y->pretty, '(((((4 + m^2)^(1/2) + ((4 + m^2) - 4)^(1/2))/2)^n - (-(((4 + m^2)^(1/2) + ((4 + m^2) - 4)^(1/2))/2))^(-n))/(4 + m^2)^(1/2))');
#>>>
#<<<
is($x->pretty, '((((5^(1/2) + ((5^(1/2))^2 - 4)^(1/2))/2)^n - (-((5^(1/2) + ((5^(1/2))^2 - 4)^(1/2))/2))^(-n))/5^(1/2))');
is($y->pretty, '(((((4 + m^2)^(1/2) + (((4 + m^2)^(1/2))^2 - 4)^(1/2))/2)^n - (-(((4 + m^2)^(1/2) + (((4 + m^2)^(1/2))^2 - 4)^(1/2))/2))^(-n))/(4 + m^2)^(1/2))');
#>>>
#<<<
is($x->numeric, 144);
is($y->numeric, 144);
#>>>