aboutsummaryrefslogtreecommitdiff
path: root/challenge-252/barroff/perl/ch-2.pl
blob: ecc45123ff299be16f68f203487e60d2f55732f0 (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
#!/usr/bin/env perl

use v5.38;

sub unique_sum_zero ($n) {
    my @ints;
    map( { push( @ints, $_, 0 - $_ ) } 1 .. int( $n / 2 ) );
    push( @ints, 0 ) if $n % 2 == 1;
    @ints = sort( { $a <=> $b } @ints );
    return \@ints;
}

sub MAIN() {
    if (@ARGV) {

        #| Run on command line argument
        say @{ unique_sum_zero( $ARGV[0] ) };
    }
    else {
        #| Run test cases
        use Test2::V0 qw( is plan );
        plan 4;

        is unique_sum_zero(5), [ -2, -1, 0, 1, 2 ], 'works for 5';
        is unique_sum_zero(3), [ -1, 0, 1 ],        'works for 3';
        is unique_sum_zero(1), [0],                 'works for 1';
        is unique_sum_zero(0), [],                  'works for 0';
    }
}

MAIN();