R でのプログラミングに多くの時間を費やしていることに気付いたので、自動テスト (Perl での習慣によって習得した) に戻りたいと思っています。Test::LectroTest
ユーザーフレンドリーであることに加えて、Perlや Haskell のQuickCheckなどのテスト用にランダムな入力を生成できることにも特に関心があります。に似たものはありR
ますか?
1 に答える
3
quickcheck
GitHubの R パッケージを参照してください。
同様Test::LectroTest
に、R パッケージは、 Koen Claessen と John Hughes が Haskell のために書いたQuickCheckquickcheck
のポートです。
QuickCheck 機能に加えて、quickcheck
Hadley Wickam の人気のあるtestthat
R パッケージに、彼の "expectation" 関数 (彼らは "assertions" と呼んでいます) を意図的に組み込むことで、うなずきます。数値テストと文字列テストに加えて、障害や警告などのテストがあります。
これを使用した簡単な例を次に示します。
library(quickcheck)
my_square <- function(x){x^2} # the function to test
test( function(x = rinteger()) min(my_square(x)) >= 0 )
# Pass function (x = rinteger())
# min(my_square(x)) >= 0
# [1] TRUE
test( function(x = rdouble())
all.equal(
my_square(x),
x^2
)
)
# Pass function (x = rdouble())
# all.equal(my_square(x), x^2)
# [1] TRUE
最初のテストでは、によって生成されたものmy_square
がすべて正であることを確認します。2 番目のテストでは、実際に の機能を複製し、my_square
すべての出力をチェックして、それが正しいことを確認します。
rinteger()
は、整数値で構成される任意の長さのベクトルを生成することに注意してください。その他のランダムに生成された入力データは、 、 、 などの関数を使用して生成rcharacter
できrdouble
ますrmatrix
。
于 2015-03-05T21:24:37.120 に答える