Skip to content

Commit daed593

Browse files
authored
Add tests for values, limits, and breaks in manual scale (#4547)
1 parent ffcfaf7 commit daed593

File tree

1 file changed

+49
-5
lines changed

1 file changed

+49
-5
lines changed

tests/testthat/test-scale-manual.r

Lines changed: 49 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
context("scale_manual")
22

33
test_that("names of values used in manual scales", {
4-
s <- scale_colour_manual(values = c("8" = "c","4" = "a","6" = "b"))
5-
s$train(c("4", "6", "8"))
6-
expect_equal(s$map(c("4", "6", "8")), c("a", "b", "c"))
4+
s1 <- scale_colour_manual(values = c("8" = "c", "4" = "a", "6" = "b"))
5+
s1$train(c("4", "6", "8"))
6+
expect_equal(s1$map(c("4", "6", "8")), c("a", "b", "c"))
7+
8+
s2 <- scale_colour_manual(values = c("8" = "c", "4" = "a", "6" = "b"), na.value = NA)
9+
s2$train(c("4", "8"))
10+
expect_equal(s2$map(c("4", "6", "8")), c("a", NA, "c"))
711
})
812

913

@@ -87,13 +91,53 @@ test_that("unnamed values match breaks in manual scales", {
8791
})
8892

8993
test_that("limits works (#3262)", {
90-
# named charachter vector
94+
# named character vector
9195
s1 <- scale_colour_manual(values = c("8" = "c", "4" = "a", "6" = "b"), limits = c("4", "8"), na.value = NA)
9296
s1$train(c("4", "6", "8"))
9397
expect_equal(s1$map(c("4", "6", "8")), c("a", NA, "c"))
9498

95-
# named charachter vector
99+
# unnamed character vector
96100
s2 <- scale_colour_manual(values = c("c", "a", "b"), limits = c("4", "8"), na.value = NA)
97101
s2$train(c("4", "6", "8"))
98102
expect_equal(s2$map(c("4", "6", "8")), c("c", NA, "a"))
99103
})
104+
105+
test_that("fewer values (#3451)", {
106+
# named character vector
107+
s1 <- scale_colour_manual(values = c("4" = "a", "8" = "c"), na.value = NA)
108+
s1$train(c("4", "6", "8"))
109+
expect_equal(s1$map(c("4", "6", "8")), c("a", NA, "c"))
110+
111+
# unnamed character vector
112+
s2 <- scale_colour_manual(values = c("4", "8"), na.value = NA)
113+
s2$train(c("4", "6", "8"))
114+
expect_error(s2$map(c("4", "6", "8")), "Insufficient values")
115+
})
116+
117+
test_that("limits and breaks (#4619)", {
118+
# values don't change legend order
119+
s1 <- scale_colour_manual(
120+
values = c("8" = "c", "4" = "a", "6" = "b"),
121+
)
122+
s1$train(c("8", "6", "4"))
123+
expect_equal(s1$map(c("8", "6", "4")), c("c", "b", "a"))
124+
expect_equal(s1$break_positions(), c("a", "b", "c"))
125+
126+
# limits change legend order
127+
s2 <- scale_colour_manual(
128+
values = c("8" = "c", "4" = "a", "6" = "b", "0" = "x"),
129+
limits = c("0", "4", "6", "8")
130+
)
131+
s2$train(c("8", "6", "4"))
132+
expect_equal(s2$map(c("4", "6", "8")), c("a", "b", "c"))
133+
expect_equal(s2$break_positions(), c("x", "a", "b", "c"))
134+
135+
# breaks work
136+
s3 <- scale_colour_manual(
137+
values = c("8" = "c", "4" = "a", "6" = "b"),
138+
breaks = c("4", "8")
139+
)
140+
s3$train(c("4", "6", "8"))
141+
expect_equal(s3$map(c("4", "6", "8")), c("a", "b", "c"))
142+
expect_equal(s3$break_positions(), c("a", "c"))
143+
})

0 commit comments

Comments
 (0)