不带R的testr扩展

不带R的testr扩展,r,googletest,rcpp,armadillo,testthat,R,Googletest,Rcpp,Armadillo,Testthat,我一直在研究R的扩展,它将进行一些集群。该项目使用C++和Rcpp(使用RCPARMADILIO进行计算)。因此,我有一些课程需要测试。有人建议我使用谷歌测试。不幸的是,我没有运行任何测试代码 问题是,为了在googletest框架中测试使用Rcpp的类,我必须在R环境之外工作 我的意思是,我不把数据转换成标准的C++数据结构,比如向量。数据集应该是巨大的。我得到带有数据的数字矩阵,然后把它传下去。这会导致所有C++类使用RCPP .H(或犰狳)。我想知道我是否可以在R之外使用这些类 我正在寻找

我一直在研究R的扩展,它将进行一些集群。该项目使用C++和Rcpp(使用RCPARMADILIO进行计算)。因此,我有一些课程需要测试。有人建议我使用谷歌测试。不幸的是,我没有运行任何测试代码

问题是,为了在googletest框架中测试使用Rcpp的类,我必须在R环境之外工作

我的意思是,我不把数据转换成标准的C++数据结构,比如向量。数据集应该是巨大的。我得到带有数据的数字矩阵,然后把它传下去。这会导致所有C++类使用RCPP .H(或犰狳)。我想知道我是否可以在R之外使用这些类

我正在寻找有关使用RCPP作为一个库的独立程序的任何信息,但我得到的是“独立”代码,与直接在R命令行界面中通过内联包编译的C++代码相反。我更愿意使用GoGoESTEST,因为我可以直接测试C++。
问题是一个人是否可以在没有R的情况下使用Rcpp?

从严格意义上讲,你不能,因为Rcpp代码是从R调用的

从更广泛的意义上讲,当然,只要正确编写接口,就可以。编写C++代码,不依赖于R和RCPP头,只使用C++和STL和犰狳,也许GoGoLeTestTimes。Ie不使用Rcpp类型,如
Rcpp::NumericMatrix
,而是使用犰狳类型,如
arma::mat
。测试他们的生活日光。也许把它们放在图书馆里


然后使用Rcpp和RcppArmadillo编写一个瘦访问层。瞧,您已经测试了代码,可以在R中访问。

不,您没有。默认Converctor重用R内存。只需阅读文档,或之前的讨论,或简单地记忆它。