context("tiling") test_that("tiling patterns work as expected", { skip_if_not_installed("vdiffr") skip_on_ci() library("vdiffr") x <- 0.5 + 0.5 * cos(seq(2 * pi / 4, by = 2 * pi / 6, length.out = 6)) y <- 0.5 + 0.5 * sin(seq(2 * pi / 4, by = 2 * pi / 6, length.out = 6)) g.ppt <- function(type, ...) { grid.pattern_polygon_tiling(x, y, angle = 0, type = type, spacing = 0.15, ...) } gp1 <- gpar(fill = "yellow", col = "black") gp2 <- gpar(fill = c("yellow", "red"), col = "black") gp3 <- gpar(fill = c("yellow", "red", "blue"), col = "black") expect_doppelganger("elongated_triangular", function() g.ppt("elongated_triangular", gp = gp2)) expect_doppelganger("herringbone", function() g.ppt("herringbone", gp = gp2)) expect_doppelganger("hexagonal_tiling", function() g.ppt("hexagonal", gp = gp2)) expect_doppelganger("pythagorean", function() g.ppt("pythagorean", gp = gp2)) expect_doppelganger("rhombitrihexagonal_tiling", function() g.ppt("rhombitrihexagonal", gp = gp3)) expect_doppelganger("rhombille", function() g.ppt("rhombille", gp = gp3)) expect_doppelganger("snub_square_tiling", function() g.ppt("snub_square", gp = gp3)) expect_doppelganger("snub_trihex_tiling", function() g.ppt("snub_trihexagonal", gp = gp3)) expect_doppelganger("square_tiling", function() g.ppt("square", gp = gp2)) expect_doppelganger("tetrakis_square", function() g.ppt("tetrakis_square", gp = gp3)) expect_doppelganger("triangular_tiling", function() g.ppt("triangular", gp = gp2)) expect_doppelganger("trihexagonal_tiling", function() g.ppt("trihexagonal", gp = gp2)) expect_doppelganger("trunc_hex_tiling", function() g.ppt("truncated_hexagonal", gp = gp3)) expect_doppelganger("trunc_trihex_tiling", function() g.ppt("truncated_trihexagonal", gp = gp2)) expect_doppelganger("trunc_square_tiling", function() g.ppt("truncated_square", gp = gp3)) expect_doppelganger("2*.2**.2*.2**", function() g.ppt("2*.2**.2*.2**", gp = gp3)) expect_doppelganger("2**.3**.12*", function() g.ppt("2**.3**.12*", gp = gp3)) expect_doppelganger("3.3.3.3_alt", function() g.ppt("3.3.3.3**", gp = gp2)) expect_doppelganger("3.3*.3.3**", function() g.ppt("3.3*.3.3**", gp = gp2)) expect_doppelganger("3.3.3.12*.3.3.12*", function() g.ppt("3.3.3.12*.3.3.12*", gp = gp3)) expect_doppelganger("3.3.8*.3.4.3.8*", function() g.ppt("3.3.8*.3.4.3.8*", gp = gp3)) expect_doppelganger("3.3.8*.4**.8*", function() g.ppt("3.3.8*.4**.8*", gp = gp3)) expect_doppelganger("3.4.6.3.12*", function() g.ppt("3.4.6.3.12*", gp = gp3)) expect_doppelganger("3.4.8.3.8*", function() g.ppt("3.4.8.3.8*", gp = gp3)) expect_doppelganger("3.6*.6**", function() g.ppt("3.6*.6**", gp = gp3)) expect_doppelganger("4.2*.4.2**", function() g.ppt("4.2*.4.2**", gp = gp3)) expect_doppelganger("4.4*.4**", function() g.ppt("4.4*.4**", gp = gp2)) expect_doppelganger("4.6.4*.6", function() g.ppt("4.6.4*.6", gp = gp3)) expect_doppelganger("4.6*.4.6*.4.6*", function() g.ppt("4.6*.4.6*.4.6*", gp = gp2)) expect_doppelganger("4.8*.4**.8*", function() g.ppt("4.8*.4**.8*", gp = gp2)) expect_doppelganger("6.6*.6.6*", function() g.ppt("6.6*.6.6*", gp = gp2)) expect_doppelganger("8.4*.8.4*", function() g.ppt("8.4*.8.4*", gp = gp2)) expect_doppelganger("9.3.9.3*", function() g.ppt("9.3.9.3*", gp = gp3)) expect_doppelganger("12.3*.12.3*", function() g.ppt("12.3*.12.3*", gp = gp2)) expect_doppelganger("12.12.4*", function() g.ppt("12.12.4*", gp = gp2)) expect_doppelganger("18.18.3*", function() g.ppt("18.18.3*", gp = gp2)) })