[Moscow.pm] Тестируем число больше или меньше, но не менее , чем на 10 процентов

Nikolay Mishin mi на ya.ru
Ср Окт 26 01:31:15 PDT 2011


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