tests/testthat/test-files-sources.R

context("files")

fname <- paste(sample(unlist(strsplit("somecrazyfile", ""))), collapse = "")
test_that("file not found is friendly", {
  skip_on_cran()
  expect_error(tidync(fname))
})

test_that("files and bad files are handled", {
  skip_on_cran()
  l3b_file <- system.file("extdata/oceandata/S2008001.L3b_DAY_RRS.nc", 
                          package = "tidync", mustWork = TRUE)
  expect_error(suppressWarnings(tidync(l3b_file)), 
               "no variables or dimensions") 
  expect_warning(try(tidync(l3b_file), silent = TRUE), 
                 "no dimensions found")
  expect_warning(try(tidync(l3b_file), silent = TRUE), 
                 "no variables found")
  expect_warning(try(tidync(l3b_file), silent = TRUE), 
                 "no variables recognizable")  
  f <- "S20080012008031.L3m_MO_CHL_chlor_a_9km.nc"  
  l3file <- system.file("extdata/oceandata", f, 
                        package= "tidync", mustWork = TRUE)
  
  expect_warning(try(tidync(l3file[c(1, 1)])), 
                 "only one source allowed, first supplied chosen")
  tfile <- tempfile()
  nothingfile <- RNetCDF::create.nc(tfile)
  RNetCDF::close.nc(nothingfile)
  
  expect_warning(ouch <- try(tidync::tidync(tfile), silent = TRUE), 
                 "no dimensions found")
  
  
  tnc <- tidync(l3file)
  tnc$grid <- tnc$grid[0, ]
  expect_output(print(tnc))
})

test_that("verbs have a character method", {
  skip_on_cran()
  f <- "S20080012008031.L3m_MO_CHL_chlor_a_9km.nc"
  l3file <- system.file("extdata/oceandata", f, 
                        package= "tidync", mustWork = TRUE)
  hyper_tibble(l3file, lon = lon < -140, lat = lat > 85) %>% 
    expect_s3_class("tbl_df")
  hyper_filter(l3file, lon = lon < -140, lat = lat > 85) %>% 
    expect_s3_class("tidync")
  expect_warning(hyper_slice(l3file, 
                             lon = lon < -140, 
                             lat = lat > 85, 
                             select_var = "chlor_a")) %>% 
    expect_type("list")
  expect_silent(hyper_array(l3file, lon = lon < -140, lat = lat > 85, 
                            select_var = "chlor_a")) %>% 
    expect_type("list")
  
  hyper_tbl_cube(l3file, lon = lon < -140, lat = lat > 85) %>% 
    expect_s3_class("tbl_cube")
  
})
test_that("RNetCDF fall back works", {
  skip_on_cran()
  ufile <- system.file("extdata", "unidata", "madis-hydro.nc", 
                       package = "tidync", mustWork = TRUE)
  nc_get(ufile, "invTime") %>% expect_is("array") %>% 
    expect_length(1176) #%>% expect_type("double")
  nc_get(ufile, "invTime", test = TRUE) %>% expect_is("array") %>% 
    expect_length(1176) #%>% expect_type("integer")
  
  expect_output({
  expect_error(nc_get(ufile, "notavariable"))
  expect_error(nc_get(ufile, "notavariable", test = TRUE))
  })
})
hypertidy/tidync documentation built on Oct. 27, 2023, 7:07 p.m.