Nothing
# Tests for kernel functions
test_that("kernel_bartlett produces correct values", {
# At x = 0, should be 1
expect_equal(kernel_bartlett(0), 1)
# At x = 1, should be 0
expect_equal(kernel_bartlett(1), 0)
# At x = 0.5, should be 0.5
expect_equal(kernel_bartlett(0.5), 0.5)
# Symmetric in absolute value
expect_equal(kernel_bartlett(-0.5), kernel_bartlett(0.5))
# Outside [-1, 1], should be 0
expect_equal(kernel_bartlett(2), 0)
expect_equal(kernel_bartlett(-1.5), 0)
})
test_that("kernel_parzen produces correct values", {
# At x = 0, should be 1
expect_equal(kernel_parzen(0), 1)
# At x = 1, should be 0
expect_equal(kernel_parzen(1), 0)
# Symmetric in absolute value
expect_equal(kernel_parzen(-0.3), kernel_parzen(0.3))
# Non-negative
x <- seq(0, 1, by = 0.1)
expect_true(all(kernel_parzen(x) >= 0))
})
test_that("kernel_qs produces correct values", {
# At x = 0, should be 1
expect_equal(kernel_qs(0), 1)
# Symmetric in absolute value
expect_equal(kernel_qs(-0.5), kernel_qs(0.5))
# QS kernel can be negative for some values
# But should be bounded
x <- seq(0, 5, by = 0.1)
vals <- kernel_qs(x)
expect_true(all(abs(vals) <= 1.1)) # Allow small tolerance
})
test_that("get_kernel_function returns correct function", {
expect_identical(get_kernel_function("bartlett"), kernel_bartlett)
expect_identical(get_kernel_function("parzen"), kernel_parzen)
expect_identical(get_kernel_function("qs"), kernel_qs)
# Case insensitive
expect_identical(get_kernel_function("BARTLETT"), kernel_bartlett)
# Invalid kernel
expect_error(get_kernel_function("invalid"), "Unknown kernel")
})
test_that("get_kernel_exponent returns correct values", {
expect_equal(get_kernel_exponent("bartlett"), 1)
expect_equal(get_kernel_exponent("parzen"), 2)
expect_equal(get_kernel_exponent("qs"), 2)
})
test_that("get_kernel_constant returns correct values", {
# Andrews (1991) rate constants
expect_equal(get_kernel_constant("bartlett"), 1.1447)
expect_equal(get_kernel_constant("parzen"), 2.6614)
expect_equal(get_kernel_constant("qs"), 1.3221)
})
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.