tests/testthat/test-uncode.R

test_that("uncode() works", {
  x <- data.frame(texcl = 1:10)
  expect_equal(uncode(x)$texcl, c("cos", "s", "fs", "vfs", "lcos", "ls", "lfs", "lvfs", "cosl", "sl")) 
})

test_that("uncode() works w/ NASISDomainsAsFactor(TRUE)", {
  NASISDomainsAsFactor(TRUE)
  x <- data.frame(texcl = 1:10)
  expect_equal(uncode(x)$texcl, structure(1:10, .Label = c("cos", "s", "fs", "vfs", "lcos", "ls", 
                                                           "lfs", "lvfs", "cosl", "sl", "fsl", "vfsl", "l", "sil", "si", 
                                                           "scl", "cl", "sicl", "sc", "sic", "c"), class = "factor")) 
  NASISDomainsAsFactor(FALSE)
})

test_that("code() works", {
  x <- data.frame(texcl = c("cos", "s", "fs", "vfs", "lcos", "ls", "lfs", "lvfs", "cosl", "sl"))
  expect_equal(code(x)$texcl, 1:10) 
  
  # heterogeneous names and labels
  x <- data.frame(texcl = c("cos", "Sand", "fs", "vfs", "lcos", "Loamy sand", "lfs", "lvfs", "cosl", "Sandy loam"))
  expect_equal(code(x)$texcl, 1:10) 
})

test_that("code() works w/ NASISDomainsAsFactor(TRUE)", {
  NASISDomainsAsFactor(TRUE)
  x <- data.frame(texcl = c("cos", "s", "fs", "vfs", "lcos", "ls", "lfs", "lvfs", "cosl", "sl"))
  expect_equal(code(x)$texcl, 1:10) 
  NASISDomainsAsFactor(FALSE)
})

test_that("NASISChoiceList() works", {
  x <- NASISChoiceList(1:3, colnames = "texcl")
  expect_equal(x, structure(c(3L, 12L, 5L), .Label = c("c", "cl", "cos", "cosl", 
                                       "fs", "fsl", "l", "lcos", "lfs", "ls", "lvfs", "s", "sc", "scl", 
                                       "si", "sic", "sicl", "sil", "sl", "vfs", "vfsl"), class = "factor"))
  
  x <- NASISChoiceList(1:3, colnames = "pondfreqcl", factor = FALSE)
  expect_equal(x, c('none', 'rare', 'occasional'))
  
  # convert a label to value
  x <- NASISChoiceList("Clay loam", colnames = "texcl", choice = "ChoiceValue")
  expect_equal(x, 17L)

  # ordered factor including obsolete choices
  x <- NASISChoiceList("common", colnames = "flodfreqcl", choice = "ChoiceName", obsolete = TRUE)
  expect_equal(x, structure(5L, .Label = c("none", "very rare", "rare", "occasional", 
                                           "common", "frequent", "very frequent"), 
                            class = c("ordered", "factor")))
  
  # obsolete value, ordered factor excluding obsolete choices
  x <- NASISChoiceList("common", colnames = "flodfreqcl", choice = "ChoiceName")
  expect_equal(x, structure(NA_integer_, levels = c("none", "very rare", "rare", 
                                                   "occasional", "frequent", "very frequent"), 
                            class = c("ordered", "factor")))
})

Try the soilDB package in your browser

Any scripts or data that you put into this service are public.

soilDB documentation built on June 22, 2024, 9:53 a.m.