#!/usr/bin/perl
use strict;
use warnings;
package myObj;
sub new {
my $class = shift;
my %args = @_;
my $self = {};
$self->{ name } = $args{ name } || 'default';
$self->{ value } = $args{ value } || '';
$self->{ chars } = $args{ chars } || qr/^[a-z]+$/;
return bless $self, $class;
}
sub set_name { my $self = shift; $self->{ name } = shift; return; }
sub set_value { my $self = shift; $self->{ value } = shift; return; }
sub set_chars { my $self = shift; $self->{ chars } = shift; return; }
sub get_name { my $self = shift; return $self->{ name }; }
sub get_value { my $self = shift; return $self->{ value }; }
sub get_chars { my $self = shift; return $self->{ chars }; }
package main;
use Test::More tests => 11;
ok( my $obj1 = myObj->new( name => 'test1',
value => 'myval',
chars => qr/^[0-9]$/
), "can create a myObj specifying values" );
isa_ok( $obj1, 'myObj' );
ok( my $obj2 = myObj->new(), "can create a myObj not specifying values" );
isa_ok( $obj2, 'myObj' );
ok( ! $obj2->set_name( 'test1' ), "can set name" );
ok( 'test1' eq $obj2->get_name(), "can get name" );
ok( ! $obj2->set_value( 'myval' ), "can set value" );
ok( 'myval' eq $obj2->get_value(), "can get value" );
ok( ! $obj2->set_chars( qr/^[0-9]$/ ), "can set chars" );
ok( qr/^[0-9]$/ eq $obj2->get_chars(), "can get chars" );
is_deeply( $obj1, $obj2, "obj1 seems deeply similar to obj2" );
####
$ cover
Reading database from /Users/kentcowgill/cover_db
---------------------------- ------ ------ ------ ------ ------ ------ ------
File stmt bran cond sub pod time total
---------------------------- ------ ------ ------ ------ ------ ------ ------
cover.pl 100.0 n/a 85.7 100.0 n/a 100.0 98.3
Total 100.0 n/a 85.7 100.0 n/a 100.0 98.3
---------------------------- ------ ------ ------ ------ ------ ------ ------
####
line % coverage condition
12 100 $args{'name'} || 'default'
A dec
0 0
1 1
13 100 $args{'value'} || ''
A dec
0 0
1 1
14 67 $args{'chars'} || qr/^[a-z]+$/
A B dec
0 0 0
0 1 1
1 X 1
####
s**lil*; $*=join'',sort split q**; s;.*;grr; &&s+(.(.)).+$2$1+; $; =
qq-$_-;s,.*,ahc,;$,.=chop for split q,,,reverse;print for($,,$;,$*,$/)