library(ggplot2)
library(ggtikz)
p <- ggplot()
test_that("annotations cannot be constructed faultily", {
expect_warning(ggtikzAnnotation("", xy="plot", panelx=1, panely=2), "ignored for plot reference")
expect_error(ggtikzAnnotation("", xy="data", panelx=1), "must be given")
expect_error(ggtikzAnnotation("", xy="data", panely=1), "must be given")
})
expect_reference_equal <- function(annotation, reference) {
expect_equal(annotation$reference, reference)
}
test_that("annotation can be constructed correctly", {
expect_reference_equal(ggtikzAnnotation("", xy="plot"), c(x="plot", y="plot"))
expect_reference_equal(ggtikzAnnotation("", xy="panel", panelx=1, panely=1), c(x="panel", y="panel"))
expect_reference_equal(ggtikzAnnotation("", x="panel", y="data", panelx=1, panely=1), c(x="panel", y="data"))
expect_reference_equal(ggtikzAnnotation("", x="panel", y="data", xy="data", panelx=1, panely=1), c(x="data", y="data"))
})
test_that("annotation can get a name after being added to a canvas", {
canvas <- ggtikzCanvas(p)
annot <- ggtikzAnnotation("", xy = "plot")
expect_error(get_annotation_name(annot), "name can only be given once the")
canvas <- canvas + annot + annot
expect_equal(get_annotation_name(canvas$.annotations[[1]]), "ggtikzannotation_1")
expect_equal(get_annotation_name(canvas$.annotations[[2]]), "ggtikzannotation_2")
})
test_that("a warning is issued when panels are specified with a plot reference and the default is set correctly.", {
expect_warning(
both <- ggtikzAnnotation("", xy = "plot", panelx = 1, panely = 1),
"ignored for plot reference")
expect_equal(both$panelx, 1)
expect_equal(both$panely, 1)
expect_warning(
one1 <- ggtikzAnnotation("", xy = "plot", panelx = 1),
"ignored for plot reference")
expect_equal(one1$panelx, 1)
expect_equal(one1$panely, 1)
expect_warning(
one2 <- ggtikzAnnotation("", xy = "plot", panely = 1),
"ignored for plot reference")
expect_equal(one2$panelx, 1)
expect_equal(one2$panely, 1)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.