test_that("options work as expected", { cfg <- list(invert_colors.suited = TRUE, background_color = "white", suit_color = "darkred,black,darkgreen,darkblue,grey", lacks_suit = "coin_face", n_suits = 4) expect_equal(get_suit_color("coin_back", 1, 1, cfg), "white") expect_equal(get_suit_color("coin_face", 5, 1, cfg), "grey") expect_equal(pp_cfg(cfg)$get_suit_color(3:2), c("darkgreen", "black")) colors <- c("darkred", "black", "darkgreen", "darkblue", "grey") cfg <- list(invert_colors.suited = TRUE, background_color = "white", suit_color = colors, lacks_suit = "coin_face", n_suits = 4) expect_equal(get_suit_color("coin_back", 1, 1, cfg), "white") expect_equal(get_suit_color("coin_face", 5, 1, cfg), "grey") cfg <- pp_cfg(cfg) expect_equal(cfg$get_suit_color(3:2), colors[3:2]) expect_equal(cfg$get_suit_color(), colors[1:4]) cfg <- list(n_suits = 4) expect_equal(should_invert("coin_back", 1, 1, cfg), FALSE) expect_equal(should_invert("coin_face", 5, 1, cfg), FALSE) cfg <- list(invert_colors = TRUE, n_suits = 4) expect_equal(should_invert("coin_back", 1, 1, cfg), TRUE) expect_equal(should_invert("coin_face", 5, 1, cfg), TRUE) cfg <- list(invert_colors = FALSE, n_suits = 4) expect_equal(should_invert("coin_back", 1, 1, cfg), FALSE) expect_equal(should_invert("coin_face", 5, 1, cfg), FALSE) cfg <- list(invert_colors.suited = TRUE, lacks_suit = "coin_face", n_suits = 4) expect_equal(should_invert("coin_back", 1, 1, cfg), TRUE) expect_equal(should_invert("coin_face", 5, 1, cfg), FALSE) cfg <- list(invert_colors.unsuited = TRUE, lacks_suit = "coin_face", n_suits = 4) expect_equal(should_invert("coin_back", 1, 1, cfg), FALSE) expect_equal(should_invert("coin_face", 5, 1, cfg), TRUE) cfg <- list(invert_colors.coin_back = TRUE, n_suits = 4) expect_equal(should_invert("coin_back", 1, 1, cfg), TRUE) expect_equal(should_invert("coin_face", 5, 1, cfg), FALSE) cfg <- list(invert_colors.coin_face = TRUE, n_suits = 4) expect_equal(should_invert("coin_back", 1, 1, cfg), FALSE) expect_equal(should_invert("coin_face", 5, 1, cfg), TRUE) cfg <- pp_cfg(list(n_ranks = 7, n_suits = 3)) expect_equal(cfg$n_ranks, 7) expect_equal(cfg$n_suits, 3) cfg <- list(rank_symbols="A,B,C,D,E,F", use_suit_as_ace=TRUE, n_ranks=6, n_suits=4) expect_equal(get_rank_symbol("die_face", 6, 2, cfg), "\u263c") cfg <- list(background_color.unsuited="orange", lacks_suit = "tile_back", n_suits=4) expect_equal(get_background_color("tile_face", 1, 1, cfg), "white") expect_equal(get_background_color("tile_back", 1, 1, cfg), "orange") expect_equal(is_suited("die_face", 5, 1, list(n_suits=4)), TRUE) expect_equal(is_suited("die_face", 6, 1, list(n_suits=4)), FALSE) expect_equal(get_background_color("die_face", 5, 1, cfg), "white") expect_equal(get_background_color("die_face", 6, 1, cfg), "orange") cfg1 <- list(dm_text="", n_suits=4) cfg2 <- list(dm_text=",,,,", n_suits=4) expect_equal(get_dm_text("suitdie_face", 3, 1, cfg1), "") expect_equal(get_dm_text("suitdie_face", 3, 1, cfg2), "") expect_equal(get_dm_text("suitdie_face", 6, 1, cfg1), "") expect_equal(get_dm_text("suitdie_face", 6, 1, cfg2), "") expect_equal(get_dm_text("die_face", 6, 1, cfg2), "") cfg <- list(dm_text.saucer_face="b", n_suits=4) expect_equal(get_dm_text("saucer_face", 3, 1, cfg), "b") cfg <- list(dm_text.saucer_back="b", n_suits=4) expect_equal(get_dm_text("saucer_back", 5, 1, cfg), "b") cfg <- list(invert_colors.suited=TRUE, invert_colors.r1=FALSE, suit_color = "darkred,black,darkgreen,darkblue,grey", n_suits=4) expect_equal(get_background_color("tile_face", 1, 2, cfg), "darkred") expect_equal(get_background_color("tile_face", 1, 1, cfg), "white") }) test_that("get_piece_opt works as expected", { cfg <- pp_cfg(list(suit_color="darkred,black,darkgreen,darkblue,grey")) opt <- cfg$get_piece_opt("coin_face") expect_equal(opt$background_color, "white") expect_equal(opt$border_color, "grey") expect_equal(opt$bleed_color, "grey") expect_equal(opt$gridline_color, "transparent") expect_equal(opt$ps_color, "grey") expect_equal(opt$ps_text, "n") expect_equal(opt$ps_fontsize, 28) expect_equal(opt$ps_fontfamily, "sans") expect_equal(opt$ps_fontface, "plain") expect_equal(opt$dm_color, "grey") expect_equal(opt$dm_text, "\u25cf") expect_equal(opt$shape, "circle") expect_equal(opt$shape_r, 0.2) expect_equal(opt$shape_t, 90) expect_equal(opt$dm_fontsize, 12) expect_equal(opt$dm_fontfamily, "sans") expect_equal(opt$dm_fontface, "plain") expect_equal(opt$dm_x, 0.5) expect_equal(opt$dm_y, to_y(90, sqrt(0.25^2 + 0.25^2)) + 0.5) expect_equal(opt$ps_x, 0.5) expect_equal(opt$ps_y, 0.5) expect_equal(opt$dm_text, "\u25cf") cfg <- pp_cfg() opt <- cfg$get_piece_opt("saucer_back") expect_equal(opt$dm_text, "\u25b2") opt <- cfg$get_piece_opt("pawn_face") expect_equal(opt$dm_text, "\u0298\u0298") opt <- cfg$get_piece_opt("pawn_back") expect_equal(opt$dm_text, "") cfg <- pp_cfg(list(suit_color="white")) opt <- cfg$get_piece_opt("tile_face", suit=2, rank=2) expect_equal(opt$ps_col, "white") cfg <- pp_cfg(list(suit_color.suited="white")) opt <- cfg$get_piece_opt("tile_face", suit=2, rank=2) expect_equal(opt$ps_col, "white") cfg <- pp_cfg(list(suit_color.s2="white")) opt <- cfg$get_piece_opt("tile_face", suit=2, rank=2) expect_equal(opt$ps_col, "white") cfg <- pp_cfg(list(border_lex = 0)) expect_equal(cfg$get_piece_opt("tile_face")$bleed_color, "white") cfg <- pp_cfg(list(border_color = "transparent")) expect_equal(cfg$get_piece_opt("tile_face")$bleed_color, "white") cfg <- pp_cfg(list(border_color = "transparent", mat_color = "blue")) expect_equal(cfg$get_piece_opt("tile_face")$bleed_color, "white") cfg <- pp_cfg(list(border_color = "transparent", mat_color = "blue", mat_width=0.1)) expect_equal(cfg$get_piece_opt("tile_face")$bleed_color, "blue") cfg <- pp_cfg(list(border_color = "transparent", mat_color = "blue", background_color = "#00000000")) expect_equal(cfg$get_piece_opt("tile_face")$bleed_color, "transparent") # edges cfg <- pp_cfg(list(suit_color="darkred,black,darkgreen,darkblue,grey", edge_color="darkred,black,darkgreen,darkblue,grey")) opt <- cfg$get_piece_opt("pawn_top", 1, 1) expect_equal(opt$shape, "rect") expect_equal(opt$dm_text, "") expect_equal(opt$ps_text, "") expect_equal(opt$background_color, "darkred") }) test_that("pp_cfg querying variables work as expected", { cfg <- pp_cfg() expect_true(cfg$has_piecepack) expect_true(cfg$has_pawns) expect_true(cfg$has_coins) expect_true(cfg$has_tiles) expect_true(cfg$has_dice) cfg$has_dice <- FALSE cfg$has_tiles <- FALSE expect_false(cfg$has_tiles) expect_false(cfg$has_dice) expect_false(cfg$has_piecepack) cfg$has_piecepack <- TRUE expect_true(cfg$has_tiles) expect_true(cfg$has_dice) expect_true(cfg$has_piecepack) expect_false(cfg$has_saucers) expect_false(cfg$has_pyramids) expect_false(cfg$has_matchsticks) expect_error(cfg$has_piecepack <- 3, "is.logical\\(value)\\ is not TRUE") expect_true(cfg$cache_grob) cfg$cache_grob <- FALSE expect_false(cfg$cache_grob) cfg$cache_piece_opt <- FALSE expect_false(cfg$cache_piece_opt) cfg$cache_piece_opt <- TRUE expect_true(cfg$cache_piece_opt) cfg$cache_obj_fn <- FALSE expect_false(cfg$cache_obj_fn) cfg$cache_op_fn <- FALSE expect_false(cfg$cache_op_fn) })