2013-05-27 5 views
8

私は計算にCコードを大量に使用するRパッケージに貢献しています。Rパッケージの/ srcフォルダにあるコードのユニットテストは?

testthatパッケージを使用してR関数のテストを作成し、inst/testsの後にinstructions hereというテストを入れました。

testthatパッケージは、Cの関数を直接テストするのに適していますか(Rインタフェースがないテストなど)?あるいは、別のCテストパッケージを見つけますか?もしそうなら、1)これらのテストはどこに行くのですか?2)R CMD checkの間に実行するにはどうしたらいいですか?3)この文脈で特に適切なCテストパッケージです。

答えて

3

私は質問は少し混乱を見つける:

  • あなたは(あなたが行っているように見えるよう)あなたのCコードを使用すると、Rでテストすることができ、より高いレベルのR機能のサポートであると考えてどちらかあなたはC.

ためbazillionのユニットテストフレームワークの1つを使用することができ、その場合には

  • またはあなたのCコードは、より独立であると考えて、パッケージ私たちの多くRcppはまた、RUnitを介して、またはtestthatを介して、広範なユニットテストを使用します。あなたはそれを見ることができます。私は一般に、R関数レベルでテストします。これは、しばしば基礎となるC++関数のテストを意味します。

  • +0

    C関数を呼び出す集合R関数があり、Rからそれらをテストできます。しかし、Rから呼び出されないC関数もあります。それは本当にスタンドアロンのライブラリではありません。 –

    +0

    C関数へのRラッパーの記述は、[Rcpp package description](http://cran.r-project.org/web/packages/Rcpp/index.html)に基づいて、Rcppを使用して大幅に簡略化されていると推測します。 C++の機能とクラスをRレベルに公開するためのフレームワークです。おそらく、私が引き継いだアプローチは最適ではありませんでしたが、さまざまなタイプのパラメータのリストをたくさん渡しています。 –

    +0

    Rcpp(特に、_Rcpp属性_と呼ぶもの)を読んだら、C(とC++)関数をラップするのが簡単で完全に自動化されていることが分かります。 –

    関連する問題