diff --git a/DESCRIPTION b/DESCRIPTION index 3b82c7e7dc..89af5c1bd2 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -64,7 +64,7 @@ Suggests: rpart, sf (>= 0.7-3), svglite (>= 1.2.0.9001), - testthat (>= 2.1.0), + testthat (>= 3.0.0), vdiffr (>= 1.0.0), xml2 Enhances: sp @@ -274,3 +274,4 @@ Config/Needs/website: tidyr, forcats, tidyverse/tidytemplate +Config/testthat/edition: 3 diff --git a/tests/testthat/test-add.R b/tests/testthat/test-add.R index f2dab24957..a860a55845 100644 --- a/tests/testthat/test-add.R +++ b/tests/testthat/test-add.R @@ -1,5 +1,3 @@ -context("Adding plot elements") - test_that("mapping class is preserved when adding uneval objects", { p <- ggplot(mtcars) + aes(wt, mpg) expect_identical(class(p$mapping), "uneval") diff --git a/tests/testthat/test-aes-calculated.r b/tests/testthat/test-aes-calculated.r index f42584d194..8377eea5fa 100644 --- a/tests/testthat/test-aes-calculated.r +++ b/tests/testthat/test-aes-calculated.r @@ -1,5 +1,3 @@ -context("test-aes-calculated.r") - test_that("constants aren't calculated", { expect_equal(is_calculated_aes(aes(1, "a", TRUE)), c(FALSE, FALSE, FALSE)) }) diff --git a/tests/testthat/test-aes-grouping.r b/tests/testthat/test-aes-grouping.r index f4af9b4127..2744dfd2fc 100644 --- a/tests/testthat/test-aes-grouping.r +++ b/tests/testthat/test-aes-grouping.r @@ -1,5 +1,3 @@ -context("Aesthetics (grouping)") - df <- data_frame( x = 1:4, a = c("a", "a", "b", "b"), diff --git a/tests/testthat/test-aes-setting.r b/tests/testthat/test-aes-setting.r index 5dba19dfb4..baa6a12077 100644 --- a/tests/testthat/test-aes-setting.r +++ b/tests/testthat/test-aes-setting.r @@ -1,5 +1,3 @@ -context("Aes - setting values") - test_that("aesthetic parameters match length of data", { df <- data_frame(x = 1:5, y = 1:5) p <- ggplot(df, aes(x, y)) diff --git a/tests/testthat/test-aes.r b/tests/testthat/test-aes.r index 043ed8f641..391d1a09d3 100644 --- a/tests/testthat/test-aes.r +++ b/tests/testthat/test-aes.r @@ -1,5 +1,3 @@ -context("Creating aesthetic mappings") - test_that("aes() captures input expressions", { out <- aes(mpg, wt + 1) expect_identical(out$x, quo(mpg)) @@ -36,7 +34,9 @@ test_that("aes_q() & aes_string() preserve explicit NULLs", { test_that("aes_all() converts strings into mappings", { expect_equal( aes_all(c("x", "y", "col", "pch")), - aes(x, y, colour = col, shape = pch) + aes(x, y, colour = col, shape = pch), + # ignore the environments of quosures + ignore_attr = TRUE ) }) diff --git a/tests/testthat/test-annotate.r b/tests/testthat/test-annotate.r index f44aee148a..6a5f36c128 100644 --- a/tests/testthat/test-annotate.r +++ b/tests/testthat/test-annotate.r @@ -1,5 +1,3 @@ -context("annotate") - test_that("dates in segment annotation work", { dt <- structure(list(month = structure(c(1364774400, 1377993600), class = c("POSIXct", "POSIXt"), tzone = "UTC"), total = c(-10.3, diff --git a/tests/testthat/test-build.r b/tests/testthat/test-build.r index db89887b40..24930a0373 100644 --- a/tests/testthat/test-build.r +++ b/tests/testthat/test-build.r @@ -1,6 +1,4 @@ # Test the complete path from plot specification to rendered data -context("Plot building") - df <- data_frame(x = 1:3, y = 3:1, z = letters[1:3]) test_that("there is one data frame for each layer", { @@ -19,8 +17,8 @@ test_that("position aesthetics are coerced to correct type", { l1 <- ggplot(df, aes(x, y)) + geom_point() d1 <- layer_data(l1, 1) - expect_is(d1$x, "numeric") - expect_is(d1$y, "numeric") + expect_type(d1$x, "double") + expect_type(d1$y, "double") l2 <- ggplot(df, aes(x, z)) + geom_point() + scale_x_discrete() d2 <- layer_data(l2, 1) @@ -52,5 +50,5 @@ test_that("strings are not converted to factors", { p <- ggplot(df, aes(x, y)) + geom_text(aes(label = label), parse = TRUE) - expect_is(layer_data(p)$label, "character") + expect_type(layer_data(p)$label, "character") }) diff --git a/tests/testthat/test-coord-.r b/tests/testthat/test-coord-.r index 4ee2f8f7dc..2d1c083a4e 100644 --- a/tests/testthat/test-coord-.r +++ b/tests/testthat/test-coord-.r @@ -1,5 +1,3 @@ -context("test-coord-.r") - test_that("clipping is on by default", { p <- ggplot() coord <- ggplot_build(p)$layout$coord diff --git a/tests/testthat/test-coord-cartesian.R b/tests/testthat/test-coord-cartesian.R index c81dbff143..5b0ea913d3 100644 --- a/tests/testthat/test-coord-cartesian.R +++ b/tests/testthat/test-coord-cartesian.R @@ -1,5 +1,3 @@ -context("coord_cartesian") - test_that("clipping can be turned off and on", { # clip on by default p <- ggplot() + coord_cartesian() diff --git a/tests/testthat/test-coord-flip.R b/tests/testthat/test-coord-flip.R index 0182c5d6bc..c3a24300b6 100644 --- a/tests/testthat/test-coord-flip.R +++ b/tests/testthat/test-coord-flip.R @@ -1,5 +1,3 @@ -context("test-coord-flip.r") - test_that("secondary labels are correctly turned off", { # Using a visual test because the labels are only generated during rendering expect_doppelganger("turning off secondary title with coord_flip", diff --git a/tests/testthat/test-coord-map.R b/tests/testthat/test-coord-map.R index 9473820cdf..89497aba46 100644 --- a/tests/testthat/test-coord-map.R +++ b/tests/testthat/test-coord-map.R @@ -1,5 +1,3 @@ -context("coord_map") - test_that("USA state map drawn", { skip_if(packageVersion("base") < "3.5.0") us_map <- map_data("usa") diff --git a/tests/testthat/test-coord-polar.r b/tests/testthat/test-coord-polar.r index 8baac118f1..c3b25ce2fa 100644 --- a/tests/testthat/test-coord-polar.r +++ b/tests/testthat/test-coord-polar.r @@ -1,5 +1,3 @@ -context("coord_polar") - test_that("polar distance is calculated correctly", { dat <- data_frame( theta = c(0, 2*pi, 2, 6, 6, 1, 1, 0), diff --git a/tests/testthat/test-coord-train.r b/tests/testthat/test-coord-train.r index afca806e6c..2b712499e3 100644 --- a/tests/testthat/test-coord-train.r +++ b/tests/testthat/test-coord-train.r @@ -1,5 +1,3 @@ -context("coord_train") - test_that("NA's don't appear in breaks", { # Returns true if any major/minor breaks have an NA diff --git a/tests/testthat/test-coord-transform.R b/tests/testthat/test-coord-transform.R index 1b2ecfcc11..1e2f882f87 100644 --- a/tests/testthat/test-coord-transform.R +++ b/tests/testthat/test-coord-transform.R @@ -1,5 +1,3 @@ -context("coord_trans") - test_that("warnings are generated when cord_trans() results in new infinite values", { p <- ggplot(head(diamonds, 20)) + geom_bar(aes(x = cut)) + @@ -9,8 +7,12 @@ test_that("warnings are generated when cord_trans() results in new infinite valu geom_point() + coord_trans(x = "log") - expect_warning(ggplot_gtable(ggplot_build(p)), "Transformation introduced infinite values in y-axis") - expect_warning(ggplot_gtable(ggplot_build(p2)), "Transformation introduced infinite values in x-axis") + # TODO: These multiple warnings should be summarized nicely. Until this gets + # fixed, this test ignores all the following errors than the first one. + suppressWarnings({ + expect_warning(ggplot_gtable(ggplot_build(p)), "Transformation introduced infinite values in y-axis") + expect_warning(ggplot_gtable(ggplot_build(p2)), "Transformation introduced infinite values in x-axis") + }) }) test_that("no warnings are generated when original data has Inf values, but no new Inf values created from the transformation", { diff --git a/tests/testthat/test-coord_sf.R b/tests/testthat/test-coord_sf.R index fe65f72da4..3986774cea 100644 --- a/tests/testthat/test-coord_sf.R +++ b/tests/testthat/test-coord_sf.R @@ -1,5 +1,3 @@ -context("coord_sf") - test_that("basic plot builds without error", { skip_if_not_installed("sf") diff --git a/tests/testthat/test-data.r b/tests/testthat/test-data.r index a363479670..57acb22544 100644 --- a/tests/testthat/test-data.r +++ b/tests/testthat/test-data.r @@ -1,25 +1,25 @@ -context("Data") - test_that("stringsAsFactors doesn't affect results", { - old <- getOption("stringsAsFactors") - on.exit(options(stringsAsFactors = old), add = TRUE) + skip_if(as.integer(R.Version()$major) >= 4L, "stringsAsFactors only affects R <4.0") + + old <- getOption("stringsAsFactors") + on.exit(options(stringsAsFactors = old), add = TRUE) - dat.character <- data_frame(x = letters[5:1], y = 1:5) - dat.factor <- data_frame(x = letters[5:1], y = 1:5) + dat.character <- data_frame(x = letters[5:1], y = 1:5) + dat.factor <- data_frame(x = letters[5:1], y = 1:5) - base <- ggplot(mapping = aes(x, y)) + geom_point() - xlabels <- function(x) x$layout$panel_params[[1]]$x$get_labels() + base <- ggplot(mapping = aes(x, y)) + geom_point() + xlabels <- function(x) x$layout$panel_params[[1]]$x$get_labels() - options(stringsAsFactors = TRUE) - char_true <- ggplot_build(base %+% dat.character) - factor_true <- ggplot_build(base %+% dat.factor) + options(stringsAsFactors = TRUE) + char_true <- ggplot_build(base %+% dat.character) + factor_true <- ggplot_build(base %+% dat.factor) - options(stringsAsFactors = FALSE) - char_false <- ggplot_build(base %+% dat.character) - factor_false <- ggplot_build(base %+% dat.factor) + options(stringsAsFactors = FALSE) + char_false <- ggplot_build(base %+% dat.character) + factor_false <- ggplot_build(base %+% dat.factor) - expect_equal(xlabels(char_true), letters[1:5]) - expect_equal(xlabels(char_false), letters[1:5]) - expect_equal(xlabels(factor_true), letters[1:5]) - expect_equal(xlabels(factor_false), letters[1:5]) + expect_equal(xlabels(char_true), letters[1:5]) + expect_equal(xlabels(char_false), letters[1:5]) + expect_equal(xlabels(factor_true), letters[1:5]) + expect_equal(xlabels(factor_false), letters[1:5]) }) diff --git a/tests/testthat/test-draw-key.R b/tests/testthat/test-draw-key.R index 956e3755bc..d378473b20 100644 --- a/tests/testthat/test-draw-key.R +++ b/tests/testthat/test-draw-key.R @@ -1,6 +1,4 @@ # Setting of legend key glyphs has to be tested visually -context("Legend key glyphs") - test_that("alternative key glyphs work", { df <- data_frame(x = 1:3, y = 3:1, z = letters[1:3]) diff --git a/tests/testthat/test-empty-data.r b/tests/testthat/test-empty-data.r index 26c0cb8bcc..b9c72ced1b 100644 --- a/tests/testthat/test-empty-data.r +++ b/tests/testthat/test-empty-data.r @@ -1,5 +1,3 @@ -context('Empty data') - df0 <- data_frame(mpg = numeric(0), wt = numeric(0), am = numeric(0), cyl = numeric(0)) test_that("layers with empty data are silently omitted", { diff --git a/tests/testthat/test-error.R b/tests/testthat/test-error.R index bcf5f56c44..d845ef12e7 100644 --- a/tests/testthat/test-error.R +++ b/tests/testthat/test-error.R @@ -1,5 +1,3 @@ -context("error") - test_that("various misuses of +.gg (#2638)", { expect_error( { diff --git a/tests/testthat/test-facet-.r b/tests/testthat/test-facet-.r index e54eeb7797..44a08bf1ca 100644 --- a/tests/testthat/test-facet-.r +++ b/tests/testthat/test-facet-.r @@ -1,5 +1,3 @@ -context("Facetting") - test_that("as_facets_list() coerces formulas", { expect_identical(as_facets_list(~foo), list(quos(), quos(foo = foo))) expect_identical(as_facets_list(~foo + bar), list(quos(), quos(foo = foo, bar = bar))) @@ -277,15 +275,16 @@ test_that("combine_vars() generates the correct combinations", { factor = factor(c("level1", "level2")), stringsAsFactors = FALSE ) + attr(df_all, "out.attrs") <- NULL vars_all <- vars(letter = letter, number = number, boolean = boolean, factor = factor) - expect_equivalent( + expect_equal( combine_vars(list(df_one), vars = vars_all), df_one ) - expect_equivalent( + expect_equal( combine_vars(list(df_all), vars = vars_all), df_all ) @@ -295,21 +294,22 @@ test_that("combine_vars() generates the correct combinations", { # NAs are kept with with drop = TRUE # drop keeps all combinations of data, regardless of the combinations in which # they appear in the data (in addition to keeping unused factor levels) - expect_equivalent( + expect_equal( combine_vars(list(df_one), vars = vars_all, drop = FALSE), - df_all[order(df_all$letter, df_all$number, df_all$boolean, df_all$factor), ] + df_all[order(df_all$letter, df_all$number, df_all$boolean, df_all$factor), ], + ignore_attr = TRUE # do not compare `row.names` ) }) test_that("drop = FALSE in combine_vars() keeps unused factor levels", { df <- data_frame(x = factor("a", levels = c("a", "b"))) - expect_equivalent( + expect_equal( combine_vars(list(df), vars = vars(x = x), drop = TRUE), - data_frame(x = factor("a")) + data_frame(x = factor("a", levels = c("a", "b"))) ) - expect_equivalent( + expect_equal( combine_vars(list(df), vars = vars(x = x), drop = FALSE), - data_frame(x = factor(c("a", "b"))) + data_frame(x = factor(c("a", "b"), levels = c("a", "b"))) ) }) diff --git a/tests/testthat/test-facet-labels.r b/tests/testthat/test-facet-labels.r index ba87713197..6d086e0b7b 100644 --- a/tests/testthat/test-facet-labels.r +++ b/tests/testthat/test-facet-labels.r @@ -1,5 +1,3 @@ -context("Facet Labels") - get_labels_matrix <- function(plot, ...) { data <- ggplot_build(plot) layout <- data$layout diff --git a/tests/testthat/test-facet-layout.r b/tests/testthat/test-facet-layout.r index c3cc9d139f..b975135557 100644 --- a/tests/testthat/test-facet-layout.r +++ b/tests/testthat/test-facet-layout.r @@ -1,5 +1,3 @@ -context("Facetting (layout)") - a <- data_frame(a = c(1, 1, 2, 2), b = c(1, 2, 1, 1)) b <- data_frame(a = 3) c <- data_frame(b = 3) diff --git a/tests/testthat/test-facet-map.r b/tests/testthat/test-facet-map.r index 1a0c1ba9e6..a1b10fb48b 100644 --- a/tests/testthat/test-facet-map.r +++ b/tests/testthat/test-facet-map.r @@ -1,5 +1,3 @@ -context("Facetting (mapping)") - df <- expand.grid(a = 1:2, b = 1:2) df_a <- unique(df["a"]) df_b <- unique(df["b"]) diff --git a/tests/testthat/test-facet-strips.r b/tests/testthat/test-facet-strips.r index a9747f9f30..4536eb73d7 100644 --- a/tests/testthat/test-facet-strips.r +++ b/tests/testthat/test-facet-strips.r @@ -1,5 +1,3 @@ -context("Facet Strips") - strip_layout <- function(p) { data <- ggplot_build(p) plot <- data$plot diff --git a/tests/testthat/test-fortify.r b/tests/testthat/test-fortify.r index d6510493f8..fcc0951d7d 100644 --- a/tests/testthat/test-fortify.r +++ b/tests/testthat/test-fortify.r @@ -1,5 +1,3 @@ -context("Fortify") - test_that("spatial polygons have correct ordering", { skip_if_not_installed("sp") @@ -31,9 +29,17 @@ test_that("spatial polygons have correct ordering", { polys2 <- rev(polys) polys2_sp <- sp::SpatialPolygons(polys2) fake_sp2 <- sp::SpatialPolygonsDataFrame(polys2_sp, fake_data) - fake_sp2_fortified <- fortify(fake_sp2) + expected <- fortify(fake_sp2) + expected <- expected[order(expected$id, expected$order), ] + + actual <- fortify(fake_sp) + + # the levels are different, so these columns need to be converted to character to compare + expected$group <- as.character(expected$group) + actual$group <- as.character(actual$group) - expect_equivalent(fortify(fake_sp), fake_sp2_fortified[order(fake_sp2_fortified$id, fake_sp2_fortified$order), ]) + # Use expect_equal(ignore_attr = TRUE) to ignore rownames + expect_equal(actual, expected, ignore_attr = TRUE) }) test_that("fortify.default proves a helpful error with class uneval", { diff --git a/tests/testthat/test-function-args.r b/tests/testthat/test-function-args.r index 080fb5b71c..5e9eb77072 100644 --- a/tests/testthat/test-function-args.r +++ b/tests/testthat/test-function-args.r @@ -1,5 +1,3 @@ -context("function-args") - filter_args <- function(x) { all_names <- names(x) all_names <- setdiff(all_names, c("self", "data", "scales", "coordinates", "...")) diff --git a/tests/testthat/test-geom-bar.R b/tests/testthat/test-geom-bar.R index fa3f6bd7a3..b36a9c401e 100644 --- a/tests/testthat/test-geom-bar.R +++ b/tests/testthat/test-geom-bar.R @@ -1,5 +1,3 @@ -context("geom_bar") - test_that("geom_bar removes bars with parts outside the plot limits", { dat <- data_frame(x = c("a", "b", "b", "c", "c", "c")) diff --git a/tests/testthat/test-geom-boxplot.R b/tests/testthat/test-geom-boxplot.R index d6993488bc..dd8c077877 100644 --- a/tests/testthat/test-geom-boxplot.R +++ b/tests/testthat/test-geom-boxplot.R @@ -1,5 +1,3 @@ -context("geom_boxplot") - # thanks wch for providing the test code test_that("geom_boxplot range includes all outliers", { dat <- data_frame(x = 1, y = c(-(1:20) ^ 3, (1:20) ^ 3) ) diff --git a/tests/testthat/test-geom-col.R b/tests/testthat/test-geom-col.R index 7d8b0548f1..d4e158ccce 100644 --- a/tests/testthat/test-geom-col.R +++ b/tests/testthat/test-geom-col.R @@ -1,5 +1,3 @@ -context("geom_col") - test_that("geom_col removes columns with parts outside the plot limits", { dat <- data_frame(x = c(1, 2, 3)) diff --git a/tests/testthat/test-geom-dotplot.R b/tests/testthat/test-geom-dotplot.R index e2829fec99..8049961508 100644 --- a/tests/testthat/test-geom-dotplot.R +++ b/tests/testthat/test-geom-dotplot.R @@ -1,5 +1,3 @@ -context("geom_dotplot") - skip_on_cran() # This test suite is long-running (on cran) and is skipped set.seed(111) diff --git a/tests/testthat/test-geom-freqpoly.R b/tests/testthat/test-geom-freqpoly.R index 74df4d09ff..52de05f4a7 100644 --- a/tests/testthat/test-geom-freqpoly.R +++ b/tests/testthat/test-geom-freqpoly.R @@ -1,5 +1,3 @@ -context("geom_freqpoly") - test_that("can do frequency polygon with categorical x", { df <- data_frame(x = rep(letters[1:3], 3:1)) diff --git a/tests/testthat/test-geom-hex.R b/tests/testthat/test-geom-hex.R index d815955792..3cffeb8a66 100644 --- a/tests/testthat/test-geom-hex.R +++ b/tests/testthat/test-geom-hex.R @@ -1,5 +1,3 @@ -context("geom_hex") - test_that("density and value summaries are available", { df <- data_frame(x = c(1, 1, 1, 2), y = c(1, 1, 1, 2)) base <- ggplot(df, aes(x, y)) + diff --git a/tests/testthat/test-geom-hline-vline-abline.R b/tests/testthat/test-geom-hline-vline-abline.R index e57563ed1b..91b3108983 100644 --- a/tests/testthat/test-geom-hline-vline-abline.R +++ b/tests/testthat/test-geom-hline-vline-abline.R @@ -1,5 +1,3 @@ -context("geom-hline-vline-abline") - # Visual tests ------------------------------------------------------------ diff --git a/tests/testthat/test-geom-path.R b/tests/testthat/test-geom-path.R index 40e7b210e9..217733d9dd 100644 --- a/tests/testthat/test-geom-path.R +++ b/tests/testthat/test-geom-path.R @@ -1,5 +1,3 @@ -context("geom-path") - test_that("keep_mid_true drops leading/trailing FALSE", { expect_equal(keep_mid_true(c(F, F)), c(F, F)) expect_equal(keep_mid_true(c(F, T, F, T, F)), c(F, T, T, T, F)) diff --git a/tests/testthat/test-geom-point.R b/tests/testthat/test-geom-point.R index b60f2b8821..bfa3300447 100644 --- a/tests/testthat/test-geom-point.R +++ b/tests/testthat/test-geom-point.R @@ -1,5 +1,3 @@ -context("geom-point") - test_that("single strings translate to their corresponding integers", { expect_equal(translate_shape_string("square open"), 0) }) diff --git a/tests/testthat/test-geom-polygon.R b/tests/testthat/test-geom-polygon.R index 964a8af45a..334e62043f 100644 --- a/tests/testthat/test-geom-polygon.R +++ b/tests/testthat/test-geom-polygon.R @@ -1,5 +1,3 @@ -context("geom-polygon") - # Visual tests ------------------------------------------------------------ diff --git a/tests/testthat/test-geom-quantile.R b/tests/testthat/test-geom-quantile.R index 61906b43a3..bdcef0ac7f 100644 --- a/tests/testthat/test-geom-quantile.R +++ b/tests/testthat/test-geom-quantile.R @@ -1,5 +1,3 @@ -context("geom-quantile") - test_that("geom_quantile matches quantile regression", { skip_if_not_installed("quantreg") @@ -35,25 +33,28 @@ test_that("geom_quantile matches quantile regression", { pred_rq_test_25 <- pred_rq[, c("x", "Q_25")] colnames(pred_rq_test_25) <- c("x", "y") - # Use expect_equivalent() to ignore rownames - expect_equivalent( + # Use expect_equal(ignore_attr = TRUE) to ignore rownames + expect_equal( ggplot_data[ggplot_data$quantile == 0.25, c("x", "y")], - pred_rq_test_25 + pred_rq_test_25, + ignore_attr = TRUE ) pred_rq_test_50 <- pred_rq[, c("x", "Q_50")] colnames(pred_rq_test_50) <- c("x", "y") - expect_equivalent( + expect_equal( ggplot_data[ggplot_data$quantile == 0.5, c("x", "y")], - pred_rq_test_50 + pred_rq_test_50, + ignore_attr = TRUE ) pred_rq_test_75 <- pred_rq[, c("x", "Q_75")] colnames(pred_rq_test_75) <- c("x", "y") - expect_equivalent( + expect_equal( ggplot_data[ggplot_data$quantile == 0.75, c("x", "y")], - pred_rq_test_75 + pred_rq_test_75, + ignore_attr = TRUE ) }) diff --git a/tests/testthat/test-geom-raster.R b/tests/testthat/test-geom-raster.R index 890ef96692..cbdb9731d9 100644 --- a/tests/testthat/test-geom-raster.R +++ b/tests/testthat/test-geom-raster.R @@ -1,5 +1,3 @@ -context("geom-raster") - # Visual tests ------------------------------------------------------------ diff --git a/tests/testthat/test-geom-ribbon.R b/tests/testthat/test-geom-ribbon.R index 535e313651..9da04bef5a 100644 --- a/tests/testthat/test-geom-ribbon.R +++ b/tests/testthat/test-geom-ribbon.R @@ -1,5 +1,3 @@ -context("geom_ribbon") - test_that("NAs are not dropped from the data", { df <- data_frame(x = 1:5, y = c(1, 1, NA, 1, 1)) diff --git a/tests/testthat/test-geom-rug.R b/tests/testthat/test-geom-rug.R index 15c8d498b5..25204ef7ed 100644 --- a/tests/testthat/test-geom-rug.R +++ b/tests/testthat/test-geom-rug.R @@ -1,5 +1,3 @@ -context("geom_rug") - n = 10 df <- data_frame(x = 1:n, y = (1:n)^3) p <- ggplot(df, aes(x, y)) + geom_point() + geom_rug(sides = 'l') diff --git a/tests/testthat/test-geom-rule.R b/tests/testthat/test-geom-rule.R index 542957232d..e41ab41103 100644 --- a/tests/testthat/test-geom-rule.R +++ b/tests/testthat/test-geom-rule.R @@ -1,4 +1,3 @@ -context("geom_rule") # tests for geom_vline, geom_hline & geom_abline df <- data_frame(x = 1:3, y = 3:1) diff --git a/tests/testthat/test-geom-sf.R b/tests/testthat/test-geom-sf.R index f09e85ed3e..d3c5acc91f 100644 --- a/tests/testthat/test-geom-sf.R +++ b/tests/testthat/test-geom-sf.R @@ -1,5 +1,3 @@ -context("geom-sf") - test_that("geom_sf() determines the legend type automatically", { skip_if_not_installed("sf") if (packageVersion("sf") < "0.5.3") skip("Need sf 0.5.3") diff --git a/tests/testthat/test-geom-smooth.R b/tests/testthat/test-geom-smooth.R index 12c4718014..a317d78e07 100644 --- a/tests/testthat/test-geom-smooth.R +++ b/tests/testthat/test-geom-smooth.R @@ -1,5 +1,3 @@ -context("geom_smooth") - test_that("data is ordered by x", { df <- data_frame(x = c(1, 5, 2, 3, 4), y = 1:5) diff --git a/tests/testthat/test-geom-text.R b/tests/testthat/test-geom-text.R index d870a3a645..4f6573e076 100644 --- a/tests/testthat/test-geom-text.R +++ b/tests/testthat/test-geom-text.R @@ -1,5 +1,3 @@ -context("geom_text") - # compute_just ------------------------------------------------------------ test_that("vertical and horizontal positions are equivalent", { diff --git a/tests/testthat/test-geom-tile.R b/tests/testthat/test-geom-tile.R index be5dd39518..00261386ca 100644 --- a/tests/testthat/test-geom-tile.R +++ b/tests/testthat/test-geom-tile.R @@ -1,5 +1,3 @@ -context("geom_tile") - test_that("accepts width and height params", { df <- data_frame(x = c("a", "b"), y = c("a", "b")) diff --git a/tests/testthat/test-geom-violin.R b/tests/testthat/test-geom-violin.R index 751596d3b2..d9d81b135b 100644 --- a/tests/testthat/test-geom-violin.R +++ b/tests/testthat/test-geom-violin.R @@ -1,5 +1,3 @@ -context("geom_violin") - test_that("range is expanded", { df <- rbind( data_frame(x = "a", y = c(0, runif(10), 1)), diff --git a/tests/testthat/test-ggproto.R b/tests/testthat/test-ggproto.R index d6ac15b0c8..c0d4401e9e 100644 --- a/tests/testthat/test-ggproto.R +++ b/tests/testthat/test-ggproto.R @@ -1,5 +1,3 @@ -context("ggproto") - test_that(".DollarNames retrieves inherited methods", { A <- ggproto("A", NULL, a = 1) B <- ggproto("B", A, b = 2) diff --git a/tests/testthat/test-ggsave.R b/tests/testthat/test-ggsave.R index 10069b4004..0d7e022d7f 100644 --- a/tests/testthat/test-ggsave.R +++ b/tests/testthat/test-ggsave.R @@ -1,5 +1,3 @@ -context("ggsave") - test_that("ggsave creates file", { path <- tempfile() on.exit(unlink(path)) diff --git a/tests/testthat/test-grid-utils.R b/tests/testthat/test-grid-utils.R index 2b8944b043..f9f018953e 100644 --- a/tests/testthat/test-grid-utils.R +++ b/tests/testthat/test-grid-utils.R @@ -1,5 +1,3 @@ -context("Grid utilites") - test_that("width_cm and height_cm work with unit arithmetic", { x <- 2 * unit(1, "cm") diff --git a/tests/testthat/test-guides.R b/tests/testthat/test-guides.R index 541b4f3d29..c65f649794 100644 --- a/tests/testthat/test-guides.R +++ b/tests/testthat/test-guides.R @@ -1,5 +1,3 @@ -context("Guides") - skip_on_cran() # This test suite is long-running (on cran) and is skipped test_that("colourbar trains without labels", { @@ -60,7 +58,7 @@ test_that("axis_label_overlap_priority always returns the correct number of elem }) test_that("axis_label_element_overrides errors when angles are outside the range [0, 90]", { - expect_is(axis_label_element_overrides("bottom", 0), "element") + expect_s3_class(axis_label_element_overrides("bottom", 0), "element") expect_error(axis_label_element_overrides("bottom", 91), "`angle` must") expect_error(axis_label_element_overrides("bottom", -91), "`angle` must") }) @@ -89,7 +87,12 @@ test_that("a warning is generated when more than one position guide is drawn at y.sec = guide_axis(position = "left") ) built <- expect_silent(ggplot_build(plot)) - expect_warning(ggplot_gtable(built), "Discarding guide") + + # TODO: These multiple warnings should be summarized nicely. Until this gets + # fixed, this test ignores all the following errors than the first one. + suppressWarnings( + expect_warning(ggplot_gtable(built), "Discarding guide") + ) }) test_that("a warning is not generated when properly changing the position of a guide_axis()", { diff --git a/tests/testthat/test-labellers.R b/tests/testthat/test-labellers.R index 5900e31e4e..dd6fa90ca7 100644 --- a/tests/testthat/test-labellers.R +++ b/tests/testthat/test-labellers.R @@ -1,5 +1,3 @@ -context("Labellers") - test_that("label_bquote has access to functions in the calling environment", { labels <- data.frame(lab = letters[1:2]) attr(labels, "facet") <- "wrap" diff --git a/tests/testthat/test-labels.r b/tests/testthat/test-labels.r index b766e0648f..0e866fa2a4 100644 --- a/tests/testthat/test-labels.r +++ b/tests/testthat/test-labels.r @@ -1,5 +1,3 @@ -context("Labels") - test_that("setting guide labels works", { expect_identical(xlab("my label")$x, "my label") @@ -27,16 +25,16 @@ test_that("setting guide labels works", { expect_identical(labs(color = "my label")$colour, "my label") # No extra elements exists - expect_equivalent(labs(title = "my title"), list(title = "my title")) # formal argument - expect_equivalent(labs(colour = "my label"), list(colour = "my label")) # dot - expect_equivalent(labs(foo = "bar"), list(foo = "bar")) # non-existent param + expect_equal(labs(title = "my title"), list(title = "my title"), ignore_attr = TRUE) # formal argument + expect_equal(labs(colour = "my label"), list(colour = "my label"), ignore_attr = TRUE) # dot + expect_equal(labs(foo = "bar"), list(foo = "bar"), ignore_attr = TRUE) # non-existent param # labs() has list-splicing semantics params <- list(title = "my title", tag = "A)") expect_identical(labs(!!!params)$tag, "A)") # NULL is preserved - expect_equivalent(labs(title = NULL), list(title = NULL)) + expect_equal(labs(title = NULL), list(title = NULL), ignore_attr = TRUE) # ggtitle works in the same way as labs() expect_identical(ggtitle("my title")$title, "my title") @@ -44,9 +42,10 @@ test_that("setting guide labels works", { ggtitle("my title", subtitle = "my subtitle")$subtitle, "my subtitle" ) - expect_equivalent( - ggtitle("my title", subtitle = NULL), - list(title = "my title", subtitle = NULL) + expect_equal( + unclass(ggtitle("my title", subtitle = NULL)), + list(title = "my title", subtitle = NULL), + ignore_attr = TRUE ) }) diff --git a/tests/testthat/test-layer.r b/tests/testthat/test-layer.r index e5b70eff29..ec4f60e99b 100644 --- a/tests/testthat/test-layer.r +++ b/tests/testthat/test-layer.r @@ -1,5 +1,3 @@ -context("Layer") - # Parameters -------------------------------------------------------------- test_that("aesthetics go in aes_params", { @@ -23,7 +21,7 @@ test_that("column vectors are allowed (#2609)", { df <- data_frame(x = 1:10) df$y <- scale(1:10) # Returns a column vector p <- ggplot(df, aes(x, y)) - expect_is(layer_data(p), "data.frame") + expect_s3_class(layer_data(p), "data.frame") }) test_that("missing aesthetics trigger informative error", { diff --git a/tests/testthat/test-munch.r b/tests/testthat/test-munch.r index 8fcbb20103..5c26cab9a6 100644 --- a/tests/testthat/test-munch.r +++ b/tests/testthat/test-munch.r @@ -1,5 +1,3 @@ -context("Munch") - test_that("interp works", { single_interp_test <- function(start, end, n) { i <- interp(start, end, n) diff --git a/tests/testthat/test-performance.R b/tests/testthat/test-performance.R index 5c83f2af69..3706e26cfb 100644 --- a/tests/testthat/test-performance.R +++ b/tests/testthat/test-performance.R @@ -1,5 +1,3 @@ -context("Performance related alternatives") - # modify_list() ----------------------------------------------------------- testlist <- list( diff --git a/tests/testthat/test-plot-summary-api.R b/tests/testthat/test-plot-summary-api.R index a8b2f7f5d9..2d45e990e7 100644 --- a/tests/testthat/test-plot-summary-api.R +++ b/tests/testthat/test-plot-summary-api.R @@ -1,5 +1,3 @@ -context("plot summary API") - # Note: the functions tested here are used by Shiny; please do not change # their behavior without checking with the Shiny team first. @@ -115,11 +113,11 @@ test_that("coord summary - coord_flip", { test_that("summarise_layers", { l <- summarise_layers(ggplot_build(p)) - expect_equal(l$mapping[[1]], list(x = quo(displ), y = quo(hwy))) + expect_equal(l$mapping[[1]], list(x = quo(displ), y = quo(hwy)), ignore_attr = TRUE) p2 <- p + geom_point(aes(x = displ/2, y = hwy/2)) l2 <- summarise_layers(ggplot_build(p2)) - expect_equal(l2$mapping[[1]], list(x = quo(displ), y = quo(hwy))) + expect_equal(l2$mapping[[1]], list(x = quo(displ), y = quo(hwy)), ignore_attr = TRUE) # Here use _identical because the quosures are supposed to be local expect_identical(l2$mapping[[2]], list(x = quo(displ/2), y = quo(hwy/2))) diff --git a/tests/testthat/test-position-dodge2.R b/tests/testthat/test-position-dodge2.R index 08aa70082f..4f5fcf90dc 100644 --- a/tests/testthat/test-position-dodge2.R +++ b/tests/testthat/test-position-dodge2.R @@ -1,5 +1,3 @@ -context("position_dodge2") - test_that("find_x_overlaps identifies overlapping groups", { df1 <- data_frame( diff --git a/tests/testthat/test-position-nudge.R b/tests/testthat/test-position-nudge.R index fa634aa95c..2ec0e767e2 100644 --- a/tests/testthat/test-position-nudge.R +++ b/tests/testthat/test-position-nudge.R @@ -1,5 +1,3 @@ -context("position_nudge") - test_that("nudging works in both dimensions simultaneously", { # individual nudge value df <- data_frame(x = 1:3) diff --git a/tests/testthat/test-position-stack.R b/tests/testthat/test-position-stack.R index 492c850570..0243f0edd9 100644 --- a/tests/testthat/test-position-stack.R +++ b/tests/testthat/test-position-stack.R @@ -1,5 +1,3 @@ -context("position_stack") - test_that("data keeps its order after stacking", { df <- data_frame( x = rep(c(1:10), 3), diff --git a/tests/testthat/test-position_dodge.R b/tests/testthat/test-position_dodge.R index ef93727763..4d540176ad 100644 --- a/tests/testthat/test-position_dodge.R +++ b/tests/testthat/test-position_dodge.R @@ -1,5 +1,3 @@ -context("position_dodge") - test_that("can control whether to preserve total or individual width", { df <- data_frame(x = c("a", "b", "b"), y = c("a", "a", "b")) diff --git a/tests/testthat/test-prohibited-functions.R b/tests/testthat/test-prohibited-functions.R index 5fd3f17ff1..4303f48962 100644 --- a/tests/testthat/test-prohibited-functions.R +++ b/tests/testthat/test-prohibited-functions.R @@ -1,5 +1,3 @@ -context("rlang conditions") - get_n_stop <- function(f) { d <- getParseData(parse(f, keep.source = TRUE)) sum(d$token == "SYMBOL_FUNCTION_CALL" & d$text == "stop") diff --git a/tests/testthat/test-qplot.r b/tests/testthat/test-qplot.r index db56fd05d0..8e033d6397 100644 --- a/tests/testthat/test-qplot.r +++ b/tests/testthat/test-qplot.r @@ -1,16 +1,14 @@ -context("qplot") - test_that("qplot works with variables in data frame and parent env", { df <- data_frame(x = 1:10, a = 1:10) y <- 1:10 b <- 1:10 - expect_is(qplot(x, y, data = df), "ggplot") - expect_is(qplot(x, y, data = df, colour = a), "ggplot") - expect_is(qplot(x, y, data = df, colour = b), "ggplot") + expect_s3_class(qplot(x, y, data = df), "ggplot") + expect_s3_class(qplot(x, y, data = df, colour = a), "ggplot") + expect_s3_class(qplot(x, y, data = df, colour = b), "ggplot") bin <- 1 - expect_is(qplot(x, data = df, binwidth = bin), "ggplot") + expect_s3_class(qplot(x, data = df, binwidth = bin), "ggplot") }) test_that("qplot works in non-standard environments", { @@ -19,7 +17,7 @@ test_that("qplot works in non-standard environments", { x <- 1:10 qplot(x, breaks = 0:`-1-`) }) - expect_is(p, "ggplot") + expect_s3_class(p, "ggplot") }) test_that("qplot() evaluates constants in the right place", { diff --git a/tests/testthat/test-range.r b/tests/testthat/test-range.r index ee33cebaf7..6e7d6b1c6c 100644 --- a/tests/testthat/test-range.r +++ b/tests/testthat/test-range.r @@ -1,5 +1,3 @@ -context("range") - test_that("continuous ranges expand as expected", { r <- continuous_range() diff --git a/tests/testthat/test-rbind-dfs.R b/tests/testthat/test-rbind-dfs.R index a6c52b5e23..9184711911 100644 --- a/tests/testthat/test-rbind-dfs.R +++ b/tests/testthat/test-rbind-dfs.R @@ -1,5 +1,3 @@ -context("data.frame binding") - test_that("rbind_dfs keep classes of columns", { df <- data_frame( integer = seq_len(10), diff --git a/tests/testthat/test-sanitise-dim.r b/tests/testthat/test-sanitise-dim.r index 375c434ff1..b06ca31360 100644 --- a/tests/testthat/test-sanitise-dim.r +++ b/tests/testthat/test-sanitise-dim.r @@ -1,5 +1,3 @@ -context("sanitise_dim") - test_that("sanitise_dim returns NULL for zero-length inputs, with appropriate warnings", { expect_identical(sanitise_dim(NULL), NULL) n <- integer() @@ -11,10 +9,16 @@ test_that("sanitise_dim returns the first element or NULL for non-positive integ n <- 1:2 expect_identical(suppressWarnings(sanitise_dim(n)), 1L) expect_warning(sanitise_dim(n), "Only the first value of `n` will be used.") + n2 <- 0:1 - expect_identical(suppressWarnings(sanitise_dim(n2)), NULL) - expect_warning(sanitise_dim(n2), "Only the first value of `n2` will be used.") - expect_warning(sanitise_dim(n2), "`n2` is missing or less than 1 and will be treated as NULL.") + expect_warning( + expect_warning( + out <- sanitise_dim(n2), + "Only the first value of `n2` will be used." + ), + "`n2` is missing or less than 1 and will be treated as NULL." + ) + expect_identical(out, NULL) }) test_that("sanitise_dim returns a NULL for missing inputs, with appropriate warnings", { @@ -27,8 +31,14 @@ test_that("sanitise_dim returns a positive integer or NULL for non-integer input n <- 1.5 expect_identical(suppressWarnings(sanitise_dim(n)), 1L) expect_warning(sanitise_dim(n), "Coercing `n` to be an integer.") + n2 <- 0.9999999 - expect_identical(suppressWarnings(sanitise_dim(n2)), NULL) - expect_warning(sanitise_dim(n2), "Coercing `n2` to be an integer.") - expect_warning(sanitise_dim(n2), "`n2` is missing or less than 1 and will be treated as NULL.") + expect_warning( + expect_warning( + out <- sanitise_dim(n2), + "Coercing `n2` to be an integer." + ), + "`n2` is missing or less than 1 and will be treated as NULL." + ) + expect_identical(out, NULL) }) diff --git a/tests/testthat/test-scale-brewer.R b/tests/testthat/test-scale-brewer.R index 77b2c5118b..b838952fbe 100644 --- a/tests/testthat/test-scale-brewer.R +++ b/tests/testthat/test-scale-brewer.R @@ -1,5 +1,3 @@ -context("scale_brewer") - test_that("mid-point in diverging brewer color scale", { d <- data_frame(x = -1:1) diff --git a/tests/testthat/test-scale-colour-continuous.R b/tests/testthat/test-scale-colour-continuous.R index 01932b715f..364bc60a91 100644 --- a/tests/testthat/test-scale-colour-continuous.R +++ b/tests/testthat/test-scale-colour-continuous.R @@ -1,5 +1,3 @@ -context("test-scale-colour-continuous.R") - test_that("type argument is checked for proper input", { expect_error( scale_colour_continuous(type = function() "abc"), diff --git a/tests/testthat/test-scale-date.R b/tests/testthat/test-scale-date.R index dc08925bc7..8f0e1fa410 100644 --- a/tests/testthat/test-scale-date.R +++ b/tests/testthat/test-scale-date.R @@ -1,5 +1,3 @@ -context("scale_date") - base_time <- function(tz = "") { as.POSIXct(strptime("2015-06-01", "%Y-%m-%d", tz = tz)) } diff --git a/tests/testthat/test-scale-discrete.R b/tests/testthat/test-scale-discrete.R index 5d95f52dfa..d8315388ea 100644 --- a/tests/testthat/test-scale-discrete.R +++ b/tests/testthat/test-scale-discrete.R @@ -1,5 +1,3 @@ -context("scale_discrete") - # Missing values ---------------------------------------------------------- df <- tibble::tibble( diff --git a/tests/testthat/test-scale-gradient.R b/tests/testthat/test-scale-gradient.R index c1f6542829..fafa2226fe 100644 --- a/tests/testthat/test-scale-gradient.R +++ b/tests/testthat/test-scale-gradient.R @@ -1,5 +1,3 @@ -context("scale_gradient") - # Limits ------------------------------------------------------------------ test_that("points outside the limits are plotted as NA", { @@ -9,5 +7,5 @@ test_that("points outside the limits are plotted as NA", { scale_fill_gradient2(limits = c(-1, 1), midpoint = 2, na.value = "orange") correct_fill <- c("#B26D65", "#DCB4AF", "orange") - expect_equivalent(layer_data(p)$fill, correct_fill) + expect_equal(layer_data(p)$fill, correct_fill) }) diff --git a/tests/testthat/test-scale-manual.r b/tests/testthat/test-scale-manual.r index 9355558893..05da3e21d7 100644 --- a/tests/testthat/test-scale-manual.r +++ b/tests/testthat/test-scale-manual.r @@ -1,5 +1,3 @@ -context("scale_manual") - test_that("names of values used in manual scales", { s1 <- scale_colour_manual(values = c("8" = "c", "4" = "a", "6" = "b")) s1$train(c("4", "6", "8")) diff --git a/tests/testthat/test-scale-type.R b/tests/testthat/test-scale-type.R index 4504df6cd0..ccefcee95b 100644 --- a/tests/testthat/test-scale-type.R +++ b/tests/testthat/test-scale-type.R @@ -1,5 +1,3 @@ -context("test-scale-type.R") - test_that("no scale for NULL aesthetic", { expect_equal(find_scale("colour", NULL), NULL) }) diff --git a/tests/testthat/test-scale_date.R b/tests/testthat/test-scale_date.R index 02192180b9..dafd7afffe 100644 --- a/tests/testthat/test-scale_date.R +++ b/tests/testthat/test-scale_date.R @@ -1,5 +1,3 @@ -context("scale_date") - # Visual tests ------------------------------------------------------------ diff --git a/tests/testthat/test-scales-breaks-labels.r b/tests/testthat/test-scales-breaks-labels.r index 3d7c2d938f..c45540fefb 100644 --- a/tests/testthat/test-scales-breaks-labels.r +++ b/tests/testthat/test-scales-breaks-labels.r @@ -1,5 +1,3 @@ -context("Scales: breaks and labels") - test_that("labels match breaks, even when outside limits", { sc <- scale_y_continuous(breaks = 1:4, labels = 1:4, limits = c(1, 3)) @@ -99,7 +97,7 @@ test_that("discrete labels match breaks", { sc <- init_scale(breaks = 0:5 * 10) expect_equal(length(sc$get_breaks()), 5) expect_equal(length(sc$get_labels()), 5) - expect_equivalent(sc$get_labels(), sc$get_breaks()) + expect_equal(sc$get_labels(), sc$get_breaks(), ignore_attr = TRUE) sc <- init_scale(breaks = 0:5 * 10, labels = letters[1:6]) expect_equal(length(sc$get_breaks()), 5) diff --git a/tests/testthat/test-scales.r b/tests/testthat/test-scales.r index c0982662f2..308c345802 100644 --- a/tests/testthat/test-scales.r +++ b/tests/testthat/test-scales.r @@ -1,5 +1,3 @@ -context("Scales") - test_that("building a plot does not affect its scales", { dat <- data_frame(x = rnorm(20), y = rnorm(20)) @@ -354,8 +352,8 @@ test_that("scale_apply preserves class and attributes", { )[[1]], `c.baz` = `c.baz`, `[.baz` = `[.baz`, .env = global_env()) # Check class preservation - expect_is(out, "baz") - expect_is(out, "numeric") + expect_s3_class(out, "baz") + expect_s3_class(out, "numeric") # Check attribute preservation expect_identical(attr(out, "foo"), "bar") diff --git a/tests/testthat/test-sec-axis.R b/tests/testthat/test-sec-axis.R index 221d1468c9..ca75ca290e 100644 --- a/tests/testthat/test-sec-axis.R +++ b/tests/testthat/test-sec-axis.R @@ -1,5 +1,3 @@ -context("sec-axis") - x <- exp(seq(log(0.001), log(1000), length.out = 100)) foo <- data_frame( x = x, diff --git a/tests/testthat/test-stat-bin.R b/tests/testthat/test-stat-bin.R index 09f3675971..7e608e2495 100644 --- a/tests/testthat/test-stat-bin.R +++ b/tests/testthat/test-stat-bin.R @@ -1,5 +1,3 @@ -context("stat_bin/stat_count") - test_that("stat_bin throws error when y aesthetic is present", { dat <- data_frame(x = c("a", "b", "c"), y = c(1, 5, 10)) diff --git a/tests/testthat/test-stat-bin2d.R b/tests/testthat/test-stat-bin2d.R index 309136b8be..4f1d9d97bb 100644 --- a/tests/testthat/test-stat-bin2d.R +++ b/tests/testthat/test-stat-bin2d.R @@ -1,5 +1,3 @@ -context("stat_bin2d") - test_that("binwidth is respected", { df <- data_frame(x = c(1, 1, 1, 2), y = c(1, 1, 1, 2)) base <- ggplot(df, aes(x, y)) + diff --git a/tests/testthat/test-stat-boxplot.R b/tests/testthat/test-stat-boxplot.R index 7887ad7145..5e79501a95 100644 --- a/tests/testthat/test-stat-boxplot.R +++ b/tests/testthat/test-stat-boxplot.R @@ -1,5 +1,3 @@ -context("stat_boxplot") - test_that("stat_boxplot drops missing rows with a warning", { p1 <- ggplot(PlantGrowth, aes(x = group, y = weight)) + diff --git a/tests/testthat/test-stat-contour.R b/tests/testthat/test-stat-contour.R index 61df774756..9843bed2b7 100644 --- a/tests/testthat/test-stat-contour.R +++ b/tests/testthat/test-stat-contour.R @@ -1,16 +1,21 @@ - -context("stat-contour") - test_that("a warning is issued when there is more than one z per x+y", { tbl <- data_frame(x = c(1, 1, 2), y = c(1, 1, 2), z = 3) p <- ggplot(tbl, aes(x, y, z = z)) + geom_contour() - expect_warning(ggplot_build(p), "Zero contours were generated") + # Ignore other warnings than the one stat_contour() issued + suppressWarnings( + expect_warning(ggplot_build(p), "Zero contours were generated") + ) }) test_that("contouring sparse data results in a warning", { tbl <- data_frame(x = c(1, 27, 32), y = c(1, 1, 30), z = c(1, 2, 3)) p <- ggplot(tbl, aes(x, y, z = z)) + geom_contour() - expect_warning(ggplot_build(p), "Zero contours were generated") + + # TODO: These multiple warnings should be summarized nicely. Until this gets + # fixed, this test ignores all the following errors than the first one. + suppressWarnings( + expect_warning(ggplot_build(p), "Zero contours were generated") + ) }) test_that("contouring irregularly spaced data works", { diff --git a/tests/testthat/test-stat-density.R b/tests/testthat/test-stat-density.R index 4a26927a0c..9cc9e7a6aa 100644 --- a/tests/testthat/test-stat-density.R +++ b/tests/testthat/test-stat-density.R @@ -1,5 +1,3 @@ -context("stat_density") # and stat_ydensity - test_that("compute_density succeeds when variance is zero", { dens <- compute_density(rep(0, 10), NULL, from = 0.5, to = 0.5) expect_equal(dens$n, rep(10, 512)) diff --git a/tests/testthat/test-stat-density2d.R b/tests/testthat/test-stat-density2d.R index 3ac5494c90..8446feaf49 100644 --- a/tests/testthat/test-stat-density2d.R +++ b/tests/testthat/test-stat-density2d.R @@ -1,5 +1,3 @@ -context("stat_density_2d") - test_that("uses scale limits, not data limits", { base <- ggplot(mtcars, aes(wt, mpg)) + stat_density_2d() + diff --git a/tests/testthat/test-stat-ecdf.R b/tests/testthat/test-stat-ecdf.R index 4e56e3625b..6c0a8d7e4d 100644 --- a/tests/testthat/test-stat-ecdf.R +++ b/tests/testthat/test-stat-ecdf.R @@ -1,5 +1,3 @@ -context("stat_ecdf") - test_that("stat_ecdf works in both directions", { p <- ggplot(mpg, aes(hwy)) + stat_ecdf() x <- layer_data(p) diff --git a/tests/testthat/test-stat-ellipsis.R b/tests/testthat/test-stat-ellipsis.R index 6c1dcf8fdb..95a5df9ad7 100644 --- a/tests/testthat/test-stat-ellipsis.R +++ b/tests/testthat/test-stat-ellipsis.R @@ -1,5 +1,3 @@ -context("stat_ellipsis") - test_that("stat_ellipsis returns correct data format", { n_seg <- 40 d <- data_frame(x = c(1, 1, 4, 4, 4, 3, 3, 1), y = c(1:4, 1:4), id = rep(1:2, each = 4)) diff --git a/tests/testthat/test-stat-function.R b/tests/testthat/test-stat-function.R index 861d88df15..fbe4f38b7e 100644 --- a/tests/testthat/test-stat-function.R +++ b/tests/testthat/test-stat-function.R @@ -1,5 +1,3 @@ -context("stat_function") - test_that("uses scale limits, not data limits", { dat <- data_frame(x = c(0.1, 1:100)) dat$y <- dexp(dat$x) diff --git a/tests/testthat/test-stat-hex.R b/tests/testthat/test-stat-hex.R index 1ae9a5fc63..3f9959992b 100644 --- a/tests/testthat/test-stat-hex.R +++ b/tests/testthat/test-stat-hex.R @@ -1,5 +1,3 @@ -context("stat_hex") - test_that("can use length 1 binwidth", { df <- data_frame(x = c(1, 1, 2), y = c(1, 1, 2)) p <- ggplot(df, aes(x, y)) + stat_binhex(binwidth = 1) diff --git a/tests/testthat/test-stat-sf-coordinates.R b/tests/testthat/test-stat-sf-coordinates.R index f328af194e..e7fa887eb5 100644 --- a/tests/testthat/test-stat-sf-coordinates.R +++ b/tests/testthat/test-stat-sf-coordinates.R @@ -1,5 +1,3 @@ -context("stat_sf_coordinates") - comp_sf_coord <- function(df, ...) { plot <- ggplot(df) + stat_sf_coordinates(...) layer_data(plot) diff --git a/tests/testthat/test-stat-sum.R b/tests/testthat/test-stat-sum.R index d62584e61d..43734a0961 100644 --- a/tests/testthat/test-stat-sum.R +++ b/tests/testthat/test-stat-sum.R @@ -1,5 +1,3 @@ -context("stat_sum") - test_that("handles grouping correctly", { d <- diamonds[1:1000, ] all_ones <- function(x) all.equal(mean(x), 1) diff --git a/tests/testthat/test-stat-summary.R b/tests/testthat/test-stat-summary.R index 1c4b29a166..5f8cc4b4fd 100644 --- a/tests/testthat/test-stat-summary.R +++ b/tests/testthat/test-stat-summary.R @@ -1,5 +1,3 @@ -context("stat_summary") - test_that("stat_summary(_bin) work with lambda expressions", { # note: stat_summary and stat_summary_bin both use # make_summary_fun, so this tests both diff --git a/tests/testthat/test-stats.r b/tests/testthat/test-stats.r index a4be7921df..01b94a6635 100644 --- a/tests/testthat/test-stats.r +++ b/tests/testthat/test-stats.r @@ -1,5 +1,3 @@ -context("Stats") - test_that("plot succeeds even if some computation fails", { df <- data_frame(x = 1:2, y = 1) p1 <- ggplot(df, aes(x, y)) + geom_point() @@ -8,7 +6,12 @@ test_that("plot succeeds even if some computation fails", { expect_equal(length(b1$data), 1) p2 <- p1 + geom_smooth() - expect_warning(b2 <- ggplot_build(p2), "Computation failed") + + # TODO: These multiple warnings should be summarized nicely. Until this gets + # fixed, this test ignores all the following errors than the first one. + suppressWarnings( + expect_warning(b2 <- ggplot_build(p2), "Computation failed") + ) expect_equal(length(b2$data), 2) }) diff --git a/tests/testthat/test-theme.r b/tests/testthat/test-theme.r index dd06008505..1406de6ce3 100644 --- a/tests/testthat/test-theme.r +++ b/tests/testthat/test-theme.r @@ -1,5 +1,3 @@ -context("Themes") - skip_on_cran() # This test suite is long-running (on cran) and is skipped test_that("modifying theme element properties with + operator works", { diff --git a/tests/testthat/test-utilities.r b/tests/testthat/test-utilities.r index e0c07e458c..7970ec5791 100644 --- a/tests/testthat/test-utilities.r +++ b/tests/testthat/test-utilities.r @@ -1,5 +1,3 @@ -context("Utilities") - test_that("finite_cases.data.frame", { finite_cases <- function(x) cases(x, is_finite) diff --git a/tests/testthat/test-viridis.R b/tests/testthat/test-viridis.R index 8b4fb1e758..31dad3f3bb 100644 --- a/tests/testthat/test-viridis.R +++ b/tests/testthat/test-viridis.R @@ -1,5 +1,3 @@ -context("Viridis") - df <- data_frame(x = 1, y = 1, z = "a", tier = factor("low", ordered = TRUE)) test_that("viridis scale changes point color", { diff --git a/tests/testthat/test-zzz.R b/tests/testthat/test-zzz.R index 8f5ade9868..539cd88767 100644 --- a/tests/testthat/test-zzz.R +++ b/tests/testthat/test-zzz.R @@ -1,5 +1,3 @@ -context("zzz") - test_that(".onAttach does not modify the random stream", { set.seed(42) x <- runif(5)