test_that("observe() output is equal to core verbs", { expect_equal( gss %>% observe(hours ~ NULL, stat = "mean"), gss %>% specify(hours ~ NULL) %>% calculate(stat = "mean") ) expect_equal( gss %>% observe(hours ~ NULL, stat = "t", null = "point", mu = 40), gss %>% specify(hours ~ NULL) %>% hypothesize(null = "point", mu = 40) %>% calculate(stat = "t") ) expect_equal( observe( gss, age ~ college, stat = "diff in means", order = c("degree", "no degree") ), gss %>% specify(age ~ college) %>% calculate("diff in means", order = c("degree", "no degree")), ignore_attr = TRUE ) }) test_that("observe messages/warns/errors informatively", { expect_equal( expect_message( gss %>% observe(hours ~ NULL, stat = "mean", mu = 40) ) %>% conditionMessage(), expect_message( gss %>% specify(hours ~ NULL) %>% hypothesize(null = "point", mu = 40) %>% calculate(stat = "mean") ) %>% conditionMessage() ) expect_equal( expect_warning( gss %>% observe(hours ~ NULL, stat = "t") ) %>% conditionMessage(), expect_warning( gss %>% specify(hours ~ NULL) %>% calculate(stat = "t") ) %>% conditionMessage() ) expect_error( expect_equal( capture.output( gss %>% observe(hours ~ age, stat = "diff in means"), type = "message" ), capture.output( gss %>% specify(hours ~ age) %>% calculate(stat = "diff in means"), type = "message" ), ) ) expect_error( expect_equal( gss %>% observe(explanatory = age, stat = "diff in means"), gss %>% specify(explanatory = age) %>% calculate(stat = "diff in means") ) ) }) test_that("observe() works with either specify() interface", { # unnamed formula argument expect_equal( gss %>% observe(hours ~ NULL, stat = "mean"), gss %>% observe(response = hours, stat = "mean"), ignore_attr = TRUE ) expect_equal( gss %>% observe( hours ~ college, stat = "diff in means", order = c("degree", "no degree") ), gss %>% specify(hours ~ college) %>% calculate(stat = "diff in means", order = c("degree", "no degree")) ) # named formula argument expect_equal( gss %>% observe(formula = hours ~ NULL, stat = "mean"), gss %>% observe(response = hours, stat = "mean"), ignore_attr = TRUE ) expect_equal( gss %>% observe(formula = hours ~ NULL, stat = "mean"), gss %>% observe(response = hours, stat = "mean"), ignore_attr = TRUE ) expect_equal( gss %>% observe( formula = hours ~ college, stat = "diff in means", order = c("degree", "no degree") ), gss %>% specify(formula = hours ~ college) %>% calculate(stat = "diff in means", order = c("degree", "no degree")) ) }) test_that("observe() output is the same as the old wrappers", { expect_snapshot( res_wrap <- gss_tbl %>% chisq_stat(college ~ partyid) ) expect_equal( gss_tbl %>% observe(college ~ partyid, stat = "Chisq") %>% dplyr::pull(), res_wrap ) expect_snapshot( res_wrap_2 <- gss_tbl %>% t_stat(hours ~ sex, order = c("male", "female")) ) expect_equal( gss_tbl %>% observe(stat = "t", hours ~ sex, order = c("male", "female")) %>% dplyr::pull(), res_wrap_2 ) })