vignettes/tests/test_util_bind.Rmd
test_util_bind.Rmd
library(testthat)
library(jeksterslabRutils)
context("Test util_bind.")
tmp_01 <- util_make_subdir()
tmp_02 <- util_make_subdir()
extdata
to temporary folder
pattern <- "^filename.*"
extdata <- system.file(
"extdata",
"tests",
package = "jeksterslabRutils",
mustWork = TRUE
)
files_from <- list.files(
path = extdata,
pattern = pattern
)
full_path_files_from <- file.path(
extdata,
files_from
)
full_path_files_to <- file.path(
tmp_01,
files_from
)
file.copy(
from = full_path_files_from,
to = full_path_files_to
)
#> [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
root <- basename(tmp_01)
fn_output <- file.path(
tmp_01,
paste0(
root,
".csv"
)
)
fn_column <- TRUE
save <- FALSE
rows <- 1108
columns <- 10
if (fn_column) {
columns <- columns + 1 # columns plus fn_column
}
Variable <- c(
"`tmp_01`",
"`pattern`",
"`fn_column`",
"`save`",
"`rows`",
"`columns`"
)
Description <- c(
"Working directory.",
"Pattern.",
"Save file name of source data file as a new column.",
"Save concatenated files in `csv` format.",
"Number of rows.",
"Number of columns."
)
Value <- c(
tmp_01,
pattern,
fn_column,
save,
rows,
columns
)
knitr::kable(
x = data.frame(
Variable,
Description,
Value
),
row.names = FALSE
)
Variable | Description | Value |
---|---|---|
tmp_01 |
Working directory. | /media/jeksterslab/scripts/r/jeksterslabRutils/vignettes/tests/zgzWIJrW |
pattern |
Pattern. | ^filename.* |
fn_column |
Save file name of source data file as a new column. | TRUE |
save |
Save concatenated files in csv format. |
FALSE |
rows |
Number of rows. | 1108 |
columns |
Number of columns. | 11 |
csv <- util_bind(
dir = tmp_01,
format = "csv",
pattern = "^filename.*",
fn_column = TRUE,
save = TRUE,
save_dir = tmp_01,
par = FALSE
)
#> /media/jeksterslab/scripts/r/jeksterslabRutils/vignettes/tests/zgzWIJrW/zgzWIJrW.csv saved.
xls <- util_bind(
dir = tmp_01,
format = "xls",
pattern = "^filename.*",
fn_column = TRUE,
save = FALSE,
par = FALSE
)
xlsx <- util_bind(
dir = tmp_01,
format = "xlsx",
pattern = "^filename.*",
fn_column = TRUE,
save = FALSE,
par = FALSE
)
csv_row <- nrow(csv)
xls_row <- nrow(xls)
xlsx_row <- nrow(xlsx)
csv_col <- ncol(csv)
xls_col <- ncol(xls)
xlsx_col <- ncol(xlsx)
Item <- c(
"Number of rows.",
"Number of columns."
)
Parameter <- c(
rows,
columns
)
results_csv <- c(
csv_row,
csv_col
)
results_xls <- c(
xls_row,
xls_col
)
results_xlsx <- c(
xlsx_row,
xlsx_col
)
knitr::kable(
x = data.frame(
Item,
Parameter,
results_csv,
results_xls,
results_xlsx
),
col.names = c(
"Item",
"Parameter",
"`format = csv`",
"`format = xls`",
"`format = xlsx`"
),
row.names = FALSE
)
Item | Parameter | format = csv |
format = xls |
format = xlsx |
---|---|---|---|---|
Number of rows. | 1108 | 1108 | 1108 | 1108 |
Number of columns. | 11 | 11 | 11 | 11 |
test_that("rows are correct", {
expect_equivalent(
csv_row,
xls_row,
xlsx_row,
rows
)
})
#> Test passed 🥇
test_that("columns are correct", {
expect_equivalent(
csv_col,
xls_col,
xlsx_col,
columns
)
})
#> Test passed 😀
test_that("external file is saved", {
expect_equivalent(
file.exists(fn_output),
TRUE
)
})
#> Test passed 😸
test_that("tryCatch", {
expect_error(
util_bind(
dir = tmp_02,
format = "csv",
par = FALSE
)
)
expect_error(
util_bind(
dir = tmp_02,
format = "xls",
par = FALSE
)
)
expect_error(
util_bind(
dir = tmp_02,
format = "xlsx",
par = FALSE
)
)
})
#> Test passed 🥳
files_csv <- paste0(
file.path(
tmp_02,
"error"
),
1:5,
".csv"
)
files_xls <- paste0(
file.path(
tmp_02,
"error"
),
1:5,
".xls"
)
fn_xls <- paste0(
"error",
1:5,
".xls"
)
files_xlsx <- paste0(
file.path(
tmp_02,
"error"
),
1:5,
".xlsx"
)
fn_xlsx <- paste0(
"error",
1:5,
".xlsx"
)
sapply(
X = files_csv,
FUN = file.create
)
#> /media/jeksterslab/scripts/r/jeksterslabRutils/vignettes/tests/tIJVFsVD/error1.csv
#> TRUE
#> /media/jeksterslab/scripts/r/jeksterslabRutils/vignettes/tests/tIJVFsVD/error2.csv
#> TRUE
#> /media/jeksterslab/scripts/r/jeksterslabRutils/vignettes/tests/tIJVFsVD/error3.csv
#> TRUE
#> /media/jeksterslab/scripts/r/jeksterslabRutils/vignettes/tests/tIJVFsVD/error4.csv
#> TRUE
#> /media/jeksterslab/scripts/r/jeksterslabRutils/vignettes/tests/tIJVFsVD/error5.csv
#> TRUE
sapply(
X = files_xls,
FUN = file.create
)
#> /media/jeksterslab/scripts/r/jeksterslabRutils/vignettes/tests/tIJVFsVD/error1.xls
#> TRUE
#> /media/jeksterslab/scripts/r/jeksterslabRutils/vignettes/tests/tIJVFsVD/error2.xls
#> TRUE
#> /media/jeksterslab/scripts/r/jeksterslabRutils/vignettes/tests/tIJVFsVD/error3.xls
#> TRUE
#> /media/jeksterslab/scripts/r/jeksterslabRutils/vignettes/tests/tIJVFsVD/error4.xls
#> TRUE
#> /media/jeksterslab/scripts/r/jeksterslabRutils/vignettes/tests/tIJVFsVD/error5.xls
#> TRUE
sapply(
X = files_xlsx,
FUN = file.create
)
#> /media/jeksterslab/scripts/r/jeksterslabRutils/vignettes/tests/tIJVFsVD/error1.xlsx
#> TRUE
#> /media/jeksterslab/scripts/r/jeksterslabRutils/vignettes/tests/tIJVFsVD/error2.xlsx
#> TRUE
#> /media/jeksterslab/scripts/r/jeksterslabRutils/vignettes/tests/tIJVFsVD/error3.xlsx
#> TRUE
#> /media/jeksterslab/scripts/r/jeksterslabRutils/vignettes/tests/tIJVFsVD/error4.xlsx
#> TRUE
#> /media/jeksterslab/scripts/r/jeksterslabRutils/vignettes/tests/tIJVFsVD/error5.xlsx
#> TRUE
test_that("tryCatch", {
expect_error(
util_bind(
dir = tmp_02,
pattern = "^error.*",
format = "csv",
par = FALSE
)
)
expect_error(
util_bind(
dir = tmp_02,
pattern = "^error.*",
format = "xls",
par = FALSE
)
)
expect_error(
util_bind(
dir = tmp_02,
pattern = "^error.*",
format = "xlsx",
par = FALSE
)
)
})
#> Test passed 🎊
util_clean_dir(
dir = tmp_01,
create_dir = FALSE
)
util_clean_dir(
dir = tmp_02,
create_dir = FALSE
)