2014-03-26 65 views
1

我一直在研究R的扩展,它会做一些聚类。该项目使用C++和Rcpp(计算使用RcppArmadillo执行)。因此,我有几个课程需要测试。我被建议使用googletest。不幸的是,我没有运行任何测试代码。没有R的测试R扩展

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

我的意思是我不会将数据转换为像矢量这样的标准C++数据结构。数据集应该是巨大的。我用数据获得NumericMatrix,并将其传递给它。这会导致所有C++类使用Rcpp.h(或犰狳)。我想知道我是否可以在R之外使用这些类。

我一直在寻找关于使用Rcpp作为库的独立程序的任何信息,但我所获得的是与R命令直接编译的C++代码相反的“独立”代码通过内联包提供的在线接口。我宁愿使用googletest,因为我可以直接测试C++。

问题是一个人是否可以在没有R的情况下使用Rcpp?

回答

1

在严格意义上,你不能因为RCPP代码旨在从R.

称为从更广泛的意义上说,当然你也可以提供你正确写你的接口。写的C++代码,不而不是取决于R和Rcpp头,只使用C + +和STL和犰狳,也许googletest成语。即不使用Rcpp类型,如Rcpp::NumericMatrix,但使用犰狳类型,如arma::mat。测试他们的生活日光。也许把它们包装在一个图书馆里。

然后,只需使用Rcpp和RcppArmadillo编写一个精简访问层即可。 Et瞧 - 你已经测试了代码,在R中访问。

+0

不,你不知道。默认对流器重用R内存。只要阅读文档,或以前的讨论,或简单地记忆配置文件。 –