Running 'testthat.R' [2s/3s]
Running the tests in 'tests/testthat.R' failed.
Complete output:
  > library(testthat)
  > library(bmotif)
  > 
  > test_check("bmotif")
   ----------- FAILURE REPORT -------------- 
   --- failure: the condition has length > 1 ---
   --- srcref --- 
  : 
   --- package (from environment) --- 
  bmotif
   --- call from context --- 
  mcount(matrix("a", 3, 3))
   --- call from argument --- 
  if (class(M) != "matrix") {
      stop("'M' must be an object of class 'matrix'")
  }
   --- R stacktrace ---
  where 1: mcount(matrix("a", 3, 3))
  where 2: eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
  where 3: withCallingHandlers({
      code
      NULL
  }, error = function(cnd) {
      cnd <- cnd_entrace(cnd)
      return_from(env, cnd)
  })
  where 4: .capture(act$val <- eval_bare(quo_get_expr(.quo), quo_get_env(.quo)), 
      ...)
  where 5: quasi_capture(enquo(object), label, capture_error, entrace = TRUE)
  where 6 at testthat/test_mcount.R#3: expect_error(object = mcount(matrix("a", 3, 3)), "Elements of 'M' must be numeric")
  where 7: eval(code, test_env)
  where 8: eval(code, test_env)
  where 9: 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)
  where 10: doTryCatch(return(expr), name, parentenv, handler)
  where 11: tryCatchOne(expr, names, parentenv, handlers[[1L]])
  where 12: tryCatchList(expr, names[-nh], parentenv, handlers[-nh])
  where 13: doTryCatch(return(expr), name, parentenv, handler)
  where 14: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]), 
      names[nh], parentenv, handlers[[nh]])
  where 15: tryCatchList(expr, classes, parentenv, handlers)
  where 16: 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) {
      })
  where 17: test_code(desc, code, env = parent.frame())
  where 18 at testthat/test_mcount.R#1: test_that("mcount behaves as expected", {
      expect_error(object = mcount("a"), "'M' must be an object of class 'matrix'")
      expect_error(object = mcount(matrix("a", 3, 3)), "Elements of 'M' must be numeric")
      expect_error(object = mcount(matrix(-1, 3, 3)), "Elements of 'M' must be greater than or equal to zero")
      expect_error(object = mcount(matrix(1, 3, 3), six_node = TRUE, 
          normalise = 7), "'normalise' must be of class 'logical' i.e. TRUE or FALSE")
      expect_error(object = mcount(matrix(1, 3, 3), six_node = 7, 
          normalise = TRUE), "'six_node' must be of class 'logical' i.e. TRUE or FALSE")
      expect_equal(object = mcount(M = mat, six_node = FALSE, normalise = FALSE), 
          mcount_SF_NF)
      expect_equal(object = mcount(M = mat, six_node = TRUE, normalise = FALSE), 
          mcount_ST_NF)
      expect_equal(object = mcount(M = mat, six_node = FALSE, normalise = TRUE), 
          mcount_SF_NT)
      expect_equal(object = mcount(M = mat, six_node = TRUE, normalise = TRUE), 
          mcount_ST_NT)
      expect_equal(mcount(M = t(mat), six_node = TRUE, normalise = TRUE), 
          mcount_transpose_ST_NT)
      expect_equal(mcount(M = t(mat), six_node = FALSE, normalise = TRUE), 
          mcount_transpose_SF_NT)
      expect_equal(mcount(M = t(mat), six_node = TRUE, normalise = FALSE), 
          mcount_transpose_ST_NF)
      expect_equal(mcount(M = t(mat), six_node = FALSE, normalise = FALSE), 
          mcount_transpose_SF_NF)
  })
  where 19: eval(code, test_env)
  where 20: eval(code, test_env)
  where 21: 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)
  where 22: doTryCatch(return(expr), name, parentenv, handler)
  where 23: tryCatchOne(expr, names, parentenv, handlers[[1L]])
  where 24: tryCatchList(expr, names[-nh], parentenv, handlers[-nh])
  where 25: doTryCatch(return(expr), name, parentenv, handler)
  where 26: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]), 
      names[nh], parentenv, handlers[[nh]])
  where 27: tryCatchList(expr, classes, parentenv, handlers)
  where 28: 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) {
      })
  where 29: test_code(NULL, exprs, env)
  where 30: source_file(path, new.env(parent = env), chdir = TRUE, wrap = wrap)
  where 31: force(code)
  where 32: doWithOneRestart(return(expr), restart)
  where 33: withOneRestart(expr, restarts[[1L]])
  where 34: withRestarts(testthat_abort_reporter = function() NULL, force(code))
  where 35: 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()
      })
  where 36: FUN(X[[i]], ...)
  where 37: lapply(paths, test_file, env = env, reporter = current_reporter, 
      start_end_reporter = FALSE, load_helpers = FALSE, wrap = wrap)
  where 38: force(code)
  where 39: doWithOneRestart(return(expr), restart)
  where 40: withOneRestart(expr, restarts[[1L]])
  where 41: withRestarts(testthat_abort_reporter = function() NULL, force(code))
  where 42: with_reporter(reporter = current_reporter, results <- lapply(paths, 
      test_file, env = env, reporter = current_reporter, start_end_reporter = FALSE, 
      load_helpers = FALSE, wrap = wrap))
  where 43: test_files(paths, reporter = reporter, env = env, stop_on_failure = stop_on_failure, 
      stop_on_warning = stop_on_warning, wrap = wrap)
  where 44: 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)
  where 45: 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)
  where 46: test_check("bmotif")
  
   --- value of length: 2 type: logical ---
  [1] FALSE  TRUE
   --- function from context --- 
  function (M, six_node, normalise) 
  {
      if (class(M) != "matrix") {
          stop("'M' must be an object of class 'matrix'")
      }
      if (!all(apply(M, 1:2, is.numeric))) {
          stop("Elements of 'M' must be numeric")
      }
      if (!all(apply(M, 1:2, function(x) length(x) > 0))) {
          stop("Elements of 'M' cannot have length zero")
      }
      if (!all(apply(M, 1:2, function(x) x >= 0))) {
          stop("Elements of 'M' must be greater than or equal to zero")
      }
      if (class(normalise) != "logical") {
          stop("'normalise' must be of class 'logical' i.e. TRUE or FALSE")
      }
      if (class(six_node) != "logical") {
          stop("'six_node' must be of class 'logical' i.e. TRUE or FALSE")
      }
      M[M > 0] <- 1
      dimnames(M) <- NULL
      p <- dim(M)[2]
      z <- dim(M)[1]
      J <- matrix(rep(1, z * p), nrow = z, ncol = p)
      JP <- matrix(rep(1, p * p), nrow = p, ncol = p)
      JZ <- matrix(rep(1, z * z), nrow = z, ncol = z)
      MT <- t(M)
      N <- J - M
      NT <- t(N)
      P <- MT %*% M
      Q <- MT %*% N
      R <- NT %*% M
      Z <- M %*% MT
      Y <- M %*% NT
      X <- N %*% MT
      dP <- apply(M, MARGIN = 2, sum)
      jP <- rep(1, p)
      dZ <- apply(M, MARGIN = 1, sum)
      jZ <- rep(1, z)
      if (six_node == TRUE) {
          if (p < z) {
              J3 <- array(rep(1, p * p * p), c(p, p, p))
              AP <- maketensor(M, M)
              BP <- maketensor(M, N)
              CP <- maketensor(N, M)
              DP <- maketensor(N, N)
              MA <- tensor::tensor(MT, AP, 2, 1)
              MB <- tensor::tensor(MT, BP, 2, 1)
              MC <- tensor::tensor(MT, CP, 2, 1)
              MD <- tensor::tensor(MT, DP, 2, 1)
              Na <- tensor::tensor(NT, AP, 2, 1)
              NB <- tensor::tensor(NT, BP, 2, 1)
              NC <- tensor::tensor(NT, CP, 2, 1)
              K3 <- J3
              for (i in 1:p) {
                  for (j in 1:p) {
                    K3[i, j, j] <- 0
                    K3[j, i, j] <- 0
                    K3[j, j, i] <- 0
                  }
              }
          }
          if (p >= z) {
              J3 <- array(rep(1, z * z * z), c(z, z, z))
              AP <- maketensor(MT, MT)
              BP <- maketensor(MT, NT)
              CP <- maketensor(NT, MT)
              DP <- maketensor(NT, NT)
              MA <- tensor::tensor(M, AP, 2, 1)
              MB <- tensor::tensor(M, BP, 2, 1)
              MC <- tensor::tensor(M, CP, 2, 1)
              MD <- tensor::tensor(M, DP, 2, 1)
              Na <- tensor::tensor(N, AP, 2, 1)
              NB <- tensor::tensor(N, BP, 2, 1)
              NC <- tensor::tensor(N, CP, 2, 1)
              K3 <- J3
              for (i in 1:z) {
                  for (j in 1:z) {
                    K3[i, j, j] <- 0
                    K3[j, i, j] <- 0
                    K3[j, j, i] <- 0
                  }
              }
          }
          MA <- MA * K3
          MB <- MB * K3
          MC <- MC * K3
          MD <- MD * K3
          Na <- Na * K3
          NB <- NB * K3
          NC <- NC * K3
      }
      if (six_node == FALSE) {
          if (normalise == TRUE) {
              out <- data.frame(motif = 1:17, nodes = c(2, rep(3, 
                  2), rep(4, 4), rep(5, 10)), frequency = NA, normalise_sum = NA, 
                  normalise_sizeclass = NA, normalise_nodesets = NA)
          }
          else {
              out <- data.frame(motif = 1:17, nodes = c(2, rep(3, 
                  2), rep(4, 4), rep(5, 10)), frequency = NA)
          }
      }
      else {
          if (normalise == TRUE) {
              out <- data.frame(motif = 1:44, nodes = c(2, rep(3, 
                  2), rep(4, 4), rep(5, 10), rep(6, 27)), frequency = NA, 
                  normalise_sum = NA, normalise_sizeclass = NA, 
                  normalise_nodesets = NA)
          }
          else {
              out <- data.frame(motif = 1:44, nodes = c(2, rep(3, 
                  2), rep(4, 4), rep(5, 10), rep(6, 27)), frequency = NA)
          }
      }
      if (six_node == FALSE) {
          for (i in 1:17) {
              out[i, "frequency"] <- countmotif(x = M, motif = i, 
                  z = z, p = p, JP = JP, JZ = JZ, P = P, Q = Q, 
                  R = R, Z = Z, Y = Y, X = X, dP = dP, jP = jP, 
                  dZ = dZ, jZ = jZ)
          }
      }
      else {
          for (i in 1:44) {
              out[i, "frequency"] <- countmotif(x = M, motif = i, 
                  z = z, p = p, JP = JP, JZ = JZ, P = P, Q = Q, 
                  R = R, Z = Z, Y = Y, X = X, dP = dP, jP = jP, 
                  dZ = dZ, jZ = jZ, J3 = J3, MA = MA, MB = MB, 
                  MC = MC, MD = MD, Na = Na, NB = NB, NC = NC)
          }
      }
      if (normalise == TRUE) {
          out$normalise_sum <- out$frequency/sum(out$frequency)
          out$normalise_sizeclass <- do.call("c", lapply(split(out, 
              out$nodes), function(df) df$frequency/sum(df$frequency)))
          sets <- node_sets(M, six_node = six_node)
          out$normalise_nodesets <- out$frequency/sets
      }
      return(out)
  }
  <bytecode: 0x47014c0>
  <environment: namespace:bmotif>
   --- function search by body ---
  Function mcount in namespace bmotif has this body.
   ----------- END OF FAILURE REPORT -------------- 
  Fatal error: the condition has length > 1