tests/testthat/test-vs_nonmem.R

nmphi <- read_nmphi(system.file("nm001", "run001.phi", package = "mapbayr"))
merged <- merge_phi(mapbayr_phi = get_phi(est001), nonmem_phi = nmphi)
summarised <- summarise_phi(merged)

nmphi20 <- read_nmphi(system.file("run20eta.phi", package = "mapbayr"))

test_that("read_nmphi works", {
  expect_equal(nrow(nmphi), 8)
  expect_equal(nmphi$SUBJECT_NO, 1:8)
  expect_equal(nmphi$ID, 1:8)
  expect_named(nmphi, c("SUBJECT_NO", "ID", "ETA1", "ETA2", "ETA3", "ETC1_1", "ETC2_1", "ETC2_2", "ETC3_1", "ETC3_2", "ETC3_3", "OBJ"))

  expect_named(nmphi20[,1:22], c("SUBJECT_NO", "ID", "ETA1", "ETA2", "ETA3", "ETA4", "ETA5",
                          "ETA6", "ETA7", "ETA8", "ETA9", "ETA10", "ETA11", "ETA12", "ETA13",
                          "ETA14", "ETA15", "ETA16", "ETA17", "ETA18", "ETA19", "ETA20"))

})

test_that("merge_phi works", {
  expect_equal(nrow(merged), 8*(3+6+1))
  expect_equal(unique(merged$type), c("ETA", "VARIANCE", "COVARIANCE", "OBJ"))
  expect_named(merged, c("SUBJECT_NO", "ID", "variable", "type", "mapbayr", "nonmem", "adiff"))

  expect_equal(merged$type[merged$variable=="ETA1"], rep("ETA", 8))
  expect_equal(merged$type[merged$variable=="ETA2"], rep("ETA", 8))
  expect_equal(merged$type[merged$variable=="ETA3"], rep("ETA", 8))

  expect_equal(merged$type[merged$variable=="ETC1_1"], rep("VARIANCE", 8))
  expect_equal(merged$type[merged$variable=="ETC2_2"], rep("VARIANCE", 8))
  expect_equal(merged$type[merged$variable=="ETC3_3"], rep("VARIANCE", 8))

  expect_equal(merged$type[merged$variable=="ETC2_1"], rep("COVARIANCE", 8))
  expect_equal(merged$type[merged$variable=="ETC3_1"], rep("COVARIANCE", 8))
  expect_equal(merged$type[merged$variable=="ETC3_2"], rep("COVARIANCE", 8))

  expect_equal(merged$type[merged$variable=="OBJ"], rep("OBJ", 8))

})

test_that("is.variance works", {
  v <- c("ETC11_1", "ETC11_11", "ETC1_1", "ETC1_11", "ETC2_11")
  expect_equal(is.variance(v), c(FALSE, TRUE, TRUE, FALSE, FALSE))
})

test_that("plot_phi works", {
  p <- plot_phi(merged)
  expect_s3_class(p, "ggplot")
  x_labels <- ggplot2::ggplot_build(p)$layout$panel_params[[1]]$x$get_labels()
  expect_equal(x_labels, c("ETA1", "ETA2", "ETA3"))
})

test_that("plot_phi() works if neta > 9", {
  merged12 <- data.frame(
    ID = 1,
    type = "ETA",
    variable = eta_names(eta(n = 12)),
    adiff = abs(rnorm(12))
  )
  p <- plot_phi(merged12)
  x_labels <- ggplot2::ggplot_build(p)$layout$panel_params[[1]]$x$get_labels()

  expect_equal(x_labels, paste0("ETA", 1:12))
})

test_that("summarise_phi works", {
  expect_named(summarised, c("Performance", "count", "prop", "perc"))
  expect_equal(levels(summarised$Performance), c("Excellent", "Acceptable", "Discordant"))

  merge3 <- dplyr::bind_rows(merged, merged, merged, .id = "RUN")
  summarised3 <- summarise_phi(merge3, group = RUN)
  expect_named(summarised3, c("RUN", "Performance", "count", "prop", "perc"))
})

test_that("bar_phi works", {
  p <- bar_phi(summarised)
  expect_s3_class(p, "ggplot")
})

test_that("classify works", {
  expect_equal(as.character(classify(c(0, 0.01, 1))), c("Excellent", "Acceptable", "Discordant"))
  expect_equal(as.character(classify(c(0.0000001, 0.01, 1))), c("Excellent", "Acceptable", "Discordant"))
  cla <- classify(c(0.0000001, 0.00002, 0.005, 1), levels = c(awesome = 0, nice = 0.00001, bad = 0.01))
  expect_equal(as.character(cla), c("awesome", "nice", "nice", "bad"))
})

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.