rxTest({
  test_that("rate and duration data mismatches; Issue RxODE#445", {

    TV_CLr <- 6.54 # L/h, (CLr/F)
    TV_CLnr <- 2.39 # L/h, (CLnr/F)
    TV_Vc <- 95.1 # L, (V/F)
    TV_alag <- 0.145 # h,
    TV_D <- 0.512 # h,
    TV_Q <- 2.1 # L/h, (Q/F)
    TV_Vp <- 23.3 # L, (Vp/F)

    # zero-order absorption with lag time 2-compartment

    mod <- rxode2({
      CL <- CLr + CLnr
      C2 <- central / Vc * 1000
      d / dt(central) <- -CL / Vc * central - Q / Vc * central + Q / Vp * periph
      d / dt(periph) <- Q / Vc * central - Q / Vp * periph
      alag(central) <- alag
      dur(central) <- D
    })

    ev <- et(amt = 2, cmt = "central", ii = 24, addl = 4) |>
      et(seq(0, 120, 0.1))

    ### check whether infusion duration was considered in simulation

    theta2 <- c(D = TV_D * 10, CLr = TV_CLr, CLnr = TV_CLnr, Vc = TV_Vc, Vp = TV_Vp, Q = TV_Q, alag = TV_alag)
    #expect_warning(sim2 <- rxSolve(mod, theta2, ev), "dur()")


    ev2 <- et(amt = 2, cmt = "central", ii = 24, addl = 4, rate = -2) |>
      et(seq(0, 120, 0.1))

    theta2 <- c(D = TV_D * 10, CLr = TV_CLr, CLnr = TV_CLnr, Vc = TV_Vc, Vp = TV_Vp, Q = TV_Q, alag = TV_alag)
    expect_warning(sim2 <- rxSolve(mod, theta2, ev2), NA)

    mod <- rxode2({
      CL <- CLr + CLnr
      C2 <- central / Vc * 1000
      d / dt(central) <- -CL / Vc * central - Q / Vc * central + Q / Vp * periph
      d / dt(periph) <- Q / Vc * central - Q / Vp * periph
      alag(central) <- alag
      rate(central) <- D
    })

    theta2 <- c(D = TV_D * 10, CLr = TV_CLr, CLnr = TV_CLnr, Vc = TV_Vc, Vp = TV_Vp, Q = TV_Q, alag = TV_alag)
    #expect_warning(sim2 <- rxSolve(mod, theta2, ev), "rate()")

    ev3 <- et(amt = 2, cmt = "central", ii = 24, addl = 4, rate = -1) |>
      et(seq(0, 120, 0.1))

    theta2 <- c(D = TV_D * 10, CLr = TV_CLr, CLnr = TV_CLnr, Vc = TV_Vc, Vp = TV_Vp, Q = TV_Q, alag = TV_alag)
    expect_warning(sim2 <- rxSolve(mod, theta2, ev3), NA)
  })
})
