test_that("decision1S works for lower sided", { dec <- decision1S( qc = c(0, 0.8, 1.2), pc = c(0.05, 0.5, 0.05), lower.tail = TRUE ) expect_true(has_lower(dec)) expect_false(has_upper(dec)) # Complementary attribute is still present for consistency: expect_function(attr(dec, "upper")) expect_class(dec, c("decision1S", "decision1S_1sided", "function")) expect_class(lower(dec), c("decision1S_atomic", "function")) expect_snapshot(print(dec)) flat_prior <- mixnorm(c(1, 0, 100), sigma = 10) expect_equal(dec(flat_prior), 1) dist <- dec(flat_prior, dist = TRUE) expect_snapshot_value(dist, style = "deparse") }) test_that("decision1S works for upper sided", { dec <- decision1S( qc = c(0, 0.8, 1.2), pc = c(0.05, 0.5, 0.05), lower.tail = FALSE ) expect_false(has_lower(dec)) expect_true(has_upper(dec)) # Complementary attribute is still present for consistency: expect_function(attr(dec, "lower")) expect_class(dec, c("decision1S", "decision1S_1sided", "function")) expect_class(upper(dec), c("decision1S_atomic", "function")) expect_snapshot(print(dec)) flat_prior <- mixnorm(c(1, 0, 100), sigma = 10) expect_equal(dec(flat_prior), 0) dist <- dec(flat_prior, dist = TRUE) expect_snapshot_value(dist, style = "deparse") }) test_that("decision1S works for two sided", { decMixed <- decision1S( qc = c(0, 0.8, 1.2), pc = c(0.05, 0.5, 0.05), lower.tail = c(TRUE, FALSE, TRUE) ) expect_true(has_lower(decMixed)) expect_true(has_upper(decMixed)) expect_class(decMixed, c("decision1S", "decision1S_2sided", "function")) expect_class(lower(decMixed), c("decision1S_atomic", "function")) expect_class(upper(decMixed), c("decision1S_atomic", "function")) expect_snapshot(print(decMixed)) flat_prior <- mixnorm(c(1, 0, 100), sigma = 10) expect_equal(decMixed(flat_prior), 0) lower_part <- lower(decMixed) upper_part <- upper(decMixed) expect_equal(lower_part(flat_prior), 1) expect_equal(upper_part(flat_prior), 0) dist <- decMixed(flat_prior, dist = TRUE) expect_snapshot_value(dist, style = "deparse") })