tests/testthat/test-addCwres.R

nmTest({

  test_that("addCwres", {

    one.compartment <- function() {
      ini({
        tka <- log(1.57)
        tcl <- log(2.72)
        tv <- log(31.5)
        add.sd <- 0.7
      })
      model({
        ka <- exp(tka)
        cl <- exp(tcl)
        v <- exp(tv)
        d/dt(depot) <- -ka * depot
        d/dt(center) <- ka * depot - cl / v * center
        cp <- center / v
        cp ~ add(add.sd)
      })
    }

    suppressMessages(
      fitNoEta <- nlmixr2(one.compartment, theo_sd,  est="focei", control = list(print=0))
    )
    expect_true(inherits(fitNoEta$parHistData, "data.frame"))
    expect_error(
      addCwres(fitNoEta),
      regexp = "cannot add CWRES to a model without etas"
    )
  })

  test_that("cwres issue in 3.0.3", {

    skip_if_not(file.exists(test_path("test-cwres-3.0.3.qs")))

    data <- qs::qread(test_path("test-cwres-3.0.3.qs"))

    test_model <- function() {
      ini({
        lcl  <- log(3)
        lvc   <- log(40)
        prop.err <- 0.1
        eta.cl ~ 0.1
        eta.vc  ~ 0.1
        WT_Cl <- fix(0.75)
        ClCrEff <- 1
      })
      model({
        cl<- exp(lcl + eta.cl + WT_Cl * log(Weight/81.60) + ClCrEff * log(ClCr/77.73))
        vc  <- exp(lvc + eta.vc)
        d/dt(A_cen) = - cl/vc * A_cen
        cp = A_cen/vc
        cp ~ prop(prop.err)
      })
    }

    test_run001 <-
      nlmixr2(
        test_model(),
        data,
        "saem",
        control=list(print=0, nBurn=1, nEm=1))

    expect_error(addCwres(test_run001), NA)

  })
})

Try the nlmixr2est package in your browser

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

nlmixr2est documentation built on April 4, 2025, 12:29 a.m.