context("Converting data to epicontacts using make_epicontacts")
test_that("Class and content are fine", {
  skip_on_cran()
  x <- make_epicontacts(ebola_sim$linelist,
                        ebola_sim$contacts)
  expect_is(x, "epicontacts")
  expect_is(x$linelist$id, "character")
})
test_that("Errors happen when they should", {
  skip_on_cran()
  ## linelist tests
  msg <- "linelist is NULL"
  expect_error(make_epicontacts(linelist = NULL,
                                contacts = ebola_sim$contacts),
               msg)
  msg <- "linelist is NA"
  expect_error(make_epicontacts(linelist = NA,
                                contacts = ebola_sim$contacts),
               msg)
  msg <- "linelist should have at least one row"
  expect_error(make_epicontacts(linelist = matrix(character(0)),
                                contacts = ebola_sim$contacts),
               msg)
  msg <- "Duplicated IDs detected in the linelist; culprits are: d1fafd f5c3d8"
  expect_error(make_epicontacts(ebola_sim$linelist[c(1,1,2,3,3,4,5,6),],
                                ebola_sim$contacts),
               msg)
  ## contacts tests
  msg <- "contacts is NULL"
  expect_error(make_epicontacts(linelist = ebola_sim$linelist,
                                contacts = NULL),
               msg)
  msg <- "contacts is NA"
  expect_error(make_epicontacts(linelist = ebola_sim$linelist,
                                contacts = NA),
               msg)
  msg <- "contacts should have at least one row"
  expect_error(make_epicontacts(linelist = ebola_sim$linelist,
                                contacts = data.frame(character(0))),
               msg)
  msg <- "contacts should have at least two columns"
  expect_error(make_epicontacts(linelist = ebola_sim$linelist,
                                contacts = data.frame(from = 1:100)),
               msg)
})
test_that("Reordering of columns works", {
  ## reverse data order
  linelist <- ebola_sim$linelist[, rev(seq_len(ncol(ebola_sim$linelist)))]
  contacts <- ebola_sim$contacts[, rev(seq_len(ncol(ebola_sim$contacts)))]
  ## make object
  x <- make_epicontacts(linelist, contacts,
                        id = "case_id",
                        to = "case_id",
                        from = "infector")
  ## tests
  expect_equal(names(x$linelist)[1], "id")
  expect_equal(x$linelist$id, ebola_sim$linelist$case_id)
  expect_equal(names(x$contacts)[c(1,2)], c("from","to"))
  expect_equal(x$contacts$from, ebola_sim$contacts$infector)
  expect_equal(x$contacts$to, ebola_sim$contacts$case_id)
})
test_that("Constructor works with factors", {
  skip_on_cran()
  ## make data
  contacts <- ebola_sim$contacts
  contacts$infector <- factor(contacts$infector)
  contacts$case_id <- factor(contacts$case_id)
  ## run tests
  ref <- make_epicontacts(ebola_sim$linelist,
                          ebola_sim$contacts)
  x <-  make_epicontacts(ebola_sim$linelist,
                          contacts)
  expect_identical(ref, x)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.