- using R Under development (unstable) (2026-02-12 r89409)
- using platform: aarch64-apple-darwin23
- R was compiled by
Apple clang version 17.0.0 (clang-1700.3.19.1)
GNU Fortran (GCC) 14.2.0
- running under: macOS Sequoia 15.7.1
- using session charset: UTF-8
* current time: 2026-02-13 02:10:55 UTC
- checking for file ‘dssd/DESCRIPTION’ ... OK
- checking extension type ... Package
- this is package ‘dssd’ version ‘1.0.3’
- package encoding: UTF-8
- checking package namespace information ... OK
- checking package dependencies ... OK
- checking if this is a source package ... OK
- checking if there is a namespace ... OK
- checking for executable files ... OK
- checking for hidden files and directories ... OK
- checking for portable file names ... OK
- checking for sufficient/correct file permissions ... OK
- checking whether package ‘dssd’ can be installed ... [3s/4s] OK
See the install log for details.
- checking installed package size ... OK
- checking package directory ... OK
- checking ‘build’ directory ... OK
- checking DESCRIPTION meta-information ... OK
- checking top-level files ... OK
- checking for left-over files ... OK
- checking index information ... OK
- checking package subdirectories ... OK
- checking code files for non-ASCII characters ... OK
- checking R files for syntax errors ... OK
- checking whether the package can be loaded ... [1s/1s] OK
- checking whether the package can be loaded with stated dependencies ... [1s/1s] OK
- checking whether the package can be unloaded cleanly ... [1s/1s] OK
- checking whether the namespace can be loaded with stated dependencies ... [1s/1s] OK
- checking whether the namespace can be unloaded cleanly ... [1s/1s] OK
- checking loading without being on the library search path ... [1s/1s] OK
- checking dependencies in R code ... OK
- checking S3 generic/method consistency ... OK
- checking replacement functions ... OK
- checking foreign function calls ... OK
- checking R code for possible problems ... [3s/3s] OK
- checking Rd files ... [0s/0s] OK
- checking Rd metadata ... OK
- checking Rd cross-references ... OK
- checking for missing documentation entries ... OK
- checking for code/documentation mismatches ... OK
- checking Rd \usage sections ... OK
- checking Rd contents ... OK
- checking for unstated dependencies in examples ... OK
- checking installed files from ‘inst/doc’ ... OK
- checking files in ‘vignettes’ ... OK
- checking examples ... [1s/1s] ERROR
Running examples in ‘dssd-Ex.R’ failed
The error most likely occurred in:
> ### Name: generate.transects
> ### Title: S4 generic method to generate an instance of a design
> ### Aliases: generate.transects
> ### generate.transects,Line.Transect.Design-method
> ### generate.transects,Point.Transect.Design-method
>
> ### ** Examples
>
> #Point transect example
> shapefile.name <- system.file("extdata", "TrackExample.shp", package = "dssd")
> region <- make.region(region.name = "study area",
+ shape = shapefile.name)
> design <- make.design(region = region,
+ transect.type = "point",
+ design = "random",
+ samplers = 25,
+ design.angle = 45,
+ edge.protocol = "minus",
+ truncation = 3)
> # Generate a single survey instance
> survey <- generate.transects(design)
> plot(region, survey, covered.area = TRUE)
>
> #Line transect example
> # Define the design
> design <- make.design(region = region,
+ transect.type = "line",
+ design = c("systematic"),
+ line.length = 1000,
+ design.angle = c(179),
+ edge.protocol = "minus",
+ truncation = 1)
>
> # Create a single set of transects to check
> survey <- generate.transects(design)
> plot(region, survey, covered.area = TRUE)
Error in `geom_sf()`:
! Problem while converting geom to grob.
ℹ Error occurred in the 3rd layer.
Caused by error in `MtrxSetSet()`:
! polygons not (all) closed
Backtrace:
▆
1. ├─base (local) `<fn>`(x)
2. ├─ggplot2 (local) `print.ggplot2::ggplot`(x)
3. │ ├─ggplot2::ggplot_gtable(data)
4. │ └─ggplot2 (local) `ggplot_gtable.ggplot2::ggplot_built`(data)
5. │ └─ggplot2:::by_layer(...)
6. │ ├─rlang::try_fetch(...)
7. │ │ ├─base::tryCatch(...)
8. │ │ │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
9. │ │ │ └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]])
10. │ │ │ └─base (local) doTryCatch(return(expr), name, parentenv, handler)
11. │ │ └─base::withCallingHandlers(...)
12. │ └─ggplot2 (local) f(l = layers[[i]], d = data[[i]])
13. │ └─l$draw_geom(d, layout)
14. │ └─ggplot2 (local) draw_geom(..., self = self)
15. │ └─self$geom$draw_layer(...)
16. │ └─ggplot2 (local) draw_layer(..., self = self)
17. │ └─base::lapply(...)
18. │ └─ggplot2 (local) FUN(X[[i]], ...)
19. │ ├─rlang::inject(self$draw_panel(data, panel_params, coord, !!!params))
20. │ └─self$draw_panel(data, panel_params, coord, na.rm = FALSE, legend = "other")
21. │ └─ggplot2 (local) draw_panel(..., self = self)
22. │ ├─sf::st_as_grob(data$geometry, pch = data$shape, gp = gp, arrow = arrow)
23. │ └─sf:::st_as_grob.sfc(...)
24. │ └─sf:::st_cast_sfc_default(x)
25. │ └─base::lapply(x, function(x) if (inherits(x, "POLYGON")) POLYGON2MULTIPOLYGON(x) else x)
26. │ └─sf (local) FUN(X[[i]], ...)
27. │ └─sf:::POLYGON2MULTIPOLYGON(x)
28. │ └─sf::st_multipolygon(list(unclass(x)), dim = dim)
29. │ └─sf:::MtrxSetSet(x, dim, type = "MULTIPOLYGON", needClosed = TRUE)
30. │ └─base::stop("polygons not (all) closed")
31. └─base::.handleSimpleError(...)
32. └─rlang (local) h(simpleError(msg, call))
33. └─handlers[[1L]](cnd)
34. └─cli::cli_abort(...)
35. └─rlang::abort(...)
Execution halted
- checking for unstated dependencies in ‘tests’ ... OK
- checking tests ... [3s/3s] ERROR
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
- checking for unstated dependencies in vignettes ... OK
- checking package vignettes ... OK
- checking re-building of vignette outputs ... [20s/21s] ERROR
Error(s) in re-building vignettes:
--- re-building ‘GettingStarted.Rmd’ using rmarkdown
--- finished re-building ‘GettingStarted.Rmd’
--- re-building ‘MultiStrataVignette.Rmd’ using rmarkdown
Quitting from MultiStrataVignette.Rmd:159-172 [seg_design]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<error/rlang_error>
Error:
! IllegalArgumentException: Points of LinearRing do not form a closed linestring
---
Backtrace:
▆
1. ├─dssd::generate.transects(design)
2. ├─dssd::generate.transects(design)
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: processing vignette 'MultiStrataVignette.Rmd' failed with diagnostics:
IllegalArgumentException: Points of LinearRing do not form a closed linestring
--- failed re-building ‘MultiStrataVignette.Rmd’
SUMMARY: processing the following file failed:
‘MultiStrataVignette.Rmd’
Error: Vignette re-building failed.
Execution halted
- checking PDF version of manual ... [2s/2s] OK
- DONE
Status: 3 ERRORs
- using check arguments '--no-clean-on-error '