Nothing
# Create a shortened version of `mtcars`
mtcars_short <- mtcars[1:5, ]
# Function to skip tests if Suggested packages not available on system
check_suggests <- function() {
skip_if_not_installed("rvest")
skip_if_not_installed("xml2")
}
test_that("The `cols_move()` function works correctly", {
# Check that specific suggested packages are available
check_suggests()
# Create a `tbl_html` object with `gt()`; the `mpg`,
# `cyl`, and `drat` columns placed after `drat`
tbl_html <-
gt(mtcars_short) %>%
cols_move(columns = c(mpg, cyl, disp), after = drat)
# Expect a particular ordering of columns in `_boxh`
tbl_html %>%
dt_boxhead_get_vars() %>%
expect_equal(
c(
"hp", "drat", "mpg", "cyl", "disp", "wt",
"qsec", "vs", "am", "gear", "carb"
)
)
# Expect that the columns have the same ordering in
# the rendered table
tbl_html %>%
render_as_html() %>%
xml2::read_html() %>%
rvest::html_nodes("[class='gt_col_heading gt_columns_bottom_border gt_right']") %>%
rvest::html_text() %>%
expect_equal(
c(
"hp", "drat", "mpg", "cyl", "disp", "wt",
"qsec", "vs", "am", "gear", "carb"
)
)
# Create a `tbl_html` object with `gt()`; the `mpg`,
# `cyl`, and `drat` columns placed after `drat` using vectors
tbl_html <-
gt(mtcars_short) %>%
cols_move(columns = c("mpg", "cyl", "disp"), after = c("drat"))
# Expect a particular ordering of columns in `_boxh`
tbl_html %>%
dt_boxhead_get_vars() %>%
expect_equal(
c(
"hp", "drat", "mpg", "cyl", "disp", "wt",
"qsec", "vs", "am", "gear", "carb"
)
)
# Expect that the columns have the same ordering in
# the rendered table
tbl_html %>%
render_as_html() %>%
xml2::read_html() %>%
rvest::html_nodes("[class='gt_col_heading gt_columns_bottom_border gt_right']") %>%
rvest::html_text() %>%
expect_equal(
c(
"hp", "drat", "mpg", "cyl", "disp", "wt",
"qsec", "vs", "am", "gear", "carb"
)
)
# Create a `tbl_html` object with `gt()`; the `mpg`,
# `cyl`, and `drat` columns placed after `carb` (the end of the series)
tbl_html <-
gt(mtcars_short) %>%
cols_move(columns = c(mpg, cyl, disp), after = carb)
# Expect a particular ordering of columns in the internal `boxh_df`
tbl_html %>%
dt_boxhead_get_vars() %>%
expect_equal(
c(
"hp", "drat", "wt", "qsec", "vs", "am",
"gear", "carb", "mpg", "cyl", "disp"
)
)
# Expect that the columns have the same ordering in
# the rendered table
tbl_html %>%
render_as_html() %>%
xml2::read_html() %>%
rvest::html_nodes("[class='gt_col_heading gt_columns_bottom_border gt_right']") %>%
rvest::html_text() %>%
expect_equal(
c(
"hp", "drat", "wt", "qsec", "vs", "am",
"gear", "carb", "mpg", "cyl", "disp"
)
)
# Expect an error if more than one column provided in `after`
expect_error(
gt(mtcars_short) %>%
cols_move(columns = c(mpg, cyl, disp), after = c(am, wt))
)
# Expect an error if the column provided in `after` doesn't exist
expect_error(
gt(mtcars_short) %>%
cols_move(columns = c(mpg, cyl, disp), after = wts)
)
# Expect an error if any of the `columns` doesn't exist in `data_df`
expect_error(
gt(mtcars_short) %>%
cols_move(columns = c(mpg, cyls, disp), after = wt)
)
})
test_that("The `cols_move_to_start()` function works correctly", {
# Check that specific suggested packages are available
check_suggests()
# Create a `tbl_html` object with `gt()`; the `gear`,
# and `carb` columns placed at the start
tbl_html <-
gt(mtcars_short) %>%
cols_move_to_start(columns = c(gear, carb))
# Expect a particular ordering of columns in the internal `boxh_df`
tbl_html %>%
dt_boxhead_get_vars() %>%
expect_equal(
c(
"gear", "carb", "mpg", "cyl", "disp", "hp",
"drat", "wt", "qsec", "vs", "am"
)
)
# Expect that the columns have the same ordering in
# the rendered table
tbl_html %>%
render_as_html() %>%
xml2::read_html() %>%
rvest::html_nodes("[class='gt_col_heading gt_columns_bottom_border gt_right']") %>%
rvest::html_text() %>%
expect_equal(
c(
"gear", "carb", "mpg", "cyl", "disp", "hp",
"drat", "wt", "qsec", "vs", "am"
)
)
# Create a `tbl_html` object with `gt()`; the `gear`,
# and `carb` columns placed at the start using vectors
tbl_html <-
gt(mtcars_short) %>%
cols_move_to_start(columns = c("gear", "carb"))
# Expect a particular ordering of columns in the internal `boxh_df`
tbl_html %>%
dt_boxhead_get_vars() %>%
expect_equal(
c(
"gear", "carb", "mpg", "cyl", "disp", "hp",
"drat", "wt", "qsec", "vs", "am"
)
)
# Expect that the columns have the same ordering in
# the rendered table
tbl_html %>%
render_as_html() %>%
xml2::read_html() %>%
rvest::html_nodes("[class='gt_col_heading gt_columns_bottom_border gt_right']") %>%
rvest::html_text() %>%
expect_equal(
c(
"gear", "carb", "mpg", "cyl", "disp", "hp",
"drat", "wt", "qsec", "vs", "am"
)
)
# Expect an error if any of the `columns` doesn't exist in `data_df`
expect_error(
gt(mtcars_short) %>%
cols_move_to_start(columns = c(mpg, cyls, disp))
)
})
test_that("The `cols_move_to_end()` function works correctly", {
# Check that specific suggested packages are available
check_suggests()
# Create a `tbl_html` object with `gt()`; the `gear`,
# and `carb` columns placed at the end
tbl_html <-
gt(mtcars_short) %>%
cols_move_to_end(columns = c(gear, carb))
# Expect a particular ordering of columns in the internal `boxh_df`
tbl_html %>%
dt_boxhead_get_vars() %>%
expect_equal(
c(
"mpg", "cyl", "disp", "hp", "drat", "wt",
"qsec", "vs", "am", "gear", "carb"
)
)
# Expect that the columns have the same ordering in
# the rendered table
tbl_html %>%
render_as_html() %>%
xml2::read_html() %>%
rvest::html_nodes("[class='gt_col_heading gt_columns_bottom_border gt_right']") %>%
rvest::html_text() %>%
expect_equal(
c(
"mpg", "cyl", "disp", "hp", "drat", "wt",
"qsec", "vs", "am", "gear", "carb"
)
)
# Create a `tbl_html` object with `gt()`; the `gear`,
# and `carb` columns placed at the start using vectors
tbl_html <-
gt(mtcars_short) %>%
cols_move_to_end(columns = c("gear", "carb"))
# Expect a particular ordering of columns in the internal `boxh_df`
tbl_html %>%
dt_boxhead_get_vars() %>%
expect_equal(
c(
"mpg", "cyl", "disp", "hp", "drat", "wt",
"qsec", "vs", "am", "gear", "carb"
)
)
# Expect that the columns have the same ordering in
# the rendered table
tbl_html %>%
render_as_html() %>%
xml2::read_html() %>%
rvest::html_nodes("[class='gt_col_heading gt_columns_bottom_border gt_right']") %>%
rvest::html_text() %>%
expect_equal(
c(
"mpg", "cyl", "disp", "hp", "drat", "wt",
"qsec", "vs", "am", "gear", "carb"
)
)
# Expect an error if any of the `columns` doesn't exist in `data_df`
expect_error(
gt(mtcars_short) %>%
cols_move_to_end(columns = c(mpg, cyls, disp))
)
})
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.