Mercurial > pub > Impl
comparison _test/Test/Lang.pm @ 194:4d0e1962161c
Replaced tabs with spaces
IMPL::Web::View - fixed document model, new features (control classes, document constructor parameters)
| author | cin | 
|---|---|
| date | Tue, 10 Apr 2012 20:08:29 +0400 | 
| parents | d1676be8afcc | 
| children | 
   comparison
  equal
  deleted
  inserted
  replaced
| 193:8e8401c0aea4 | 194:4d0e1962161c | 
|---|---|
| 9 use Scalar::Util qw(reftype); | 9 use Scalar::Util qw(reftype); | 
| 10 | 10 | 
| 11 __PACKAGE__->PassThroughArgs; | 11 __PACKAGE__->PassThroughArgs; | 
| 12 | 12 | 
| 13 test equals => sub { | 13 test equals => sub { | 
| 14 assert( equals(1,1) ); | 14 assert( equals(1,1) ); | 
| 15 assert( !equals(1,2) ); | 15 assert( !equals(1,2) ); | 
| 16 | 16 | 
| 17 { | 17 { | 
| 18 my $warns = 0; | 18 my $warns = 0; | 
| 19 local $SIG{__WARN__} = sub { $warns++ }; | 19 local $SIG{__WARN__} = sub { $warns++ }; | 
| 20 | 20 | 
| 21 assert( !equals("1","2") ); | 21 assert( !equals("1","2") ); | 
| 22 assert( equals("sfds","zxcvgfd") ); | 22 assert( equals("sfds","zxcvgfd") ); | 
| 23 assert( $warns == 2); | 23 assert( $warns == 2); | 
| 24 } | 24 } | 
| 25 | 25 | 
| 26 assert( equals(undef,undef) ); | 26 assert( equals(undef,undef) ); | 
| 27 assert( !equals(1,undef) ); | 27 assert( !equals(1,undef) ); | 
| 28 assert( !equals(undef,"zcx") ); | 28 assert( !equals(undef,"zcx") ); | 
| 29 }; | 29 }; | 
| 30 | 30 | 
| 31 test equals_s => sub { | 31 test equals_s => sub { | 
| 32 assert( equals_s(1,1) ); | 32 assert( equals_s(1,1) ); | 
| 33 assert( !equals_s(1,2) ); | 33 assert( !equals_s(1,2) ); | 
| 34 | 34 | 
| 35 assert( !equals_s("1","2") ); | 35 assert( !equals_s("1","2") ); | 
| 36 assert( !equals_s("sfds","zxcvgfd") ); | 36 assert( !equals_s("sfds","zxcvgfd") ); | 
| 37 | 37 | 
| 38 assert( equals_s(undef,undef) ); | 38 assert( equals_s(undef,undef) ); | 
| 39 assert( !equals_s(1,undef) ); | 39 assert( !equals_s(1,undef) ); | 
| 40 assert( !equals_s(undef,"zcx") ); | 40 assert( !equals_s(undef,"zcx") ); | 
| 41 | 41 | 
| 42 assert( equals_s("qwerty","qwerty") ); | 42 assert( equals_s("qwerty","qwerty") ); | 
| 43 }; | 43 }; | 
| 44 | 44 | 
| 45 test hash => sub { | 45 test hash => sub { | 
| 46 | 46 | 
| 47 my %a = ( | 47 my %a = ( | 
| 48 a => 'a', | 48 a => 'a', | 
| 49 b => 'b', | 49 b => 'b', | 
| 50 c => 'c' | 50 c => 'c' | 
| 51 ); | 51 ); | 
| 52 | 52 | 
| 53 my %b = ( | 53 my %b = ( | 
| 54 a => 'a', | 54 a => 'a', | 
| 55 c => 'z', | 55 c => 'z', | 
| 56 x => 'x', | 56 x => 'x', | 
| 57 ); | 57 ); | 
| 58 | 58 | 
| 59 my %diff = ( | 59 my %diff = ( | 
| 60 '-b' => 1, | 60 '-b' => 1, | 
| 61 '+c' => 'z', | 61 '+c' => 'z', | 
| 62 '+x' => 'x' | 62 '+x' => 'x' | 
| 63 ); | 63 ); | 
| 64 | 64 | 
| 65 | 65 | 
| 66 assert( ! hashCompare(\%a,\%b) ); | 66 assert( ! hashCompare(\%a,\%b) ); | 
| 67 assert( hashCompare(\%a,\%a) ); | 67 assert( hashCompare(\%a,\%a) ); | 
| 68 | 68 | 
| 69 my $res = hashDiff(\%a,\%b); | 69 my $res = hashDiff(\%a,\%b); | 
| 70 | 70 | 
| 71 assert( ! hashCompare({},$res) ); | 71 assert( ! hashCompare({},$res) ); | 
| 72 assert( hashCompare($res,\%diff) ); | 72 assert( hashCompare($res,\%diff) ); | 
| 73 | 73 | 
| 74 assert( hashCompare( \%b, hashMerge(\%a,\%diff) ) ); | 74 assert( hashCompare( \%b, hashMerge(\%a,\%diff) ) ); | 
| 75 | 75 | 
| 76 }; | 76 }; | 
| 77 | 77 | 
| 78 test clone => sub { | 78 test clone => sub { | 
| 79 | 79 | 
| 80 my $a; | 80 my $a; | 
| 81 | 81 | 
| 82 my $b = clone($a); | 82 my $b = clone($a); | 
| 83 | 83 | 
| 84 assert(not defined $b); | 84 assert(not defined $b); | 
| 85 | 85 | 
| 86 my $lp = { a => '1', rx => qr/abc$/ }; | 86 my $lp = { a => '1', rx => qr/abc$/ }; | 
| 87 $lp->{b} = $lp; | 87 $lp->{b} = $lp; | 
| 88 | 88 | 
| 89 my $c = clone($lp); | 89 my $c = clone($lp); | 
| 90 | 90 | 
| 91 assert($c); | 91 assert($c); | 
| 92 assert($c->{b}); | 92 assert($c->{b}); | 
| 93 assert($c->{b} == $c); | 93 assert($c->{b} == $c); | 
| 94 assert(reftype $c->{rx} eq 'REGEXP'); | 94 assert(reftype $c->{rx} eq 'REGEXP'); | 
| 95 | 95 | 
| 96 }; | 96 }; | 
| 97 | 97 | 
| 98 test hashParse => sub { | 98 test hashParse => sub { | 
| 99 my $res = hashParse("a = test a\nb = test b\nc c=test c"); | 99 my $res = hashParse("a = test a\nb = test b\nc c=test c"); | 
| 100 | 100 | 
| 101 assert($res->{a} eq "test a"); | 101 assert($res->{a} eq "test a"); | 
| 102 assert($res->{b} eq "test b"); | 102 assert($res->{b} eq "test b"); | 
| 103 assert($res->{"c c"} eq "test c"); | 103 assert($res->{"c c"} eq "test c"); | 
| 104 | 104 | 
| 105 $res = hashParse("a:b, c: d",qr/\s*:\s*/,qr/\s*,\s*/); | 105 $res = hashParse("a:b, c: d",qr/\s*:\s*/,qr/\s*,\s*/); | 
| 106 | 106 | 
| 107 assert($res->{a} eq "b"); | 107 assert($res->{a} eq "b"); | 
| 108 assert($res->{c} eq "d"); | 108 assert($res->{c} eq "d"); | 
| 109 }; | 109 }; | 
| 110 | 110 | 
| 111 1; | 111 1; | 
