Running 'test-all.R' [6s/7s]
Running the tests in 'tests/test-all.R' failed.
Complete output:
  > library(testthat)
  > test_check("rotations")
  Loading required package: rotations
  Loading required package: ggplot2
  Loading required package: Rcpp
  Loading required package: rgl
  
  Attaching package: 'rotations'
  
  The following object is masked from 'package:stats':
  
      median
  
   ----------- FAILURE REPORT -------------- 
   --- failure: the condition has length > 1 ---
   --- srcref --- 
  : 
   --- package (from environment) --- 
  rotations
   --- call from context --- 
  is.SO3(Rs)
   --- call from argument --- 
  if (class(x) == "data.frame") R <- data.matrix(R)
   --- R stacktrace ---
  where 1: is.SO3(Rs)
  where 2: formatSO3(R)
  where 3: as.Q4.SO3(Rs)
  where 4 at testthat/test_arithmetic.R#3: as.Q4(Rs)
  where 5: eval(code, test_env)
  where 6: eval(code, test_env)
  where 7: 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 8: doTryCatch(return(expr), name, parentenv, handler)
  where 9: tryCatchOne(expr, names, parentenv, handlers[[1L]])
  where 10: tryCatchList(expr, names[-nh], parentenv, handlers[-nh])
  where 11: doTryCatch(return(expr), name, parentenv, handler)
  where 12: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]), 
      names[nh], parentenv, handlers[[nh]])
  where 13: tryCatchList(expr, classes, parentenv, handlers)
  where 14: 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 15: test_code(NULL, exprs, env)
  where 16: source_file(path, new.env(parent = env), chdir = TRUE, wrap = wrap)
  where 17: force(code)
  where 18: doWithOneRestart(return(expr), restart)
  where 19: withOneRestart(expr, restarts[[1L]])
  where 20: withRestarts(testthat_abort_reporter = function() NULL, force(code))
  where 21: 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 22: FUN(X[[i]], ...)
  where 23: lapply(paths, test_file, env = env, reporter = current_reporter, 
      start_end_reporter = FALSE, load_helpers = FALSE, wrap = wrap)
  where 24: force(code)
  where 25: doWithOneRestart(return(expr), restart)
  where 26: withOneRestart(expr, restarts[[1L]])
  where 27: withRestarts(testthat_abort_reporter = function() NULL, force(code))
  where 28: 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 29: test_files(paths, reporter = reporter, env = env, stop_on_failure = stop_on_failure, 
      stop_on_warning = stop_on_warning, wrap = wrap)
  where 30: 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 31: 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 32: test_check("rotations")
  
   --- value of length: 2 type: logical ---
  [1] FALSE FALSE
   --- function from context --- 
  function (x) 
  {
      Rlen <- length(x)
      if (Rlen%%9 != 0) {
          return(FALSE)
      }
      R <- x
      if (class(x) == "data.frame") 
          R <- data.matrix(R)
      R <- matrix(R, ncol = 9)
      apply(R, 1, function(R) {
          R <- matrix(R, 3, 3)
          if (any(is.na(R))) 
              return(FALSE)
          if (abs(det(R) - 1) > 1e-09) 
              return(FALSE)
          return(all(abs(t(R) %*% R - diag(1, 3)) < 1e-04))
      })
  }
  <bytecode: 0x6a1d770>
  <environment: namespace:rotations>
   --- function search by body ---
  Function is.SO3 in namespace rotations has this body.
   ----------- END OF FAILURE REPORT -------------- 
  -- 1. Error: (unknown) (@test_arithmetic.R#3)  ---------------------------------
  the condition has length > 1
  Backtrace:
   1. rotations::as.Q4(Rs)
   2. rotations:::as.Q4.SO3(Rs)
   3. rotations:::formatSO3(R)
   4. rotations::is.SO3(Rs)
  
   ----------- FAILURE REPORT -------------- 
   --- failure: the condition has length > 1 ---
   --- srcref --- 
  : 
   --- package (from environment) --- 
  rotations
   --- call from context --- 
  is.SO3(Rs)
   --- call from argument --- 
  if (class(x) == "data.frame") R <- data.matrix(R)
   --- R stacktrace ---
  where 1: is.SO3(Rs)
  where 2: formatSO3(x)
  where 3: mis.angle.SO3(R)
  where 4: mis.angle(R)
  where 5: eval_bare(expr, quo_get_env(quo))
  where 6: quasi_label(enquo(object), label, arg = "object")
  where 7 at testthat/test_basics.R#11: expect_equal(mis.angle(R), abs(r))
  where 8: eval(code, test_env)
  where 9: eval(code, test_env)
  where 10: 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 11: doTryCatch(return(expr), name, parentenv, handler)
  where 12: tryCatchOne(expr, names, parentenv, handlers[[1L]])
  where 13: tryCatchList(expr, names[-nh], parentenv, handlers[-nh])
  where 14: doTryCatch(return(expr), name, parentenv, handler)
  where 15: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]), 
      names[nh], parentenv, handlers[[nh]])
  where 16: tryCatchList(expr, classes, parentenv, handlers)
  where 17: 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 18: test_code(NULL, exprs, env)
  where 19: source_file(path, new.env(parent = env), chdir = TRUE, wrap = wrap)
  where 20: force(code)
  where 21: doWithOneRestart(return(expr), restart)
  where 22: withOneRestart(expr, restarts[[1L]])
  where 23: withRestarts(testthat_abort_reporter = function() NULL, force(code))
  where 24: 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 25: FUN(X[[i]], ...)
  where 26: lapply(paths, test_file, env = env, reporter = current_reporter, 
      start_end_reporter = FALSE, load_helpers = FALSE, wrap = wrap)
  where 27: force(code)
  where 28: doWithOneRestart(return(expr), restart)
  where 29: withOneRestart(expr, restarts[[1L]])
  where 30: withRestarts(testthat_abort_reporter = function() NULL, force(code))
  where 31: 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 32: test_files(paths, reporter = reporter, env = env, stop_on_failure = stop_on_failure, 
      stop_on_warning = stop_on_warning, wrap = wrap)
  where 33: 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 34: 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 35: test_check("rotations")
  
   --- value of length: 2 type: logical ---
  [1] FALSE FALSE
   --- function from context --- 
  function (x) 
  {
      Rlen <- length(x)
      if (Rlen%%9 != 0) {
          return(FALSE)
      }
      R <- x
      if (class(x) == "data.frame") 
          R <- data.matrix(R)
      R <- matrix(R, ncol = 9)
      apply(R, 1, function(R) {
          R <- matrix(R, 3, 3)
          if (any(is.na(R))) 
              return(FALSE)
          if (abs(det(R) - 1) > 1e-09) 
              return(FALSE)
          return(all(abs(t(R) %*% R - diag(1, 3)) < 1e-04))
      })
  }
  <bytecode: 0x6a1d770>
  <environment: namespace:rotations>
   --- function search by body ---
  Function is.SO3 in namespace rotations has this body.
   ----------- END OF FAILURE REPORT -------------- 
  -- 2. Error: (unknown) (@test_basics.R#11)  ------------------------------------
  the condition has length > 1
  Backtrace:
   1. testthat::expect_equal(mis.angle(R), abs(r))
   5. rotations:::mis.angle.SO3(R)
   6. rotations:::formatSO3(x)
   7. rotations::is.SO3(Rs)
  
   ----------- FAILURE REPORT -------------- 
   --- failure: the condition has length > 1 ---
   --- srcref --- 
  : 
   --- package (from environment) --- 
  rotations
   --- call from context --- 
  is.SO3(Rs)
   --- call from argument --- 
  if (class(x) == "data.frame") R <- data.matrix(R)
   --- R stacktrace ---
  where 1: is.SO3(Rs)
  where 2: formatSO3(R)
  where 3: as.Q4.SO3(as.SO3(u, r))
  where 4: as.Q4(as.SO3(u, r))
  where 5: eval_bare(expr, quo_get_env(quo))
  where 6: quasi_label(enquo(object), label, arg = "object")
  where 7 at testthat/test_conversions.R#7: expect_equal(as.Q4(as.SO3(u, r)), as.Q4(u, r))
  where 8: eval(code, test_env)
  where 9: eval(code, test_env)
  where 10: 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 11: doTryCatch(return(expr), name, parentenv, handler)
  where 12: tryCatchOne(expr, names, parentenv, handlers[[1L]])
  where 13: tryCatchList(expr, names[-nh], parentenv, handlers[-nh])
  where 14: doTryCatch(return(expr), name, parentenv, handler)
  where 15: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]), 
      names[nh], parentenv, handlers[[nh]])
  where 16: tryCatchList(expr, classes, parentenv, handlers)
  where 17: 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 18: test_code(NULL, exprs, env)
  where 19: source_file(path, new.env(parent = env), chdir = TRUE, wrap = wrap)
  where 20: force(code)
  where 21: doWithOneRestart(return(expr), restart)
  where 22: withOneRestart(expr, restarts[[1L]])
  where 23: withRestarts(testthat_abort_reporter = function() NULL, force(code))
  where 24: 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 25: FUN(X[[i]], ...)
  where 26: lapply(paths, test_file, env = env, reporter = current_reporter, 
      start_end_reporter = FALSE, load_helpers = FALSE, wrap = wrap)
  where 27: force(code)
  where 28: doWithOneRestart(return(expr), restart)
  where 29: withOneRestart(expr, restarts[[1L]])
  where 30: withRestarts(testthat_abort_reporter = function() NULL, force(code))
  where 31: 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 32: test_files(paths, reporter = reporter, env = env, stop_on_failure = stop_on_failure, 
      stop_on_warning = stop_on_warning, wrap = wrap)
  where 33: 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 34: 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 35: test_check("rotations")
  
   --- value of length: 2 type: logical ---
  [1] FALSE FALSE
   --- function from context --- 
  function (x) 
  {
      Rlen <- length(x)
      if (Rlen%%9 != 0) {
          return(FALSE)
      }
      R <- x
      if (class(x) == "data.frame") 
          R <- data.matrix(R)
      R <- matrix(R, ncol = 9)
      apply(R, 1, function(R) {
          R <- matrix(R, 3, 3)
          if (any(is.na(R))) 
              return(FALSE)
          if (abs(det(R) - 1) > 1e-09) 
              return(FALSE)
          return(all(abs(t(R) %*% R - diag(1, 3)) < 1e-04))
      })
  }
  <bytecode: 0x6a1d770>
  <environment: namespace:rotations>
   --- function search by body ---
  Function is.SO3 in namespace rotations has this body.
   ----------- END OF FAILURE REPORT -------------- 
  -- 3. Error: (unknown) (@test_conversions.R#7)  --------------------------------
  the condition has length > 1
  Backtrace:
   1. testthat::expect_equal(as.Q4(as.SO3(u, r)), as.Q4(u, r))
   5. rotations:::as.Q4.SO3(as.SO3(u, r))
   6. rotations:::formatSO3(R)
   7. rotations::is.SO3(Rs)
  
   ----------- FAILURE REPORT -------------- 
   --- failure: the condition has length > 1 ---
   --- srcref --- 
  : 
   --- package (from environment) --- 
  rotations
   --- call from context --- 
  is.SO3(Rs)
   --- call from argument --- 
  if (class(x) == "data.frame") R <- data.matrix(R)
   --- R stacktrace ---
  where 1: is.SO3(Rs)
  where 2: formatSO3(R)
  where 3: as.Q4.SO3(Rs)
  where 4 at testthat/test_discord.R#2: as.Q4(Rs)
  where 5: eval(code, test_env)
  where 6: eval(code, test_env)
  where 7: 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 8: doTryCatch(return(expr), name, parentenv, handler)
  where 9: tryCatchOne(expr, names, parentenv, handlers[[1L]])
  where 10: tryCatchList(expr, names[-nh], parentenv, handlers[-nh])
  where 11: doTryCatch(return(expr), name, parentenv, handler)
  where 12: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]), 
      names[nh], parentenv, handlers[[nh]])
  where 13: tryCatchList(expr, classes, parentenv, handlers)
  where 14: 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 15: test_code(NULL, exprs, env)
  where 16: source_file(path, new.env(parent = env), chdir = TRUE, wrap = wrap)
  where 17: force(code)
  where 18: doWithOneRestart(return(expr), restart)
  where 19: withOneRestart(expr, restarts[[1L]])
  where 20: withRestarts(testthat_abort_reporter = function() NULL, force(code))
  where 21: 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 22: FUN(X[[i]], ...)
  where 23: lapply(paths, test_file, env = env, reporter = current_reporter, 
      start_end_reporter = FALSE, load_helpers = FALSE, wrap = wrap)
  where 24: force(code)
  where 25: doWithOneRestart(return(expr), restart)
  where 26: withOneRestart(expr, restarts[[1L]])
  where 27: withRestarts(testthat_abort_reporter = function() NULL, force(code))
  where 28: 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 29: test_files(paths, reporter = reporter, env = env, stop_on_failure = stop_on_failure, 
      stop_on_warning = stop_on_warning, wrap = wrap)
  where 30: 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 31: 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 32: test_check("rotations")
  
   --- value of length: 2 type: logical ---
  [1] FALSE FALSE
   --- function from context --- 
  function (x) 
  {
      Rlen <- length(x)
      if (Rlen%%9 != 0) {
          return(FALSE)
      }
      R <- x
      if (class(x) == "data.frame") 
          R <- data.matrix(R)
      R <- matrix(R, ncol = 9)
      apply(R, 1, function(R) {
          R <- matrix(R, 3, 3)
          if (any(is.na(R))) 
              return(FALSE)
          if (abs(det(R) - 1) > 1e-09) 
              return(FALSE)
          return(all(abs(t(R) %*% R - diag(1, 3)) < 1e-04))
      })
  }
  <bytecode: 0x6a1d770>
  <environment: namespace:rotations>
   --- function search by body ---
  Function is.SO3 in namespace rotations has this body.
   ----------- END OF FAILURE REPORT -------------- 
  -- 4. Error: (unknown) (@test_discord.R#2)  ------------------------------------
  the condition has length > 1
  Backtrace:
   1. rotations::as.Q4(Rs)
   2. rotations:::as.Q4.SO3(Rs)
   3. rotations:::formatSO3(R)
   4. rotations::is.SO3(Rs)
  
   ----------- FAILURE REPORT -------------- 
   --- failure: the condition has length > 1 ---
   --- srcref --- 
  : 
   --- package (from environment) --- 
  rotations
   --- call from context --- 
  is.SO3(Rs)
   --- call from argument --- 
  if (class(x) == "data.frame") R <- data.matrix(R)
   --- R stacktrace ---
  where 1: is.SO3(Rs)
  where 2: formatSO3(R)
  where 3: as.Q4.SO3(Rs)
  where 4 at testthat/test_estimators.R#3: as.Q4(Rs)
  where 5: eval(code, test_env)
  where 6: eval(code, test_env)
  where 7: 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 8: doTryCatch(return(expr), name, parentenv, handler)
  where 9: tryCatchOne(expr, names, parentenv, handlers[[1L]])
  where 10: tryCatchList(expr, names[-nh], parentenv, handlers[-nh])
  where 11: doTryCatch(return(expr), name, parentenv, handler)
  where 12: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]), 
      names[nh], parentenv, handlers[[nh]])
  where 13: tryCatchList(expr, classes, parentenv, handlers)
  where 14: 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 15: test_code(NULL, exprs, env)
  where 16: source_file(path, new.env(parent = env), chdir = TRUE, wrap = wrap)
  where 17: force(code)
  where 18: doWithOneRestart(return(expr), restart)
  where 19: withOneRestart(expr, restarts[[1L]])
  where 20: withRestarts(testthat_abort_reporter = function() NULL, force(code))
  where 21: 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 22: FUN(X[[i]], ...)
  where 23: lapply(paths, test_file, env = env, reporter = current_reporter, 
      start_end_reporter = FALSE, load_helpers = FALSE, wrap = wrap)
  where 24: force(code)
  where 25: doWithOneRestart(return(expr), restart)
  where 26: withOneRestart(expr, restarts[[1L]])
  where 27: withRestarts(testthat_abort_reporter = function() NULL, force(code))
  where 28: 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 29: test_files(paths, reporter = reporter, env = env, stop_on_failure = stop_on_failure, 
      stop_on_warning = stop_on_warning, wrap = wrap)
  where 30: 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 31: 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 32: test_check("rotations")
  
   --- value of length: 2 type: logical ---
  [1] FALSE FALSE
   --- function from context --- 
  function (x) 
  {
      Rlen <- length(x)
      if (Rlen%%9 != 0) {
          return(FALSE)
      }
      R <- x
      if (class(x) == "data.frame") 
          R <- data.matrix(R)
      R <- matrix(R, ncol = 9)
      apply(R, 1, function(R) {
          R <- matrix(R, 3, 3)
          if (any(is.na(R))) 
              return(FALSE)
          if (abs(det(R) - 1) > 1e-09) 
              return(FALSE)
          return(all(abs(t(R) %*% R - diag(1, 3)) < 1e-04))
      })
  }
  <bytecode: 0x6a1d770>
  <environment: namespace:rotations>
   --- function search by body ---
  Function is.SO3 in namespace rotations has this body.
   ----------- END OF FAILURE REPORT -------------- 
  -- 5. Error: (unknown) (@test_estimators.R#3)  ---------------------------------
  the condition has length > 1
  Backtrace:
   1. rotations::as.Q4(Rs)
   2. rotations:::as.Q4.SO3(Rs)
   3. rotations:::formatSO3(R)
   4. rotations::is.SO3(Rs)
  
   ----------- FAILURE REPORT -------------- 
   --- failure: the condition has length > 1 ---
   --- srcref --- 
  : 
   --- package (from environment) --- 
  rotations
   --- call from context --- 
  is.SO3(Rs)
   --- call from argument --- 
  if (class(x) == "data.frame") R <- data.matrix(R)
   --- R stacktrace ---
  where 1: is.SO3(Rs)
  where 2: formatSO3(x)
  where 3: rot.dist.SO3(Rs, method = "intrinsic")
  where 4: rot.dist(Rs, method = "intrinsic")
  where 5: eval_bare(expr, quo_get_env(quo))
  where 6: quasi_label(enquo(object), label, arg = "object")
  where 7 at testthat/test_metrics.R#5: expect_equal(rot.dist(Rs, method = "intrinsic"), abs(rs))
  where 8: eval(code, test_env)
  where 9: eval(code, test_env)
  where 10: 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 11: doTryCatch(return(expr), name, parentenv, handler)
  where 12: tryCatchOne(expr, names, parentenv, handlers[[1L]])
  where 13: tryCatchList(expr, names[-nh], parentenv, handlers[-nh])
  where 14: doTryCatch(return(expr), name, parentenv, handler)
  where 15: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]), 
      names[nh], parentenv, handlers[[nh]])
  where 16: tryCatchList(expr, classes, parentenv, handlers)
  where 17: 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 18: test_code(NULL, exprs, env)
  where 19: source_file(path, new.env(parent = env), chdir = TRUE, wrap = wrap)
  where 20: force(code)
  where 21: doWithOneRestart(return(expr), restart)
  where 22: withOneRestart(expr, restarts[[1L]])
  where 23: withRestarts(testthat_abort_reporter = function() NULL, force(code))
  where 24: 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 25: FUN(X[[i]], ...)
  where 26: lapply(paths, test_file, env = env, reporter = current_reporter, 
      start_end_reporter = FALSE, load_helpers = FALSE, wrap = wrap)
  where 27: force(code)
  where 28: doWithOneRestart(return(expr), restart)
  where 29: withOneRestart(expr, restarts[[1L]])
  where 30: withRestarts(testthat_abort_reporter = function() NULL, force(code))
  where 31: 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 32: test_files(paths, reporter = reporter, env = env, stop_on_failure = stop_on_failure, 
      stop_on_warning = stop_on_warning, wrap = wrap)
  where 33: 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 34: 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 35: test_check("rotations")
  
   --- value of length: 2 type: logical ---
  [1] FALSE FALSE
   --- function from context --- 
  function (x) 
  {
      Rlen <- length(x)
      if (Rlen%%9 != 0) {
          return(FALSE)
      }
      R <- x
      if (class(x) == "data.frame") 
          R <- data.matrix(R)
      R <- matrix(R, ncol = 9)
      apply(R, 1, function(R) {
          R <- matrix(R, 3, 3)
          if (any(is.na(R))) 
              return(FALSE)
          if (abs(det(R) - 1) > 1e-09) 
              return(FALSE)
          return(all(abs(t(R) %*% R - diag(1, 3)) < 1e-04))
      })
  }
  <bytecode: 0x6a1d770>
  <environment: namespace:rotations>
   --- function search by body ---
  Function is.SO3 in namespace rotations has this body.
   ----------- END OF FAILURE REPORT -------------- 
  -- 6. Error: (unknown) (@test_metrics.R#5)  ------------------------------------
  the condition has length > 1
  Backtrace:
   1. testthat::expect_equal(rot.dist(Rs, method = "intrinsic"), abs(rs))
   5. rotations:::rot.dist.SO3(Rs, method = "intrinsic")
   6. rotations:::formatSO3(x)
   7. rotations::is.SO3(Rs)
  
  == testthat results  ===========================================================
  [ OK: 0 | SKIPPED: 0 | WARNINGS: 0 | FAILED: 6 ]
  1. Error: (unknown) (@test_arithmetic.R#3) 
  2. Error: (unknown) (@test_basics.R#11) 
  3. Error: (unknown) (@test_conversions.R#7) 
  4. Error: (unknown) (@test_discord.R#2) 
  5. Error: (unknown) (@test_estimators.R#3) 
  6. Error: (unknown) (@test_metrics.R#5) 
  
  Error: testthat unit tests failed
  Execution halted