29

testthatRでテストフレームワークを使用して同等の許容範囲を設定できるかどうかを知りたいです。

現在、次の場合example.R:

library(testthat)
three_times<-function(x) 3*x

context('Test three_times')
test_that('Three times returns 3 times x',{
    expect_equal(three_times(3),9)
    expect_equal(three_times(pi),9.4247)
})

で実行するとtest_file('example.R','stop')、最初のテストはパスしますが、2 番目のテストは次のように失敗します。

 Error: Test failed: 'Three times returns 3 times x'
Not expected: three_times(pi) not equal to 9.4247
Mean relative difference: 8.271963e-06. 

平均相対差のエラーしきい値を高く設定することは可能ですか? たとえば、1e-3。小数点以下 3 桁の精度で期待される結果がいくつかあります。これは、テストが常に失敗することを意味します...

4

1 に答える 1

40

引数scaleまたはを渡すことができますtolerance。これらの引数は に渡されall.equalます。

expect_equal(three_times(pi),9.4247, tolerance=1e-8)
Error: three_times(pi) not equal to 9.4247
Mean relative difference: 8.271963e-06

expect_equal(three_times(pi),9.4247, tolerance=1e-3)

詳細について?all.equalは、 を参照してください

于 2014-08-23T15:34:10.523 に答える