tests/testthat/test-cckde.R

context("Continuous convolution kernel density estimator")

# dummy data
set.seed(5)
dat <- data.frame(
    F1 = factor(rbinom(10, 4, 0.1), 0:4),
    Z1 = ordered(rbinom(10, 5, 0.5), 0:5),
    Z2 = ordered(rpois(10, 1), 0:10),
    X1 = rnorm(10),
    X2 = rexp(10)
)

set.seed(5)
fit <- cckde(dat)

test_that("Recognizes discrete variables", {
    expect_length(attr(fit$x_cc, "i_disc"), 6)
})

test_that("Works with numeric and data.frame input", {
    expect_error(cckde(sapply(dat, as.numeric), bw = 0))
})

test_that("bw parameter works", {
    expect_error(cckde(dat, bw = 0))
    expect_error(cckde(dat, bw = rep(0, 8)))
    bw <- rep(0.5, 8)
    names(bw) <- expand_names(dat)
    new_fit <- cckde(dat, bw = bw)
    expect_equal(new_fit$bw, bw)
})

test_that("mult parameter works", {
    expect_error(cckde(dat, mult = 0))
    set.seed(5)
    new_fit <- cckde(dat, mult = 2)
    expect_equal(2 * fit$bw, new_fit$bw)
    set.seed(5)
    new_fit <- cckde(dat, mult = 1:8)
    expect_equal(1:8 * fit$bw, new_fit$bw)
})

test_that("Density works", {
    expect_error(dcckde(dat, 1))
    expect_is(dcckde(dat[1, ], fit), "numeric")
    expect_gte(min(dcckde(dat, fit)), 0)
    expect_equal(dcckde(dat, fit), predict(fit, dat))
})

Try the cctools package in your browser

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

cctools documentation built on May 2, 2019, 8:51 a.m.