Running ‘test-that.R’ [2s/2s]
Running the tests in ‘tests/test-that.R’ failed.
Complete output:
  > library(testthat)
  > library(dssd)
  > 
  > test_check("dssd", filter = "check_.*")
  Saving _problems/test-check_DesignParams-322.R
  Saving _problems/test-check_DesignParams-322.R
  Saving _problems/test-check_Designs-54.R
  Saving _problems/test-check_Designs-54.R
  Saving _problems/test-check_SegDesign-30.R
  Saving _problems/test-check_SegDesign-30.R
  Saving _problems/test-check_UserInput-149.R
  Saving _problems/test-check_UserInput-149.R
  [ FAIL 8 | WARN 0 | SKIP 0 | PASS 83 ]
  
  ══ Failed tests ════════════════════════════════════════════════════════════════
  ── Error ('test-check_DesignParams.R:322:3'): Only the implemented design parameters are stored ──
  Error in `scan(text = lst[[length(lst)]], quiet = TRUE)`: scan() expected 'a real', got 'IllegalArgumentException:'
  Backtrace:
       ▆
    1. ├─dssd::generate.transects(design, region) at test-check_DesignParams.R:322:3
    2. ├─dssd::generate.transects(design, region)
    3. │ └─dssd:::gt.LT.fun.body(object, quiet = quiet, ...)
    4. │   └─dssd:::generate.eqspace.zigzags(...)
    5. │     └─base::lapply(lines, sf::st_intersection, y = rot.strata)
    6. │       ├─sf (local) FUN(X[[i]], ...)
    7. │       └─sf:::st_intersection.sfg(X[[i]], ...)
    8. │         ├─sf:::get_first_sfg(geos_op2_geom("intersection", x, y, ...))
    9. │         └─sf:::geos_op2_geom("intersection", x, y, ...)
   10. │           ├─sf::st_sfc(CPL_geos_op2(op, x, y), crs = st_crs(x))
   11. │           └─sf:::CPL_geos_op2(op, x, y)
   12. └─sf (local) `<fn>`("IllegalArgumentException: Points of LinearRing do not form a closed linestring")
   13.   └─base::scan(text = lst[[length(lst)]], quiet = TRUE)
  ── Error ('test-check_DesignParams.R:322:3'): Only the implemented design parameters are stored ──
  Error in `(function (msg)  {     on.exit(stop(msg))     lst = strsplit(msg, " at ")[[1]]     pts = scan(text = lst[[length(lst)]], quiet = TRUE)     if (length(pts) == 2 && is.numeric(pts))          assign(".geos_error", st_point(pts), envir = .sf_cache) })("IllegalArgumentException: Points of LinearRing do not form a closed linestring")`: IllegalArgumentException: Points of LinearRing do not form a closed linestring
  Backtrace:
       ▆
    1. ├─dssd::generate.transects(design, region) at test-check_DesignParams.R:322:3
    2. ├─dssd::generate.transects(design, region)
    3. │ └─dssd:::gt.LT.fun.body(object, quiet = quiet, ...)
    4. │   └─dssd:::generate.eqspace.zigzags(...)
    5. │     └─base::lapply(lines, sf::st_intersection, y = rot.strata)
    6. │       ├─sf (local) FUN(X[[i]], ...)
    7. │       └─sf:::st_intersection.sfg(X[[i]], ...)
    8. │         ├─sf:::get_first_sfg(geos_op2_geom("intersection", x, y, ...))
    9. │         └─sf:::geos_op2_geom("intersection", x, y, ...)
   10. │           ├─sf::st_sfc(CPL_geos_op2(op, x, y), crs = st_crs(x))
   11. │           └─sf:::CPL_geos_op2(op, x, y)
   12. └─sf (local) `<fn>`("IllegalArgumentException: Points of LinearRing do not form a closed linestring")
  ── Error ('test-check_Designs.R:54:3'): Check designs can generate survey transects ──
  Error in `scan(text = lst[[length(lst)]], quiet = TRUE)`: scan() expected 'a real', got 'IllegalArgumentException:'
  Backtrace:
       ▆
    1. ├─dssd::generate.transects(design) at test-check_Designs.R:54:3
    2. ├─dssd::generate.transects(design)
    3. │ └─dssd:::generate.systematic.points(...)
    4. │   └─base::lapply(points, FUN = sf::st_intersection, y = rot.strata)
    5. │     ├─sf (local) FUN(X[[i]], ...)
    6. │     └─sf:::st_intersection.sfg(X[[i]], ...)
    7. │       ├─sf:::get_first_sfg(geos_op2_geom("intersection", x, y, ...))
    8. │       └─sf:::geos_op2_geom("intersection", x, y, ...)
    9. │         ├─sf::st_sfc(CPL_geos_op2(op, x, y), crs = st_crs(x))
   10. │         └─sf:::CPL_geos_op2(op, x, y)
   11. └─sf (local) `<fn>`("IllegalArgumentException: Points of LinearRing do not form a closed linestring")
   12.   └─base::scan(text = lst[[length(lst)]], quiet = TRUE)
  ── Error ('test-check_Designs.R:54:3'): Check designs can generate survey transects ──
  Error in `(function (msg)  {     on.exit(stop(msg))     lst = strsplit(msg, " at ")[[1]]     pts = scan(text = lst[[length(lst)]], quiet = TRUE)     if (length(pts) == 2 && is.numeric(pts))          assign(".geos_error", st_point(pts), envir = .sf_cache) })("IllegalArgumentException: Points of LinearRing do not form a closed linestring")`: IllegalArgumentException: Points of LinearRing do not form a closed linestring
  Backtrace:
       ▆
    1. ├─dssd::generate.transects(design) at test-check_Designs.R:54:3
    2. ├─dssd::generate.transects(design)
    3. │ └─dssd:::generate.systematic.points(...)
    4. │   └─base::lapply(points, FUN = sf::st_intersection, y = rot.strata)
    5. │     ├─sf (local) FUN(X[[i]], ...)
    6. │     └─sf:::st_intersection.sfg(X[[i]], ...)
    7. │       ├─sf:::get_first_sfg(geos_op2_geom("intersection", x, y, ...))
    8. │       └─sf:::geos_op2_geom("intersection", x, y, ...)
    9. │         ├─sf::st_sfc(CPL_geos_op2(op, x, y), crs = st_crs(x))
   10. │         └─sf:::CPL_geos_op2(op, x, y)
   11. └─sf (local) `<fn>`("IllegalArgumentException: Points of LinearRing do not form a closed linestring")
  ── Error ('test-check_SegDesign.R:30:3'): Can deal with various forms of user input ──
  Error in `scan(text = lst[[length(lst)]], quiet = TRUE)`: scan() expected 'a real', got 'IllegalArgumentException:'
  Backtrace:
       ▆
    1. ├─dssd::generate.transects(design.tm) at test-check_SegDesign.R:30:3
    2. ├─dssd::generate.transects(design.tm)
    3. │ └─dssd:::gt.LT.fun.body(object, quiet = quiet, ...)
    4. │   └─dssd:::generate.segmented.grid(...)
    5. │     └─base::lapply(lines, sf::st_intersection, y = rot.strata)
    6. │       ├─sf (local) FUN(X[[i]], ...)
    7. │       └─sf:::st_intersection.sfg(X[[i]], ...)
    8. │         ├─sf:::get_first_sfg(geos_op2_geom("intersection", x, y, ...))
    9. │         └─sf:::geos_op2_geom("intersection", x, y, ...)
   10. │           ├─sf::st_sfc(CPL_geos_op2(op, x, y), crs = st_crs(x))
   11. │           └─sf:::CPL_geos_op2(op, x, y)
   12. └─sf (local) `<fn>`("IllegalArgumentException: Points of LinearRing do not form a closed linestring")
   13.   └─base::scan(text = lst[[length(lst)]], quiet = TRUE)
  ── Error ('test-check_SegDesign.R:30:3'): Can deal with various forms of user input ──
  Error in `(function (msg)  {     on.exit(stop(msg))     lst = strsplit(msg, " at ")[[1]]     pts = scan(text = lst[[length(lst)]], quiet = TRUE)     if (length(pts) == 2 && is.numeric(pts))          assign(".geos_error", st_point(pts), envir = .sf_cache) })("IllegalArgumentException: Points of LinearRing do not form a closed linestring")`: IllegalArgumentException: Points of LinearRing do not form a closed linestring
  Backtrace:
       ▆
    1. ├─dssd::generate.transects(design.tm) at test-check_SegDesign.R:30:3
    2. ├─dssd::generate.transects(design.tm)
    3. │ └─dssd:::gt.LT.fun.body(object, quiet = quiet, ...)
    4. │   └─dssd:::generate.segmented.grid(...)
    5. │     └─base::lapply(lines, sf::st_intersection, y = rot.strata)
    6. │       ├─sf (local) FUN(X[[i]], ...)
    7. │       └─sf:::st_intersection.sfg(X[[i]], ...)
    8. │         ├─sf:::get_first_sfg(geos_op2_geom("intersection", x, y, ...))
    9. │         └─sf:::geos_op2_geom("intersection", x, y, ...)
   10. │           ├─sf::st_sfc(CPL_geos_op2(op, x, y), crs = st_crs(x))
   11. │           └─sf:::CPL_geos_op2(op, x, y)
   12. └─sf (local) `<fn>`("IllegalArgumentException: Points of LinearRing do not form a closed linestring")
  ── Error ('test-check_UserInput.R:149:3'): Can deal with various forms of user input ──
  Error in `scan(text = lst[[length(lst)]], quiet = TRUE)`: scan() expected 'a real', got 'IllegalArgumentException:'
  Backtrace:
       ▆
    1. ├─dssd::generate.transects(design) at test-check_UserInput.R:149:3
    2. ├─dssd::generate.transects(design)
    3. │ └─dssd:::generate.systematic.points(...)
    4. │   └─base::lapply(points, FUN = sf::st_intersection, y = rot.strata)
    5. │     ├─sf (local) FUN(X[[i]], ...)
    6. │     └─sf:::st_intersection.sfg(X[[i]], ...)
    7. │       ├─sf:::get_first_sfg(geos_op2_geom("intersection", x, y, ...))
    8. │       └─sf:::geos_op2_geom("intersection", x, y, ...)
    9. │         ├─sf::st_sfc(CPL_geos_op2(op, x, y), crs = st_crs(x))
   10. │         └─sf:::CPL_geos_op2(op, x, y)
   11. └─sf (local) `<fn>`("IllegalArgumentException: Points of LinearRing do not form a closed linestring")
   12.   └─base::scan(text = lst[[length(lst)]], quiet = TRUE)
  ── Error ('test-check_UserInput.R:149:3'): Can deal with various forms of user input ──
  Error in `(function (msg)  {     on.exit(stop(msg))     lst = strsplit(msg, " at ")[[1]]     pts = scan(text = lst[[length(lst)]], quiet = TRUE)     if (length(pts) == 2 && is.numeric(pts))          assign(".geos_error", st_point(pts), envir = .sf_cache) })("IllegalArgumentException: Points of LinearRing do not form a closed linestring")`: IllegalArgumentException: Points of LinearRing do not form a closed linestring
  Backtrace:
       ▆
    1. ├─dssd::generate.transects(design) at test-check_UserInput.R:149:3
    2. ├─dssd::generate.transects(design)
    3. │ └─dssd:::generate.systematic.points(...)
    4. │   └─base::lapply(points, FUN = sf::st_intersection, y = rot.strata)
    5. │     ├─sf (local) FUN(X[[i]], ...)
    6. │     └─sf:::st_intersection.sfg(X[[i]], ...)
    7. │       ├─sf:::get_first_sfg(geos_op2_geom("intersection", x, y, ...))
    8. │       └─sf:::geos_op2_geom("intersection", x, y, ...)
    9. │         ├─sf::st_sfc(CPL_geos_op2(op, x, y), crs = st_crs(x))
   10. │         └─sf:::CPL_geos_op2(op, x, y)
   11. └─sf (local) `<fn>`("IllegalArgumentException: Points of LinearRing do not form a closed linestring")
  
  [ FAIL 8 | WARN 0 | SKIP 0 | PASS 83 ]
  Error:
  ! Test failures.
  Execution halted