tests/testthat/test-lookAhead.R

context("lookAhead")
load("cat_objects.Rdata")

test_that("lookAhead works for ltm Cat", {
  look <- lookAhead(ltm_cat, 1)
  
  ltm_cat@answers[1] <- -1
  expect_equal(selectItem(ltm_cat)$next_item, look$next_item[look$response_option == -1])

  ltm_cat@answers[1] <- 0
  expect_equal(selectItem(ltm_cat)$next_item, look$next_item[look$response_option == 0])
  
  ltm_cat@answers[1] <- 1
  expect_equal(selectItem(ltm_cat)$next_item, look$next_item[look$response_option == 1])
})

test_that("lookAhead works for grm Cat", {
  look <- lookAhead(grm_cat, 1)

  grm_cat@answers[1] <- -1
  expect_equal(selectItem(grm_cat)$next_item, look$next_item[look$response_option == -1])
  
  grm_cat@answers[1] <- 1
  expect_equal(selectItem(grm_cat)$next_item, look$next_item[look$response_option == 1])
  
  grm_cat@answers[1] <- 2
  expect_equal(selectItem(grm_cat)$next_item, look$next_item[look$response_option == 2])
  
  grm_cat@answers[1] <- 3
  expect_equal(selectItem(grm_cat)$next_item, look$next_item[look$response_option == 3])
  
  grm_cat@answers[1] <- 4
  expect_equal(selectItem(grm_cat)$next_item, look$next_item[look$response_option == 4])
  
  grm_cat@answers[1] <- 5
  expect_equal(selectItem(grm_cat)$next_item, look$next_item[look$response_option == 5])
})

test_that("lookAhead works for gpcm Cat", {
  look <- lookAhead(gpcm_cat, 1)

  gpcm_cat@answers[1] <- -1
  expect_equal(selectItem(gpcm_cat)$next_item, look$next_item[look$response_option == -1])
  
  gpcm_cat@answers[1] <- 1
  expect_equal(selectItem(gpcm_cat)$next_item, look$next_item[look$response_option == 1])
  
  gpcm_cat@answers[1] <- 2
  expect_equal(selectItem(gpcm_cat)$next_item, look$next_item[look$response_option == 2])
  
  gpcm_cat@answers[1] <- 3
  expect_equal(selectItem(gpcm_cat)$next_item, look$next_item[look$response_option == 3])
  
  gpcm_cat@answers[1] <- 4
  expect_equal(selectItem(gpcm_cat)$next_item, look$next_item[look$response_option == 4])
  
  gpcm_cat@answers[1] <- 5
  expect_equal(selectItem(gpcm_cat)$next_item, look$next_item[look$response_option == 5])
})

test_that("lookAhead returns empty df when question has been answered", {
  ltm_cat@answers[1] <- 1 
  look <- expect_warning(lookAhead(ltm_cat, 1))
  
  expect_equal(as.character(look[1,1]), "NULL")
  expect_equal(dim(look), c(3,2))
})

test_that("lookAhead returns empty df when last question", {
    ltm_cat@answers[1:39] <- sample(c(-1,0,1), 39, replace = TRUE)
    look <- expect_warning(lookAhead(ltm_cat, 40))
    
    expect_equal(as.character(look[1,1]), "NULL")
    expect_equal(dim(look), c(3,2))
})
erossiter/catSurv documentation built on Dec. 11, 2022, 6:36 p.m.