@@ -4,3 +4,39 @@ test_that("binned scales only support continuous data", {
4
4
p <- ggplot(mtcars ) + geom_point(aes(disp , mpg , colour = as.character(gear ))) + scale_color_binned()
5
5
expect_snapshot_error(ggplot_build(p ))
6
6
})
7
+
8
+ test_that(' binned scales can calculate breaks on dates' , {
9
+
10
+ data <- seq(as.Date(" 2000-01-01" ), as.Date(" 2020-01-01" ), length.out = 100 )
11
+
12
+ scale <- scale_x_binned(trans = " date" )
13
+ scale $ train(scale $ transform(data ))
14
+ breaks <- scale $ trans $ inverse(scale $ get_breaks())
15
+
16
+ expect_s3_class(breaks , " Date" )
17
+ expect_equal(
18
+ unname(breaks ),
19
+ as.Date(paste0(seq(2002 , 2018 , by = 2 ), " -01-01" ))
20
+ )
21
+ })
22
+
23
+ test_that(' binned scales can calculate breaks on date-times' , {
24
+ data <- seq(
25
+ strptime(" 2000-01-01" , " %Y-%m-%d" ),
26
+ strptime(" 2020-01-01" , " %Y-%m-%d" ),
27
+ length.out = 100
28
+ )
29
+
30
+ scale <- scale_x_binned(trans = " time" )
31
+ scale $ train(scale $ transform(data ))
32
+ breaks <- scale $ trans $ inverse(scale $ get_breaks())
33
+
34
+ expect_s3_class(breaks , " POSIXct" )
35
+ expect_equal(
36
+ unname(unclass(breaks )),
37
+ unclass(as.POSIXct(strptime(
38
+ paste0(seq(2002 , 2018 , by = 2 ), " -01-01" ),
39
+ " %Y-%m-%d"
40
+ )))
41
+ )
42
+ })
0 commit comments