Skip to content

Commit b23ae2b

Browse files
committed
Spark should not allow descriptors: .x(), .y(), and .dat()
1 parent 772a542 commit b23ae2b

File tree

2 files changed

+36
-19
lines changed

2 files changed

+36
-19
lines changed

R/descriptors.R

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,9 @@ get_descr_spark <- function(formula, data) {
238238
.n_obs <- function() obs
239239
.n_levs <- function() y_vals
240240
.n_facts <- function() factor_pred
241+
.x <- function() abort("Descriptor `.x()` not defined for Spark.")
242+
.y <- function() abort("Descriptor `.y()` not defined for Spark.")
243+
.dat <- function() abort("Descriptor `.dat()` not defined for Spark.")
241244

242245
# still need .x(), .y(), .dat() ?
243246

@@ -246,10 +249,10 @@ get_descr_spark <- function(formula, data) {
246249
.n_preds = .n_preds,
247250
.n_obs = .n_obs,
248251
.n_levs = .n_levs,
249-
.n_facts = .n_facts #,
250-
# .dat = .dat,
251-
# .x = .x,
252-
# .y = .y
252+
.n_facts = .n_facts,
253+
.dat = .dat,
254+
.x = .x,
255+
.y = .y
253256
)
254257
}
255258

tests/testthat/test_descriptors.R

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,21 @@ context("descriptor variables")
33
library(parsnip)
44

55
template <- function(col, pred, ob, lev, fact, dat, x, y) {
6-
list(.n_cols = col, .n_preds = pred, .n_obs = ob,
7-
.n_levs = lev, .n_facts = fact, .dat = dat, .x = x, .y = y)
6+
lst <- list(.n_cols = col, .n_preds = pred, .n_obs = ob,
7+
.n_levs = lev, .n_facts = fact, .dat = dat,
8+
.x = x, .y = y)
9+
10+
Filter(Negate(is.null), lst)
811
}
912

10-
eval_descrs <- function(descrs) {
13+
eval_descrs <- function(descrs, not = NULL) {
14+
15+
if(!is.null(not)) {
16+
for(descr in not) {
17+
descrs[[descr]] <- NULL
18+
}
19+
}
20+
1121
lapply(descrs, do.call, list())
1222
}
1323

@@ -184,29 +194,33 @@ test_that("spark descriptor", {
184194
npk_descr <- copy_to(sc, npk[, 1:4], "npk_descr", overwrite = TRUE)
185195
iris_descr <- copy_to(sc, iris, "iris_descr", overwrite = TRUE)
186196

197+
# spark does not allow .x, .y, .dat
198+
template2 <- purrr::partial(template, x = NULL, y = NULL, dat = NULL)
199+
eval_descrs2 <- purrr::partial(eval_descrs, not = c(".x", ".y", ".dat"))
200+
187201
expect_equal(
188-
template(4, 5, 150, NA, 1),
189-
get_descr_form(Sepal_Width ~ ., data = iris_descr)
202+
template2(4, 5, 150, NA, 1),
203+
eval_descrs2(get_descr_form(Sepal_Width ~ ., data = iris_descr))
190204
)
191205
expect_equal(
192-
template(1, 2, 150, NA, 1),
193-
get_descr_form(Sepal_Width ~ Species, data = iris_descr)
206+
template2(1, 2, 150, NA, 1),
207+
eval_descrs2(get_descr_form(Sepal_Width ~ Species, data = iris_descr))
194208
)
195209
expect_equal(
196-
template(1, 1, 150, NA, 0),
197-
get_descr_form(Sepal_Width ~ Sepal_Length, data = iris_descr)
210+
template2(1, 1, 150, NA, 0),
211+
eval_descrs2(get_descr_form(Sepal_Width ~ Sepal_Length, data = iris_descr))
198212
)
199213
expect_equivalent(
200-
template(4, 4, 150, species_tab, 0),
201-
get_descr_form(Species ~ ., data = iris_descr)
214+
template2(4, 4, 150, species_tab, 0),
215+
eval_descrs2(get_descr_form(Species ~ ., data = iris_descr))
202216
)
203217
expect_equal(
204-
template(1, 1, 150, species_tab, 0),
205-
get_descr_form(Species ~ Sepal_Length, data = iris_descr)
218+
template2(1, 1, 150, species_tab, 0),
219+
eval_descrs2(get_descr_form(Species ~ Sepal_Length, data = iris_descr))
206220
)
207221
expect_equivalent(
208-
template(3, 7, 24, rev(table(npk$K, dnn = NULL)), 3),
209-
get_descr_form(K ~ ., data = npk_descr)
222+
template2(3, 7, 24, rev(table(npk$K, dnn = NULL)), 3),
223+
eval_descrs2(get_descr_form(K ~ ., data = npk_descr))
210224
)
211225

212226
})

0 commit comments

Comments
 (0)