|
#!/usr/bin/perl -w
use 5.004;
plan tests => 33;
MyTestHelpers::nowarnings();
{
my $want_version = 75;
ok ( $Math::NumSeq::DigitProduct::VERSION , $want_version ,
'VERSION variable' );
ok (Math::NumSeq::DigitProduct->VERSION, $want_version ,
'VERSION class method' );
ok ( eval { Math::NumSeq::DigitProduct->VERSION( $want_version ); 1 },
1,
"VERSION class check $want_version" );
my $check_version = $want_version + 1000;
ok (! eval { Math::NumSeq::DigitProduct->VERSION( $check_version ); 1 },
1,
"VERSION class check $check_version" );
}
{
my $seq = Math::NumSeq::DigitProduct->new;
ok ( $seq ->characteristic( 'smaller' ), 1, 'characteristic(smaller)' );
ok ( $seq ->characteristic( 'integer' ), 1, 'characteristic(integer)' );
ok (! $seq ->characteristic( 'increasing' ), 1,
'characteristic(increasing)' );
ok (! $seq ->characteristic( 'non_decreasing' ), 1,
'characteristic(non_decreasing)' );
ok ( $seq ->characteristic( 'increasing_from_i' ), undef ,
'characteristic(increasing_from_i)' );
ok ( $seq ->characteristic( 'non_decreasing_from_i' ), undef ,
'characteristic(non_decreasing_from_i)' );
}
{
foreach my $elem ([2, -1, 0],
[2, 0, 1],
[2, 1, 1],
[2, 2, 0],
[3, -1, 0],
[3, 0, 1],
[3, 1, 1],
[3, 2, 1],
[3, 3, 0],
[3, 4, 1],
[3, 5, 0],
[3, 6, 0],
[3, 7, 0],
[3, 8, 1],
[10, -1, 0],
[10, 0, 1],
[10, 1, 1],
[10, 2, 1],
[10, 9, 1],
[10, 10, 1],
[10, 11, 0],
[10, 12, 1],
[10, 4*9, 1],
) {
my ( $radix , $value , $want ) = @$elem ;
my $seq = Math::NumSeq::DigitProduct->new ( radix => $radix );
my $got = $seq ->pred( $value ) ? 1 : 0;
ok ( $got , $want , "pred() radix=$radix value=$value got $got want $want" );
}
}
exit 0;
|