Running ‘spelling.R’
  Running ‘testthat.R’ [5s/15s]
Running the tests in ‘tests/testthat.R’ failed.
Complete output:
  > library(testthat)
  > library(ggdag)
  Loading required package: ggplot2
  
  Attaching package: 'ggdag'
  
  The following object is masked from 'package:ggplot2':
  
      expand_scale
  
  The following object is masked from 'package:stats':
  
      filter
  
  > 
  > test_check("ggdag")
  
  
  #
  # Fatal error in , line 0
  # Failed to create ICU collator, are ICU data files missing?
  #
  #
  #
  #FailureMessage Object: 0x7ffeb0d724e0
  ==== C stack trace ===============================
  
      /lib64/libnode.so.64(v8::base::debug::StackTrace::StackTrace()+0x1a) [0x7f1f6b81c45a]
      /lib64/libnode.so.64(+0x92e8b1) [0x7f1f6ada48b1]
      /lib64/libnode.so.64(V8_Fatal(char const*, int, char const*, ...)+0x177) [0x7f1f6b817f57]
      /lib64/libnode.so.64(v8::internal::Collator::InitializeCollator(v8::internal::Isolate*, v8::internal::Handle<v8::internal::JSObject>, v8::internal::Handle<v8::internal::String>, v8::internal::Handle<v8::internal::JSObject>, v8::internal::Handle<v8::internal::JSObject>)+0x473) [0x7f1f6b4f9413]
      /lib64/libnode.so.64(v8::internal::Runtime_CreateCollator(int, v8::internal::Object**, v8::internal::Isolate*)+0x192) [0x7f1f6b61e4a2]
      [0x55c13fdc0d8]
  
   *** caught illegal operation ***
  address 0x7f1f6abe29a5, cause 'illegal operand'
  
  Traceback:
   1: context_eval(join(src), private$context, serialize)
   2: get_str_output(context_eval(join(src), private$context, serialize))
   3: evaluate_js(src, serialize = serialize)
   4: ct$eval(paste("global.", name, "=", value))
   5: .jsassign(xv, .jsp("GraphTransformer.", method, "(global.", xv,     ")"))
   6: doTryCatch(return(expr), name, parentenv, handler)
   7: tryCatchOne(expr, names, parentenv, handlers[[1L]])
   8: tryCatchList(expr, classes, parentenv, handlers)
   9: tryCatch({    .jsassigngraph(xv, x)    .jsassign(xv, .jsp("GraphTransformer.", method, "(global.",         xv, ")"))    .jsassign(xv, .jsp("global.", xv, ".toString()"))    r <- .jsget(xv)}, error = function(e) stop(e), finally = {    .deleteJSVar(xv)})
  10: .graphTransformer(x, "dagToCpdag")
  11: dagitty::equivalenceClass(.dag$dag)
  12: eval(lhs, parent, parent)
  13: eval(lhs, parent, parent)
  14: dagitty::equivalenceClass(.dag$dag) %>% dagitty::edges(.) %>%     dplyr::filter(e == "--") %>% dplyr::select(name = v, reversable = e,     to = w) %>% dplyr::mutate_at(c("name", "to"), as.character) %>%     dplyr::mutate(hash = hash(name, to)) %>% dplyr::select(hash,     reversable)
  15: node_equivalent_class(tidy_dag)
  16: expect_function_produces_name(node_equivalent_class(tidy_dag),     "reversable")
  17: eval(code, test_env)
  18: eval(code, test_env)
  19: withCallingHandlers({    eval(code, test_env)    if (!handled && !is.null(test)) {        skip_empty()    }}, expectation = handle_expectation, skip = handle_skip, warning = handle_warning,     message = handle_message, error = handle_error)
  20: doTryCatch(return(expr), name, parentenv, handler)
  21: tryCatchOne(expr, names, parentenv, handlers[[1L]])
  22: tryCatchList(expr, names[-nh], parentenv, handlers[-nh])
  23: doTryCatch(return(expr), name, parentenv, handler)
  24: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]),     names[nh], parentenv, handlers[[nh]])
  25: tryCatchList(expr, classes, parentenv, handlers)
  26: tryCatch(withCallingHandlers({    eval(code, test_env)    if (!handled && !is.null(test)) {        skip_empty()    }}, expectation = handle_expectation, skip = handle_skip, warning = handle_warning,     message = handle_message, error = handle_error), error = handle_fatal,     skip = function(e) {    })
  27: test_code(desc, code, env = parent.frame())
  28: test_that("node functions produce correct columns", {    tidy_dag <- dagify(y ~ x + z, x ~ z) %>% tidy_dagitty()    expect_function_produces_name(node_ancestors(tidy_dag, "y"),         "ancestor")    expect_function_produces_name(node_children(tidy_dag, "z"),         "children")    expect_function_produces_name(node_collider(tidy_dag), "colliders")    expect_function_produces_name(node_dconnected(tidy_dag, "x",         "y"), c("adjusted", "d_relationship"))    expect_function_produces_name(node_descendants(tidy_dag,         "z"), "descendant")    expect_function_produces_name(node_drelationship(tidy_dag,         "x", "y"), c("adjusted", "d_relationship"))    expect_function_produces_name(node_dseparated(tidy_dag, "x",         "y"), c("adjusted", "d_relationship"))    expect_function_produces_name(node_equivalent_class(tidy_dag),         "reversable")    expect_function_produces_name(node_equivalent_dags(tidy_dag),         "dag")    expect_function_produces_name(node_exogenous(tidy_dag), "exogenous")    expect_function_produces_name(node_instrumental(tidy_dag,         exposure = "x", outcome = "y"), c("adjusted", "instrumental"))    expect_function_produces_name(node_parents(tidy_dag, "z"),         "parent")    expect_function_produces_name(node_status(tidy_dag), "status")})
  29: eval(code, test_env)
  30: eval(code, test_env)
  31: withCallingHandlers({    eval(code, test_env)    if (!handled && !is.null(test)) {        skip_empty()    }}, expectation = handle_expectation, skip = handle_skip, warning = handle_warning,     message = handle_message, error = handle_error)
  32: doTryCatch(return(expr), name, parentenv, handler)
  33: tryCatchOne(expr, names, parentenv, handlers[[1L]])
  34: tryCatchList(expr, names[-nh], parentenv, handlers[-nh])
  35: doTryCatch(return(expr), name, parentenv, handler)
  36: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]),     names[nh], parentenv, handlers[[nh]])
  37: tryCatchList(expr, classes, parentenv, handlers)
  38: tryCatch(withCallingHandlers({    eval(code, test_env)    if (!handled && !is.null(test)) {        skip_empty()    }}, expectation = handle_expectation, skip = handle_skip, warning = handle_warning,     message = handle_message, error = handle_error), error = handle_fatal,     skip = function(e) {    })
  39: test_code(NULL, exprs, env)
  40: source_file(path, new.env(parent = env), chdir = TRUE, wrap = wrap)
  41: force(code)
  42: doWithOneRestart(return(expr), restart)
  43: withOneRestart(expr, restarts[[1L]])
  44: withRestarts(testthat_abort_reporter = function() NULL, force(code))
  45: with_reporter(reporter = reporter, start_end_reporter = start_end_reporter,     {        reporter$start_file(basename(path))        lister$start_file(basename(path))        source_file(path, new.env(parent = env), chdir = TRUE,             wrap = wrap)        reporter$.end_context()        reporter$end_file()    })
  46: FUN(X[[i]], ...)
  47: lapply(paths, test_file, env = env, reporter = current_reporter,     start_end_reporter = FALSE, load_helpers = FALSE, wrap = wrap)
  48: force(code)
  49: doWithOneRestart(return(expr), restart)
  50: withOneRestart(expr, restarts[[1L]])
  51: withRestarts(testthat_abort_reporter = function() NULL, force(code))
  52: with_reporter(reporter = current_reporter, results <- lapply(paths,     test_file, env = env, reporter = current_reporter, start_end_reporter = FALSE,     load_helpers = FALSE, wrap = wrap))
  53: test_files(paths, reporter = reporter, env = env, stop_on_failure = stop_on_failure,     stop_on_warning = stop_on_warning, wrap = wrap)
  54: test_dir(path = test_path, reporter = reporter, env = env, filter = filter,     ..., stop_on_failure = stop_on_failure, stop_on_warning = stop_on_warning,     wrap = wrap)
  55: test_package_dir(package = package, test_path = test_path, filter = filter,     reporter = reporter, ..., stop_on_failure = stop_on_failure,     stop_on_warning = stop_on_warning, wrap = wrap)
  56: test_check("ggdag")
  An irrecoverable exception occurred. R is aborting now ...