File: pick.t

package info (click to toggle)
liblist-maker-perl 0.005-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 188 kB
  • ctags: 11
  • sloc: perl: 225; makefile: 2
file content (42 lines) | stat: -rw-r--r-- 1,468 bytes parent folder | download | duplicates (4)
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
41
42
use Test::More 'no_plan';

use List::Maker;

for my $n (1..10) {
    my @picks = <0..20 x 2 :pick $n>;

    ok @picks == $n =>  "Correct number ($n) picked";
    for my $pick (@picks) {
        ok 0 <= $pick && $pick <= 20 => "Picked $n in range";
        is scalar grep({ $_ == $pick } @picks), 1 => "Picked $n uniquely";
        ok $pick % 2 == 0  => "Generated $n correctly";
    }


    my @unipick = <1,3,..19 : pick>;

    is scalar(@unipick), 1 =>  "Correct single number picked from $n";
    ok 1 <= $unipick[0] && $unipick[0] <= 19 => "Uni picked $n in range";
    ok $unipick[0] % 2 => "Generated $n correctly";


    my @duopick = <^100 : pick 2>;

    is scalar(@duopick), 2 =>  "Correct two picked from $n";
    ok 0 <= $duopick[0] && $duopick[0] < 100 => "Duo picked $n first in range";
    ok 0 <= $duopick[1] && $duopick[1] < 100 => "Duo picked $n second in range";
    ok $duopick[0] != $duopick[1] => "Duo picked unique pair";

    my @seven = 1..7;
    my $monopick = <^@seven :pick>;
    ok defined($monopick) => "Monopick $n defined";
    ok 0 <= $monopick && $monopick <= 7 => "Monopick $n works";

    my @wordroll = <cat dog fish rat :pick 2>;

    is scalar(@wordroll), 2               =>  'Correct words rolled';
    ok $wordroll[0] =~ /cat|dog|fish|rat/ => 'First word rolled right';
    ok $wordroll[1] =~ /cat|dog|fish|rat/ => 'Second word rolled right';
    ok $wordroll[0] ne $wordroll[1]       => 'Picked words without replacement';

}