Nothing
test_that("C++ kernels integrate to 1, are symmetrical, and the order is correct", {
ks <- c("uniform", "triangular", "epanechnikov", "quartic", "gaussian")
os <- c(2, 4)
convs <- c(FALSE, TRUE)
par.grid <- expand.grid(kernel = ks, order = os, convolution = convs, stringsAsFactors = FALSE)
m <- t(sapply(seq_len(nrow(par.grid)), function(i) {
f <- function(x) kernelFunCPP(x, kernel = par.grid$kernel[i],
order = par.grid$order[i], convolution = par.grid$convolution[i])
lims <- if (par.grid$convolution[i]) c(-2, 2) else c(-1, 1)
if (par.grid$kernel[i] == "gaussian") lims <- c(-Inf, Inf)
rt <- 1e-13
m0 <- integrate(f, lims[1], lims[2], rel.tol = rt, subdivisions = 200)$value
m1 <- integrate(function(x) x*f(x), lims[1], lims[2], rel.tol = rt, subdivisions = 200)$value
m2 <- integrate(function(x) x^2*f(x), lims[1], lims[2], rel.tol = rt, subdivisions = 200)$value
m3 <- integrate(function(x) x^3*f(x), lims[1], lims[2], rel.tol = rt, subdivisions = 200)$value
m4 <- integrate(function(x) x^4*f(x), lims[1], lims[2], rel.tol = rt, subdivisions = 200)$value
m5 <- integrate(function(x) x^5*f(x), lims[1], lims[2], rel.tol = rt, subdivisions = 200)$value
m6 <- integrate(function(x) x^6*f(x), lims[1], lims[2], rel.tol = rt, subdivisions = 200)$value
c(m0, m1, m2, m3, m4, m5, m6)
}))
expect_equal(m[, 1], rep(1, nrow(m)), tolerance = 1e-11)
expect_equal(m[, 2], rep(0, nrow(m)), tolerance = 1e-11)
expect_equal(m[, 4], rep(0, nrow(m)), tolerance = 1e-11)
expect_equal(m[, 6], rep(0, nrow(m)), tolerance = 1e-11)
# Higher-order kernels have zero variance
expect_equal(m[par.grid$order > 2, 3], rep(0, sum(par.grid$order > 2)), tolerance = 1e-11)
expect_equal(m[par.grid$order > 4, 5], rep(0, sum(par.grid$order > 4)), tolerance = 1e-11)
expect_true(all(m[par.grid$order <= 2, 3] > 1e-8))
expect_true(all(abs(m[par.grid$order <= 4, 5]) > 1e-8))
expect_true(all(abs(m[, 7]) > 1e-8))
})
test_that("kernelFun preserves dimensions and names", {
x <- matrix(1:9, nrow = 3, dimnames = list(c("r1", "r2", "r3"), c("A", "B", "C")))
k <- kernelFun(x)
expect_equal(dimnames(x), dimnames(k))
expect_equal(dim(x), dim(k))
x <- structure(1:12, names = month.abb)
expect_equal(names(x), names(kernelFun(x)))
expect_equal(dim(x), dim(kernelFun(x)))
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.