tests/testthat/test-kernelWeights.R

test_that("the rule-of-thumb bandwidth is invoked with a warning", {
  expect_warning(kernelWeights(1:10, PIT = TRUE), "No bandwidth supplied")
})

test_that("sparse matrices are identical to dense ones", {
  x   <- seq(-5, 5, 0.02)
  g   <- seq(-10, 10, 0.1)
  w1   <- kernelWeights(x, g, bw = 2, kernel = "triangular")
  w2   <- kernelWeights(x, g, bw = 2, kernel = "triangular", sparse = TRUE)
  expect_gt(object.size(w1), 3 * object.size(w2))
  expect_equal(as.vector(w1), as.vector(w2), tolerance = 1e-15)
})

test_that("the kernels have expected properties", {
  x <- seq(-1.50, 1.50, 0.05)
  expect_true(all(kernelWeights(x, xout = 0, bw = 1, kernel = "uniform", order = 2) >= 0))
  expect_true(all(kernelWeights(x, xout = 0, bw = 1, kernel = "uniform", order = 2, convolution = TRUE) >= 0))

  expect_true(all(range(kernelWeights(x, xout = 0, bw = 1, kernel = "uniform", order = 4)) == c(-0.4, 0.95)))
  r <- range(kernelWeights(x, xout = 0, bw = 1, kernel = "epanechnikov", order = 4))
  expect_true(r[1] < 0 & r[2] > 0)
  r <- range(kernelWeights(x, xout = 0, bw = 1, kernel = "quartic", order = 4))
  expect_true(r[1] < 0 & r[2] > 0)
  x <- seq(-5, 5, 0.1)
  r <- range(kernelWeights(x, xout = 0, bw = 1, kernel = "gaussian", order = 4))
  expect_true(r[1] < 0 & r[2] > 0)
})

Try the smoothemplik package in your browser

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

smoothemplik documentation built on Aug. 22, 2025, 1:11 a.m.