CRAN Package Check Results for Package babelmixr2

Last updated on 2023-03-30 06:53:08 CEST.

Flavor Version Tinstall Tcheck Ttotal Status Flags
r-devel-linux-x86_64-debian-clang 0.1.0 0.93 2.09 3.02 ERROR
r-devel-linux-x86_64-debian-gcc 0.1.0 43.30 101.20 144.50 ERROR
r-devel-linux-x86_64-fedora-clang 0.1.0 275.30 ERROR
r-devel-linux-x86_64-fedora-gcc 0.1.0 260.95 ERROR
r-devel-windows-x86_64 0.1.0 59.00 13.00 72.00 ERROR
r-patched-linux-x86_64 0.1.0 44.23 126.75 170.98 ERROR
r-release-linux-x86_64 0.1.0 0.73 3.26 3.99 ERROR
r-release-macos-arm64 0.1.0 99.00 NOTE
r-release-macos-x86_64 0.1.0 152.00 NOTE
r-release-windows-x86_64 0.1.0 52.00 10.00 62.00 ERROR
r-oldrel-macos-arm64 0.1.0 92.00 NOTE
r-oldrel-macos-x86_64 0.1.0 158.00 NOTE
r-oldrel-windows-ix86+x86_64 0.1.0 72.00 375.00 447.00 NOTE

Check Details

Version: 0.1.0
Check: package dependencies
Result: ERROR
    Packages required but not available: 'nlmixr2', 'nlmixr2est', 'rxode2'
    
    Package suggested but not available for checking: ‘lixoftConnectors’
    
    See section ‘The DESCRIPTION file’ in the ‘Writing R Extensions’
    manual.
Flavors: r-devel-linux-x86_64-debian-clang, r-release-linux-x86_64

Version: 0.1.0
Check: package dependencies
Result: NOTE
    Package suggested but not available for checking: ‘lixoftConnectors’
Flavors: r-devel-linux-x86_64-debian-gcc, r-devel-linux-x86_64-fedora-clang, r-devel-linux-x86_64-fedora-gcc, r-devel-windows-x86_64, r-patched-linux-x86_64, r-release-macos-arm64, r-release-macos-x86_64, r-release-windows-x86_64, r-oldrel-macos-arm64, r-oldrel-macos-x86_64, r-oldrel-windows-ix86+x86_64

Version: 0.1.0
Check: C++ specification
Result: NOTE
     Specified C++14: please drop specification unless essential
Flavors: r-devel-linux-x86_64-debian-gcc, r-devel-linux-x86_64-fedora-clang, r-devel-linux-x86_64-fedora-gcc, r-patched-linux-x86_64

Version: 0.1.0
Check: examples
Result: ERROR
    Running examples in ‘babelmixr2-Ex.R’ failed
    The error most likely occurred in:
    
    > base::assign(".ptime", proc.time(), pos = "CheckExEnv")
    > ### Name: bblDatToMonolix
    > ### Title: Convert nlmixr2-compatible data to other formats (if possible)
    > ### Aliases: bblDatToMonolix bblDatToNonmem bblDatToRxode bblDatToMrgsolve
    > ### bblDatToPknca
    >
    > ### ** Examples
    >
    >
    > pk.turnover.emax3 <- function() {
    + ini({
    + tktr <- log(1)
    + tka <- log(1)
    + tcl <- log(0.1)
    + tv <- log(10)
    + ##
    + eta.ktr ~ 1
    + eta.ka ~ 1
    + eta.cl ~ 2
    + eta.v ~ 1
    + prop.err <- 0.1
    + pkadd.err <- 0.1
    + ##
    + temax <- logit(0.8)
    + tec50 <- log(0.5)
    + tkout <- log(0.05)
    + te0 <- log(100)
    + ##
    + eta.emax ~ .5
    + eta.ec50 ~ .5
    + eta.kout ~ .5
    + eta.e0 ~ .5
    + ##
    + pdadd.err <- 10
    + })
    + model({
    + ktr <- exp(tktr + eta.ktr)
    + ka <- exp(tka + eta.ka)
    + cl <- exp(tcl + eta.cl)
    + v <- exp(tv + eta.v)
    + emax = expit(temax+eta.emax)
    + ec50 = exp(tec50 + eta.ec50)
    + kout = exp(tkout + eta.kout)
    + e0 = exp(te0 + eta.e0)
    + ##
    + DCP = center/v
    + PD=1-emax*DCP/(ec50+DCP)
    + ##
    + effect(0) = e0
    + kin = e0*kout
    + ##
    + d/dt(depot) = -ktr * depot
    + d/dt(gut) = ktr * depot -ka * gut
    + d/dt(center) = ka * gut - cl / v * center
    + d/dt(effect) = kin*PD -kout*effect
    + ##
    + cp = center / v
    + cp ~ prop(prop.err) + add(pkadd.err)
    + effect ~ add(pdadd.err) | pca
    + })
    + }
    >
    > bblDatToMonolix(pk.turnover.emax3, nlmixr2data::warfarin)
    ℹ parameter labels from comments are typically ignored in non-interactive mode
    ℹ Need to run with the source intact to parse comments
    Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
    Calls: bblDatToMonolix ... as.data.frame -> as.data.frame.list -> do.call -> <Anonymous>
    Execution halted
Flavors: r-devel-linux-x86_64-debian-gcc, r-patched-linux-x86_64

