R Under development (unstable) (2023-10-26 r85419 ucrt) -- "Unsuffered Consequences" Copyright (C) 2023 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > library(grid) > library(grImport2) > library(gridSVG) Attaching package: 'gridSVG' The following objects are masked from 'package:grid': linearGradient, pattern, radialGradient The following object is masked from 'package:grDevices': dev.off > > pic <- readPicture("test-path-simple-input.svg") > > gridsvg("test-path-simple-output.svg", width = 6, height = 6, annotate = FALSE) > grid.picture(pic, expansion = 0) > dev.off() > > pic <- readPicture("test-path-complex-input.svg") > > gridsvg("test-path-complex-output.svg", width = 6, height = 6, annotate = FALSE) > grid.picture(pic, expansion = 0) > dev.off() > > ## Encoding in SVG file (on line 1) differs by platform > model <- readLines("test-path-simple-output.svg.save")[-1] Warning message: In readLines("test-path-simple-output.svg.save") : incomplete final line found on 'test-path-simple-output.svg.save' > test <- readLines("test-path-simple-output.svg")[-1] Warning message: In readLines("test-path-simple-output.svg") : incomplete final line found on 'test-path-simple-output.svg' > same <- model == test > if (! all(same)) { + stop(paste0("path-simple output not equal to expected output", + "------------------", + model[!same], + "------------------", + test[!same], + collapse="\n")) + } > > model <- readLines("test-path-complex-output.svg.save")[-1] Warning message: In readLines("test-path-complex-output.svg.save") : incomplete final line found on 'test-path-complex-output.svg.save' > test <- readLines("test-path-complex-output.svg")[-1] Warning message: In readLines("test-path-complex-output.svg") : incomplete final line found on 'test-path-complex-output.svg' > same <- model == test > if (! all(same)) { + ## Protect against tiny rounding differences in locations + x <- suppressWarnings(lapply(strsplit(model[!same], " "), as.numeric)) + y <- suppressWarnings(lapply(strsplit(test[!same], " "), as.numeric)) + rx <- unlist(lapply(x, round, 1)) + ry <- unlist(lapply(y, round, 1)) + if (!all.equal(rx, ry)) { + stop(paste0("path-complex output not equal to expected output", + "------------------", + model[!same], + "------------------", + test[!same], + collapse="\n")) + } + } > > > > proc.time() user system elapsed 8.64 0.10 8.73