# Check that reformat_GSOD functions properly ----------------------------------
test_that("reformat_GSOD file_list parameter reformats data properly", {
skip_if_offline()
do.call(
file.remove,
list(list.files(
tempdir(),
pattern = ".csv$",
full.names = TRUE
))
)
# set up options for curl
url_base <-
"https://www.ncei.noaa.gov/data/global-summary-of-the-day/access/1960/"
test_files <-
c("06600099999.csv", "06620099999.csv")
destinations <- file.path(tempdir(), test_files)
Map(
function(u, d) {
curl::curl_download(u, d, mode = "wb", quiet = TRUE)
},
paste0(url_base, test_files),
destinations
)
file_list <- list.files(
path = tempdir(),
pattern = "^.*\\.csv$",
full.names = TRUE
)
expect_equal(length(file_list), 2)
expect_equal(
basename(file_list),
c(
"06600099999.csv",
"06620099999.csv"
)
)
# check that provided a file list, the function works properly
x <- reformat_GSOD(file_list = file_list)
expect_equal(nrow(x), 722)
expect_length(x, 47)
expect_s3_class(x, "data.table")
# check that provided a dsn only, the function works properly
x <- reformat_GSOD(dsn = tempdir())
expect_equal(nrow(x), 722)
expect_length(x, 47)
expect_s3_class(x, "data.table")
# Check that a message is emitted when both dsn and file_list are set --------
expect_message(
reformat_GSOD(
dsn = tempdir(),
file_list = file_list
),
regexp = "\nYou have specified both `file_list` and `dsn`. *"
)
unlink(destinations)
})
# Check that reformat_GSOD stops if no files are found -------------------------
test_that("reformat_GSOD stops if no files are found", {
skip_if_offline()
expect_error(reformat_GSOD(dsn = "/dev/NULL"))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.