Moscow-pm, Hi

как вам такая реализация?
use 5.01;
use Test::More qw/no_plan/;
use POSIX;
my $calc_value = 22;
my $orig_value = 23;
my $persent    = 10;      #%
my $message    = 'BIG_SYSTEM';

test_10_persent( $calc_value, $orig_value, $persent, $message );

#test if bigger or lower not lower then 10%
sub test_10_persent {
    my ( $calc_value, $orig_value, $persent, $message ) = @_;

    if ( $calc_value >= $orig_value ) {
        cmp_ok( $calc_value, '>=', $orig_value,
            $message . " $calc_value >= $orig_value " );
    }
    else {
        my $cal_persent =
          floor( abs( ( ( $calc_value - $orig_value ) / $orig_value ) * 100 ) );
        cmp_ok( $cal_persent, '<=', $persent,
            $message . " $calc_value <= $orig_value but not lower then 10 %" );
    }
}


--
Nikolay Mishin
-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить