tests/testthat/test-zzz-methods-yens-q3.R

test_that("Yen's Q3 works", {
  q3_dina <- add_respondent_estimates(rstn_dina)
  yens_output <- yens_q3(q3_dina)

  expect_equal(nrow(yens_output), ((20 * (20 + 1)) / 2) - 20)
  expect_equal(ncol(yens_output), 4)
  expect_equal(names(yens_output), c("item_1", "item_2", "resid_corr", "flag"))

  q3max <- yens_q3(q3_dina, summary = "q3max")
  expect_true(is.numeric(q3max))
  expect_true(dplyr::between(q3max, 0, 1))
  expect_equal(q3max, max(abs(yens_output$resid_corr)))

  q3star <- yens_q3(q3_dina, summary = "q3star")
  expect_true(is.numeric(q3star))
  expect_true(dplyr::between(q3star, 0, 1))
  expect_equal(
    q3star,
    max(abs(yens_output$resid_corr)) -
      mean(abs(yens_output$resid_corr))
  )
})

test_that("respondent estimates get added", {
  dino_output <- yens_q3(rstn_dino)

  expect_equal(nrow(dino_output), ((20 * (20 + 1)) / 2) - 20)
  expect_equal(ncol(dino_output), 4)
  expect_equal(names(dino_output), c("item_1", "item_2", "resid_corr", "flag"))
})

Try the measr package in your browser

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

measr documentation built on Jan. 14, 2026, 5:08 p.m.