tests/testthat/test-cwres.R

nmTest({

  test_that("cwres (and focei objective fun) is added to saem with addCwres", {

    .nlmixr <- function(...) suppressWarnings(suppressMessages(nlmixr(...)))

    one.cmt <- function() {
      ini({
        ## You may label each parameter with a comment
        tka <- 0.45 # Ka
        tcl <- log(c(0, 2.7, 100)) # Log Cl
        ## This works with interactive models
        ## You may also label the preceding line with label("label text")
        tv <- 3.45; label("log V")
        ## the label("Label name") works with all models
        eta.ka ~ 0.6
        eta.cl ~ 0.3
        eta.v ~ 0.1
        add.sd <- 0.7
      })
      model({
        ka <- exp(tka + eta.ka)
        cl <- exp(tcl + eta.cl)
        v <- exp(tv + eta.v)
        linCmt() ~ add(add.sd)
      })
    }

    fit <- .nlmixr(one.cmt, theo_sd, est="saem")

    expect_false(all(c("NPDE","EPRED","NPD","NPDE") %in% names(fit)))
    expect_warning(fit$etaSE)
    expect_warning(fit$etaRSE)
    expect_warning(fit$etaR)
    expect_false(any(names(fit$dataMergeInner) == "nlmixrLlikObs"))
    suppressMessages(expect_error(addCwres(fit), NA))
    expect_true(all(c("WRES","CPRED","CRES","CWRES") %in% names(fit)))
    expect_equal(row.names(fit$objDf), "FOCEi")
    expect_false(is.null(fit$etaSE))
    expect_false(is.null(fit$etaRSE))
    expect_false(is.null(fit$etaR))
    expect_true(any(names(fit$dataMergeInner) == "nlmixrLlikObs"))

    fit <- .nlmixr(one.cmt, theo_sd, est="saem")

    expect_false(all(c("WRES","CPRED","CRES","CWRES") %in% names(fit)))
    suppressMessages(expect_error(addCwres(fit, focei=FALSE), NA))
    expect_true(all(c("WRES","CPRED","CRES","CWRES") %in% names(fit)))
    expect_equal(row.names(fit$objDf), "FOCE")

    fit <- .nlmixr(one.cmt, theo_sd, est="saem")

    expect_false(all(c("WRES","CPRED","CRES","CWRES") %in% names(fit)))
    fit2 <- suppressMessages(addCwres(fit, updateObject=FALSE))
    expect_false(all(c("WRES","CPRED","CRES","CWRES") %in% names(fit)))
    expect_true(all(c("WRES","CPRED","CRES","CWRES") %in% names(fit2)))
    expect_equal(row.names(fit2$objDf), "FOCEi")
    expect_false(is.null(fit2$etaSE))

    fit <- .nlmixr(one.cmt, theo_sd, est="saem",
                   table=tableControl(cwres=TRUE))

    expect_true(all(c("WRES","CPRED","CRES","CWRES") %in% names(fit)))
    expect_false(is.null(fit$etaSE))
    expect_false(is.null(fit$etaRSE))
    expect_false(is.null(fit$etaR))
    expect_true(any(names(fit$dataMergeInner) == "nlmixrLlikObs"))
    expect_true(any(names(fit$fitMergeInner) == "nlmixrLlikObs"))

  })

})

Try the nlmixr2est package in your browser

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

nlmixr2est documentation built on Oct. 8, 2023, 9:06 a.m.