File: 01-basic.t

package info (click to toggle)
libhash-merge-simple-perl 0.052-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 200 kB
  • sloc: perl: 197; makefile: 2
file content (41 lines) | stat: -rw-r--r-- 1,025 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
use strict;
use warnings;
use Test::More;

use Hash::Merge::Simple qw/merge/;

{
    my $a = { a => 1 };
    my $b = { a => 100, b => 2};

    my $c = merge $a, $b;
    ok($c);
    is_deeply($c, { a => 100, b => 2 });
}

{
    my $a = { a => 1, c => 3, d => { i => 2 }, r => {} };
    my $b = { b => 2, a => 100, d => { l => 4 } };
    my $c = merge $a, $b;
    ok($c);
    is_deeply($c, { a => 100, b => 2, c => 3, d => { i => 2, l => 4 }, r => {} });
}

{
    is_deeply(merge({ a => 1 }, { a => 2 }, { a => 3 }, { a => 4 }, { a => 5 }), { a => 5 });
    is_deeply(merge({ a => 1, b => [] }, { a => 2 }, { a => 3 }, { a => 4 }, { a => 5 }), { a => 5, b => [] });
    is_deeply(merge({ a => 1, b => [ 3 ] }, { a => 2 }, { a => 3 }, { a => 4, b => [ 8 ] }, { a => 5 }), { a => 5, b => [ 8 ] });
    is_deeply(merge({ a => 1 }, { b => 2 }, { c => 3 }, { d => 4 }, { e => 5 }), { qw/a 1 b 2 c 3 d 4 e 5/ });
}

if (0) {

    exit;

    # Infinity-ty-ty-ty-ty
    my $a = {};
    $a->{b} = $a;
    merge $a, $a;
}

done_testing;