tests/testthat/setup.R

# rkeops >= 2.0 features a python dependency, which, at this time,
# requires users to manage both a Python install and R install
if ( rlang::is_installed("rkeops") ) {
  two_debian_catch <- pkg_vers_number("2.0")
  vers_match   <- tryCatch(utils::packageVersion("rkeops") >= two_debian_catch,
                           error = function(e) FALSE)
  not_on_cran <-  !(!interactive() && !isTRUE(as.logical(Sys.getenv("NOT_CRAN", "false"))))
  if (not_on_cran && vers_match && rlang::is_installed("reticulate")) {
    if (is.character(find.package("reticulate"))) {
      rkeops_pyenv <- "rkeops_test_asdf"
      # setup.mess <- reticulate::py_capture_output({
      reticulate::virtualenv_create(envname = rkeops_pyenv)
      reticulate::use_virtualenv(virtualenv = rkeops_pyenv, required = TRUE)
      reticulate::py_config()
      reticulate::py_install("pykeops")
      # })
      mess <- reticulate::py_capture_output(
        testthat::capture_messages(rkeops_good <- rkeops::check_rkeops())
      )
      stopifnot("rkeops not working" = rkeops_good)
      withr::defer({
        reticulate::virtualenv_remove(envname = rkeops_pyenv)
      }, testthat::teardown_env())
    }
  }
}

Try the causalOT package in your browser

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

causalOT documentation built on May 29, 2024, 6:16 a.m.