aboutsummaryrefslogtreecommitdiff
path: root/challenge-146/e-choroba/perl/ch-2.pl
blob: a9da5ef2c8fa5f52080f1b0bb64b7430e0ddf657 (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
#!/usr/bin/perl
use warnings;
use strict;

#      a/b
#     /  \
#    /    \
# a/(a+b) (a+b)/b

sub parent {
    my ($x, $y) = @_;
    return $x < $y ? ($x, $y - $x) : ($x - $y, $y)
}

sub grandparent {
    return parent(parent(@_))
}

use Test2::V0;
plan 4;

{   my $member = [3, 5];
    is [parent(@$member)],      [3, 2], 'Example 1 parent';
    is [grandparent(@$member)], [1, 2], 'Example 1 grandparent';
}
{   my $member = [4, 3];
    is [parent(@$member)],      [1, 3], 'Example 2 parent';
    is [grandparent(@$member)], [1, 2], 'Example 2 grandparent';
}