local/tests/runit.seeds.R

## if this is set (eg .travis.yml) then run the tesr
.runThisTest <- Sys.getenv("RunAllRcppAnnoyTests") == "yes"

if (.runThisTest) {

    .setup <- function() {
        suppressMessages(library(RcppAnnoy))
    }

    test01seeds <- function() {
        f <- 2

        set.seed(123456)   # R Seed for next two vectors
        n <- 100
        x <- rnorm(n)
        y <- rnorm(n)

        v1 <- new(AnnoyHamming, f)
        v1$setSeed(123)
        for (i in 1:n) v1$addItem(i-1, c(x[i], y[i]))
        v1$build(f)

        v2 <- new(AnnoyHamming, f)
        v2$setSeed(456)  # different
        for (i in 1:n) v2$addItem(i-1, c(x[i], y[i]))
        v2$build(f)

        v3 <- new(AnnoyHamming, f)
        v3$setSeed(123)  # as first
        for (i in 1:n) v3$addItem(i-1, c(x[i], y[i]))
        v3$build(f)

        checkEquals(v1$getNNsByVector(c(0.5,0.5), 20),
                    v3$getNNsByVector(c(0.5,0.5), 20),
                    msg="v1 and v3 are equal")
        checkTrue(any(v1$getNNsByVector(c(0.5,0.5), 20) !=
                      v2$getNNsByVector(c(0.5,0.5), 20)),
                  msg="v1 and v2 are not equal")
    }
}
eddelbuettel/rcppannoy documentation built on Feb. 27, 2024, 4:34 a.m.