test_that("find_element finds element by label", { svg_txt <- ' ' doc <- xml2::read_xml(svg_txt) element <- find_element(doc, "panel_A") expect_equal(xml2::xml_attr(element, "id"), "rect1") }) test_that("get_element_dimensions returns correct values", { svg_txt <- ' ' doc <- xml2::read_xml(svg_txt) element <- xml2::xml_find_first(doc, ".//svg:rect", ns = inkscape_ns) dims <- get_element_dimensions(element, "mm") expect_equal(dims$x, 10.4164) expect_equal(dims$y, 20.2877) expect_equal(dims$width, 30.2998) expect_equal(dims$height, 40.0987) }) test_that("get_doc_unit extracts unit from SVG width", { svg_txt <- '' doc <- xml2::read_xml(svg_txt) expect_equal(get_doc_unit(doc), "mm") }) test_that("unit_to_inch converts units correctly", { expect_equal(unit_to_inch(25.4, "mm"), 1) expect_equal(unit_to_inch(2.54, "cm"), 1) expect_equal(unit_to_inch(1, "in"), 1) expect_equal(unit_to_inch(150, "px", dpi = 150), 1) expect_equal(unit_to_inch(1, "xxxx"), 1) expect_equal(unit_to_inch(1, ""), 1) })