File: | local/lib/perl5/Test/Deep/Shallow.pm |
Coverage: | 72.2% |
line | stmt | bran | cond | sub | time | code |
---|---|---|---|---|---|---|
1 | 2 2 2 | 6 1 40 | use strict; | |||
2 | 2 2 2 | 5 2 38 | use warnings; | |||
3 | ||||||
4 | package Test::Deep::Shallow; | |||||
5 | ||||||
6 | 2 2 2 | 7 1 7 | use Test::Deep::Cmp; | |||
7 | ||||||
8 | 2 2 2 | 5 2 222 | use Scalar::Util qw( refaddr ); | |||
9 | ||||||
10 | sub init | |||||
11 | { | |||||
12 | 44 | 26 | my $self = shift; | |||
13 | ||||||
14 | 44 | 16 | my $val = shift; | |||
15 | 44 | 127 | $self->{val} = $val; | |||
16 | } | |||||
17 | ||||||
18 | sub descend | |||||
19 | { | |||||
20 | 44 | 23 | my $self = shift; | |||
21 | ||||||
22 | 44 | 23 | my $got = shift; | |||
23 | 44 | 23 | my $exp = $self->{val}; | |||
24 | ||||||
25 | 44 | 25 | my $ok; | |||
26 | ||||||
27 | 44 | 170 | if (!defined $got and !defined $exp) | |||
28 | { | |||||
29 | 22 | 13 | $ok = 1; | |||
30 | } | |||||
31 | elsif (defined $got xor defined $exp) | |||||
32 | { | |||||
33 | 0 | 0 | $ok = 0; | |||
34 | } | |||||
35 | elsif (ref $got and ref $exp) | |||||
36 | { | |||||
37 | 0 | 0 | $ok = refaddr($got) == refaddr($exp); | |||
38 | } | |||||
39 | elsif (ref $got xor ref $exp) | |||||
40 | { | |||||
41 | 0 | 0 | $ok = 0; | |||
42 | } | |||||
43 | else | |||||
44 | { | |||||
45 | 22 | 22 | $ok = $got eq $exp; | |||
46 | } | |||||
47 | ||||||
48 | 44 | 48 | return $ok; | |||
49 | } | |||||
50 | ||||||
51 | 1; |