test_that("function grabber grabs functions", { x <- .grab_ggplot_internals() classes <- table(sapply(x, class)) expect_gt(classes["function"], 0) }) test_that("center_limits centers limits", { f <- center_limits() expect_equal(f(c(-1, 3)), c(-3, 3)) f <- center_limits(1) expect_equal(f(c(-1, 3)), c(-1, 3)) }) test_that("weave_factors combines factors", { f1 <- c("banana", "apple", "apple", "kiwi", NA) f2 <- factor(c(1, NA, 1:3), labels = c("house", "cat", "dog")) a <- levels(weave_factors(f1, f2)) expect_identical(a, c("banana.house", "apple.house", "apple.", "kiwi.cat", ".dog")) a <- levels(weave_factors(as.factor(f1), f2)) expect_identical(a, c("apple.house", "apple.", "banana.house", "kiwi.cat", ".dog")) a <- weave_factors(f1, f2, dopr = TRUE) b <- weave_factors(f1, f2, drop = FALSE) expect_length(levels(a), 5) expect_length(levels(b), 4*4) # f2 NA becomes empty string level a <- levels(weave_factors(f1, f2, replaceNA = FALSE)) expect_identical(a, c("banana.house", "apple.house", "kiwi.cat", "NA.dog")) a <- substitute(weave_factors(f1, f2[1:3])) expect_error(eval(a), "same length") })