From 2ed7488d11ccfcf9be2c1afbc5eddccc976ee91c Mon Sep 17 00:00:00 2001 From: Dana Seidel Date: Mon, 6 Aug 2018 14:58:40 -0700 Subject: [PATCH 1/2] Fix incorrect monotonicity test failure --- R/axis-secondary.R | 4 ++-- tests/testthat/test-sec-axis.R | 26 ++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/R/axis-secondary.R b/R/axis-secondary.R index eaad444d79..a7eb19546d 100644 --- a/R/axis-secondary.R +++ b/R/axis-secondary.R @@ -113,10 +113,10 @@ AxisSecondary <- ggproto("AxisSecondary", NULL, if (self$empty()) return() # Get original range before transformation - along_range <- seq(range[1], range[2], length.out = self$detail) - old_range <- scale$trans$inverse(along_range) + inv_range <- scale$trans$inverse(range) # Create mapping between primary and secondary range + old_range <- seq(inv_range[1], inv_range[2], length.out = self$detail) full_range <- self$transform_range(old_range) # Test for monotonicity diff --git a/tests/testthat/test-sec-axis.R b/tests/testthat/test-sec-axis.R index 56284cc415..0958b6fdff 100644 --- a/tests/testthat/test-sec-axis.R +++ b/tests/testthat/test-sec-axis.R @@ -115,3 +115,29 @@ test_that("sec axis works with tidy eval", { expect_equal(breaks$major_source / 10, breaks$sec.major_source) }) + +test_that("sec_axis() works for power transformations (monotonicity test doesn't fail)", { + p <- ggplot(foo, aes(x, y)) + + geom_point() + + scale_x_sqrt(sec.axis = dup_axis()) + scale <- layer_scales(p)$x + breaks <- scale$break_info() + expect_equal(breaks$major, breaks$sec.major, tolerance = .001) + + p <- ggplot(foo, aes(x, y)) + + geom_point() + + scale_x_sqrt(sec.axis = sec_axis(~. * 100)) + scale <- layer_scales(p)$x + breaks <- scale$break_info() + expect_equal(breaks$major, breaks$sec.major, tolerance = .001) + + p <- ggplot(foo, aes(x, y)) + + geom_point() + + scale_x_continuous( + trans = scales::boxcox_trans(.25), + sec.axis = sec_axis(~. / 10) + ) + scale <- layer_scales(p)$x + breaks <- scale$break_info() + expect_equal(breaks$major, breaks$sec.major, tolerance = .001) +}) From 4e13ab6194293a58a00d486313817abe7ec19230 Mon Sep 17 00:00:00 2001 From: Dana Seidel Date: Mon, 6 Aug 2018 16:41:52 -0700 Subject: [PATCH 2/2] Remove boxcox test --- tests/testthat/test-sec-axis.R | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/tests/testthat/test-sec-axis.R b/tests/testthat/test-sec-axis.R index 0958b6fdff..ced8c58ef3 100644 --- a/tests/testthat/test-sec-axis.R +++ b/tests/testthat/test-sec-axis.R @@ -130,14 +130,4 @@ test_that("sec_axis() works for power transformations (monotonicity test doesn't scale <- layer_scales(p)$x breaks <- scale$break_info() expect_equal(breaks$major, breaks$sec.major, tolerance = .001) - - p <- ggplot(foo, aes(x, y)) + - geom_point() + - scale_x_continuous( - trans = scales::boxcox_trans(.25), - sec.axis = sec_axis(~. / 10) - ) - scale <- layer_scales(p)$x - breaks <- scale$break_info() - expect_equal(breaks$major, breaks$sec.major, tolerance = .001) })