skip_connection("ml-feature-dct")
skip_on_livy()
skip_on_arrow_devel()
skip_databricks_connect()
test_that("ft_dct() default params", {
test_requires_version("3.0.0")
sc <- testthat_spark_connection()
test_default_args(sc, ft_dct)
})
test_that("ft_dct() param setting", {
test_requires_version("3.0.0")
sc <- testthat_spark_connection()
test_args <- list(
input_col = "foo",
output_col = "bar",
inverse = TRUE
)
test_param_setting(sc, ft_dct, test_args)
})
test_that("ft_dct() works", {
sc <- testthat_spark_connection()
df <- data.frame(
f1 = c(0, -1, 14),
f2 = c(1, 2, -2),
f3 = c(-2, 4, -5),
f4 = c(3, -7, 1)
)
df_tbl <- copy_to(sc, df, overwrite = TRUE)
expected_out <- list(
c(1.0, -1.1480502970952693, 2.0000000000000004, -2.7716385975338604),
c(-1.0, 3.378492794482933, -7.000000000000001, 2.9301512653149677),
c(4.0, 9.304453421915744, 11.000000000000002, 1.5579302036357163)
)
expect_warning_on_arrow(
out1 <- df_tbl %>%
ft_vector_assembler(as.list(paste0("f", 1:4)), "features") %>%
ft_dct("features", "featuresDCT") %>%
pull(featuresDCT)
)
expect_equal(out1, expected_out)
})
test_that("ft_discrete_cosine_transform() backwards compat", {
sc <- testthat_spark_connection()
expected_out <- list(
c(1.0, -1.1480502970952693, 2.0000000000000004, -2.7716385975338604),
c(-1.0, 3.378492794482933, -7.000000000000001, 2.9301512653149677),
c(4.0, 9.304453421915744, 11.000000000000002, 1.5579302036357163)
)
df_tbl <- testthat_tbl("df")
# check backwards compatibility
expect_warning_on_arrow(
out2 <- df_tbl %>%
ft_vector_assembler(as.list(paste0("f", 1:4)), "features") %>%
ft_discrete_cosine_transform("features", "featuresDCT") %>%
dplyr::pull(featuresDCT)
)
expect_equal(out2, expected_out)
})
test_clear_cache()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.