1
2test_that("expand_scale() produces a deprecation warning", {
3  expect_warning(expand_scale(), "deprecated")
4})
5
6# Expanding continuous scales -----------------------------------------
7
8test_that("expand_limits_continuous() can override limits", {
9  expect_identical(expand_limits_continuous(c(1, 2), coord_limits = c(NA, NA)), c(1, 2))
10  expect_identical(expand_limits_continuous(c(1, 2), coord_limits = c(NA, 3)), c(1, 3))
11  expect_identical(expand_limits_continuous(c(1, 2), coord_limits = c(0, NA)), c(0, 2))
12})
13
14test_that("expand_limits_continuous() expands limits", {
15  expect_identical(expand_limits_continuous(c(1, 2), expand = expansion(add = 1)), c(0, 3))
16})
17
18test_that("expand_limits_continuous() expands coord-supplied limits", {
19  expect_identical(
20    expand_limits_continuous(c(1, 2), coord_limits = c(0, 4), expand = expansion(add = 1)),
21    c(-1, 5)
22  )
23})
24
25test_that("expand_limits_continuous_trans() expands limits in coordinate space", {
26  limit_info <- expand_limits_continuous_trans(
27    c(1, 2),
28    expand = expansion(add = 0.5),
29    trans = log10_trans()
30  )
31
32  expect_identical(
33    limit_info$continuous_range,
34    10^(expand_range4(log10(c(1, 2)), expansion(add = 0.5)))
35  )
36
37  expect_identical(
38    limit_info$continuous_range_coord,
39    expand_range4(log10(c(1, 2)), expansion(add = 0.5))
40  )
41})
42
43test_that("introduced non-finite values fall back on scale limits", {
44  limit_info <- expand_limits_continuous_trans(
45    c(1, 100),
46    expand = expansion(add = 2),
47    trans = sqrt_trans()
48  )
49
50  expect_identical(limit_info$continuous_range, c(1, (sqrt(100) + 2)^2))
51  expect_identical(limit_info$continuous_range_coord, c(-1, sqrt(100) + 2))
52})
53
54# Expanding discrete scales -----------------------------------------
55
56test_that("expand_limits_discrete() can override limits with an empty range", {
57  expect_identical(expand_limits_discrete(NULL, coord_limits = c(-1, 8)), c(-1, 8))
58})
59
60test_that("expand_limits_discrete() can override limits with a discrete range", {
61  expect_identical(expand_limits_discrete(c("one", "two"), coord_limits = c(NA, NA)), c(1, 2))
62  expect_identical(expand_limits_discrete(c("one", "two"), coord_limits = c(NA, 3)), c(1, 3))
63  expect_identical(expand_limits_discrete(c("one", "two"), coord_limits = c(3, NA)), c(3, 2))
64})
65
66test_that("expand_limits_discrete() can override limits with a continuous range", {
67  expect_identical(
68    expand_limits_discrete(NULL, coord_limits = c(NA, NA), range_continuous = c(1, 2)),
69    c(1, 2)
70  )
71  expect_identical(
72    expand_limits_discrete(NULL, coord_limits = c(NA, 3), range_continuous = c(1, 2)),
73    c(1, 3)
74  )
75  expect_identical(
76    expand_limits_discrete(NULL, coord_limits = c(0, NA), range_continuous = c(1, 2)),
77    c(0, 2)
78  )
79})
80
81test_that("expand_limits_discrete() can override limits with a both discrete and continuous ranges", {
82  expect_identical(
83    expand_limits_discrete(c("one", "two"), coord_limits = c(NA, NA), range_continuous = c(1, 2)),
84    c(1, 2)
85  )
86  expect_identical(
87    expand_limits_discrete(c("one", "two"), coord_limits = c(NA, 3), range_continuous = c(1, 2)),
88    c(1, 3)
89  )
90  expect_identical(
91    expand_limits_discrete(c("one", "two"), coord_limits = c(0, NA), range_continuous = c(1, 2)),
92    c(0, 2)
93  )
94})
95
96test_that("expand_limits_continuous_trans() works with inverted transformations", {
97  limit_info <- expand_limits_continuous_trans(
98    c(1, 2),
99    expand = expansion(add = 1),
100    trans = reverse_trans()
101  )
102
103  expect_identical(limit_info$continuous_range, c(0, 3))
104  expect_identical(limit_info$continuous_range_coord, c(0, -3))
105})
106
107test_that("expand_limits_scale_discrete() begrudgingly handles numeric limits", {
108  expect_identical(
109    expand_limits_discrete(
110      -1:-16,
111      coord_limits = c(NA, NA),
112      range_continuous = c(-15, -2)
113    ),
114    c(-15, -2)
115  )
116})
117