tests/testthat/test-new-distance.R

## Tests for the new distance compiled code

## load packages
library("testthat")
library("analogue")

context("Testing distance compiled code")

## simple example using dummy data
train <- data.frame(matrix(abs(runif(200)), ncol = 10))
rownames(train) <- LETTERS[1:20]
colnames(train) <- as.character(1:10)
fossil <- data.frame(matrix(abs(runif(100)), ncol = 10))
colnames(fossil) <- as.character(1:10)
rownames(fossil) <- letters[1:10]

## Distance methods to check
METHODS <- c("euclidean", "SQeuclidean","chord", "SQchord",
             "bray", "chi.square", "SQchi.square", "information",
             "chi.distance", "manhattan", "kendall", "gower",
             "alt.gower")

## test methods for x and y
test_that("distance matches compiled versions for x and y", {

    ## default settings
    expect_equal(distance(train, fossil),
                 oldDistance(train, fossil))

    ## check all the methods
    for (m in METHODS) {
        ##writeLines(paste("Method:", m))
        expect_equal(distance(train, fossil, method = m),
                     oldDistance(train, fossil, method = m))
    }

})

## METHODS <- c(METHODS, "mixed", "metric-mixed")

## test methods for x only
test_that("distance matches compiled versions for x only", {

    ## default settings
    expect_equal(distance(train), oldDistance(train))

    ## check all the methods
    for (m in METHODS) {
        ##writeLines(paste("Method:", m))
        expect_equal(distance(train, method = m),
                     oldDistance(train, method = m))
    }

})

Try the analogue package in your browser

Any scripts or data that you put into this service are public.

analogue documentation built on June 21, 2021, 1:08 a.m.