是否有测试软件QuickCheck的R端口



现在我发现自己花了很多时间在R中编程,我真的想回到自动化测试(这是我在Perl中养成的习惯)。除了用户友好之外,我还特别感兴趣的是能够为Perl的Test::LectroTest或Haskell的QuickCheck之类的测试生成随机输入。R有类似的东西吗?

请参阅GitHub上的R包quickcheck

Test::LectroTest一样,R包quickcheck是Koen Claessen和John Hughes为Haskell编写的QuickCheck的一个端口。

除了QuickCheck功能外,quickcheck还通过有意地结合Hadley Wickam的"期望"函数(他们称之为"断言"),向他流行的testthatR包致敬。除了数字和字符串测试外,还有故障和警告等测试。

下面是一个使用它的简单示例:

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生成的任何东西都是阳性的。第二个测试实际上复制了my_square的功能,并检查每个输出以确保其正确。

注意,rinteger()产生由整数值组成的任意长度的向量。可以使用诸如rcharacterrdoublermatrix之类的函数来产生其他随机生成的输入数据。


最新更新