2012-06-26 30 views
3

我正在使用Test::More在Perl中编写单元测试。我习惯于从cxxunit的一些构造,特别是我失踪TS_ASSERT_DELTA。对于那些谁从来没见过TS_ASSERT_DELTA,它看起来像这样:Perl中浮点等价的单元测试

TS_ASSERT_DELTA(1.0, 1.1, 0.5); // this test will pass 
TS_ASSERT_DELTA(1.0, 1.1, 1e-10); // this test will fail 

是否有一个Perl相当于用于浮点比较?还是每个人都为此写了一个明显的功能?我目前这个工作:

sub compare_float_delta { 
    my $n1 = shift; 
    my $n2 = shift; 
    my $delta = shift; 
    return(abs($n1-$n2) < $delta); 
} 

对我来说这看起来像是测试框架应该提供。这个想法是否正确,还是应该调用float_compare_delta并继续我的生活?

回答