1#!./perl -w 2# t/sparseseen.t - Test Sparseseen() 3 4use strict; 5use warnings; 6 7use Data::Dumper; 8use Test::More tests => 8; 9use lib qw( ./t/lib ); 10use Testing qw( _dumptostr ); 11 12my %d = ( 13 delta => 'd', 14 beta => 'b', 15 gamma => 'c', 16 alpha => 'a', 17); 18 19run_tests_for_sparseseen(); 20SKIP: { 21 skip "XS version was unavailable, so we already ran with pure Perl", 4 22 if $Data::Dumper::Useperl; 23 local $Data::Dumper::Useperl = 1; 24 run_tests_for_sparseseen(); 25} 26 27sub run_tests_for_sparseseen { 28 note("\$Data::Dumper::Useperl = $Data::Dumper::Useperl"); 29 30 my ($obj, %dumps, $sparseseen, $starting); 31 32 note("\$Data::Dumper::Sparseseen and Sparseseen() set to true value"); 33 34 $starting = $Data::Dumper::Sparseseen; 35 $sparseseen = 1; 36 local $Data::Dumper::Sparseseen = $sparseseen; 37 $obj = Data::Dumper->new( [ \%d ] ); 38 $dumps{'ddssone'} = _dumptostr($obj); 39 local $Data::Dumper::Sparseseen = $starting; 40 41 $obj = Data::Dumper->new( [ \%d ] ); 42 $obj->Sparseseen($sparseseen); 43 $dumps{'objssone'} = _dumptostr($obj); 44 45 is($dumps{'ddssone'}, $dumps{'objssone'}, 46 "\$Data::Dumper::Sparseseen = 1 and Sparseseen(1) are equivalent"); 47 %dumps = (); 48 49 $sparseseen = 0; 50 local $Data::Dumper::Sparseseen = $sparseseen; 51 $obj = Data::Dumper->new( [ \%d ] ); 52 $dumps{'ddsszero'} = _dumptostr($obj); 53 local $Data::Dumper::Sparseseen = $starting; 54 55 $obj = Data::Dumper->new( [ \%d ] ); 56 $obj->Sparseseen($sparseseen); 57 $dumps{'objsszero'} = _dumptostr($obj); 58 59 is($dumps{'ddsszero'}, $dumps{'objsszero'}, 60 "\$Data::Dumper::Sparseseen = 0 and Sparseseen(0) are equivalent"); 61 62 $sparseseen = undef; 63 local $Data::Dumper::Sparseseen = $sparseseen; 64 $obj = Data::Dumper->new( [ \%d ] ); 65 $dumps{'ddssundef'} = _dumptostr($obj); 66 local $Data::Dumper::Sparseseen = $starting; 67 68 $obj = Data::Dumper->new( [ \%d ] ); 69 $obj->Sparseseen($sparseseen); 70 $dumps{'objssundef'} = _dumptostr($obj); 71 72 is($dumps{'ddssundef'}, $dumps{'objssundef'}, 73 "\$Data::Dumper::Sparseseen = undef and Sparseseen(undef) are equivalent"); 74 is($dumps{'ddsszero'}, $dumps{'objssundef'}, 75 "\$Data::Dumper::Sparseseen = undef and = 0 are equivalent"); 76 %dumps = (); 77} 78 79