4

Test::Moreを使用して、Perl で単体テストを作成しています。私はcxxunitの構成要素のいくつかに慣れており、特にTS_ASSERT_DELTAがありません。TS_ASSERT_DELTAを見たことがない人のために説明すると、次のようになります。

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 を呼び出して、私の人生を続けるべきですか?

4

2 に答える 2

7

CPANから特定のモジュールを使用できます:Test :: Number :: Delta

于 2012-06-26T08:56:25.400 に答える
6

numの関数をTest::Deep参照してください。

于 2012-06-26T10:33:47.753 に答える