tests/testthat/test-merge.R

datadf <- exdata(1, c(1,4))
datamatrix <- as.matrix(datadf)
etamatrix <- get_eta(est001, output = "num")[c(1,4),]
etavec <- eta(runif(3))

test_that("merge_datadf_etavec() works", {
  merge_dfvec <- merge_datadf_etavec(datadf, etavec)
  expect_s3_class(merge_dfvec, "data.frame")
  expect_named(merge_dfvec, c(names(datadf), names(etavec)))
})

test_that("merge_datadf_etamatrix works", {
  merged_dfmat <- merge_datadf_etamatrix(data_df = datadf, eta_matrix = etamatrix)
  expect_equal(merged_dfmat[["ETA1"]], c(rep(etamatrix[1, "ETA1"], 5), rep(etamatrix[2, "ETA1"], 3)))
})

test_that("merge_datamatrix_etamatrix works", {
  merged_matmat <- merge_datamatrix_etamatrix(data_matrix = datamatrix, eta_matrix = etamatrix)
  expect_equal(
    unname(merged_matmat[,"ETA1"]),
    c(rep(etamatrix[1, "ETA1"], 5), rep(etamatrix[2, "ETA1"], 3))
  )

  expect_error(
    merge_datamatrix_etamatrix(data_matrix = datamatrix[1:5,], eta_matrix = etamatrix),
    "Number of subjects in data is not the number of subjects in 'ETA' matrix"
  )

  etamatrix2 <- etamatrix
  rownames(etamatrix2) <- NULL
  merged_matmat2 <- merge_datamatrix_etamatrix(data_matrix = datamatrix, eta_matrix = etamatrix2)

  expect_equal(merged_matmat, merged_matmat2)
})

test_that("replicate_data works", {
  expect_equal(
    replicate_data(data.frame(ID = c(1,1,2,3,3,3), time = c(0,24,0,0,24,48)), n = 2),
    matrix(c(
      c(1,1,2,3,3,3,4,4,5,6,6,6),
      c(0,24,0,0,24,48,0,24,0,0,24,48)
    ), ncol = 2, dimnames = list(NULL, c("ID","time"))
    )
  )

  rep2 <- replicate_data(data.frame(ID = 1, time = 0.24, evid = 0L, foo = "hello", bar = TRUE), 2)
  expect_equal(rep2,
               matrix(c(1, 0.24, 0, 2, 0.24, 0), ncol = 3, byrow = TRUE,
                     dimnames = list(NULL, c("ID", "time", "evid"))))

})

Try the mapbayr package in your browser

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

mapbayr documentation built on July 26, 2023, 5:16 p.m.