Nothing
test_that("tabular_read loads data from different formats", {
# Create test data
test_data <- data.frame(
id = 1:3,
name = c("Alice", "Bob", "Charlie"),
value = c(10.5, 20.3, 30.1),
stringsAsFactors = FALSE
)
# Test CSV round-trip
csv_file <- tempfile(fileext = ".csv")
tabular_write(test_data, csv_file, "csv")
loaded_csv <- tabular_read(csv_file, "csv")
expect_equal(nrow(loaded_csv), 3)
expect_equal(ncol(loaded_csv), 3)
expect_contains(names(loaded_csv), c("id", "name", "value"))
# Test TSV round-trip
tsv_file <- tempfile(fileext = ".tsv")
tabular_write(test_data, tsv_file, "tsv")
loaded_tsv <- tabular_read(tsv_file, "tsv")
expect_equal(nrow(loaded_tsv), 3)
expect_equal(ncol(loaded_tsv), 3)
# Test delim round-trip
delim_file <- tempfile(fileext = ".txt")
tabular_write(test_data, delim_file, "delim")
loaded_delim <- tabular_read(delim_file, "delim")
expect_equal(nrow(loaded_delim), 3)
expect_equal(ncol(loaded_delim), 3)
# Clean up
unlink(c(csv_file, tsv_file, delim_file))
})
test_that("tabular_read handles Excel format when readxl is available", {
skip_if_not_installed("writexl")
skip_if_not_installed("readxl")
test_data <- data.frame(x = 1:3, y = letters[1:3])
xlsx_file <- tempfile(fileext = ".xlsx")
tabular_write(test_data, xlsx_file, "xlsx")
loaded_data <- tabular_read(xlsx_file, "xlsx")
expect_equal(nrow(loaded_data), 3)
expect_equal(ncol(loaded_data), 2)
expect_contains(names(loaded_data), c("x", "y"))
unlink(xlsx_file)
})
test_that("tabular_read handles SPSS format when haven is available", {
skip_if_not_installed("haven")
test_data <- data.frame(x = 1:3, y = letters[1:3])
sav_file <- tempfile(fileext = ".sav")
tabular_write(test_data, sav_file, "sav")
loaded_data <- tabular_read(sav_file, "sav")
expect_equal(nrow(loaded_data), 3)
expect_equal(ncol(loaded_data), 2)
unlink(sav_file)
})
test_that("tabular_read handles Stata format when haven is available", {
skip_if_not_installed("haven")
test_data <- data.frame(x = 1:3, y = letters[1:3])
dta_file <- tempfile(fileext = ".dta")
tabular_write(test_data, dta_file, "dta")
loaded_data <- tabular_read(dta_file, "dta")
expect_equal(nrow(loaded_data), 3)
expect_equal(ncol(loaded_data), 2)
unlink(dta_file)
})
test_that("tabular_read throws error for non-existent files", {
non_existent_file <- "this_file_does_not_exist.csv"
expect_error(
tabular_read(non_existent_file, "csv"),
"File does not exist:"
)
})
test_that("tabular_read throws error for unsupported formats", {
# Create a temporary file
temp_file <- tempfile(fileext = ".txt")
writeLines("test", temp_file)
expect_error(
tabular_read(temp_file, "unsupported_format"),
"Unsupported format: unsupported_format"
)
unlink(temp_file)
})
test_that("tabular functions handle empty data frames", {
empty_data <- data.frame()
temp_file <- tempfile(fileext = ".csv")
# Should handle empty data frame writing
expect_no_error(tabular_write(empty_data, temp_file, "csv"))
expect_true(file.exists(temp_file))
# Reading empty file should work
loaded_empty <- tabular_read(temp_file, "csv")
expect_equal(nrow(loaded_empty), 0)
unlink(temp_file)
})
test_that("tabular functions handle data with special characters", {
special_data <- data.frame(
text = c("Hello, World!", "Café münü", "データ"),
numbers = c(1.5, 2.7, 3.9),
stringsAsFactors = FALSE
)
csv_file <- tempfile(fileext = ".csv")
tabular_write(special_data, csv_file, "csv")
loaded_data <- tabular_read(csv_file, "csv")
expect_equal(nrow(loaded_data), 3)
expect_equal(ncol(loaded_data), 2)
# Note: exact character matching depends on encoding, so we check structure
expect_contains(names(loaded_data), c("text", "numbers"))
unlink(csv_file)
})
test_that("tabular_read passes additional arguments correctly", {
# Create test data with custom column names
test_data <- data.frame(
col1 = 1:3,
col2 = c("a", "b", "c")
)
csv_file <- tempfile(fileext = ".csv")
tabular_write(test_data, csv_file, "csv")
# Test with additional arguments for read_csv
loaded_data <- tabular_read(csv_file, "csv", col_types = "ic")
expect_equal(nrow(loaded_data), 3)
expect_equal(ncol(loaded_data), 2)
unlink(csv_file)
})
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.