Nothing
# WARNING - Generated by {fusen} from dev/flat_teaching.Rmd: do not edit by hand
# Test import_csv functionality
test_that("import_csv reads CSV files correctly", {
# Setup test files
csv_files <- mintyr_example(
mintyr_examples(pattern = "\\.csv$") # Get example CSV files
)
# Test basic functionality with data.table
test_that("import_csv works with data.table package", {
result <- import_csv(csv_files, package = "data.table")
# Check return type
expect_s3_class(result, "data.table")
# Check rbind_label column exists when multiple files
if (length(csv_files) > 1) {
expect_true("_file" %in% names(result))
}
# Check data is not empty
expect_true(nrow(result) > 0)
})
# Test with arrow package
test_that("import_csv works with arrow package", {
skip_if_not_installed("arrow")
result <- import_csv(csv_files, package = "arrow")
# Check return type (arrow converts to data.frame/data.table)
expect_true(is.data.frame(result))
# Check rbind_label column exists when multiple files
if (length(csv_files) > 1) {
expect_true("_file" %in% names(result))
}
})
# Test rbind = FALSE
test_that("import_csv returns list when rbind = FALSE", {
result <- import_csv(csv_files, rbind = FALSE)
# Check return type
expect_type(result, "list")
# Check list names
expect_equal(names(result), tools::file_path_sans_ext(basename(csv_files)))
# Check each element is a data.table
expect_true(all(sapply(result, data.table::is.data.table)))
})
# Test custom rbind_label
test_that("import_csv handles custom rbind_label", {
custom_label <- "source_file"
result <- import_csv(csv_files, rbind_label = custom_label)
if (length(csv_files) > 1) {
expect_true(custom_label %in% names(result))
}
})
})
# Test error handling
test_that("import_csv handles errors appropriately", {
# Setup test files
csv_files <- mintyr_example(
mintyr_examples(pattern = "\\.csv$")
)
# Test invalid file path
expect_error(
import_csv("nonexistent.csv"),
"file must be a vector of existing file paths"
)
# Test invalid package parameter
expect_error(
import_csv(csv_files, package = "invalid"),
"package must be one of 'data.table', 'arrow'"
)
})
# Test edge cases
test_that("import_csv handles edge cases", {
# Setup test files
csv_files <- mintyr_example(
mintyr_examples(pattern = "\\.csv$")
)
# Test single file
test_that("import_csv handles single file correctly", {
single_result <- import_csv(csv_files[1])
# No rbind_label column should be added for single file
expect_false("_file" %in% names(single_result))
})
# Test with NULL rbind_label
test_that("import_csv handles NULL rbind_label", {
result <- import_csv(csv_files, rbind_label = NULL)
expect_s3_class(result, "data.table")
expect_false("_file" %in% names(result))
})
# Test with empty CSV files (if applicable)
# Note: This test depends on your test file structure
# Test with different column structures (if applicable)
# Note: This test depends on your test file structure
})
# Test additional parameters
test_that("import_csv handles additional parameters correctly", {
# Setup test files
csv_files <- mintyr_example(
mintyr_examples(pattern = "\\.csv$")
)
# Test with additional fread/read_csv_arrow parameters
test_that("import_csv passes additional parameters correctly", {
# Test with data.table
result_dt <- import_csv(csv_files, package = "data.table", header = TRUE, sep = ",")
expect_s3_class(result_dt, "data.table")
# Test with arrow
skip_if_not_installed("arrow")
result_arrow <- import_csv(csv_files, package = "arrow", col_names = TRUE)
expect_true(is.data.frame(result_arrow))
})
})
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.