Nothing
test_that("t-family functions match v1 plot snapshots", {
expect_plot_vdiffr(
"iscaminvt-below",
iscaminvt(0.05, df = 15, direction = "below")
)
expect_plot_vdiffr(
"iscamtprob-below",
iscamtprob(xval = -2.05, df = 10, direction = "below")
)
expect_plot_vdiffr(
"iscamonesamplet-greater",
suppressWarnings(iscamonesamplet(
xbar = 2.5,
sd = 1.2,
n = 30,
alternative = "greater",
hypothesized = 2,
conf.level = 0.95
))
)
expect_plot_vdiffr(
"iscamtwosamplet-two-sided",
suppressWarnings(iscamtwosamplet(
x1 = 5,
sd1 = 2,
n1 = 30,
x2 = 4,
sd2 = 1.5,
n2 = 28,
hypothesized = 0,
alternative = "two.sided",
conf.level = 0.95
))
)
})
test_that("iscaminvt reports requested t quantiles", {
res_below <- capture_plot_result(iscaminvt(
0.05,
df = 15,
direction = "below"
))
res_outside <- capture_plot_result(iscaminvt(
0.1,
df = 10,
direction = "outside"
))
expect_equal(
res_below$value$answer,
qt(0.05, 15, lower.tail = TRUE),
tolerance = 1e-3
)
expect_equal(
res_outside$value$answer1,
qt(0.05, 10, lower.tail = TRUE),
tolerance = 1e-3
)
expect_equal(
res_outside$value$answer2,
qt(0.95, 10, lower.tail = TRUE),
tolerance = 1e-3
)
})
test_that("iscaminvt handles above and between directions", {
res_above <- capture_plot_result(iscaminvt(
0.1,
df = 12,
direction = "above"
))
res_between <- capture_plot_result(iscaminvt(
0.9,
df = 8,
direction = "between"
))
expect_equal(
res_above$value$answer,
qt(0.1, 12, lower.tail = FALSE),
tolerance = 1e-3
)
lower_between <- qt((1 - 0.9) / 2, 8, lower.tail = TRUE)
upper_between <- -lower_between
expect_equal(
res_between$value$answer1,
lower_between,
tolerance = 1e-3
)
expect_equal(
res_between$value$answer2,
upper_between,
tolerance = 1e-3
)
expect_snapshot(res_above$output)
expect_snapshot(res_between$output)
})
test_that("iscamtprob matches t tail probabilities", {
res_below <- capture_plot_result(iscamtprob(
xval = -2.05,
df = 10,
direction = "below"
))
res_between <- capture_plot_result(iscamtprob(
xval = -2,
xval2 = 2,
df = 12,
direction = "between"
))
expected_below <- as.numeric(format(pt(-2.05, 10), digits = 4))
expect_equal(as.numeric(res_below$value), expected_below)
expect_equal(
as.numeric(res_between$value),
as.numeric(format(pt(2, 12) - pt(-2, 12), digits = 4))
)
expect_false(res_below$visible)
expect_false(res_between$visible)
expect_snapshot(res_below$output)
expect_snapshot(res_between$output)
})
test_that("iscamtprob handles all branches and validates parameters", {
res_above <- capture_plot_result(iscamtprob(
xval = 1.65,
df = 14,
direction = "above"
))
res_outside <- capture_plot_result(iscamtprob(
xval = -1.2,
xval2 = 2.1,
df = 12,
direction = "outside"
))
expect_equal(
as.numeric(res_above$value),
as.numeric(format(pt(1.65, 14, lower.tail = FALSE), digits = 4))
)
expect_equal(
as.numeric(res_outside$value),
as.numeric(format(1 - (pt(2.1, 12) - pt(-1.2, 12)), digits = 4))
)
expect_false(res_above$visible)
expect_false(res_outside$visible)
expect_snapshot(res_above$output)
expect_snapshot(res_outside$output)
expect_error(
iscamtprob(xval = 0, df = 10, direction = "between"),
"specify a second observation value"
)
expect_error(
iscamtprob(xval = 0, df = 10, direction = "outside"),
"specify a second observation value"
)
expect_error(
iscamtprob(xval = 0, df = 10, direction = "sideways"),
"Use \"above\", \"below\", \"between\", or \"outside\" as the direction."
)
})
test_that("iscamtprob reorders bounds for between and outside directions", {
res_between <- capture_plot_result(iscamtprob(
xval = 2.2,
xval2 = -1.4,
df = 12,
direction = "between",
verbose = FALSE
))
res_outside <- capture_plot_result(iscamtprob(
xval = 2.2,
xval2 = -1.4,
df = 12,
direction = "outside",
verbose = FALSE
))
lower <- min(2.2, -1.4)
upper <- max(2.2, -1.4)
expect_equal(
as.numeric(res_between$value),
as.numeric(format(pt(upper, 12) - pt(lower, 12), digits = 4))
)
expect_equal(
as.numeric(res_outside$value),
as.numeric(format(1 - (pt(upper, 12) - pt(lower, 12)), digits = 4))
)
expect_false(res_between$visible)
expect_false(res_outside$visible)
})
test_that("iscamonesamplet returns Welch statistics", {
res <- capture_plot_result(suppressWarnings(iscamonesamplet(
xbar = 2.5,
sd = 1.2,
n = 30,
alternative = "greater",
hypothesized = 2,
conf.level = 0.95
)))
se <- 1.2 / sqrt(30)
t_expected <- (2.5 - 2) / se
p_expected <- pt(t_expected, df = 29, lower.tail = FALSE)
critical <- qt((1 - 0.95) / 2, df = 29)
lower <- 2.5 + critical * se
upper <- 2.5 - critical * se
expect_null(res$value)
expect_snapshot(res$output)
})
test_that("iscamonesamplet handles one-sided and two-sided hypotheses", {
res_less <- capture_plot_result(suppressWarnings(iscamonesamplet(
xbar = 4.8,
sd = 1.1,
n = 22,
hypothesized = 5.2,
alternative = "less"
)))
res_two <- capture_plot_result(suppressWarnings(iscamonesamplet(
xbar = 7.1,
sd = 1.5,
n = 18,
hypothesized = 7,
alternative = "not.equal"
)))
se_less <- 1.1 / sqrt(22)
t_less <- (4.8 - 5.2) / se_less
p_less <- pt(t_less, df = 21)
se_two <- 1.5 / sqrt(18)
t_two <- (7.1 - 7) / se_two
p_two <- 2 * pt(-abs(t_two), df = 17)
output_less <- collapse_output(res_less$output)
output_two <- collapse_output(res_two$output)
expect_true(grepl("Alternative hypothesis: mu <", output_less, fixed = TRUE))
expect_true(grepl("p-value:", output_less, fixed = TRUE))
expect_true(grepl("Alternative hypothesis: mu <>", output_two, fixed = TRUE))
expect_true(grepl("p-value:", output_two, fixed = TRUE))
expect_null(res_less$value)
expect_null(res_two$value)
expect_snapshot(res_less$output)
expect_snapshot(res_two$output)
})
test_that("iscamonesamplet prints help for question mark", {
help_lines <- capture_help_output(ISCAM::iscamonesamplet("?"))
expect_snapshot(collapse_output(help_lines))
})
test_that("iscamonesamplet returns confidence intervals without hypothesis", {
res_conf <- capture_plot_result(suppressWarnings(iscamonesamplet(
xbar = 0.62,
sd = 0.2,
n = 15,
conf.level = c(95, 99)
)))
expect_null(res_conf$value)
output_conf <- collapse_output(res_conf$output)
expect_true(grepl(
"95 % Confidence interval for mu:",
output_conf,
fixed = TRUE
))
expect_true(grepl(
"99 % Confidence interval for mu:",
output_conf,
fixed = TRUE
))
expect_snapshot(res_conf$output)
})
test_that("iscamonesamplet reports single confidence interval without hypothesis", {
res <- capture_plot_result(suppressWarnings(iscamonesamplet(
xbar = 1.8,
sd = 0.4,
n = 20,
conf.level = 0.95
)))
expect_null(res$value)
expect_snapshot(res$output)
})
test_that("iscamtwosamplet returns Welch two-sample results", {
x1 <- 5
sd1 <- 2
n1 <- 30
x2 <- 4
sd2 <- 1.5
n2 <- 28
conf <- 0.95
res <- capture_plot_result(suppressWarnings(iscamtwosamplet(
x1 = x1,
sd1 = sd1,
n1 = n1,
x2 = x2,
sd2 = sd2,
n2 = n2,
hypothesized = 0,
alternative = "two.sided",
conf.level = conf
)))
se <- sqrt(sd1^2 / n1 + sd2^2 / n2)
df_calc <- (sd1^2 / n1 + sd2^2 / n2)^2 /
((sd1^2 / n1)^2 / (n1 - 1) + (sd2^2 / n2)^2 / (n2 - 1))
df_expected <- df_calc
t_expected <- (x1 - x2) / se
p_expected <- 2 * pt(-abs(t_expected), df_expected)
critical <- qt((1 - conf) / 2, df_expected)
lower <- (x1 - x2) + critical * se
upper <- (x1 - x2) - critical * se
expect_null(res$value)
expect_snapshot(res$output)
})
test_that("iscamtwosamplet handles less alternative", {
res <- capture_plot_result(suppressWarnings(iscamtwosamplet(
x1 = 4.5,
sd1 = 1.2,
n1 = 18,
x2 = 5.1,
sd2 = 1.4,
n2 = 20,
hypothesized = 0,
alternative = "less"
)))
se <- sqrt(1.2^2 / 18 + 1.4^2 / 20)
df_calc <- (1.2^2 / 18 + 1.4^2 / 20)^2 /
((1.2^2 / 18)^2 / (18 - 1) + (1.4^2 / 20)^2 / (20 - 1))
t_expected <- (4.5 - 5.1) / se
p_expected <- pt(t_expected, df = df_calc)
expect_null(res$value)
output <- collapse_output(res$output)
get_value <- function(label) {
match <- regexpr(paste0(label, ": [-0-9.]+"), output)
matched <- regmatches(output, match)
as.numeric(sub(paste0(label, ": "), "", matched))
}
expect_equal(get_value("t-statistic"), t_expected, tolerance = 1e-3)
expect_equal(get_value("df"), df_calc, tolerance = 1e-3)
expect_equal(get_value("p-value"), p_expected, tolerance = 1e-4)
expect_snapshot(res$output)
})
test_that("iscamtwosamplet handles greater alternative", {
res <- capture_plot_result(suppressWarnings(iscamtwosamplet(
x1 = 5.8,
sd1 = 1.1,
n1 = 22,
x2 = 5.1,
sd2 = 1.3,
n2 = 20,
hypothesized = 0,
alternative = "greater",
verbose = FALSE
)))
expect_null(res$value)
})
test_that("iscamtwosamplet provides intervals without hypothesis test", {
res <- capture_plot_result(suppressWarnings(iscamtwosamplet(
x1 = 6.2,
sd1 = 1.1,
n1 = 25,
x2 = 5.8,
sd2 = 1.3,
n2 = 24,
conf.level = 95
)))
expect_null(res$value)
expect_snapshot(res$output)
})
test_that("iscaminvt prints help for question mark", {
help_lines <- capture_help_output(ISCAM::iscaminvt("?"))
expect_snapshot(collapse_output(help_lines))
})
test_that("iscamtwosamplet prints help for question mark", {
help_lines <- capture_help_output(ISCAM::iscamtwosamplet("?"))
expect_snapshot(collapse_output(help_lines))
})
test_that("iscamtprob prints help for question mark", {
help_lines <- capture_help_output(ISCAM::iscamtprob("?"))
expect_snapshot(collapse_output(help_lines))
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.