Version: 0.1.0
Check: tests
Result: ERROR
     Running ‘spelling.R’ [0s/1s]
     Running ‘testthat.R’ [15s/24s]
    Running the tests in ‘tests/testthat.R’ failed.
    Complete output:
     > library(testthat)
     > library(babelmixr2)
     Loading required package: nlmixr2
     Loading required package: nlmixr2data
     >
     > test_check("babelmixr2")
     i parameter labels from comments will be replaced by 'label()'
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     i parameter labels from comments will be replaced by 'label()'
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     i change initial estimate of `prop.err` to `15`
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     i parameter labels from comments will be replaced by 'label()'
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     [ FAIL 17 | WARN 0 | SKIP 0 | PASS 227 ]
    
     ══ Failed tests ════════════════════════════════════════════════════════════════
     ── Error ('test-convert.R:27:3'): nonmem amt=0 evid=1 conversion test ──────────
     Error in `(function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE,
     fix.empty.names = TRUE, stringsAsFactors = FALSE)
     {
     data.row.names <- if (check.rows && is.null(row.names))
     function(current, new, i) {
     if (is.character(current))
     new <- as.character(new)
     if (is.character(new))
     current <- as.character(current)
     if (anyDuplicated(new))
     return(current)
     if (is.null(current))
     return(new)
     if (all(current == new) || all(current == ""))
     return(new)
     stop(gettextf("mismatch of row names in arguments of 'data.frame', item %d",
     i), domain = NA)
     }
     else function(current, new, i) {
     if (is.null(current)) {
     if (anyDuplicated(new)) {
     warning(gettextf("some row.names duplicated: %s --> row.names NOT used",
     paste(which(duplicated(new)), collapse = ",")),
     domain = NA)
     current
     }
     else new
     }
     else current
     }
     object <- as.list(substitute(list(...)))[-1L]
     mirn <- missing(row.names)
     mrn <- is.null(row.names)
     x <- list(...)
     n <- length(x)
     if (n < 1L) {
     if (!mrn) {
     if (is.object(row.names) || !is.integer(row.names))
     row.names <- as.character(row.names)
     if (anyNA(row.names))
     stop("row names contain missing values")
     if (anyDuplicated(row.names))
     stop(gettextf("duplicate row.names: %s", paste(unique(row.names[duplicated(row.names)]),
     collapse = ", ")), domain = NA)
     }
     else row.names <- integer()
     return(structure(list(), names = character(), row.names = row.names,
     class = "data.frame"))
     }
     vnames <- names(x)
     if (length(vnames) != n)
     vnames <- character(n)
     no.vn <- !nzchar(vnames)
     vlist <- vnames <- as.list(vnames)
     nrows <- ncols <- integer(n)
     for (i in seq_len(n)) {
     xi <- if (is.character(x[[i]]) || is.list(x[[i]]))
     as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     else as.data.frame(x[[i]], optional = TRUE)
     nrows[i] <- .row_names_info(xi)
     ncols[i] <- length(xi)
     namesi <- names(xi)
     if (ncols[i] > 1L) {
     if (length(namesi) == 0L)
     namesi <- seq_len(ncols[i])
     vnames[[i]] <- if (no.vn[i])
     namesi
     else paste(vnames[[i]], namesi, sep = ".")
     }
     else if (length(namesi)) {
     vnames[[i]] <- namesi
     }
     else if (fix.empty.names && no.vn[[i]]) {
     tmpname <- deparse(object[[i]], nlines = 1L)[1L]
     if (startsWith(tmpname, "I(") && endsWith(tmpname,
     ")")) {
     ntmpn <- nchar(tmpname, "c")
     tmpname <- substr(tmpname, 3L, ntmpn - 1L)
     }
     vnames[[i]] <- tmpname
     }
     if (mirn && nrows[i] > 0L) {
     rowsi <- attr(xi, "row.names")
     if (any(nzchar(rowsi)))
     row.names <- data.row.names(row.names, rowsi,
     i)
     }
     nrows[i] <- abs(nrows[i])
     vlist[[i]] <- xi
     }
     nr <- max(nrows)
     for (i in seq_len(n)[nrows < nr]) {
     xi <- vlist[[i]]
     if (nrows[i] > 0L && (nr%%nrows[i] == 0L)) {
     xi <- unclass(xi)
     fixed <- TRUE
     for (j in seq_along(xi)) {
     xi1 <- xi[[j]]
     if (is.vector(xi1) || is.factor(xi1))
     xi[[j]] <- rep(xi1, length.out = nr)
     else if (is.character(xi1) && inherits(xi1, "AsIs"))
     xi[[j]] <- structure(rep(xi1, length.out = nr),
     class = class(xi1))
     else if (inherits(xi1, "Date") || inherits(xi1,
     "POSIXct"))
     xi[[j]] <- rep(xi1, length.out = nr)
     else {
     fixed <- FALSE
     break
     }
     }
     if (fixed) {
     vlist[[i]] <- xi
     next
     }
     }
     stop(gettextf("arguments imply differing number of rows: %s",
     paste(unique(nrows), collapse = ", ")), domain = NA)
     }
     value <- unlist(vlist, recursive = FALSE, use.names = FALSE)
     vnames <- as.character(unlist(vnames[ncols > 0L]))
     if (fix.empty.names && any(noname <- !nzchar(vnames)))
     vnames[noname] <- paste0("Var.", seq_along(vnames))[noname]
     if (check.names) {
     if (fix.empty.names)
     vnames <- make.names(vnames, unique = TRUE)
     else {
     nz <- nzchar(vnames)
     vnames[nz] <- make.names(vnames[nz], unique = TRUE)
     }
     }
     names(value) <- vnames
     if (!mrn) {
     if (length(row.names) == 1L && nr != 1L) {
     if (is.character(row.names))
     row.names <- match(row.names, vnames, 0L)
     if (length(row.names) != 1L || row.names < 1L ||
     row.names > length(vnames))
     stop("'row.names' should specify one of the variables")
     i <- row.names
     row.names <- value[[i]]
     value <- value[-i]
     }
     else if (!is.null(row.names) && length(row.names) !=
     nr)
     stop("row names supplied are of the wrong length")
     }
     else if (!is.null(row.names) && length(row.names) != nr) {
     warning("row names were found from a short variable and have been discarded")
     row.names <- NULL
     }
     class(value) <- "data.frame"
     if (is.null(row.names))
     attr(value, "row.names") <- .set_row_names(nr)
     else {
     if (is.object(row.names) || !is.integer(row.names))
     row.names <- as.character(row.names)
     if (anyNA(row.names))
     stop("row names contain missing values")
     if (anyDuplicated(row.names))
     stop(gettextf("duplicate row.names: %s", paste(unique(row.names[duplicated(row.names)]),
     collapse = ", ")), domain = NA)
     row.names(value) <- row.names
     }
     value
     })(3L, NULL, check.names = FALSE, fix.empty.names = TRUE, stringsAsFactors = FALSE)`: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. └─babelmixr2::bblDatToNonmem(one.compartment, et) at test-convert.R:27:2
     2. └─babelmixr2:::.bblDatToNonmem(...)
     3. └─nlmixr2est::.foceiPreProcessData(data, .env, model)
     4. └─base::cbind(as.data.frame(.et), .keepL)
     5. └─base::cbind(deparse.level, ...)
     6. └─base::data.frame(..., check.names = FALSE)
     7. ├─base::as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     8. └─base::as.data.frame.list(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     9. ├─base::do.call(data.frame, c(x, alis))
     10. └─base (local) `<fn>`(...)
     11. ├─base::as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     12. └─base::as.data.frame.list(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     13. ├─base::do.call(data.frame, c(x, alis))
     14. └─base (local) `<fn>`(...)
     15. ├─base::as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     16. └─base::as.data.frame.list(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     17. ├─base::do.call(data.frame, c(x, alis))
     18. └─base (local) `<fn>`(...)
     ── Error ('test-convert.R:59:3'): pknca conversion keeps extra columns ─────────
     Error in `(function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE,
     fix.empty.names = TRUE, stringsAsFactors = FALSE)
     {
     data.row.names <- if (check.rows && is.null(row.names))
     function(current, new, i) {
     if (is.character(current))
     new <- as.character(new)
     if (is.character(new))
     current <- as.character(current)
     if (anyDuplicated(new))
     return(current)
     if (is.null(current))
     return(new)
     if (all(current == new) || all(current == ""))
     return(new)
     stop(gettextf("mismatch of row names in arguments of 'data.frame', item %d",
     i), domain = NA)
     }
     else function(current, new, i) {
     if (is.null(current)) {
     if (anyDuplicated(new)) {
     warning(gettextf("some row.names duplicated: %s --> row.names NOT used",
     paste(which(duplicated(new)), collapse = ",")),
     domain = NA)
     current
     }
     else new
     }
     else current
     }
     object <- as.list(substitute(list(...)))[-1L]
     mirn <- missing(row.names)
     mrn <- is.null(row.names)
     x <- list(...)
     n <- length(x)
     if (n < 1L) {
     if (!mrn) {
     if (is.object(row.names) || !is.integer(row.names))
     row.names <- as.character(row.names)
     if (anyNA(row.names))
     stop("row names contain missing values")
     if (anyDuplicated(row.names))
     stop(gettextf("duplicate row.names: %s", paste(unique(row.names[duplicated(row.names)]),
     collapse = ", ")), domain = NA)
     }
     else row.names <- integer()
     return(structure(list(), names = character(), row.names = row.names,
     class = "data.frame"))
     }
     vnames <- names(x)
     if (length(vnames) != n)
     vnames <- character(n)
     no.vn <- !nzchar(vnames)
     vlist <- vnames <- as.list(vnames)
     nrows <- ncols <- integer(n)
     for (i in seq_len(n)) {
     xi <- if (is.character(x[[i]]) || is.list(x[[i]]))
     as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     else as.data.frame(x[[i]], optional = TRUE)
     nrows[i] <- .row_names_info(xi)
     ncols[i] <- length(xi)
     namesi <- names(xi)
     if (ncols[i] > 1L) {
     if (length(namesi) == 0L)
     namesi <- seq_len(ncols[i])
     vnames[[i]] <- if (no.vn[i])
     namesi
     else paste(vnames[[i]], namesi, sep = ".")
     }
     else if (length(namesi)) {
     vnames[[i]] <- namesi
     }
     else if (fix.empty.names && no.vn[[i]]) {
     tmpname <- deparse(object[[i]], nlines = 1L)[1L]
     if (startsWith(tmpname, "I(") && endsWith(tmpname,
     ")")) {
     ntmpn <- nchar(tmpname, "c")
     tmpname <- substr(tmpname, 3L, ntmpn - 1L)
     }
     vnames[[i]] <- tmpname
     }
     if (mirn && nrows[i] > 0L) {
     rowsi <- attr(xi, "row.names")
     if (any(nzchar(rowsi)))
     row.names <- data.row.names(row.names, rowsi,
     i)
     }
     nrows[i] <- abs(nrows[i])
     vlist[[i]] <- xi
     }
     nr <- max(nrows)
     for (i in seq_len(n)[nrows < nr]) {
     xi <- vlist[[i]]
     if (nrows[i] > 0L && (nr%%nrows[i] == 0L)) {
     xi <- unclass(xi)
     fixed <- TRUE
     for (j in seq_along(xi)) {
     xi1 <- xi[[j]]
     if (is.vector(xi1) || is.factor(xi1))
     xi[[j]] <- rep(xi1, length.out = nr)
     else if (is.character(xi1) && inherits(xi1, "AsIs"))
     xi[[j]] <- structure(rep(xi1, length.out = nr),
     class = class(xi1))
     else if (inherits(xi1, "Date") || inherits(xi1,
     "POSIXct"))
     xi[[j]] <- rep(xi1, length.out = nr)
     else {
     fixed <- FALSE
     break
     }
     }
     if (fixed) {
     vlist[[i]] <- xi
     next
     }
     }
     stop(gettextf("arguments imply differing number of rows: %s",
     paste(unique(nrows), collapse = ", ")), domain = NA)
     }
     value <- unlist(vlist, recursive = FALSE, use.names = FALSE)
     vnames <- as.character(unlist(vnames[ncols > 0L]))
     if (fix.empty.names && any(noname <- !nzchar(vnames)))
     vnames[noname] <- paste0("Var.", seq_along(vnames))[noname]
     if (check.names) {
     if (fix.empty.names)
     vnames <- make.names(vnames, unique = TRUE)
     else {
     nz <- nzchar(vnames)
     vnames[nz] <- make.names(vnames[nz], unique = TRUE)
     }
     }
     names(value) <- vnames
     if (!mrn) {
     if (length(row.names) == 1L && nr != 1L) {
     if (is.character(row.names))
     row.names <- match(row.names, vnames, 0L)
     if (length(row.names) != 1L || row.names < 1L ||
     row.names > length(vnames))
     stop("'row.names' should specify one of the variables")
     i <- row.names
     row.names <- value[[i]]
     value <- value[-i]
     }
     else if (!is.null(row.names) && length(row.names) !=
     nr)
     stop("row names supplied are of the wrong length")
     }
     else if (!is.null(row.names) && length(row.names) != nr) {
     warning("row names were found from a short variable and have been discarded")
     row.names <- NULL
     }
     class(value) <- "data.frame"
     if (is.null(row.names))
     attr(value, "row.names") <- .set_row_names(nr)
     else {
     if (is.object(row.names) || !is.integer(row.names))
     row.names <- as.character(row.names)
     if (anyNA(row.names))
     stop("row names contain missing values")
     if (anyDuplicated(row.names))
     stop(gettextf("duplicate row.names: %s", paste(unique(row.names[duplicated(row.names)]),
     collapse = ", ")), domain = NA)
     row.names(value) <- row.names
     }
     value
     })(3L, NULL, check.names = FALSE, fix.empty.names = TRUE, stringsAsFactors = FALSE)`: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─base::suppressMessages(...) at test-convert.R:59:2
     2. │ └─base::withCallingHandlers(...)
     3. └─babelmixr2::bblDatToPknca(one.compartment, et)
     4. └─babelmixr2:::.bblDatToNonmem(...)
     5. └─nlmixr2est::.foceiPreProcessData(data, .env, model)
     6. └─base::cbind(as.data.frame(.et), .keepL)
     7. └─base::cbind(deparse.level, ...)
     8. └─base::data.frame(..., check.names = FALSE)
     9. ├─base::as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     10. └─base::as.data.frame.list(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     11. ├─base::do.call(data.frame, c(x, alis))
     12. └─base (local) `<fn>`(...)
     13. ├─base::as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     14. └─base::as.data.frame.list(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     15. ├─base::do.call(data.frame, c(x, alis))
     16. └─base (local) `<fn>`(...)
     17. ├─base::as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     18. └─base::as.data.frame.list(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     19. ├─base::do.call(data.frame, c(x, alis))
     20. └─base (local) `<fn>`(...)
     ── Error ('test-monolix-read.R:58:5'): test monolix reading for 2019, 2020, and 2021 ──
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-monolix-read.R:58:4
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─nlmixr2::nlmixr(...) at test-monolix-read.R:60:6
     5. └─nlmixr2est:::nlmixr2.function(...)
     6. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-monolix-read.R:147:3'): test more nlmixr2/monolix features ─────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-monolix-read.R:147:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─nlmixr2::nlmixr(...) at test-monolix-read.R:149:4
     5. └─nlmixr2est:::nlmixr2.function(...)
     6. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-monolix-read.R:180:3'): test Monolix pheno ─────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-monolix-read.R:180:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─nlmixr2::nlmixr(pheno, nlmixr2data::pheno_sd, "monolix", control = monolixControl(modelName = "pheno")) at test-monolix-read.R:182:4
     5. └─nlmixr2est:::nlmixr2.function(...)
     6. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Failure ('test-monolix-read.R:290:3'): pbpk mavoglurant ─────────────────────
     `bblDatToMonolix(pbpk, nlmixr2data::mavoglurant)` threw an unexpected error.
     Message: arguments imply differing number of rows: 1, 0
     Class: simpleError/error/condition
     Backtrace:
     ▆
     1. ├─testthat::expect_error(...) at test-monolix-read.R:290:2
     2. │ └─testthat:::expect_condition_matching(...)
     3. │ └─testthat:::quasi_capture(...)
     4. │ ├─testthat (local) .capture(...)
     5. │ │ └─base::withCallingHandlers(...)
     6. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
     7. └─babelmixr2::bblDatToMonolix(pbpk, nlmixr2data::mavoglurant)
     8. └─nlmixr2est::.foceiPreProcessData(data, .env, model)
     9. └─base::cbind(as.data.frame(.et), .keepL)
     10. └─base::cbind(deparse.level, ...)
     11. └─base::data.frame(..., check.names = FALSE)
     12. ├─base::as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     13. └─base::as.data.frame.list(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     14. ├─base::do.call(data.frame, c(x, alis))
     15. └─base (local) `<fn>`(...)
     16. ├─base::as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     17. └─base::as.data.frame.list(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     18. ├─base::do.call(data.frame, c(x, alis))
     19. └─base (local) `<fn>`(...)
     20. ├─base::as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     21. └─base::as.data.frame.list(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     22. ├─base::do.call(data.frame, c(x, alis))
     23. └─base (local) `<fn>`(...)
     ── Error ('test-monolix-read.R:294:3'): pbpk mavoglurant ───────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-monolix-read.R:294:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─nlmixr2::nlmixr(pbpk, nlmixr2data::mavoglurant, "monolix", control = monolixControl(modelName = "pbpk")) at test-monolix-read.R:296:4
     5. └─nlmixr2est:::nlmixr2.function(...)
     6. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-monolix-read.R:358:3'): nimo test ──────────────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-monolix-read.R:358:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─base::suppressWarnings(...) at test-monolix-read.R:360:4
     5. │ └─base::withCallingHandlers(...)
     6. └─nlmixr2::nlmixr2(nimo, tmp, "monolix", control = monolixControl(modelName = "nimo"))
     7. ├─nlmixr2est::nlmixr2(...)
     8. └─nlmixr2est:::nlmixr2.function(...)
     9. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-monolix-read.R:429:3'): Monolix wbc ────────────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-monolix-read.R:429:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─base::suppressWarnings(...) at test-monolix-read.R:432:4
     5. │ └─base::withCallingHandlers(...)
     6. └─nlmixr2::nlmixr2(wbc, nlmixr2data::wbcSim, "monolix", control = monolixControl(modelName = "wbc"))
     7. ├─nlmixr2est::nlmixr2(...)
     8. └─nlmixr2est:::nlmixr2.function(...)
     9. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-monolix-read.R:464:3'): Monolix wbc test 2 ─────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-monolix-read.R:464:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─wbc %>% ini(prop.err = 15) %>% ... at test-monolix-read.R:467:4
     5. └─nlmixr2::nlmixr2(., nlmixr2data::wbcSim, "monolix", control = monolixControl(modelName = "x"))
     6. ├─nlmixr2est::nlmixr2(...)
     7. └─nlmixr2est:::nlmixr2.rxUi(...)
     8. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Failure ('test-nonmem-pred.R:24:3'): nonmem $pred model ─────────────────────
     `nlmixr(ipredWang2007, dat, "nonmem")` threw an unexpected error.
     Message: arguments imply differing number of rows: 1, 0
     Class: simpleError/error/condition
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-nonmem-pred.R:24:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─testthat::expect_error(...) at test-nonmem-pred.R:26:4
     5. │ └─testthat:::expect_condition_matching(...)
     6. │ └─testthat:::quasi_capture(...)
     7. │ ├─testthat (local) .capture(...)
     8. │ │ └─base::withCallingHandlers(...)
     9. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
     10. ├─nlmixr2est::nlmixr(ipredWang2007, dat, "nonmem")
     11. └─nlmixr2est:::nlmixr2.function(ipredWang2007, dat, "nonmem")
     12. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-nonmem-read.R:59:3'): warfarin NONMEM reading ──────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-nonmem-read.R:59:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─nlmixr2est::nlmixr(...) at test-nonmem-read.R:69:4
     5. └─nlmixr2est:::nlmixr2.function(...)
     6. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-nonmem-read.R:126:3'): pheno NONMEM reading ────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-nonmem-read.R:126:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─nlmixr2::nlmixr(pheno, nlmixr2data::pheno_sd, "nonmem", control = nonmemControl(modelName = "pheno")) at test-nonmem-read.R:128:4
     5. └─nlmixr2est:::nlmixr2.function(...)
     6. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-nonmem-read.R:195:3'): wbc NONMEM reading ──────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-nonmem-read.R:195:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. └─nlmixr2::nlmixr2(...) at test-nonmem-read.R:202:4
     5. ├─nlmixr2est::nlmixr2(...)
     6. └─nlmixr2est:::nlmixr2.function(...)
     7. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-nonmem.R:148:7'): NONMEM dsl, full model ───────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─testthat::expect_message(...) at test-nonmem.R:148:6
     2. │ └─testthat:::expect_condition_matching(...)
     3. │ └─testthat:::quasi_capture(...)
     4. │ ├─testthat (local) .capture(...)
     5. │ │ └─base::withCallingHandlers(...)
     6. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
     7. ├─nlmixr2est::nlmixr(...)
     8. └─nlmixr2est:::nlmixr2.function(...)
     9. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-pknca.R:20:3'): est='pknca' ────────────────────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─base::suppressMessages(...) at test-pknca.R:20:2
     2. │ └─base::withCallingHandlers(...)
     3. ├─testthat::expect_s3_class(...)
     4. │ └─testthat::quasi_label(enquo(object), arg = "object")
     5. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     6. ├─nlmixr2est::nlmixr(...)
     7. └─nlmixr2est:::nlmixr2.function(...)
     8. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-pknca.R:144:3'): dvParam ───────────────────────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─base::suppressMessages(...) at test-pknca.R:144:2
     2. │ └─base::withCallingHandlers(...)
     3. ├─testthat::expect_s3_class(...)
     4. │ └─testthat::quasi_label(enquo(object), arg = "object")
     5. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     6. ├─nlmixr2est::nlmixr(...)
     7. └─nlmixr2est:::nlmixr2.function(...)
     8. └─nlmixr2est:::nlmixr2Est0(.env)
    
     [ FAIL 17 | WARN 0 | SKIP 0 | PASS 227 ]
     Error: Test failures
     Execution halted
Flavor: r-devel-linux-x86_64-debian-gcc

Version: 0.1.0
Check: examples
Result: ERROR
    Running examples in ‘babelmixr2-Ex.R’ failed
    The error most likely occurred in:
    
    > ### Name: bblDatToMonolix
    > ### Title: Convert nlmixr2-compatible data to other formats (if possible)
    > ### Aliases: bblDatToMonolix bblDatToNonmem bblDatToRxode bblDatToMrgsolve
    > ### bblDatToPknca
    >
    > ### ** Examples
    >
    >
    > pk.turnover.emax3 <- function() {
    + ini({
    + tktr <- log(1)
    + tka <- log(1)
    + tcl <- log(0.1)
    + tv <- log(10)
    + ##
    + eta.ktr ~ 1
    + eta.ka ~ 1
    + eta.cl ~ 2
    + eta.v ~ 1
    + prop.err <- 0.1
    + pkadd.err <- 0.1
    + ##
    + temax <- logit(0.8)
    + tec50 <- log(0.5)
    + tkout <- log(0.05)
    + te0 <- log(100)
    + ##
    + eta.emax ~ .5
    + eta.ec50 ~ .5
    + eta.kout ~ .5
    + eta.e0 ~ .5
    + ##
    + pdadd.err <- 10
    + })
    + model({
    + ktr <- exp(tktr + eta.ktr)
    + ka <- exp(tka + eta.ka)
    + cl <- exp(tcl + eta.cl)
    + v <- exp(tv + eta.v)
    + emax = expit(temax+eta.emax)
    + ec50 = exp(tec50 + eta.ec50)
    + kout = exp(tkout + eta.kout)
    + e0 = exp(te0 + eta.e0)
    + ##
    + DCP = center/v
    + PD=1-emax*DCP/(ec50+DCP)
    + ##
    + effect(0) = e0
    + kin = e0*kout
    + ##
    + d/dt(depot) = -ktr * depot
    + d/dt(gut) = ktr * depot -ka * gut
    + d/dt(center) = ka * gut - cl / v * center
    + d/dt(effect) = kin*PD -kout*effect
    + ##
    + cp = center / v
    + cp ~ prop(prop.err) + add(pkadd.err)
    + effect ~ add(pdadd.err) | pca
    + })
    + }
    >
    > bblDatToMonolix(pk.turnover.emax3, nlmixr2data::warfarin)
    ℹ parameter labels from comments are typically ignored in non-interactive mode
    ℹ Need to run with the source intact to parse comments
    Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
    Calls: bblDatToMonolix ... as.data.frame -> as.data.frame.list -> do.call -> <Anonymous>
    Execution halted
Flavors: r-devel-linux-x86_64-fedora-clang, r-devel-linux-x86_64-fedora-gcc

Version: 0.1.0
Check: tests
Result: ERROR
     Running ‘spelling.R’
     Running ‘testthat.R’ [26s/94s]
    Running the tests in ‘tests/testthat.R’ failed.
    Complete output:
     > library(testthat)
     > library(babelmixr2)
     Loading required package: nlmixr2
     Loading required package: nlmixr2data
     >
     > test_check("babelmixr2")
     i parameter labels from comments will be replaced by 'label()'
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     i parameter labels from comments will be replaced by 'label()'
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     i change initial estimate of `prop.err` to `15`
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     i parameter labels from comments will be replaced by 'label()'
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     [ FAIL 17 | WARN 0 | SKIP 0 | PASS 227 ]
    
     ══ Failed tests ════════════════════════════════════════════════════════════════
     ── Error ('test-convert.R:27:3'): nonmem amt=0 evid=1 conversion test ──────────
     Error in `(function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE,
     fix.empty.names = TRUE, stringsAsFactors = FALSE)
     {
     data.row.names <- if (check.rows && is.null(row.names))
     function(current, new, i) {
     if (is.character(current))
     new <- as.character(new)
     if (is.character(new))
     current <- as.character(current)
     if (anyDuplicated(new))
     return(current)
     if (is.null(current))
     return(new)
     if (all(current == new) || all(current == ""))
     return(new)
     stop(gettextf("mismatch of row names in arguments of 'data.frame', item %d",
     i), domain = NA)
     }
     else function(current, new, i) {
     if (is.null(current)) {
     if (anyDuplicated(new)) {
     warning(gettextf("some row.names duplicated: %s --> row.names NOT used",
     paste(which(duplicated(new)), collapse = ",")),
     domain = NA)
     current
     }
     else new
     }
     else current
     }
     object <- as.list(substitute(list(...)))[-1L]
     mirn <- missing(row.names)
     mrn <- is.null(row.names)
     x <- list(...)
     n <- length(x)
     if (n < 1L) {
     if (!mrn) {
     if (is.object(row.names) || !is.integer(row.names))
     row.names <- as.character(row.names)
     if (anyNA(row.names))
     stop("row names contain missing values")
     if (anyDuplicated(row.names))
     stop(gettextf("duplicate row.names: %s", paste(unique(row.names[duplicated(row.names)]),
     collapse = ", ")), domain = NA)
     }
     else row.names <- integer()
     return(structure(list(), names = character(), row.names = row.names,
     class = "data.frame"))
     }
     vnames <- names(x)
     if (length(vnames) != n)
     vnames <- character(n)
     no.vn <- !nzchar(vnames)
     vlist <- vnames <- as.list(vnames)
     nrows <- ncols <- integer(n)
     for (i in seq_len(n)) {
     xi <- if (is.character(x[[i]]) || is.list(x[[i]]))
     as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     else as.data.frame(x[[i]], optional = TRUE)
     nrows[i] <- .row_names_info(xi)
     ncols[i] <- length(xi)
     namesi <- names(xi)
     if (ncols[i] > 1L) {
     if (length(namesi) == 0L)
     namesi <- seq_len(ncols[i])
     vnames[[i]] <- if (no.vn[i])
     namesi
     else paste(vnames[[i]], namesi, sep = ".")
     }
     else if (length(namesi)) {
     vnames[[i]] <- namesi
     }
     else if (fix.empty.names && no.vn[[i]]) {
     tmpname <- deparse(object[[i]], nlines = 1L)[1L]
     if (startsWith(tmpname, "I(") && endsWith(tmpname,
     ")")) {
     ntmpn <- nchar(tmpname, "c")
     tmpname <- substr(tmpname, 3L, ntmpn - 1L)
     }
     vnames[[i]] <- tmpname
     }
     if (mirn && nrows[i] > 0L) {
     rowsi <- attr(xi, "row.names")
     if (any(nzchar(rowsi)))
     row.names <- data.row.names(row.names, rowsi,
     i)
     }
     nrows[i] <- abs(nrows[i])
     vlist[[i]] <- xi
     }
     nr <- max(nrows)
     for (i in seq_len(n)[nrows < nr]) {
     xi <- vlist[[i]]
     if (nrows[i] > 0L && (nr%%nrows[i] == 0L)) {
     xi <- unclass(xi)
     fixed <- TRUE
     for (j in seq_along(xi)) {
     xi1 <- xi[[j]]
     if (is.vector(xi1) || is.factor(xi1))
     xi[[j]] <- rep(xi1, length.out = nr)
     else if (is.character(xi1) && inherits(xi1, "AsIs"))
     xi[[j]] <- structure(rep(xi1, length.out = nr),
     class = class(xi1))
     else if (inherits(xi1, "Date") || inherits(xi1,
     "POSIXct"))
     xi[[j]] <- rep(xi1, length.out = nr)
     else {
     fixed <- FALSE
     break
     }
     }
     if (fixed) {
     vlist[[i]] <- xi
     next
     }
     }
     stop(gettextf("arguments imply differing number of rows: %s",
     paste(unique(nrows), collapse = ", ")), domain = NA)
     }
     value <- unlist(vlist, recursive = FALSE, use.names = FALSE)
     vnames <- as.character(unlist(vnames[ncols > 0L]))
     if (fix.empty.names && any(noname <- !nzchar(vnames)))
     vnames[noname] <- paste0("Var.", seq_along(vnames))[noname]
     if (check.names) {
     if (fix.empty.names)
     vnames <- make.names(vnames, unique = TRUE)
     else {
     nz <- nzchar(vnames)
     vnames[nz] <- make.names(vnames[nz], unique = TRUE)
     }
     }
     names(value) <- vnames
     if (!mrn) {
     if (length(row.names) == 1L && nr != 1L) {
     if (is.character(row.names))
     row.names <- match(row.names, vnames, 0L)
     if (length(row.names) != 1L || row.names < 1L ||
     row.names > length(vnames))
     stop("'row.names' should specify one of the variables")
     i <- row.names
     row.names <- value[[i]]
     value <- value[-i]
     }
     else if (!is.null(row.names) && length(row.names) !=
     nr)
     stop("row names supplied are of the wrong length")
     }
     else if (!is.null(row.names) && length(row.names) != nr) {
     warning("row names were found from a short variable and have been discarded")
     row.names <- NULL
     }
     class(value) <- "data.frame"
     if (is.null(row.names))
     attr(value, "row.names") <- .set_row_names(nr)
     else {
     if (is.object(row.names) || !is.integer(row.names))
     row.names <- as.character(row.names)
     if (anyNA(row.names))
     stop("row names contain missing values")
     if (anyDuplicated(row.names))
     stop(gettextf("duplicate row.names: %s", paste(unique(row.names[duplicated(row.names)]),
     collapse = ", ")), domain = NA)
     row.names(value) <- row.names
     }
     value
     })(3L, NULL, check.names = FALSE, fix.empty.names = TRUE, stringsAsFactors = FALSE)`: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. └─babelmixr2::bblDatToNonmem(one.compartment, et) at test-convert.R:27:2
     2. └─babelmixr2:::.bblDatToNonmem(...)
     3. └─nlmixr2est::.foceiPreProcessData(data, .env, model)
     4. └─base::cbind(as.data.frame(.et), .keepL)
     5. └─base::cbind(deparse.level, ...)
     6. └─base::data.frame(..., check.names = FALSE)
     7. ├─base::as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     8. └─base::as.data.frame.list(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     9. ├─base::do.call(data.frame, c(x, alis))
     10. └─base (local) `<fn>`(...)
     11. ├─base::as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     12. └─base::as.data.frame.list(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     13. ├─base::do.call(data.frame, c(x, alis))
     14. └─base (local) `<fn>`(...)
     15. ├─base::as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     16. └─base::as.data.frame.list(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     17. ├─base::do.call(data.frame, c(x, alis))
     18. └─base (local) `<fn>`(...)
     ── Error ('test-convert.R:59:3'): pknca conversion keeps extra columns ─────────
     Error in `(function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE,
     fix.empty.names = TRUE, stringsAsFactors = FALSE)
     {
     data.row.names <- if (check.rows && is.null(row.names))
     function(current, new, i) {
     if (is.character(current))
     new <- as.character(new)
     if (is.character(new))
     current <- as.character(current)
     if (anyDuplicated(new))
     return(current)
     if (is.null(current))
     return(new)
     if (all(current == new) || all(current == ""))
     return(new)
     stop(gettextf("mismatch of row names in arguments of 'data.frame', item %d",
     i), domain = NA)
     }
     else function(current, new, i) {
     if (is.null(current)) {
     if (anyDuplicated(new)) {
     warning(gettextf("some row.names duplicated: %s --> row.names NOT used",
     paste(which(duplicated(new)), collapse = ",")),
     domain = NA)
     current
     }
     else new
     }
     else current
     }
     object <- as.list(substitute(list(...)))[-1L]
     mirn <- missing(row.names)
     mrn <- is.null(row.names)
     x <- list(...)
     n <- length(x)
     if (n < 1L) {
     if (!mrn) {
     if (is.object(row.names) || !is.integer(row.names))
     row.names <- as.character(row.names)
     if (anyNA(row.names))
     stop("row names contain missing values")
     if (anyDuplicated(row.names))
     stop(gettextf("duplicate row.names: %s", paste(unique(row.names[duplicated(row.names)]),
     collapse = ", ")), domain = NA)
     }
     else row.names <- integer()
     return(structure(list(), names = character(), row.names = row.names,
     class = "data.frame"))
     }
     vnames <- names(x)
     if (length(vnames) != n)
     vnames <- character(n)
     no.vn <- !nzchar(vnames)
     vlist <- vnames <- as.list(vnames)
     nrows <- ncols <- integer(n)
     for (i in seq_len(n)) {
     xi <- if (is.character(x[[i]]) || is.list(x[[i]]))
     as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     else as.data.frame(x[[i]], optional = TRUE)
     nrows[i] <- .row_names_info(xi)
     ncols[i] <- length(xi)
     namesi <- names(xi)
     if (ncols[i] > 1L) {
     if (length(namesi) == 0L)
     namesi <- seq_len(ncols[i])
     vnames[[i]] <- if (no.vn[i])
     namesi
     else paste(vnames[[i]], namesi, sep = ".")
     }
     else if (length(namesi)) {
     vnames[[i]] <- namesi
     }
     else if (fix.empty.names && no.vn[[i]]) {
     tmpname <- deparse(object[[i]], nlines = 1L)[1L]
     if (startsWith(tmpname, "I(") && endsWith(tmpname,
     ")")) {
     ntmpn <- nchar(tmpname, "c")
     tmpname <- substr(tmpname, 3L, ntmpn - 1L)
     }
     vnames[[i]] <- tmpname
     }
     if (mirn && nrows[i] > 0L) {
     rowsi <- attr(xi, "row.names")
     if (any(nzchar(rowsi)))
     row.names <- data.row.names(row.names, rowsi,
     i)
     }
     nrows[i] <- abs(nrows[i])
     vlist[[i]] <- xi
     }
     nr <- max(nrows)
     for (i in seq_len(n)[nrows < nr]) {
     xi <- vlist[[i]]
     if (nrows[i] > 0L && (nr%%nrows[i] == 0L)) {
     xi <- unclass(xi)
     fixed <- TRUE
     for (j in seq_along(xi)) {
     xi1 <- xi[[j]]
     if (is.vector(xi1) || is.factor(xi1))
     xi[[j]] <- rep(xi1, length.out = nr)
     else if (is.character(xi1) && inherits(xi1, "AsIs"))
     xi[[j]] <- structure(rep(xi1, length.out = nr),
     class = class(xi1))
     else if (inherits(xi1, "Date") || inherits(xi1,
     "POSIXct"))
     xi[[j]] <- rep(xi1, length.out = nr)
     else {
     fixed <- FALSE
     break
     }
     }
     if (fixed) {
     vlist[[i]] <- xi
     next
     }
     }
     stop(gettextf("arguments imply differing number of rows: %s",
     paste(unique(nrows), collapse = ", ")), domain = NA)
     }
     value <- unlist(vlist, recursive = FALSE, use.names = FALSE)
     vnames <- as.character(unlist(vnames[ncols > 0L]))
     if (fix.empty.names && any(noname <- !nzchar(vnames)))
     vnames[noname] <- paste0("Var.", seq_along(vnames))[noname]
     if (check.names) {
     if (fix.empty.names)
     vnames <- make.names(vnames, unique = TRUE)
     else {
     nz <- nzchar(vnames)
     vnames[nz] <- make.names(vnames[nz], unique = TRUE)
     }
     }
     names(value) <- vnames
     if (!mrn) {
     if (length(row.names) == 1L && nr != 1L) {
     if (is.character(row.names))
     row.names <- match(row.names, vnames, 0L)
     if (length(row.names) != 1L || row.names < 1L ||
     row.names > length(vnames))
     stop("'row.names' should specify one of the variables")
     i <- row.names
     row.names <- value[[i]]
     value <- value[-i]
     }
     else if (!is.null(row.names) && length(row.names) !=
     nr)
     stop("row names supplied are of the wrong length")
     }
     else if (!is.null(row.names) && length(row.names) != nr) {
     warning("row names were found from a short variable and have been discarded")
     row.names <- NULL
     }
     class(value) <- "data.frame"
     if (is.null(row.names))
     attr(value, "row.names") <- .set_row_names(nr)
     else {
     if (is.object(row.names) || !is.integer(row.names))
     row.names <- as.character(row.names)
     if (anyNA(row.names))
     stop("row names contain missing values")
     if (anyDuplicated(row.names))
     stop(gettextf("duplicate row.names: %s", paste(unique(row.names[duplicated(row.names)]),
     collapse = ", ")), domain = NA)
     row.names(value) <- row.names
     }
     value
     })(3L, NULL, check.names = FALSE, fix.empty.names = TRUE, stringsAsFactors = FALSE)`: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─base::suppressMessages(...) at test-convert.R:59:2
     2. │ └─base::withCallingHandlers(...)
     3. └─babelmixr2::bblDatToPknca(one.compartment, et)
     4. └─babelmixr2:::.bblDatToNonmem(...)
     5. └─nlmixr2est::.foceiPreProcessData(data, .env, model)
     6. └─base::cbind(as.data.frame(.et), .keepL)
     7. └─base::cbind(deparse.level, ...)
     8. └─base::data.frame(..., check.names = FALSE)
     9. ├─base::as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     10. └─base::as.data.frame.list(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     11. ├─base::do.call(data.frame, c(x, alis))
     12. └─base (local) `<fn>`(...)
     13. ├─base::as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     14. └─base::as.data.frame.list(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     15. ├─base::do.call(data.frame, c(x, alis))
     16. └─base (local) `<fn>`(...)
     17. ├─base::as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     18. └─base::as.data.frame.list(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     19. ├─base::do.call(data.frame, c(x, alis))
     20. └─base (local) `<fn>`(...)
     ── Error ('test-monolix-read.R:58:5'): test monolix reading for 2019, 2020, and 2021 ──
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-monolix-read.R:58:4
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─nlmixr2::nlmixr(...) at test-monolix-read.R:60:6
     5. └─nlmixr2est:::nlmixr2.function(...)
     6. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-monolix-read.R:147:3'): test more nlmixr2/monolix features ─────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-monolix-read.R:147:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─nlmixr2::nlmixr(...) at test-monolix-read.R:149:4
     5. └─nlmixr2est:::nlmixr2.function(...)
     6. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-monolix-read.R:180:3'): test Monolix pheno ─────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-monolix-read.R:180:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─nlmixr2::nlmixr(pheno, nlmixr2data::pheno_sd, "monolix", control = monolixControl(modelName = "pheno")) at test-monolix-read.R:182:4
     5. └─nlmixr2est:::nlmixr2.function(...)
     6. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Failure ('test-monolix-read.R:290:3'): pbpk mavoglurant ─────────────────────
     `bblDatToMonolix(pbpk, nlmixr2data::mavoglurant)` threw an unexpected error.
     Message: arguments imply differing number of rows: 1, 0
     Class: simpleError/error/condition
     Backtrace:
     ▆
     1. ├─testthat::expect_error(...) at test-monolix-read.R:290:2
     2. │ └─testthat:::expect_condition_matching(...)
     3. │ └─testthat:::quasi_capture(...)
     4. │ ├─testthat (local) .capture(...)
     5. │ │ └─base::withCallingHandlers(...)
     6. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
     7. └─babelmixr2::bblDatToMonolix(pbpk, nlmixr2data::mavoglurant)
     8. └─nlmixr2est::.foceiPreProcessData(data, .env, model)
     9. └─base::cbind(as.data.frame(.et), .keepL)
     10. └─base::cbind(deparse.level, ...)
     11. └─base::data.frame(..., check.names = FALSE)
     12. ├─base::as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     13. └─base::as.data.frame.list(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     14. ├─base::do.call(data.frame, c(x, alis))
     15. └─base (local) `<fn>`(...)
     16. ├─base::as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     17. └─base::as.data.frame.list(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     18. ├─base::do.call(data.frame, c(x, alis))
     19. └─base (local) `<fn>`(...)
     20. ├─base::as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     21. └─base::as.data.frame.list(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     22. ├─base::do.call(data.frame, c(x, alis))
     23. └─base (local) `<fn>`(...)
     ── Error ('test-monolix-read.R:294:3'): pbpk mavoglurant ───────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-monolix-read.R:294:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─nlmixr2::nlmixr(pbpk, nlmixr2data::mavoglurant, "monolix", control = monolixControl(modelName = "pbpk")) at test-monolix-read.R:296:4
     5. └─nlmixr2est:::nlmixr2.function(...)
     6. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-monolix-read.R:358:3'): nimo test ──────────────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-monolix-read.R:358:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─base::suppressWarnings(...) at test-monolix-read.R:360:4
     5. │ └─base::withCallingHandlers(...)
     6. └─nlmixr2::nlmixr2(nimo, tmp, "monolix", control = monolixControl(modelName = "nimo"))
     7. ├─nlmixr2est::nlmixr2(...)
     8. └─nlmixr2est:::nlmixr2.function(...)
     9. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-monolix-read.R:429:3'): Monolix wbc ────────────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-monolix-read.R:429:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─base::suppressWarnings(...) at test-monolix-read.R:432:4
     5. │ └─base::withCallingHandlers(...)
     6. └─nlmixr2::nlmixr2(wbc, nlmixr2data::wbcSim, "monolix", control = monolixControl(modelName = "wbc"))
     7. ├─nlmixr2est::nlmixr2(...)
     8. └─nlmixr2est:::nlmixr2.function(...)
     9. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-monolix-read.R:464:3'): Monolix wbc test 2 ─────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-monolix-read.R:464:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─wbc %>% ini(prop.err = 15) %>% ... at test-monolix-read.R:467:4
     5. └─nlmixr2::nlmixr2(., nlmixr2data::wbcSim, "monolix", control = monolixControl(modelName = "x"))
     6. ├─nlmixr2est::nlmixr2(...)
     7. └─nlmixr2est:::nlmixr2.rxUi(...)
     8. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Failure ('test-nonmem-pred.R:24:3'): nonmem $pred model ─────────────────────
     `nlmixr(ipredWang2007, dat, "nonmem")` threw an unexpected error.
     Message: arguments imply differing number of rows: 1, 0
     Class: simpleError/error/condition
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-nonmem-pred.R:24:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─testthat::expect_error(...) at test-nonmem-pred.R:26:4
     5. │ └─testthat:::expect_condition_matching(...)
     6. │ └─testthat:::quasi_capture(...)
     7. │ ├─testthat (local) .capture(...)
     8. │ │ └─base::withCallingHandlers(...)
     9. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
     10. ├─nlmixr2est::nlmixr(ipredWang2007, dat, "nonmem")
     11. └─nlmixr2est:::nlmixr2.function(ipredWang2007, dat, "nonmem")
     12. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-nonmem-read.R:59:3'): warfarin NONMEM reading ──────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-nonmem-read.R:59:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─nlmixr2est::nlmixr(...) at test-nonmem-read.R:69:4
     5. └─nlmixr2est:::nlmixr2.function(...)
     6. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-nonmem-read.R:126:3'): pheno NONMEM reading ────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-nonmem-read.R:126:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─nlmixr2::nlmixr(pheno, nlmixr2data::pheno_sd, "nonmem", control = nonmemControl(modelName = "pheno")) at test-nonmem-read.R:128:4
     5. └─nlmixr2est:::nlmixr2.function(...)
     6. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-nonmem-read.R:195:3'): wbc NONMEM reading ──────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-nonmem-read.R:195:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. └─nlmixr2::nlmixr2(...) at test-nonmem-read.R:202:4
     5. ├─nlmixr2est::nlmixr2(...)
     6. └─nlmixr2est:::nlmixr2.function(...)
     7. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-nonmem.R:148:7'): NONMEM dsl, full model ───────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─testthat::expect_message(...) at test-nonmem.R:148:6
     2. │ └─testthat:::expect_condition_matching(...)
     3. │ └─testthat:::quasi_capture(...)
     4. │ ├─testthat (local) .capture(...)
     5. │ │ └─base::withCallingHandlers(...)
     6. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
     7. ├─nlmixr2est::nlmixr(...)
     8. └─nlmixr2est:::nlmixr2.function(...)
     9. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-pknca.R:20:3'): est='pknca' ────────────────────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─base::suppressMessages(...) at test-pknca.R:20:2
     2. │ └─base::withCallingHandlers(...)
     3. ├─testthat::expect_s3_class(...)
     4. │ └─testthat::quasi_label(enquo(object), arg = "object")
     5. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     6. ├─nlmixr2est::nlmixr(...)
     7. └─nlmixr2est:::nlmixr2.function(...)
     8. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-pknca.R:144:3'): dvParam ───────────────────────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─base::suppressMessages(...) at test-pknca.R:144:2
     2. │ └─base::withCallingHandlers(...)
     3. ├─testthat::expect_s3_class(...)
     4. │ └─testthat::quasi_label(enquo(object), arg = "object")
     5. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     6. ├─nlmixr2est::nlmixr(...)
     7. └─nlmixr2est:::nlmixr2.function(...)
     8. └─nlmixr2est:::nlmixr2Est0(.env)
    
     [ FAIL 17 | WARN 0 | SKIP 0 | PASS 227 ]
     Error: Test failures
     Execution halted
Flavor: r-devel-linux-x86_64-fedora-clang

Version: 0.1.0
Check: tests
Result: ERROR
     Running ‘spelling.R’
     Running ‘testthat.R’ [25s/93s]
    Running the tests in ‘tests/testthat.R’ failed.
    Complete output:
     > library(testthat)
     > library(babelmixr2)
     Loading required package: nlmixr2
     Loading required package: nlmixr2data
     >
     > test_check("babelmixr2")
     i parameter labels from comments will be replaced by 'label()'
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     i parameter labels from comments will be replaced by 'label()'
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     i change initial estimate of `prop.err` to `15`
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     i parameter labels from comments will be replaced by 'label()'
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     [ FAIL 17 | WARN 0 | SKIP 0 | PASS 227 ]
    
     ══ Failed tests ════════════════════════════════════════════════════════════════
     ── Error ('test-convert.R:27:3'): nonmem amt=0 evid=1 conversion test ──────────
     Error in `(function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE,
     fix.empty.names = TRUE, stringsAsFactors = FALSE)
     {
     data.row.names <- if (check.rows && is.null(row.names))
     function(current, new, i) {
     if (is.character(current))
     new <- as.character(new)
     if (is.character(new))
     current <- as.character(current)
     if (anyDuplicated(new))
     return(current)
     if (is.null(current))
     return(new)
     if (all(current == new) || all(current == ""))
     return(new)
     stop(gettextf("mismatch of row names in arguments of 'data.frame', item %d",
     i), domain = NA)
     }
     else function(current, new, i) {
     if (is.null(current)) {
     if (anyDuplicated(new)) {
     warning(gettextf("some row.names duplicated: %s --> row.names NOT used",
     paste(which(duplicated(new)), collapse = ",")),
     domain = NA)
     current
     }
     else new
     }
     else current
     }
     object <- as.list(substitute(list(...)))[-1L]
     mirn <- missing(row.names)
     mrn <- is.null(row.names)
     x <- list(...)
     n <- length(x)
     if (n < 1L) {
     if (!mrn) {
     if (is.object(row.names) || !is.integer(row.names))
     row.names <- as.character(row.names)
     if (anyNA(row.names))
     stop("row names contain missing values")
     if (anyDuplicated(row.names))
     stop(gettextf("duplicate row.names: %s", paste(unique(row.names[duplicated(row.names)]),
     collapse = ", ")), domain = NA)
     }
     else row.names <- integer()
     return(structure(list(), names = character(), row.names = row.names,
     class = "data.frame"))
     }
     vnames <- names(x)
     if (length(vnames) != n)
     vnames <- character(n)
     no.vn <- !nzchar(vnames)
     vlist <- vnames <- as.list(vnames)
     nrows <- ncols <- integer(n)
     for (i in seq_len(n)) {
     xi <- if (is.character(x[[i]]) || is.list(x[[i]]))
     as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     else as.data.frame(x[[i]], optional = TRUE)
     nrows[i] <- .row_names_info(xi)
     ncols[i] <- length(xi)
     namesi <- names(xi)
     if (ncols[i] > 1L) {
     if (length(namesi) == 0L)
     namesi <- seq_len(ncols[i])
     vnames[[i]] <- if (no.vn[i])
     namesi
     else paste(vnames[[i]], namesi, sep = ".")
     }
     else if (length(namesi)) {
     vnames[[i]] <- namesi
     }
     else if (fix.empty.names && no.vn[[i]]) {
     tmpname <- deparse(object[[i]], nlines = 1L)[1L]
     if (startsWith(tmpname, "I(") && endsWith(tmpname,
     ")")) {
     ntmpn <- nchar(tmpname, "c")
     tmpname <- substr(tmpname, 3L, ntmpn - 1L)
     }
     vnames[[i]] <- tmpname
     }
     if (mirn && nrows[i] > 0L) {
     rowsi <- attr(xi, "row.names")
     if (any(nzchar(rowsi)))
     row.names <- data.row.names(row.names, rowsi,
     i)
     }
     nrows[i] <- abs(nrows[i])
     vlist[[i]] <- xi
     }
     nr <- max(nrows)
     for (i in seq_len(n)[nrows < nr]) {
     xi <- vlist[[i]]
     if (nrows[i] > 0L && (nr%%nrows[i] == 0L)) {
     xi <- unclass(xi)
     fixed <- TRUE
     for (j in seq_along(xi)) {
     xi1 <- xi[[j]]
     if (is.vector(xi1) || is.factor(xi1))
     xi[[j]] <- rep(xi1, length.out = nr)
     else if (is.character(xi1) && inherits(xi1, "AsIs"))
     xi[[j]] <- structure(rep(xi1, length.out = nr),
     class = class(xi1))
     else if (inherits(xi1, "Date") || inherits(xi1,
     "POSIXct"))
     xi[[j]] <- rep(xi1, length.out = nr)
     else {
     fixed <- FALSE
     break
     }
     }
     if (fixed) {
     vlist[[i]] <- xi
     next
     }
     }
     stop(gettextf("arguments imply differing number of rows: %s",
     paste(unique(nrows), collapse = ", ")), domain = NA)
     }
     value <- unlist(vlist, recursive = FALSE, use.names = FALSE)
     vnames <- as.character(unlist(vnames[ncols > 0L]))
     if (fix.empty.names && any(noname <- !nzchar(vnames)))
     vnames[noname] <- paste0("Var.", seq_along(vnames))[noname]
     if (check.names) {
     if (fix.empty.names)
     vnames <- make.names(vnames, unique = TRUE)
     else {
     nz <- nzchar(vnames)
     vnames[nz] <- make.names(vnames[nz], unique = TRUE)
     }
     }
     names(value) <- vnames
     if (!mrn) {
     if (length(row.names) == 1L && nr != 1L) {
     if (is.character(row.names))
     row.names <- match(row.names, vnames, 0L)
     if (length(row.names) != 1L || row.names < 1L ||
     row.names > length(vnames))
     stop("'row.names' should specify one of the variables")
     i <- row.names
     row.names <- value[[i]]
     value <- value[-i]
     }
     else if (!is.null(row.names) && length(row.names) !=
     nr)
     stop("row names supplied are of the wrong length")
     }
     else if (!is.null(row.names) && length(row.names) != nr) {
     warning("row names were found from a short variable and have been discarded")
     row.names <- NULL
     }
     class(value) <- "data.frame"
     if (is.null(row.names))
     attr(value, "row.names") <- .set_row_names(nr)
     else {
     if (is.object(row.names) || !is.integer(row.names))
     row.names <- as.character(row.names)
     if (anyNA(row.names))
     stop("row names contain missing values")
     if (anyDuplicated(row.names))
     stop(gettextf("duplicate row.names: %s", paste(unique(row.names[duplicated(row.names)]),
     collapse = ", ")), domain = NA)
     row.names(value) <- row.names
     }
     value
     })(3L, NULL, check.names = FALSE, fix.empty.names = TRUE, stringsAsFactors = FALSE)`: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. └─babelmixr2::bblDatToNonmem(one.compartment, et) at test-convert.R:27:2
     2. └─babelmixr2:::.bblDatToNonmem(...)
     3. └─nlmixr2est::.foceiPreProcessData(data, .env, model)
     4. └─base::cbind(as.data.frame(.et), .keepL)
     5. └─base::cbind(deparse.level, ...)
     6. └─base::data.frame(..., check.names = FALSE)
     7. ├─base::as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     8. └─base::as.data.frame.list(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     9. ├─base::do.call(data.frame, c(x, alis))
     10. └─base (local) `<fn>`(...)
     11. ├─base::as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     12. └─base::as.data.frame.list(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     13. ├─base::do.call(data.frame, c(x, alis))
     14. └─base (local) `<fn>`(...)
     15. ├─base::as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     16. └─base::as.data.frame.list(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     17. ├─base::do.call(data.frame, c(x, alis))
     18. └─base (local) `<fn>`(...)
     ── Error ('test-convert.R:59:3'): pknca conversion keeps extra columns ─────────
     Error in `(function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE,
     fix.empty.names = TRUE, stringsAsFactors = FALSE)
     {
     data.row.names <- if (check.rows && is.null(row.names))
     function(current, new, i) {
     if (is.character(current))
     new <- as.character(new)
     if (is.character(new))
     current <- as.character(current)
     if (anyDuplicated(new))
     return(current)
     if (is.null(current))
     return(new)
     if (all(current == new) || all(current == ""))
     return(new)
     stop(gettextf("mismatch of row names in arguments of 'data.frame', item %d",
     i), domain = NA)
     }
     else function(current, new, i) {
     if (is.null(current)) {
     if (anyDuplicated(new)) {
     warning(gettextf("some row.names duplicated: %s --> row.names NOT used",
     paste(which(duplicated(new)), collapse = ",")),
     domain = NA)
     current
     }
     else new
     }
     else current
     }
     object <- as.list(substitute(list(...)))[-1L]
     mirn <- missing(row.names)
     mrn <- is.null(row.names)
     x <- list(...)
     n <- length(x)
     if (n < 1L) {
     if (!mrn) {
     if (is.object(row.names) || !is.integer(row.names))
     row.names <- as.character(row.names)
     if (anyNA(row.names))
     stop("row names contain missing values")
     if (anyDuplicated(row.names))
     stop(gettextf("duplicate row.names: %s", paste(unique(row.names[duplicated(row.names)]),
     collapse = ", ")), domain = NA)
     }
     else row.names <- integer()
     return(structure(list(), names = character(), row.names = row.names,
     class = "data.frame"))
     }
     vnames <- names(x)
     if (length(vnames) != n)
     vnames <- character(n)
     no.vn <- !nzchar(vnames)
     vlist <- vnames <- as.list(vnames)
     nrows <- ncols <- integer(n)
     for (i in seq_len(n)) {
     xi <- if (is.character(x[[i]]) || is.list(x[[i]]))
     as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     else as.data.frame(x[[i]], optional = TRUE)
     nrows[i] <- .row_names_info(xi)
     ncols[i] <- length(xi)
     namesi <- names(xi)
     if (ncols[i] > 1L) {
     if (length(namesi) == 0L)
     namesi <- seq_len(ncols[i])
     vnames[[i]] <- if (no.vn[i])
     namesi
     else paste(vnames[[i]], namesi, sep = ".")
     }
     else if (length(namesi)) {
     vnames[[i]] <- namesi
     }
     else if (fix.empty.names && no.vn[[i]]) {
     tmpname <- deparse(object[[i]], nlines = 1L)[1L]
     if (startsWith(tmpname, "I(") && endsWith(tmpname,
     ")")) {
     ntmpn <- nchar(tmpname, "c")
     tmpname <- substr(tmpname, 3L, ntmpn - 1L)
     }
     vnames[[i]] <- tmpname
     }
     if (mirn && nrows[i] > 0L) {
     rowsi <- attr(xi, "row.names")
     if (any(nzchar(rowsi)))
     row.names <- data.row.names(row.names, rowsi,
     i)
     }
     nrows[i] <- abs(nrows[i])
     vlist[[i]] <- xi
     }
     nr <- max(nrows)
     for (i in seq_len(n)[nrows < nr]) {
     xi <- vlist[[i]]
     if (nrows[i] > 0L && (nr%%nrows[i] == 0L)) {
     xi <- unclass(xi)
     fixed <- TRUE
     for (j in seq_along(xi)) {
     xi1 <- xi[[j]]
     if (is.vector(xi1) || is.factor(xi1))
     xi[[j]] <- rep(xi1, length.out = nr)
     else if (is.character(xi1) && inherits(xi1, "AsIs"))
     xi[[j]] <- structure(rep(xi1, length.out = nr),
     class = class(xi1))
     else if (inherits(xi1, "Date") || inherits(xi1,
     "POSIXct"))
     xi[[j]] <- rep(xi1, length.out = nr)
     else {
     fixed <- FALSE
     break
     }
     }
     if (fixed) {
     vlist[[i]] <- xi
     next
     }
     }
     stop(gettextf("arguments imply differing number of rows: %s",
     paste(unique(nrows), collapse = ", ")), domain = NA)
     }
     value <- unlist(vlist, recursive = FALSE, use.names = FALSE)
     vnames <- as.character(unlist(vnames[ncols > 0L]))
     if (fix.empty.names && any(noname <- !nzchar(vnames)))
     vnames[noname] <- paste0("Var.", seq_along(vnames))[noname]
     if (check.names) {
     if (fix.empty.names)
     vnames <- make.names(vnames, unique = TRUE)
     else {
     nz <- nzchar(vnames)
     vnames[nz] <- make.names(vnames[nz], unique = TRUE)
     }
     }
     names(value) <- vnames
     if (!mrn) {
     if (length(row.names) == 1L && nr != 1L) {
     if (is.character(row.names))
     row.names <- match(row.names, vnames, 0L)
     if (length(row.names) != 1L || row.names < 1L ||
     row.names > length(vnames))
     stop("'row.names' should specify one of the variables")
     i <- row.names
     row.names <- value[[i]]
     value <- value[-i]
     }
     else if (!is.null(row.names) && length(row.names) !=
     nr)
     stop("row names supplied are of the wrong length")
     }
     else if (!is.null(row.names) && length(row.names) != nr) {
     warning("row names were found from a short variable and have been discarded")
     row.names <- NULL
     }
     class(value) <- "data.frame"
     if (is.null(row.names))
     attr(value, "row.names") <- .set_row_names(nr)
     else {
     if (is.object(row.names) || !is.integer(row.names))
     row.names <- as.character(row.names)
     if (anyNA(row.names))
     stop("row names contain missing values")
     if (anyDuplicated(row.names))
     stop(gettextf("duplicate row.names: %s", paste(unique(row.names[duplicated(row.names)]),
     collapse = ", ")), domain = NA)
     row.names(value) <- row.names
     }
     value
     })(3L, NULL, check.names = FALSE, fix.empty.names = TRUE, stringsAsFactors = FALSE)`: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─base::suppressMessages(...) at test-convert.R:59:2
     2. │ └─base::withCallingHandlers(...)
     3. └─babelmixr2::bblDatToPknca(one.compartment, et)
     4. └─babelmixr2:::.bblDatToNonmem(...)
     5. └─nlmixr2est::.foceiPreProcessData(data, .env, model)
     6. └─base::cbind(as.data.frame(.et), .keepL)
     7. └─base::cbind(deparse.level, ...)
     8. └─base::data.frame(..., check.names = FALSE)
     9. ├─base::as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     10. └─base::as.data.frame.list(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     11. ├─base::do.call(data.frame, c(x, alis))
     12. └─base (local) `<fn>`(...)
     13. ├─base::as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     14. └─base::as.data.frame.list(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     15. ├─base::do.call(data.frame, c(x, alis))
     16. └─base (local) `<fn>`(...)
     17. ├─base::as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     18. └─base::as.data.frame.list(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     19. ├─base::do.call(data.frame, c(x, alis))
     20. └─base (local) `<fn>`(...)
     ── Error ('test-monolix-read.R:58:5'): test monolix reading for 2019, 2020, and 2021 ──
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-monolix-read.R:58:4
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─nlmixr2::nlmixr(...) at test-monolix-read.R:60:6
     5. └─nlmixr2est:::nlmixr2.function(...)
     6. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-monolix-read.R:147:3'): test more nlmixr2/monolix features ─────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-monolix-read.R:147:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─nlmixr2::nlmixr(...) at test-monolix-read.R:149:4
     5. └─nlmixr2est:::nlmixr2.function(...)
     6. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-monolix-read.R:180:3'): test Monolix pheno ─────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-monolix-read.R:180:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─nlmixr2::nlmixr(pheno, nlmixr2data::pheno_sd, "monolix", control = monolixControl(modelName = "pheno")) at test-monolix-read.R:182:4
     5. └─nlmixr2est:::nlmixr2.function(...)
     6. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Failure ('test-monolix-read.R:290:3'): pbpk mavoglurant ─────────────────────
     `bblDatToMonolix(pbpk, nlmixr2data::mavoglurant)` threw an unexpected error.
     Message: arguments imply differing number of rows: 1, 0
     Class: simpleError/error/condition
     Backtrace:
     ▆
     1. ├─testthat::expect_error(...) at test-monolix-read.R:290:2
     2. │ └─testthat:::expect_condition_matching(...)
     3. │ └─testthat:::quasi_capture(...)
     4. │ ├─testthat (local) .capture(...)
     5. │ │ └─base::withCallingHandlers(...)
     6. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
     7. └─babelmixr2::bblDatToMonolix(pbpk, nlmixr2data::mavoglurant)
     8. └─nlmixr2est::.foceiPreProcessData(data, .env, model)
     9. └─base::cbind(as.data.frame(.et), .keepL)
     10. └─base::cbind(deparse.level, ...)
     11. └─base::data.frame(..., check.names = FALSE)
     12. ├─base::as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     13. └─base::as.data.frame.list(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     14. ├─base::do.call(data.frame, c(x, alis))
     15. └─base (local) `<fn>`(...)
     16. ├─base::as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     17. └─base::as.data.frame.list(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     18. ├─base::do.call(data.frame, c(x, alis))
     19. └─base (local) `<fn>`(...)
     20. ├─base::as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     21. └─base::as.data.frame.list(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     22. ├─base::do.call(data.frame, c(x, alis))
     23. └─base (local) `<fn>`(...)
     ── Error ('test-monolix-read.R:294:3'): pbpk mavoglurant ───────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-monolix-read.R:294:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─nlmixr2::nlmixr(pbpk, nlmixr2data::mavoglurant, "monolix", control = monolixControl(modelName = "pbpk")) at test-monolix-read.R:296:4
     5. └─nlmixr2est:::nlmixr2.function(...)
     6. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-monolix-read.R:358:3'): nimo test ──────────────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-monolix-read.R:358:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─base::suppressWarnings(...) at test-monolix-read.R:360:4
     5. │ └─base::withCallingHandlers(...)
     6. └─nlmixr2::nlmixr2(nimo, tmp, "monolix", control = monolixControl(modelName = "nimo"))
     7. ├─nlmixr2est::nlmixr2(...)
     8. └─nlmixr2est:::nlmixr2.function(...)
     9. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-monolix-read.R:429:3'): Monolix wbc ────────────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-monolix-read.R:429:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─base::suppressWarnings(...) at test-monolix-read.R:432:4
     5. │ └─base::withCallingHandlers(...)
     6. └─nlmixr2::nlmixr2(wbc, nlmixr2data::wbcSim, "monolix", control = monolixControl(modelName = "wbc"))
     7. ├─nlmixr2est::nlmixr2(...)
     8. └─nlmixr2est:::nlmixr2.function(...)
     9. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-monolix-read.R:464:3'): Monolix wbc test 2 ─────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-monolix-read.R:464:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─wbc %>% ini(prop.err = 15) %>% ... at test-monolix-read.R:467:4
     5. └─nlmixr2::nlmixr2(., nlmixr2data::wbcSim, "monolix", control = monolixControl(modelName = "x"))
     6. ├─nlmixr2est::nlmixr2(...)
     7. └─nlmixr2est:::nlmixr2.rxUi(...)
     8. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Failure ('test-nonmem-pred.R:24:3'): nonmem $pred model ─────────────────────
     `nlmixr(ipredWang2007, dat, "nonmem")` threw an unexpected error.
     Message: arguments imply differing number of rows: 1, 0
     Class: simpleError/error/condition
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-nonmem-pred.R:24:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─testthat::expect_error(...) at test-nonmem-pred.R:26:4
     5. │ └─testthat:::expect_condition_matching(...)
     6. │ └─testthat:::quasi_capture(...)
     7. │ ├─testthat (local) .capture(...)
     8. │ │ └─base::withCallingHandlers(...)
     9. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
     10. ├─nlmixr2est::nlmixr(ipredWang2007, dat, "nonmem")
     11. └─nlmixr2est:::nlmixr2.function(ipredWang2007, dat, "nonmem")
     12. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-nonmem-read.R:59:3'): warfarin NONMEM reading ──────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-nonmem-read.R:59:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─nlmixr2est::nlmixr(...) at test-nonmem-read.R:69:4
     5. └─nlmixr2est:::nlmixr2.function(...)
     6. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-nonmem-read.R:126:3'): pheno NONMEM reading ────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-nonmem-read.R:126:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─nlmixr2::nlmixr(pheno, nlmixr2data::pheno_sd, "nonmem", control = nonmemControl(modelName = "pheno")) at test-nonmem-read.R:128:4
     5. └─nlmixr2est:::nlmixr2.function(...)
     6. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-nonmem-read.R:195:3'): wbc NONMEM reading ──────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-nonmem-read.R:195:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. └─nlmixr2::nlmixr2(...) at test-nonmem-read.R:202:4
     5. ├─nlmixr2est::nlmixr2(...)
     6. └─nlmixr2est:::nlmixr2.function(...)
     7. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-nonmem.R:148:7'): NONMEM dsl, full model ───────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─testthat::expect_message(...) at test-nonmem.R:148:6
     2. │ └─testthat:::expect_condition_matching(...)
     3. │ └─testthat:::quasi_capture(...)
     4. │ ├─testthat (local) .capture(...)
     5. │ │ └─base::withCallingHandlers(...)
     6. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
     7. ├─nlmixr2est::nlmixr(...)
     8. └─nlmixr2est:::nlmixr2.function(...)
     9. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-pknca.R:20:3'): est='pknca' ────────────────────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─base::suppressMessages(...) at test-pknca.R:20:2
     2. │ └─base::withCallingHandlers(...)
     3. ├─testthat::expect_s3_class(...)
     4. │ └─testthat::quasi_label(enquo(object), arg = "object")
     5. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     6. ├─nlmixr2est::nlmixr(...)
     7. └─nlmixr2est:::nlmixr2.function(...)
     8. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-pknca.R:144:3'): dvParam ───────────────────────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─base::suppressMessages(...) at test-pknca.R:144:2
     2. │ └─base::withCallingHandlers(...)
     3. ├─testthat::expect_s3_class(...)
     4. │ └─testthat::quasi_label(enquo(object), arg = "object")
     5. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     6. ├─nlmixr2est::nlmixr(...)
     7. └─nlmixr2est:::nlmixr2.function(...)
     8. └─nlmixr2est:::nlmixr2Est0(.env)
    
     [ FAIL 17 | WARN 0 | SKIP 0 | PASS 227 ]
     Error: Test failures
     Execution halted
Flavor: r-devel-linux-x86_64-fedora-gcc

Version: 0.1.0
Check: whether package can be installed
Result: ERROR
    Installation failed.
Flavors: r-devel-windows-x86_64, r-release-windows-x86_64

Version: 0.1.0
Check: tests
Result: ERROR
     Running ‘spelling.R’ [0s/0s]
     Running ‘testthat.R’ [18s/22s]
    Running the tests in ‘tests/testthat.R’ failed.
    Complete output:
     > library(testthat)
     > library(babelmixr2)
     Loading required package: nlmixr2
     Loading required package: nlmixr2data
     >
     > test_check("babelmixr2")
     i parameter labels from comments will be replaced by 'label()'
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     i parameter labels from comments will be replaced by 'label()'
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     i change initial estimate of `prop.err` to `15`
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     i parameter labels from comments will be replaced by 'label()'
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
     arguments imply differing number of rows: 1, 0
     [ FAIL 17 | WARN 0 | SKIP 0 | PASS 227 ]
    
     ══ Failed tests ════════════════════════════════════════════════════════════════
     ── Error ('test-convert.R:27:3'): nonmem amt=0 evid=1 conversion test ──────────
     Error in `(function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE,
     fix.empty.names = TRUE, stringsAsFactors = FALSE)
     {
     data.row.names <- if (check.rows && is.null(row.names))
     function(current, new, i) {
     if (is.character(current))
     new <- as.character(new)
     if (is.character(new))
     current <- as.character(current)
     if (anyDuplicated(new))
     return(current)
     if (is.null(current))
     return(new)
     if (all(current == new) || all(current == ""))
     return(new)
     stop(gettextf("mismatch of row names in arguments of 'data.frame', item %d",
     i), domain = NA)
     }
     else function(current, new, i) {
     if (is.null(current)) {
     if (anyDuplicated(new)) {
     warning(gettextf("some row.names duplicated: %s --> row.names NOT used",
     paste(which(duplicated(new)), collapse = ",")),
     domain = NA)
     current
     }
     else new
     }
     else current
     }
     object <- as.list(substitute(list(...)))[-1L]
     mirn <- missing(row.names)
     mrn <- is.null(row.names)
     x <- list(...)
     n <- length(x)
     if (n < 1L) {
     if (!mrn) {
     if (is.object(row.names) || !is.integer(row.names))
     row.names <- as.character(row.names)
     if (anyNA(row.names))
     stop("row names contain missing values")
     if (anyDuplicated(row.names))
     stop(gettextf("duplicate row.names: %s", paste(unique(row.names[duplicated(row.names)]),
     collapse = ", ")), domain = NA)
     }
     else row.names <- integer()
     return(structure(list(), names = character(), row.names = row.names,
     class = "data.frame"))
     }
     vnames <- names(x)
     if (length(vnames) != n)
     vnames <- character(n)
     no.vn <- !nzchar(vnames)
     vlist <- vnames <- as.list(vnames)
     nrows <- ncols <- integer(n)
     for (i in seq_len(n)) {
     xi <- if (is.character(x[[i]]) || is.list(x[[i]]))
     as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     else as.data.frame(x[[i]], optional = TRUE)
     nrows[i] <- .row_names_info(xi)
     ncols[i] <- length(xi)
     namesi <- names(xi)
     if (ncols[i] > 1L) {
     if (length(namesi) == 0L)
     namesi <- seq_len(ncols[i])
     vnames[[i]] <- if (no.vn[i])
     namesi
     else paste(vnames[[i]], namesi, sep = ".")
     }
     else if (length(namesi)) {
     vnames[[i]] <- namesi
     }
     else if (fix.empty.names && no.vn[[i]]) {
     tmpname <- deparse(object[[i]], nlines = 1L)[1L]
     if (startsWith(tmpname, "I(") && endsWith(tmpname,
     ")")) {
     ntmpn <- nchar(tmpname, "c")
     tmpname <- substr(tmpname, 3L, ntmpn - 1L)
     }
     vnames[[i]] <- tmpname
     }
     if (mirn && nrows[i] > 0L) {
     rowsi <- attr(xi, "row.names")
     if (any(nzchar(rowsi)))
     row.names <- data.row.names(row.names, rowsi,
     i)
     }
     nrows[i] <- abs(nrows[i])
     vlist[[i]] <- xi
     }
     nr <- max(nrows)
     for (i in seq_len(n)[nrows < nr]) {
     xi <- vlist[[i]]
     if (nrows[i] > 0L && (nr%%nrows[i] == 0L)) {
     xi <- unclass(xi)
     fixed <- TRUE
     for (j in seq_along(xi)) {
     xi1 <- xi[[j]]
     if (is.vector(xi1) || is.factor(xi1))
     xi[[j]] <- rep(xi1, length.out = nr)
     else if (is.character(xi1) && inherits(xi1, "AsIs"))
     xi[[j]] <- structure(rep(xi1, length.out = nr),
     class = class(xi1))
     else if (inherits(xi1, "Date") || inherits(xi1,
     "POSIXct"))
     xi[[j]] <- rep(xi1, length.out = nr)
     else {
     fixed <- FALSE
     break
     }
     }
     if (fixed) {
     vlist[[i]] <- xi
     next
     }
     }
     stop(gettextf("arguments imply differing number of rows: %s",
     paste(unique(nrows), collapse = ", ")), domain = NA)
     }
     value <- unlist(vlist, recursive = FALSE, use.names = FALSE)
     vnames <- as.character(unlist(vnames[ncols > 0L]))
     if (fix.empty.names && any(noname <- !nzchar(vnames)))
     vnames[noname] <- paste0("Var.", seq_along(vnames))[noname]
     if (check.names) {
     if (fix.empty.names)
     vnames <- make.names(vnames, unique = TRUE)
     else {
     nz <- nzchar(vnames)
     vnames[nz] <- make.names(vnames[nz], unique = TRUE)
     }
     }
     names(value) <- vnames
     if (!mrn) {
     if (length(row.names) == 1L && nr != 1L) {
     if (is.character(row.names))
     row.names <- match(row.names, vnames, 0L)
     if (length(row.names) != 1L || row.names < 1L ||
     row.names > length(vnames))
     stop("'row.names' should specify one of the variables")
     i <- row.names
     row.names <- value[[i]]
     value <- value[-i]
     }
     else if (!is.null(row.names) && length(row.names) !=
     nr)
     stop("row names supplied are of the wrong length")
     }
     else if (!is.null(row.names) && length(row.names) != nr) {
     warning("row names were found from a short variable and have been discarded")
     row.names <- NULL
     }
     class(value) <- "data.frame"
     if (is.null(row.names))
     attr(value, "row.names") <- .set_row_names(nr)
     else {
     if (is.object(row.names) || !is.integer(row.names))
     row.names <- as.character(row.names)
     if (anyNA(row.names))
     stop("row names contain missing values")
     if (anyDuplicated(row.names))
     stop(gettextf("duplicate row.names: %s", paste(unique(row.names[duplicated(row.names)]),
     collapse = ", ")), domain = NA)
     row.names(value) <- row.names
     }
     value
     })(3L, NULL, check.names = FALSE, fix.empty.names = TRUE, stringsAsFactors = FALSE)`: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. └─babelmixr2::bblDatToNonmem(one.compartment, et) at test-convert.R:27:2
     2. └─babelmixr2:::.bblDatToNonmem(...)
     3. └─nlmixr2est::.foceiPreProcessData(data, .env, model)
     4. └─base::cbind(as.data.frame(.et), .keepL)
     5. └─base::cbind(deparse.level, ...)
     6. └─base::data.frame(..., check.names = FALSE)
     7. ├─base::as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     8. └─base::as.data.frame.list(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     9. ├─base::do.call(data.frame, c(x, alis))
     10. └─base (local) `<fn>`(...)
     11. ├─base::as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     12. └─base::as.data.frame.list(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     13. ├─base::do.call(data.frame, c(x, alis))
     14. └─base (local) `<fn>`(...)
     15. ├─base::as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     16. └─base::as.data.frame.list(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     17. ├─base::do.call(data.frame, c(x, alis))
     18. └─base (local) `<fn>`(...)
     ── Error ('test-convert.R:59:3'): pknca conversion keeps extra columns ─────────
     Error in `(function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE,
     fix.empty.names = TRUE, stringsAsFactors = FALSE)
     {
     data.row.names <- if (check.rows && is.null(row.names))
     function(current, new, i) {
     if (is.character(current))
     new <- as.character(new)
     if (is.character(new))
     current <- as.character(current)
     if (anyDuplicated(new))
     return(current)
     if (is.null(current))
     return(new)
     if (all(current == new) || all(current == ""))
     return(new)
     stop(gettextf("mismatch of row names in arguments of 'data.frame', item %d",
     i), domain = NA)
     }
     else function(current, new, i) {
     if (is.null(current)) {
     if (anyDuplicated(new)) {
     warning(gettextf("some row.names duplicated: %s --> row.names NOT used",
     paste(which(duplicated(new)), collapse = ",")),
     domain = NA)
     current
     }
     else new
     }
     else current
     }
     object <- as.list(substitute(list(...)))[-1L]
     mirn <- missing(row.names)
     mrn <- is.null(row.names)
     x <- list(...)
     n <- length(x)
     if (n < 1L) {
     if (!mrn) {
     if (is.object(row.names) || !is.integer(row.names))
     row.names <- as.character(row.names)
     if (anyNA(row.names))
     stop("row names contain missing values")
     if (anyDuplicated(row.names))
     stop(gettextf("duplicate row.names: %s", paste(unique(row.names[duplicated(row.names)]),
     collapse = ", ")), domain = NA)
     }
     else row.names <- integer()
     return(structure(list(), names = character(), row.names = row.names,
     class = "data.frame"))
     }
     vnames <- names(x)
     if (length(vnames) != n)
     vnames <- character(n)
     no.vn <- !nzchar(vnames)
     vlist <- vnames <- as.list(vnames)
     nrows <- ncols <- integer(n)
     for (i in seq_len(n)) {
     xi <- if (is.character(x[[i]]) || is.list(x[[i]]))
     as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     else as.data.frame(x[[i]], optional = TRUE)
     nrows[i] <- .row_names_info(xi)
     ncols[i] <- length(xi)
     namesi <- names(xi)
     if (ncols[i] > 1L) {
     if (length(namesi) == 0L)
     namesi <- seq_len(ncols[i])
     vnames[[i]] <- if (no.vn[i])
     namesi
     else paste(vnames[[i]], namesi, sep = ".")
     }
     else if (length(namesi)) {
     vnames[[i]] <- namesi
     }
     else if (fix.empty.names && no.vn[[i]]) {
     tmpname <- deparse(object[[i]], nlines = 1L)[1L]
     if (startsWith(tmpname, "I(") && endsWith(tmpname,
     ")")) {
     ntmpn <- nchar(tmpname, "c")
     tmpname <- substr(tmpname, 3L, ntmpn - 1L)
     }
     vnames[[i]] <- tmpname
     }
     if (mirn && nrows[i] > 0L) {
     rowsi <- attr(xi, "row.names")
     if (any(nzchar(rowsi)))
     row.names <- data.row.names(row.names, rowsi,
     i)
     }
     nrows[i] <- abs(nrows[i])
     vlist[[i]] <- xi
     }
     nr <- max(nrows)
     for (i in seq_len(n)[nrows < nr]) {
     xi <- vlist[[i]]
     if (nrows[i] > 0L && (nr%%nrows[i] == 0L)) {
     xi <- unclass(xi)
     fixed <- TRUE
     for (j in seq_along(xi)) {
     xi1 <- xi[[j]]
     if (is.vector(xi1) || is.factor(xi1))
     xi[[j]] <- rep(xi1, length.out = nr)
     else if (is.character(xi1) && inherits(xi1, "AsIs"))
     xi[[j]] <- structure(rep(xi1, length.out = nr),
     class = class(xi1))
     else if (inherits(xi1, "Date") || inherits(xi1,
     "POSIXct"))
     xi[[j]] <- rep(xi1, length.out = nr)
     else {
     fixed <- FALSE
     break
     }
     }
     if (fixed) {
     vlist[[i]] <- xi
     next
     }
     }
     stop(gettextf("arguments imply differing number of rows: %s",
     paste(unique(nrows), collapse = ", ")), domain = NA)
     }
     value <- unlist(vlist, recursive = FALSE, use.names = FALSE)
     vnames <- as.character(unlist(vnames[ncols > 0L]))
     if (fix.empty.names && any(noname <- !nzchar(vnames)))
     vnames[noname] <- paste0("Var.", seq_along(vnames))[noname]
     if (check.names) {
     if (fix.empty.names)
     vnames <- make.names(vnames, unique = TRUE)
     else {
     nz <- nzchar(vnames)
     vnames[nz] <- make.names(vnames[nz], unique = TRUE)
     }
     }
     names(value) <- vnames
     if (!mrn) {
     if (length(row.names) == 1L && nr != 1L) {
     if (is.character(row.names))
     row.names <- match(row.names, vnames, 0L)
     if (length(row.names) != 1L || row.names < 1L ||
     row.names > length(vnames))
     stop("'row.names' should specify one of the variables")
     i <- row.names
     row.names <- value[[i]]
     value <- value[-i]
     }
     else if (!is.null(row.names) && length(row.names) !=
     nr)
     stop("row names supplied are of the wrong length")
     }
     else if (!is.null(row.names) && length(row.names) != nr) {
     warning("row names were found from a short variable and have been discarded")
     row.names <- NULL
     }
     class(value) <- "data.frame"
     if (is.null(row.names))
     attr(value, "row.names") <- .set_row_names(nr)
     else {
     if (is.object(row.names) || !is.integer(row.names))
     row.names <- as.character(row.names)
     if (anyNA(row.names))
     stop("row names contain missing values")
     if (anyDuplicated(row.names))
     stop(gettextf("duplicate row.names: %s", paste(unique(row.names[duplicated(row.names)]),
     collapse = ", ")), domain = NA)
     row.names(value) <- row.names
     }
     value
     })(3L, NULL, check.names = FALSE, fix.empty.names = TRUE, stringsAsFactors = FALSE)`: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─base::suppressMessages(...) at test-convert.R:59:2
     2. │ └─base::withCallingHandlers(...)
     3. └─babelmixr2::bblDatToPknca(one.compartment, et)
     4. └─babelmixr2:::.bblDatToNonmem(...)
     5. └─nlmixr2est::.foceiPreProcessData(data, .env, model)
     6. └─base::cbind(as.data.frame(.et), .keepL)
     7. └─base::cbind(deparse.level, ...)
     8. └─base::data.frame(..., check.names = FALSE)
     9. ├─base::as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     10. └─base::as.data.frame.list(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     11. ├─base::do.call(data.frame, c(x, alis))
     12. └─base (local) `<fn>`(...)
     13. ├─base::as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     14. └─base::as.data.frame.list(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     15. ├─base::do.call(data.frame, c(x, alis))
     16. └─base (local) `<fn>`(...)
     17. ├─base::as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     18. └─base::as.data.frame.list(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     19. ├─base::do.call(data.frame, c(x, alis))
     20. └─base (local) `<fn>`(...)
     ── Error ('test-monolix-read.R:58:5'): test monolix reading for 2019, 2020, and 2021 ──
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-monolix-read.R:58:4
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─nlmixr2::nlmixr(...) at test-monolix-read.R:60:6
     5. └─nlmixr2est:::nlmixr2.function(...)
     6. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-monolix-read.R:147:3'): test more nlmixr2/monolix features ─────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-monolix-read.R:147:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─nlmixr2::nlmixr(...) at test-monolix-read.R:149:4
     5. └─nlmixr2est:::nlmixr2.function(...)
     6. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-monolix-read.R:180:3'): test Monolix pheno ─────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-monolix-read.R:180:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─nlmixr2::nlmixr(pheno, nlmixr2data::pheno_sd, "monolix", control = monolixControl(modelName = "pheno")) at test-monolix-read.R:182:4
     5. └─nlmixr2est:::nlmixr2.function(...)
     6. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Failure ('test-monolix-read.R:290:3'): pbpk mavoglurant ─────────────────────
     `bblDatToMonolix(pbpk, nlmixr2data::mavoglurant)` threw an unexpected error.
     Message: arguments imply differing number of rows: 1, 0
     Class: simpleError/error/condition
     Backtrace:
     ▆
     1. ├─testthat::expect_error(...) at test-monolix-read.R:290:2
     2. │ └─testthat:::expect_condition_matching(...)
     3. │ └─testthat:::quasi_capture(...)
     4. │ ├─testthat (local) .capture(...)
     5. │ │ └─base::withCallingHandlers(...)
     6. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
     7. └─babelmixr2::bblDatToMonolix(pbpk, nlmixr2data::mavoglurant)
     8. └─nlmixr2est::.foceiPreProcessData(data, .env, model)
     9. └─base::cbind(as.data.frame(.et), .keepL)
     10. └─base::cbind(deparse.level, ...)
     11. └─base::data.frame(..., check.names = FALSE)
     12. ├─base::as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     13. └─base::as.data.frame.list(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     14. ├─base::do.call(data.frame, c(x, alis))
     15. └─base (local) `<fn>`(...)
     16. ├─base::as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     17. └─base::as.data.frame.list(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     18. ├─base::do.call(data.frame, c(x, alis))
     19. └─base (local) `<fn>`(...)
     20. ├─base::as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     21. └─base::as.data.frame.list(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors)
     22. ├─base::do.call(data.frame, c(x, alis))
     23. └─base (local) `<fn>`(...)
     ── Error ('test-monolix-read.R:294:3'): pbpk mavoglurant ───────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-monolix-read.R:294:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─nlmixr2::nlmixr(pbpk, nlmixr2data::mavoglurant, "monolix", control = monolixControl(modelName = "pbpk")) at test-monolix-read.R:296:4
     5. └─nlmixr2est:::nlmixr2.function(...)
     6. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-monolix-read.R:358:3'): nimo test ──────────────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-monolix-read.R:358:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─base::suppressWarnings(...) at test-monolix-read.R:360:4
     5. │ └─base::withCallingHandlers(...)
     6. └─nlmixr2::nlmixr2(nimo, tmp, "monolix", control = monolixControl(modelName = "nimo"))
     7. ├─nlmixr2est::nlmixr2(...)
     8. └─nlmixr2est:::nlmixr2.function(...)
     9. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-monolix-read.R:429:3'): Monolix wbc ────────────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-monolix-read.R:429:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─base::suppressWarnings(...) at test-monolix-read.R:432:4
     5. │ └─base::withCallingHandlers(...)
     6. └─nlmixr2::nlmixr2(wbc, nlmixr2data::wbcSim, "monolix", control = monolixControl(modelName = "wbc"))
     7. ├─nlmixr2est::nlmixr2(...)
     8. └─nlmixr2est:::nlmixr2.function(...)
     9. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-monolix-read.R:464:3'): Monolix wbc test 2 ─────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-monolix-read.R:464:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─wbc %>% ini(prop.err = 15) %>% ... at test-monolix-read.R:467:4
     5. └─nlmixr2::nlmixr2(., nlmixr2data::wbcSim, "monolix", control = monolixControl(modelName = "x"))
     6. ├─nlmixr2est::nlmixr2(...)
     7. └─nlmixr2est:::nlmixr2.rxUi(...)
     8. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Failure ('test-nonmem-pred.R:24:3'): nonmem $pred model ─────────────────────
     `nlmixr(ipredWang2007, dat, "nonmem")` threw an unexpected error.
     Message: arguments imply differing number of rows: 1, 0
     Class: simpleError/error/condition
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-nonmem-pred.R:24:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─testthat::expect_error(...) at test-nonmem-pred.R:26:4
     5. │ └─testthat:::expect_condition_matching(...)
     6. │ └─testthat:::quasi_capture(...)
     7. │ ├─testthat (local) .capture(...)
     8. │ │ └─base::withCallingHandlers(...)
     9. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
     10. ├─nlmixr2est::nlmixr(ipredWang2007, dat, "nonmem")
     11. └─nlmixr2est:::nlmixr2.function(ipredWang2007, dat, "nonmem")
     12. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-nonmem-read.R:59:3'): warfarin NONMEM reading ──────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-nonmem-read.R:59:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─nlmixr2est::nlmixr(...) at test-nonmem-read.R:69:4
     5. └─nlmixr2est:::nlmixr2.function(...)
     6. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-nonmem-read.R:126:3'): pheno NONMEM reading ────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-nonmem-read.R:126:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. ├─nlmixr2::nlmixr(pheno, nlmixr2data::pheno_sd, "nonmem", control = nonmemControl(modelName = "pheno")) at test-nonmem-read.R:128:4
     5. └─nlmixr2est:::nlmixr2.function(...)
     6. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-nonmem-read.R:195:3'): wbc NONMEM reading ──────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─withr::with_tempdir(...) at test-nonmem-read.R:195:2
     2. │ └─withr::with_dir(tmp, code)
     3. │ └─base::force(code)
     4. └─nlmixr2::nlmixr2(...) at test-nonmem-read.R:202:4
     5. ├─nlmixr2est::nlmixr2(...)
     6. └─nlmixr2est:::nlmixr2.function(...)
     7. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-nonmem.R:148:7'): NONMEM dsl, full model ───────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─testthat::expect_message(...) at test-nonmem.R:148:6
     2. │ └─testthat:::expect_condition_matching(...)
     3. │ └─testthat:::quasi_capture(...)
     4. │ ├─testthat (local) .capture(...)
     5. │ │ └─base::withCallingHandlers(...)
     6. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
     7. ├─nlmixr2est::nlmixr(...)
     8. └─nlmixr2est:::nlmixr2.function(...)
     9. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-pknca.R:20:3'): est='pknca' ────────────────────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─base::suppressMessages(...) at test-pknca.R:20:2
     2. │ └─base::withCallingHandlers(...)
     3. ├─testthat::expect_s3_class(...)
     4. │ └─testthat::quasi_label(enquo(object), arg = "object")
     5. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     6. ├─nlmixr2est::nlmixr(...)
     7. └─nlmixr2est:::nlmixr2.function(...)
     8. └─nlmixr2est:::nlmixr2Est0(.env)
     ── Error ('test-pknca.R:144:3'): dvParam ───────────────────────────────────────
     Error: arguments imply differing number of rows: 1, 0
     Backtrace:
     ▆
     1. ├─base::suppressMessages(...) at test-pknca.R:144:2
     2. │ └─base::withCallingHandlers(...)
     3. ├─testthat::expect_s3_class(...)
     4. │ └─testthat::quasi_label(enquo(object), arg = "object")
     5. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     6. ├─nlmixr2est::nlmixr(...)
     7. └─nlmixr2est:::nlmixr2.function(...)
     8. └─nlmixr2est:::nlmixr2Est0(.env)
    
     [ FAIL 17 | WARN 0 | SKIP 0 | PASS 227 ]
     Error: Test failures
     Execution halted
Flavor: r-patched-linux-x86_64