File: L_OVERRIDE.t

package info (click to toggle)
libhash-merge-extra-perl 0.06-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 156 kB
  • sloc: perl: 638; makefile: 2
file content (79 lines) | stat: -rw-r--r-- 1,523 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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#!perl -T

use strict;
use warnings FATAL => 'all';
use Test::More;

use Hash::Merge qw(merge);
use Hash::Merge::Extra;

ok(
    Hash::Merge::set_behavior('L_OVERRIDE')
) || BAIL_OUT('Failed to set behavior');

my ($got, @tests);

@tests = (
    {
        one => 'alpha',
        two => 'beta',
        out => 'alpha',
        msg => "scalar vs scalar",
    },
    {
        one => 'alpha',
        two => [],
        out => 'alpha',
        msg => "scalar vs array",
    },
    {
        one => 'alpha',
        two => {},
        out => 'alpha',
        msg => "scalar vs hash",
    },
    {
        one => [0, 1],
        two => 'beta',
        out => [0, 1],
        msg => "array vs scalar",
    },
    {
        one => [0, 1],
        two => [1, 2],
        out => [0, 1],
        msg => "array vs array",
    },
    {
        one => [0, 1],
        two => {a => 0, b => 1},
        out => [0, 1],
        msg => "array vs hash",
    },
    {
        one => {a => 0, b => 1},
        two => 'beta',
        out => {a => 0, b => 1},
        msg => "hash vs scalar",
    },
    {
        one => {a => 0, b => 1},
        two => [1, 2],
        out => {a => 0, b => 1},
        msg => "hash vs array",
    },
    {
        one => {a => 0, b => 1},
        two => {a => 9, c => 2},
        out => {a => 0, b => 1, c => 2},
        msg => "hash vs hash",
    },
);

for (@tests) {
    $got = merge($_->{one}, $_->{two});
    is_deeply($got, $_->{out}, $_->{msg}) ||
        diag explain $got;
}

done_testing(@tests + 1);