From noreply at r-forge.r-project.org Sat Oct 31 17:50:14 2009 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Sat, 31 Oct 2009 17:50:14 +0100 (CET) Subject: [Fingerprint-commits] r5 - in pkg: . inst inst/unitTests tests Message-ID: <20091031165014.CAC239CCCD@r-forge.r-project.org> Author: rajarshi Date: 2009-10-31 17:50:14 +0100 (Sat, 31 Oct 2009) New Revision: 5 Added: pkg/inst/ pkg/inst/unitTests/ pkg/inst/unitTests/Makefile pkg/inst/unitTests/runit.fp.R pkg/tests/ pkg/tests/doRUnit.R Log: Added initial unit tests Added: pkg/inst/unitTests/Makefile =================================================================== --- pkg/inst/unitTests/Makefile (rev 0) +++ pkg/inst/unitTests/Makefile 2009-10-31 16:50:14 UTC (rev 5) @@ -0,0 +1,15 @@ +TOP=../.. +PKG=${shell cd ${TOP};pwd} +SUITE=doRUnit.R +R=R + +all: inst test + +inst: # Install package + cd ${TOP}/..;\ + ${R} CMD INSTALL ${PKG} + +test: # Run unit tests + export RCMDCHECK=FALSE;\ + cd ${TOP}/tests;\ + ${R} --vanilla --slave < ${SUITE} Added: pkg/inst/unitTests/runit.fp.R =================================================================== --- pkg/inst/unitTests/runit.fp.R (rev 0) +++ pkg/inst/unitTests/runit.fp.R 2009-10-31 16:50:14 UTC (rev 5) @@ -0,0 +1,5 @@ +test.new.fp <- function() +{ + fp <- new("fingerprint", bits=c(1,2,3,4), nbit=8, provider='rg',name='foo') + checkTrue(!is.null(fp)) +} Added: pkg/tests/doRUnit.R =================================================================== --- pkg/tests/doRUnit.R (rev 0) +++ pkg/tests/doRUnit.R 2009-10-31 16:50:14 UTC (rev 5) @@ -0,0 +1,58 @@ +if(require("RUnit", quietly=TRUE)) { + + ## --- Setup --- + + pkg <- "fingerprint" # <-- Change to package name! + if(Sys.getenv("RCMDCHECK") == "FALSE") { + ## Path to unit tests for standalone running under Makefile (not R CMD check) + ## PKG/tests/../inst/unitTests + path <- file.path(getwd(), "..", "inst", "unitTests") + } else { + ## Path to unit tests for R CMD check + ## PKG.Rcheck/tests/../PKG/unitTests + path <- system.file(package=pkg, "unitTests") + } + cat("\nRunning unit tests\n") + print(list(pkg=pkg, getwd=getwd(), pathToUnitTests=path)) + + library(package=pkg, character.only=TRUE) + + ## If desired, load the name space to allow testing of private functions + ## if (is.element(pkg, loadedNamespaces())) + ## attach(loadNamespace(pkg), name=paste("namespace", pkg, sep=":"), pos=3) + ## + ## or simply call PKG:::myPrivateFunction() in tests + + ## --- Testing --- + + ## Define tests + testSuite <- defineTestSuite(name=paste(pkg, "fingerprint Unit Tests"), + dirs=path) + ## Run + tests <- runTestSuite(testSuite) + + ## Default report name + pathReport <- file.path(path, "report") + + ## Report to stdout and text files + cat("------------------- UNIT TEST SUMMARY ---------------------\n\n") + printTextProtocol(tests, showDetails=FALSE) + printTextProtocol(tests, showDetails=FALSE, + fileName=paste(pathReport, "Summary.txt", sep="")) + printTextProtocol(tests, showDetails=TRUE, + fileName=paste(pathReport, ".txt", sep="")) + + ## Report to HTML file + printHTMLProtocol(tests, fileName=paste(pathReport, ".html", sep="")) + + ## Return stop() to cause R CMD check stop in case of + ## - failures i.e. FALSE to unit tests or + ## - errors i.e. R errors + tmp <- getErrors(tests) + if(tmp$nFail > 0 | tmp$nErr > 0) { + stop(paste("\n\nunit testing failed (#test failures: ", tmp$nFail, + ", #R errors: ", tmp$nErr, ")\n\n", sep="")) + } +} else { + warning("cannot run unit tests -- package RUnit is not available") +} From noreply at r-forge.r-project.org Sat Oct 31 18:25:29 2009 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Sat, 31 Oct 2009 18:25:29 +0100 (CET) Subject: [Fingerprint-commits] r6 - in pkg: . inst/unitTests man Message-ID: <20091031172529.D5BAD9CC49@r-forge.r-project.org> Author: rajarshi Date: 2009-10-31 18:25:29 +0100 (Sat, 31 Oct 2009) New Revision: 6 Modified: pkg/DESCRIPTION pkg/inst/unitTests/runit.fp.R pkg/man/fingerprint.Rd Log: Added more unit tests Modified: pkg/DESCRIPTION =================================================================== --- pkg/DESCRIPTION 2009-10-31 16:50:14 UTC (rev 5) +++ pkg/DESCRIPTION 2009-10-31 17:25:29 UTC (rev 6) @@ -1,6 +1,6 @@ Package: fingerprint -Version: 3.1.2 -Date: 2009-02-24 +Version: 3.2 +Date: 2009-10-31 Title: Functions to operate on binary fingerprint data Author: Rajarshi Guha Maintainer: Rajarshi Guha Modified: pkg/inst/unitTests/runit.fp.R =================================================================== --- pkg/inst/unitTests/runit.fp.R 2009-10-31 16:50:14 UTC (rev 5) +++ pkg/inst/unitTests/runit.fp.R 2009-10-31 17:25:29 UTC (rev 6) @@ -3,3 +3,124 @@ fp <- new("fingerprint", bits=c(1,2,3,4), nbit=8, provider='rg',name='foo') checkTrue(!is.null(fp)) } + +test.distance1 <- function() { + fp1 <- new("fingerprint", + bits=c(1,2,3,4), nbit=8) + fp2 <- new("fingerprint", + bits=c(5,6,7,8), nbit=8) + d <- distance(fp1,fp2) + checkEquals(d, 0) +} + +test.distance2 <- function() { + fp1 <- new("fingerprint", + bits=c(1,2,3,4), nbit=8) + fp2 <- new("fingerprint", + bits=c(1,2,3,4), nbit=8) + d <- distance(fp1,fp2) + checkEquals(d, 1) +} + +test.and1 <- function() { + fp1 <- new("fingerprint", + bits=c(1,2,3,4), nbit=8) + fp2 <- new("fingerprint", + bits=c(1,2,3,4), nbit=8) + fpnew <- fp1 & fp2 + bits <- fpnew at bits + checkTrue( all(bits == c(1,2,3,4))) +} +test.and2 <- function() { + fp1 <- new("fingerprint", + bits=c(1,2,3,4), nbit=8) + fp2 <- new("fingerprint", + bits=c(5,6,7,8), nbit=8) + fpnew <- fp1 & fp2 + bits <- fpnew at bits + checkEquals(length(bits),0) +} + +test.or1 <- function() { + fp1 <- new("fingerprint", + bits=c(1,2,3,4), nbit=8) + fp2 <- new("fingerprint", + bits=c(5,6,7,8), nbit=8) + fpnew <- fp1 | fp2 + bits <- fpnew at bits + checkTrue(all(bits == c(1,2,3,4,5,6,7,8))) +} +test.or2 <- function() { + fp1 <- new("fingerprint", + bits=c(1,2,3,4), nbit=8) + fp2 <- new("fingerprint", + bits=c(1,2,3,4), nbit=8) + fpnew <- fp1 | fp2 + bits <- fpnew at bits + checkTrue(all(bits == c(1,2,3,4))) +} + +test.not <- function() { + fp1 <- new("fingerprint", + bits=c(1,2,3,4), nbit=8) + nfp1 <- !fp1 + checkTrue(all(nfp1 at bits == c(5,6,7,8))) + checkTrue(all(fp1 at bits == (!nfp1)@bits)) +} + +test.xor1 <- function() { + fp1 <- new("fingerprint", + bits=c(1,2,3,4), nbit=8) + fp2 <- new("fingerprint", + bits=c(1,2,3,4), nbit=8) + fpnew <- xor(fp1,fp2) + bits <- fpnew at bits + checkEquals(length(bits),0) +} +test.xor2 <- function() { + fp1 <- new("fingerprint", + bits=c(1,2,3,4), nbit=8) + fp2 <- new("fingerprint", + bits=c(5,6,7,8), nbit=8) + fpnew <- xor(fp1,fp2) + bits <- fpnew at bits + checkEquals(length(bits),8) + checkTrue(all(bits == c(1,2,3,4,5,6,7,8))) +} + +test.fold1 <- function() { + fp1 <- new("fingerprint", + bits=c(1,2,3,4), nbit=8) + nfp <- fold(fp1) + checkTrue(all(nfp at bits == c(1,2,3,4))) +} + +test.fold2 <- function() { + fp1 <- new("fingerprint", + bits=c(1,2,3,4,8), nbit=8) + nfp <- fold(fp1) + checkTrue(all(nfp at bits == c(1,2,3,4))) +} + +test.fp.to.matrix <- function() { + fp1 <- new("fingerprint", bits=c(1,2,3,4), nbit=8) + fp2 <- new("fingerprint", bits=c(5,6,7,8), nbit=8) + fp3 <- new("fingerprint", bits=c(1,2,3,5,6,7,8), nbit=8) + m1 <- fp.to.matrix(list(fp1,fp2,fp3)) + m2 <- rbind(c(1,1,1,1,0,0,0,0), + c(0,0,0,0,1,1,1,1), + c(1,1,1,0,1,1,1,1)) + checkTrue(all(m1 == m2)) +} + +test.fp.sim.matrix <- function() { + fp1 <- new("fingerprint", bits=c(1,2,3,4), nbit=8) + fp2 <- new("fingerprint", bits=c(5,6,7,8), nbit=8) + fp3 <- new("fingerprint", bits=c(1,2,3,5,6,7,8), nbit=8) + fpl <- list(fp1,fp2,fp3) + sm <- round(fp.sim.matrix(fpl),2) + am <- rbind(c(1,0,0.38), + c(0,1,0.57), + c(0.38,0.57,1)) + checkTrue(all(sm == am)) +} Modified: pkg/man/fingerprint.Rd =================================================================== --- pkg/man/fingerprint.Rd 2009-10-31 16:50:14 UTC (rev 5) +++ pkg/man/fingerprint.Rd 2009-10-31 17:25:29 UTC (rev 6) @@ -48,8 +48,7 @@ \item{random.fingerprint}{\code{signature(nbit = "numeric", on = "numeric")}: ... } } } -\references{} -\author{Rajarshi Guha \email{rguha at indiana.edu}} +\author{Rajarshi Guha \email{rajarshi.guha at gmail.com}} \seealso{ \code{\link{fp.read}}, \code{\link{fp.read.to.matrix}} \code{\link{fp.sim.matrix}}, \code{\link{fp.to.matrix}},