Adrian,

You might consider using a unit testing framework such as RUnit or testthat, 
which does this but in a more structured manner. Essentially you codify the 
behavior in a set of tests as opposed to comparing with a previous version.

HTH,
Brian

•••••
Brian Lee Yung Rowe
Founder, Zato Novo
Professor, M.S. Data Analytics, CUNY

> On Jun 15, 2014, at 11:25 PM, "Adrian Dușa" <dusa.adr...@unibuc.ro> wrote:
> 
> Hi Gabriel,
> 
> Actually, I am not going to use multiple versions of the same package,
> but always the last version. What I would like to do is:
> - to run all examples from all functions in the package, saving the
> results into a list
> - compare the list to an already saved one (from the previous version
> of the package), possibly using all.equal()
> 
> I tried using the example() function, like this:
> example("deMorgan", package="QCA", give.lines=TRUE)
> 
> That returns the commands from the examples section, but if a command
> is split over multiple rows I cannot use it automatically.
> 
> I could also use:
> capture.output(example("deMorgan", package="QCA", ask=FALSE))
> 
> That would indeed work for the printed output, but I would also like
> to compare the objects saved by the deMorgan() function. If that is
> not possible, I'll probably be happy with the printed output.
> 
> I'd still be curious as to why the index.search() function cannot be
> used... (it seems useful for other purposes).
> 
> Best wishes,
> Adrian
> 
> 
>> On Mon, Jun 16, 2014 at 5:46 AM, Gabriel Becker <gmbec...@ucdavis.edu> wrote:
>> Adrian,
>> 
>> R isn't really designed to use multiple versions of the same package in the
>> same R session. To do what you want you'll need to unload one version of the
>> package before you load the next, which will work some percentage of the
>> time between 50 and 100 ("usually"), but when it can be done it is
>> relatively easy to do.
>> 
>> Packages with C code will give you problems, or at least they used to. I
>> haven't tried recently.  See Prof Ripley's response here: See
>> https://stat.ethz.ch/pipermail/r-devel/2009-February/052229.html
>> 
>> For packages that can be unloaded/reloaded safely, is there a reason you
>> can't just use the existing example function with two different library
>> locations (lib.loc argument) with the two package versions installed?
>> 
>> ~G
>> 
>> 
>>> On Sun, Jun 15, 2014 at 6:22 PM, Adrian Dușa <dusa.adr...@unibuc.ro> wrote:
>>> 
>>> Dear r-devel,
>>> 
>>> I am trying to automatically check if two successive versions of a
>>> package have the same results (i.e. code not broken), by parsing the
>>> example sections for each function against a previously tested
>>> version.
>>> 
>>> While trying to replicate the code from example(), I am facing an
>>> error related with te "index.search" function (line 7 in the example()
>>> code).
>>> This is the code I am using:
>>> 
>>> example2 <- function (topic, package = NULL, lib.loc = NULL,
>>> character.only = FALSE,
>>>    give.lines = FALSE, local = FALSE, echo = TRUE, verbose =
>>> getOption("verbose"),
>>>    setRNG = FALSE, ask = getOption("example.ask"), prompt.prefix =
>>> abbreviate(topic, 6), run.dontrun = FALSE)
>>> {
>>>    if (!character.only) {
>>>        topic <- substitute(topic)
>>>        if (!is.character(topic))
>>>            topic <- deparse(topic)[1L]
>>>    }
>>>    pkgpaths <- find.package(package, lib.loc, verbose = verbose)
>>>    file <- index.search(topic, pkgpaths, TRUE)
>>>    return(file)
>>> }
>>> 
>>>> example2("deMorgan", package="QCA")
>>> Error in example2("deMorgan", package = "QCA") :
>>>  could not find function "index.search"
>>> 
>>> 
>>> I've tried an explicit library(utils), with the same result.
>>> ?index.search doesn't yield anything better...
>>> 
>>> Could anyone point me in the right direction, please?
>>> Thank you,
>>> Adrian
>>> 
>>> 
>>> --
>>> Adrian Dusa
>>> University of Bucharest
>>> Romanian Social Data Archive
>>> 1, Schitu Magureanu Bd.
>>> 050025 Bucharest sector 5
>>> Romania
>>> Tel.:+40 21 3126618 \
>>>        +40 21 3120210 / int.101
>>> Fax: +40 21 3158391
>>> 
>>> ______________________________________________
>>> R-devel@r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-devel
>> 
>> 
>> 
>> 
>> --
>> Gabriel Becker
>> Graduate Student
>> Statistics Department
>> University of California, Davis
> 
> 
> 
> -- 
> Adrian Dusa
> University of Bucharest
> Romanian Social Data Archive
> 1, Schitu Magureanu Bd.
> 050025 Bucharest sector 5
> Romania
> Tel.:+40 21 3126618 \
>        +40 21 3120210 / int.101
> Fax: +40 21 3158391
> 
> ______________________________________________
> R-devel@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel

        [[alternative HTML version deleted]]

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

Reply via email to