tests/testthat/test-s4-utils.R

context("test-s4-utils")

#
## s4_to_list
#
test_that("s4_to_list", {
  methods::setClass("Person", slots = c(name = "character", age = "numeric"))
  john <- methods::new("Person", name = "John Smith", age = NA_real_)
  expect_identical(s4_to_list(john), list(name = "John Smith", age = NA_real_))
})

#
## list_to_s4
#
test_that("list_to_s4: typical case", {
  methods::setClass("Person", slots = c(name = "character", age = "numeric"))
  lst <- list(name = "John Smith", age = NA_real_)
  john <- methods::new("Person", name = "John Smith", age = NA_real_)
  expect_identical(list_to_s4(lst, "Person"), john)
})

test_that("list_to_s4: exceptions", {
  methods::setClass("Person", slots = c(name = "character", age = "numeric"))
  # lst is missing an element: age.
  lst <- list(name = "John Smith")
  # lst2 has an extra element: nationality.
  lst2 <- list(name = "Guilhermina I. S. Duarte", age = 39, nationality = 'portuguese')
  expect_error(list_to_s4(lst, "Person"), "names of 'list' do not match 'class'")
  expect_error(list_to_s4(lst2, "Person"), "names of 'list' do not match 'class'")
})

Try the gwasrapidd package in your browser

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

gwasrapidd documentation built on Dec. 28, 2022, 2:16 a.m.