tests/testthat/test-print-methods.R

test_that("print.bayesqm_fit emits the Bayesian header and returns invisibly", {
  fit <- make_fake_fit(N = 5, J = 10, K = 2)
  out <- capture.output(res <- print(fit))
  expect_identical(res, fit)
  expect_true(any(grepl("Bayesian Q-methodology factor model", out)))
  expect_true(any(grepl("Factor loadings", out)))
  expect_true(any(grepl("Hyperparameters",  out)))
})

test_that("print.bayesqm_fit honors the stored prob in the CI label", {
  fit <- make_fake_fit(N = 4, J = 8, K = 2)
  fit$brief$prob <- 0.80
  out <- capture.output(print(fit))
  expect_true(any(grepl("80% CI", out)))
})

test_that("summary.bayesqm_fit includes factor characteristics", {
  fit <- make_fake_fit(N = 6, J = 12, K = 3)
  out <- capture.output(summary(fit))
  expect_true(any(grepl("Factor characteristics", out)))
  expect_true(any(grepl("eigenvals", out)))
  expect_true(any(grepl("MatchAlign diagnostics", out)))
})

test_that("print.qsort_data shows the distribution and source", {
  Y <- cbind(c(-2, -1, 0, 1, 2), c(-1, -2, 2, 0, 1), c(0, -2, -1, 2, 1))
  obj <- qsort_data(Y, distribution = c(1, 1, 1, 1, 1), source = "test")
  out <- capture.output(print(obj))
  expect_true(any(grepl("Q-sort data", out)))
  expect_true(any(grepl("source", out)))
  expect_true(any(grepl("distribution", out)))
})

test_that("summary.qsort_data reports validation warnings when needed", {
  Y <- matrix(0, nrow = 2, ncol = 2)  # too few statements / participants
  obj <- suppressWarnings(qsort_data(Y, distribution = c(1, 1),
                                     validate = FALSE))
  out <- capture.output(summary(obj))
  expect_true(any(grepl("issues", out)))
})

test_that("print.bayesqm_family shows family/link/nu", {
  fit <- make_fake_fit(N = 4, J = 8, K = 2)
  out <- capture.output(print(family(fit)))
  expect_true(any(grepl("Family", out)))
  expect_true(any(grepl("Link",   out)))
  expect_true(any(grepl("nu",     out)))
})

test_that("print.bayesqm_prior emits header and data frame rows", {
  fit <- make_fake_fit(N = 4, J = 8, K = 2)
  ps  <- prior_summary(fit)
  out <- capture.output(print(ps))
  expect_true(any(grepl("bayesqm priors", out)))
  expect_true(any(grepl("tau",   out)))
  expect_true(any(grepl("sigma", out)))
})

Try the bayesqm package in your browser

Any scripts or data that you put into this service are public.

bayesqm documentation built on June 18, 2026, 1:07 a.m.