# Tests for boxcox transformations.
context("test-func_boxcox")
# -- Test boxcox transformation and backtransformation is working. ----
test_that("boxcox_inverse", {
sales_data <- sales_monthly
# We retrieve the lambdas for the dataset. With these lambdas we can revert
# the boxcox transformation.
lambdas <- tf_get_lambdas(sales_data)
#Apply the boxcox transformation
sales_data_trans <- tf_boxcox(sales_data)
# now we remove the transformation
sales_data_retransformed <- tf_remove_boxcox(sales_data_trans, lambdas) %>%
# we round the numbers in order to compare for resulting differences due to the
# backtransformation
dplyr::mutate(y = round(y,0))
# number of rows with a difference unequal. This means boxcos transformation
# and backtransforamtion isn't working properly.
nrows <- sales_data %>%
dplyr::left_join(
sales_data_retransformed,
by = c("date", "iterate"),
suffix = c("_orig", "_trans")
) %>%
dplyr::mutate(diff = y_orig - y_trans) %>%
dplyr::filter(diff != 0) %>%
nrow()
expect_equal(nrows, 0)
})
# -- Test retrieving the lambdas is working ----
test_that("boxcox_lambda", {
sales_data <- sales_monthly
# get an example lambda value
lambda <- tf_get_lambdas(sales_data) %>%
head(1) %>%
dplyr::pull(lambda) %>%
round(., 7)
expect_equal(0.1017398, lambda)
})
# -- Test the boxcox transformation is working ----
test_that("boxcox_trans", {
sales_data <- sales_monthly
transed_value <- tf_boxcox(sales_data) %>%
head(1) %>%
dplyr::pull(y) %>%
round(., 5)
expect_equal(10.35487, transed_value)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.