Mercurial > pub > Impl
comparison _test/Test/Lang.pm @ 168:6148f89bb7bf
IMPL::SQL::Schema::Traits::Diff alfa version
IMPL::lang added hash traits
author | sourcer |
---|---|
date | Mon, 16 May 2011 04:30:38 +0400 |
parents | |
children | d920d2b70230 |
comparison
equal
deleted
inserted
replaced
167:1f7a6d762394 | 168:6148f89bb7bf |
---|---|
1 package Test::Lang; | |
2 use strict; | |
3 use warnings; | |
4 | |
5 use parent qw(IMPL::Test::Unit); | |
6 | |
7 use IMPL::Test qw(test failed assert); | |
8 use IMPL::lang qw(:hash :compare); | |
9 | |
10 __PACKAGE__->PassThroughArgs; | |
11 | |
12 test equals => sub { | |
13 assert( equals(1,1) ); | |
14 assert( !equals(1,2) ); | |
15 | |
16 { | |
17 my $warns = 0; | |
18 local $SIG{__WARN__} = sub { $warns++ }; | |
19 | |
20 assert( !equals("1","2") ); | |
21 assert( equals("sfds","zxcvgfd") ); | |
22 assert( $warns == 2); | |
23 } | |
24 | |
25 assert( equals(undef,undef) ); | |
26 assert( !equals(1,undef) ); | |
27 assert( !equals(undef,"zcx") ); | |
28 }; | |
29 | |
30 test equals_s => sub { | |
31 assert( equals_s(1,1) ); | |
32 assert( !equals_s(1,2) ); | |
33 | |
34 assert( !equals_s("1","2") ); | |
35 assert( !equals_s("sfds","zxcvgfd") ); | |
36 | |
37 assert( equals_s(undef,undef) ); | |
38 assert( !equals_s(1,undef) ); | |
39 assert( !equals_s(undef,"zcx") ); | |
40 | |
41 assert( equals_s("qwerty","qwerty") ); | |
42 }; | |
43 | |
44 test hash => sub { | |
45 | |
46 my %a = ( | |
47 a => 'a', | |
48 b => 'b', | |
49 c => 'c' | |
50 ); | |
51 | |
52 my %b = ( | |
53 a => 'a', | |
54 c => 'z', | |
55 x => 'x', | |
56 ); | |
57 | |
58 my %diff = ( | |
59 '-b' => 1, | |
60 '+c' => 'z', | |
61 '+x' => 'x' | |
62 ); | |
63 | |
64 | |
65 assert( ! hashCompare(\%a,\%b) ); | |
66 assert( hashCompare(\%a,\%a) ); | |
67 | |
68 my $res = hashDiff(\%a,\%b); | |
69 | |
70 assert( ! hashCompare({},$res) ); | |
71 assert( hashCompare($res,\%diff) ); | |
72 | |
73 assert( hashCompare( \%b, hashMerge(\%a,\%diff) ) ); | |
74 | |
75 }; | |
76 | |
77 1; |