test_that("modify_StParmCustom works correctly ", { OneCpt_CustomCode <- paste0( "\n\n deriv(A1 = - Cl * C)", "\n\tdosepoint(A1)", "\n\tdosepoint2(A1, tlag = 12)", "\n\tC = A1 / V", "## Residual error model", "\n\terror(CEps = 0.01)", "\n\tobserve(CObs = C + CEps * sqrt(1 + C^2 * (CMultStdev/sigma())^2), bql = 0.01)", "\n\tstparm(V = tvV * exp(nV))", "\n\tstparm(Cl = tvCl * exp(nCl))", "\n\tstparm(CMultStdev = tvCMultStdev)", "\n\tfixef(tvV = c(, 5, ))", "\n\tfixef(tvCl = c(, 1, ))", "\n\tfixef(tvCMultStdev = c(, 0.1, ))", "\n\n\tranef(diag(nV, nCl) = c(1, 1))\n\n" ) modelPMLCodes <- create_CustomSpace(OneCpt_CustomCode) testthat::expect_message( modelPMLCodes <- modify_StParmCustom(modelPMLCodes, "Cl", Type = "Normal"), "Cannot remove nCl ranef statement") testthat::expect_snapshot_value(modelPMLCodes[[1]]$PMLCode) CustomCode <- paste( "deriv(Aa1 = -Ktr * Aa1)", "deriv(Aa2 = Ktr * (Aa1 - Aa2))", "deriv(A1 = Ktr * Aa2 - Cl * C)", "dosepoint(Aa1)", "C = A1 / V", "error(CEps = 0.1)", "observe(CObs = C * (1 + CEps))", "fcovariate(OCC())", "stparm(V = tvV * exp(nV + nVx0*(OCC==1) + nVx1*(OCC==2) + nVx2*(OCC==3)))", "stparm(Cl = tvCl * exp(nCl))", "stparm(Ktr = tvKtr * exp(nKtr))", "fixef(tvV = c(, 5, ))", "fixef(tvCl = c(, 1, ))", "fixef(tvKtr = c(, 1, ))", "ranef(diag(nV) = c(1))", "ranef(diag(nVx0) = c(1), same(nVx1), same(nVx2))", "ranef(diag(nCl) = c(1))", "ranef(diag(nKtr) = c(1))", sep = "\n\t" ) ## Create a simple built-in model and then add a custom model to it models <- create_ModelPK(Absorption = c("First-Order")) models <- add_CustomSpace(models, CustomCode = CustomCode) ## modify V testthat::expect_message( updatedModels <- modify_StParmCustom(models, StParmName = "V", Type = "LogNormal2"), "StParm V in the space PK1FOC is not custom and won't be modified" ) testthat::expect_snapshot_value(updatedModels, style = "json2") })