tests/testthat/test-download-data.R

context("download-data")

test_that("download_data add_missing", {

  dir <- tempdir()

  file.copy(from = system.file("sqlite", package = "kootqlt", mustWork = TRUE),
            to = dir, recursive = TRUE)

  data <- qlt_download_data(station = "DAL_TA", dir = file.path(dir, "sqlite"))

  expect_is(data, "tbl")
  expect_identical(colnames(data), c(
    "DateTimeReading", "Station", "Value", "Variable", "Units", "Surrogate",
    "Status", "Location"))
  expect_identical(data$Station[1], "DAL_TA")
  expect_identical(nrow(data), 720L)
  expect_identical(sum(is.na(data$Value)), 8L)
  expect_identical(sum(data$Status == "Missing"), 8L)
  expect_identical(poisdata::ps_add_missing_sequence(data, "DateTimeReading")$Value, data$Value)

  data <- qlt_download_data(station = "DAL_TA", dir = file.path(dir, "sqlite"),
                            add_missing = FALSE)
  expect_is(data, "tbl")
  expect_identical(colnames(data), c(
    "DateTimeReading", "Station", "Value", "Variable", "Units", "Surrogate",
    "Status", "Location"))
  expect_identical(nrow(data), 712L)
  expect_identical(sum(is.na(data$Value)), 0L)
  expect_identical(sum(data$Status == "Missing"), 0L)

  data <- qlt_download_data(station = "DAL_TA", status = "erroneous",
                            add_missing = FALSE,
                            dir = file.path(dir, "sqlite"))
  expect_is(data, "tbl")
  expect_identical(colnames(data), c(
    "DateTimeReading", "Station", "Value", "Variable", "Units", "Surrogate",
    "Status", "Location"))
  expect_identical(nrow(data), 715L)
  expect_identical(sum(is.na(data$Value)), 0L)
  expect_identical(sum(data$Status == "Missing"), 0L)
  expect_identical(sum(data$Status == "Erroneous"), 3L)

  data <- qlt_download_data(station = "DAL_TA", status = "reasonable",
                            add_missing = FALSE,
                            dir = file.path(dir, "sqlite"))
  expect_is(data, "tbl")
  expect_identical(colnames(data), c(
    "DateTimeReading", "Station", "Value", "Variable", "Units", "Surrogate",
    "Status", "Location"))
  expect_identical(nrow(data), 687L)
  expect_identical(sum(is.na(data$Value)), 0L)
  expect_identical(sum(data$Status == "Missing"), 0L)

  data <- qlt_download_data(station = "DAL_TA", status = "erroneous",
                            add_missing = FALSE,
                            dir = file.path(dir, "sqlite"))
  expect_is(data, "tbl")
  expect_identical(colnames(data), c(
    "DateTimeReading", "Station", "Value", "Variable", "Units", "Surrogate",
    "Status", "Location"))
  expect_identical(nrow(data), 715L)
  expect_identical(sum(is.na(data$Value)), 0L)
  expect_identical(sum(data$Status == "Missing"), 0L)
  expect_identical(sum(data$Status == "Questionable"), 25L)
  expect_identical(sum(data$Status == "Erroneous"), 3L)

  data <- qlt_download_data(station = "DAL_TA",
                            start_date = as.Date("2017-12-01"),
                            dir = file.path(dir, "sqlite"))
  expect_is(data, "tbl")
  expect_identical(colnames(data), c(
    "DateTimeReading", "Station", "Value", "Variable", "Units", "Surrogate",
    "Status", "Location"))
  expect_identical(nrow(data), 8L)
  expect_identical(sum(is.na(data$Value)), 0L)
  expect_identical(sum(data$Status == "Reasonable"), 8L)
  expect_identical(data$DateTimeReading[1], as.POSIXct("2017-12-01 00:00:00", tz = "Etc/GMT+8"))
  expect_identical(data$DateTimeReading[2], as.POSIXct("2017-12-01 01:00:00", tz = "Etc/GMT+8"))

  data <- qlt_download_data(station = "DAL_TA",
                            dir = file.path(dir, "sqlite"),
                            frequency = "daily")
  expect_is(data, "tbl")
  expect_identical(colnames(data), c(
    "DateTimeReading", "Station", "Value", "Variable", "Units", "Surrogate",
    "Status", "Location"))
  expect_identical(nrow(data), 30L)
  expect_identical(sum(is.na(data$Value)), 0L)
  expect_identical(sum(data$Status == "Reasonable"), 28L)
  expect_identical(data$DateTimeReading[1], as.POSIXct("2017-11-02 00:00:00", tz = "Etc/GMT+8"))
  expect_identical(data$DateTimeReading[2], as.POSIXct("2017-11-03 00:00:00", tz = "Etc/GMT+8"))
})
poissonconsulting/kootqlt documentation built on May 25, 2019, 10:25 a.m.