test_that("create an empty tsibble", { expect_identical(interval(tsibble(datetime = Sys.time()[0])), new_interval()) expect_identical( interval(tsibble(datetime = Sys.time()[0], regular = FALSE)), irregular() ) }) ped_null <- pedestrian %>% filter(Sensor == 0) test_that("dplyr verbs for empty tsibble", { expect_equal(NROW(ped_null), 0L) expect_s3_class(ped_null %>% group_by(Sensor), "grouped_ts") expect_equal(NROW(ped_null %>% mutate(Count1 = Count + 1)), 0L) expect_equal(NROW(ped_null %>% transmute(Count1 = Count + 1)), 0L) expect_equal(NROW(ped_null %>% summarise(Count1 = sum(Count))), 0L) expect_identical(ped_null %>% arrange(Count), ped_null) expect_identical(ped_null %>% slice(0), ped_null) expect_identical(ped_null %>% filter(Sensor == 0), ped_null) expect_identical(ped_null[0, ], ped_null) }) test_that("tsibble verbs empty tsibble", { expect_identical(fill_gaps(ped_null), ped_null) expect_identical(has_gaps(ped_null), tibble(Sensor = character(), .gaps = logical())) expect_equal(NROW(count_gaps(ped_null)), 0) }) ped_tsbl <- pedestrian %>% mutate(Sensor = as.factor(Sensor)) %>% filter_index("2015-01") ped_grped <- pedestrian %>% mutate(Sensor = as.factor(Sensor)) %>% group_by_key() %>% filter_index("2015-01") %>% as_tibble() test_that("dplyr verbs for empty groups (factors)", { expect_identical( key_data(ped_tsbl %>% mutate(x = 1L)), group_data(ped_grped %>% mutate(x = 1L)) ) k <- key_data(ped_tsbl %>% group_by_key() %>% slice(1:2)) g <- group_data(ped_grped %>% slice(1:2)) expect_identical(k$Sensor, g$Sensor) expect_identical(k$.rows, g$.rows) expect_identical( key_data(ped_tsbl %>% arrange(Sensor, Date_Time)), group_data(ped_grped %>% arrange(Sensor, Date_Time)) ) }) ped_tsbl <- pedestrian %>% filter_index("2015-01", .preserve = TRUE) ped_grped <- pedestrian %>% as_tibble() %>% group_by(Sensor) %>% filter(time_in(Date_Time, "2015-01"), .preserve = TRUE) test_that("dplyr verbs for empty groups (characters)", { # expect_identical( # key_data(ped_tsbl %>% mutate(x = 1L)), # group_data(ped_grped %>% mutate(x = 1L)) # ) k1 <- key_data(ped_tsbl %>% group_by_key() %>% slice(1:2)) g1 <- group_data(ped_grped %>% slice(1:2)) expect_identical(k1$Sensor, g1$Sensor) expect_identical(k1$.rows, g1$.rows) expect_identical( key_data(ped_tsbl %>% arrange(Sensor, Date_Time)), group_data(ped_grped %>% arrange(Sensor, Date_Time)) ) }) x <- tibble( groups = rep(factor("a", levels = letters[1:2]), 10), index = as.Date("2019-01-01") + 0:9 ) test_that("dplyr verbs for empty groups (factors)", { y <- as_tsibble(x, key = groups, .drop = FALSE) expect_equal(n_keys(y), 2L) expect_false(key_drop_default(y)) expect_equal(n_keys(y %>% mutate(a = 1)), 2L) expect_equal(n_keys(y %>% mutate(groups = groups)), 2L) expect_equal(n_keys(y %>% mutate(groups = 1L)), 1L) expect_equal(n_keys(y %>% select(index, groups)), 2L) expect_equal(n_keys(y %>% rename(index2 = index, groups2 = groups)), 2L) })