|
1 | 1 | context("scale_manual")
|
2 | 2 |
|
3 | 3 | 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")) |
7 | 11 | })
|
8 | 12 |
|
9 | 13 |
|
@@ -87,13 +91,53 @@ test_that("unnamed values match breaks in manual scales", {
|
87 | 91 | })
|
88 | 92 |
|
89 | 93 | test_that("limits works (#3262)", {
|
90 |
| - # named charachter vector |
| 94 | + # named character vector |
91 | 95 | s1 <- scale_colour_manual(values = c("8" = "c", "4" = "a", "6" = "b"), limits = c("4", "8"), na.value = NA)
|
92 | 96 | s1$train(c("4", "6", "8"))
|
93 | 97 | expect_equal(s1$map(c("4", "6", "8")), c("a", NA, "c"))
|
94 | 98 |
|
95 |
| - # named charachter vector |
| 99 | + # unnamed character vector |
96 | 100 | s2 <- scale_colour_manual(values = c("c", "a", "b"), limits = c("4", "8"), na.value = NA)
|
97 | 101 | s2$train(c("4", "6", "8"))
|
98 | 102 | expect_equal(s2$map(c("4", "6", "8")), c("c", NA, "a"))
|
99 | 103 | })
|
| 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