File: 020-data.t

package info (click to toggle)
libparallel-iterator-perl 1.002-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 184 kB
  • sloc: perl: 520; makefile: 2
file content (48 lines) | stat: -rw-r--r-- 961 bytes parent folder | download
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
43
44
45
46
47
48
use strict; use warnings;

use Test::More tests => 1;
use Parallel::Iterator qw( iterate_as_array );

{
    my @input = (
        {
            type  => 'hash',
            value => 2
        },
        [ 1, 2, 3 ],
        "Hello"
    );

    my @want = (
        {
            type  => 'hash',
            value => 10
        },
        [ 4, 5, 6, 7, 8, 9 ],
        "HelloHello"
    );

    my @got = iterate_as_array(
        { workers => 1, nowarn => 1 },
        sub {
            my ( $id, $job ) = @_;
            if ( ref $job ) {
                if ( 'HASH' eq ref $job ) {
                    $job->{value} *= 5;
                    return $job;
                }
                elsif ( 'ARRAY' eq ref $job ) {
                    return [ 4, 5, 6, 7, 8, 9 ];
                }
            }
            else {
                return $job . $job;
            }
        },
        \@input
    );

    is_deeply \@got, \@want, "data structure";
}

1;