Nothing
require(DSI)
require(DSLite)
require(dplyr)
require(dsBase)
require(dsBaseClient)
data("mtcars")
mtcars_group <- mtcars %>% group_by(cyl)
login_data <- .prepare_dslite("arrangeDS", NULL, list(mtcars = mtcars, mtcars_group = mtcars_group))
conns <- datashield.login(logins = login_data)
datashield.assign.table(conns, "mtcars", "mtcars")
datashield.assign.table(conns, "mtcars_group", "mtcars_group")
good_arrange_arg <- "mpg, cyl"
test_that("arrangeDS correctly arranges data", {
good_arrange_cally <- .make_tidyverse_call("mtcars", "arrange", good_arrange_arg)
sorted_df <- eval(good_arrange_cally)
expect_equal(
class(sorted_df),
"data.frame"
)
expect_equal(
sorted_df$mpg,
c(
10.4, 10.4, 13.3, 14.3, 14.7, 15.0, 15.2, 15.2, 15.5, 15.8, 16.4, 17.3, 17.8, 18.1, 18.7,
19.2, 19.2, 19.7, 21.0, 21.0, 21.4, 21.4, 21.5, 22.8, 22.8, 24.4, 26.0, 27.3, 30.4, 30.4,
32.4, 33.9
)
)
expect_equal(
sorted_df$cyl,
c(
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 6, 6, 8, 6, 8, 6, 6, 6, 4, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4
)
)
})
test_that("arrangeDS works with .by_group argument", {
by_cally <- .make_tidyverse_call("mtcars_group", "arrange", "drat", ".by_group = TRUE")
no_by_cally <- .make_tidyverse_call("mtcars_group", "arrange", "drat", ".by_group = FALSE")
arrange_by_t <- eval(by_cally)
arrange_by_f <- eval(no_by_cally)
expect_equal(
class(arrange_by_t),
c("grouped_df", "tbl_df", "tbl", "data.frame")
)
expect_equal(
class(arrange_by_f),
c("grouped_df", "tbl_df", "tbl", "data.frame")
)
expect_equal(
arrange_by_t$drat,
c(
3.69, 3.70, 3.77, 3.85, 3.92, 4.08, 4.08, 4.11, 4.22, 4.43, 4.93, 2.76, 3.08, 3.62, 3.90,
3.90, 3.92, 3.92, 2.76, 2.93, 3.00, 3.07, 3.07, 3.07, 3.08, 3.15, 3.15, 3.21, 3.23, 3.54,
3.73, 4.22
)
)
expect_equal(
arrange_by_f$drat,
c(
2.76, 2.76, 2.93, 3.00, 3.07, 3.07, 3.07, 3.08, 3.08, 3.15, 3.15, 3.21, 3.23, 3.54, 3.62,
3.69, 3.70, 3.73, 3.77, 3.85, 3.90, 3.90, 3.92, 3.92, 3.92, 4.08, 4.08, 4.11, 4.22, 4.22,
4.43, 4.93
)
)
})
test_that("arrangeDS works with desc option", {
desc_arrange_arg <- "list(desc(mpg))"
desc_arrange_cally <- .make_tidyverse_call("mtcars", "arrange", desc_arrange_arg)
desc_df <- eval(desc_arrange_cally)
expect_equal(
class(desc_df),
"data.frame"
)
expect_equal(
desc_df$mpg,
c(
21.0, 21.0, 22.8, 21.4, 18.7, 18.1, 14.3, 24.4, 22.8, 19.2, 17.8,
16.4, 17.3, 15.2, 10.4, 10.4, 14.7, 32.4, 30.4, 33.9, 21.5,
15.5, 15.2, 13.3, 19.2, 27.3, 26.0, 30.4, 15.8, 19.7, 15.0, 21.4
)
)
})
test_that("arrangeDS fails when data doesn't exist", {
no_data <- .make_tidyverse_call("doesnt_exist", "arrange", good_arrange_arg)
expect_error(
eval(no_data),
"object 'doesnt_exist' not found"
)
})
test_that("arrangeDS passes when called directly", {
skip_if_not_installed("dsBaseClient")
cally <- call("arrangeDS", "drat", "mtcars", NULL)
datashield.assign(conns, "sorted_df", cally)
expect_equal(
ds.class("sorted_df", datasources = conns)[[1]],
"data.frame"
)
expect_equal(
ds.dim("sorted_df", datasources = conns)[[1]],
c(32, 11)
)
})
test_that("arrangeDS works with desc option when called directly", {
skip_if_not_installed("dsBaseClient")
cally <- call("arrangeDS", "desc$LB$drat$RB$", "mtcars", NULL)
datashield.assign(conns, "sorted_df", cally)
expect_equal(
ds.class("sorted_df", datasources = conns)[[1]],
"data.frame"
)
expect_equal(
ds.dim("sorted_df", datasources = conns)[[1]],
c(32, 11)
)
})
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.