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 ) })