Nothing
require(DSLite)
require(DSI)
require(dplyr)
require(dsTidyverse)
require(dsBaseClient)
data("mtcars")
mtcars_dup_names <- cbind(mtcars, tibble(cyl = 2))
test_matrix <- matrix(data = 1:20, ncol = 4)
login_data <- .prepare_dslite(
assign_method = "asTibbleDS",
tables = list(
mtcars = mtcars,
mtcars_dup_names = mtcars_dup_names,
test_matrix = test_matrix
)
)
conns <- datashield.login(logins = login_data)
datashield.assign.table(conns, "mtcars", "mtcars")
datashield.assign.table(conns, "mtcars_dup_names", "mtcars_dup_names")
datashield.assign.table(conns, "test_matrix", "test_matrix")
test_that("ds.as_tibble correctly converts a data frame to a tibble", {
skip_if_not_installed("dsBaseClient")
ds.as_tibble(
x = "mtcars",
newobj = "mtcars_tib",
datasources = conns
)
expect_equal(
ds.class("mtcars_tib", datasources = conns)[[1]],
c("tbl_df", "tbl", "data.frame")
)
expect_equal(
ds.dim("mtcars_tib", datasources = conns)[[1]],
c(32, 11)
)
expect_equal(
ds.colnames("mtcars_tib", datasources = conns)[[1]],
c("mpg", "cyl", "disp", "hp", "drat", "wt", "qsec", "vs", "am", "gear", "carb")
)
})
test_that("ds.as_tibble works with the name_repair argument", {
skip_if_not_installed("dsBaseClient")
ds.as_tibble(
x = "mtcars_dup_names",
.name_repair = "minimal",
newobj = "mtcars_tib_nr",
datasources = conns
)
expect_equal(
ds.class("mtcars_tib_nr", datasources = conns)[[1]],
c("tbl_df", "tbl", "data.frame")
)
expect_equal(
ds.colnames("mtcars_tib_nr", datasources = conns)[[1]],
c("mpg", "cyl", "disp", "hp", "drat", "wt", "qsec", "vs", "am", "gear", "carb", "cyl")
)
ds.as_tibble(
x = "mtcars_dup_names",
.name_repair = "unique",
newobj = "mtcars_tib_nr",
datasources = conns
)
expect_equal(
ds.class("mtcars_tib_nr", datasources = conns)[[1]],
c("tbl_df", "tbl", "data.frame")
)
expect_equal(
ds.colnames("mtcars_tib_nr", datasources = conns)[[1]],
c("mpg", "cyl...2", "disp", "hp", "drat", "wt", "qsec", "vs", "am", "gear", "carb", "cyl...12")
)
expect_error(
ds.as_tibble(
x = "mtcars_dup_names",
.name_repair = "check_unique",
newobj = "mtcars_tib_nr",
datasources = conns
),
)
ds.as_tibble(
x = "mtcars_dup_names",
.name_repair = "universal",
newobj = "mtcars_tib_nr",
datasources = conns
)
expect_equal(
ds.class("mtcars_tib_nr", datasources = conns)[[1]],
c("tbl_df", "tbl", "data.frame")
)
expect_equal(
ds.colnames("mtcars_tib_nr", datasources = conns)[[1]],
c("mpg", "cyl...2", "disp", "hp", "drat", "wt", "qsec", "vs", "am", "gear", "carb", "cyl...12")
)
})
test_that("ds.as_tibble works with the rownames argument", {
skip_if_not_installed("dsBaseClient")
ds.as_tibble(
x = "mtcars",
rownames = NULL,
newobj = "mtcars_tib",
datasources = conns
) ## Not really possible to test clientside as no datashield function to return row names.
expect_equal(
ds.class("mtcars_tib", datasources = conns)[[1]],
c("tbl_df", "tbl", "data.frame")
)
ds.as_tibble(
x = "mtcars",
rownames = NA,
newobj = "mtcars_tib",
datasources = conns
) ## Same - can't test other than the object is created.
expect_equal(
ds.class("mtcars_tib", datasources = conns)[[1]],
c("tbl_df", "tbl", "data.frame")
)
ds.as_tibble(
x = "mtcars",
rownames = "col_with_row_names",
newobj = "mtcars_tib",
datasources = conns
)
expect_equal(
ds.class("mtcars_tib", datasources = conns)[[1]],
c("tbl_df", "tbl", "data.frame")
)
expect_equal(
ds.colnames("mtcars_tib", datasources = conns)[[1]],
c("col_with_row_names", "mpg", "cyl", "disp", "hp", "drat", "wt", "qsec", "vs", "am", "gear", "carb")
)
expect_equal(
ds.class("mtcars_tib$col_with_row_names", datasources = conns)[[1]],
"character"
)
})
test_that("ds.as_tibble works with matrices", {
skip_if_not_installed("dsBaseClient")
ds.as_tibble(
x = "test_matrix",
newobj = "mtcars_tib",
.name_repair = "minimal",
datasources = conns
)
expect_equal(
ds.class("mtcars_tib", datasources = conns)[[1]],
c("tbl_df", "tbl", "data.frame")
)
expect_equal(
ds.colnames("mtcars_tib", datasources = conns)[[1]],
c("", "", "", "")
)
})
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.