On 05/10/2009 4:39 PM, spencerg wrote:
I put unit test in the examples, using "\dontshow" to hide "stopifnot". Many help pages I've written contain code like the following:

A <- functionDocumentedHere()
B <- manuallyComputedAnswer

\dontshow{stopifnot(}
all.equal(A, B)
\dontshow{)}

This will fail in a future release of R, because those aren't valid expressions within \dontshow{}, which expects R code. You can achieve the same effect using the clearer

all.equal(A,B)
\dontshow{ stopifnot(isTrue(.Last.value)) }

Duncan Murdoch



I think it helps the documentation to include an example comparing a special case computed using a function with a manual computation. However, "stopifnot" contributes nothing to user understanding, so I hide it. One could also use "\dontshow" to hide entire examples that check trivial details you think would not interest users.

      Spencer


Seth Falcon wrote:
Hi,

On Mon, Oct 5, 2009 at 12:01 PM, Blair Christian
<blair.christ...@gmail.com> wrote:
I'm interested in putting some unit tests into an R package I'm
building.  I have seen assorted things such as Runit library, svUnit
library, packages
with 'tests' directories, etc

I grep'd "unit test" through the writing R extensions manual but didn't find
anything.  Are there any suggestions out there?  Currently I have
several (a lot?) classes/methods that I keep tinkering with, and I'd
like to run a script frequently to check that I don't cause any
unforeseen problems.
I've had good experiences using RUnit.  To date, I've mostly used
RUnit by putting tests in inst/unitTests and creating a Makefile there
to run the tests.  You should also be able to use RUnit in a more
interactive fashion inside an interactive R session in which you are
doing development.

The vignette in svUnit has an interesting approach for integrating
unit testing into R CMD check via examples in an Rd file within the
package.

+ seth




______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to