tests/testthat/test-check_mhcnuggets_options.R

test_that("use", {

  if (!is_mhcnuggets_installed()) return()

  expect_silent(check_mhcnuggets_options(create_test_mhcnuggets_options()))
  expect_silent(
    check_mhcnuggets_options(create_test_mhcnuggets_options(mhc_class = NA))
  )

  # Must be a list
  expect_error(
    check_mhcnuggets_options("nonsense"),
    "'mhcnuggets_options' must be a list"
  )
  expect_error(check_mhcnuggets_options(NULL))
  expect_error(check_mhcnuggets_options(NA))
  expect_error(check_mhcnuggets_options(""))
  expect_error(check_mhcnuggets_options(3.14))
  expect_error(check_mhcnuggets_options(42))

  # Element names
  expect_error(
    check_mhcnuggets_options(list()),
    "'mhcnuggets_options' must have an element named 'mhc_class'"
  )
  expect_error(
    check_mhcnuggets_options(list(
      create_test_mhcnuggets_options(), create_test_mhcnuggets_options())
    )
  )



  expect_error(
    check_mhcnuggets_options(
      create_test_mhcnuggets_options(
        mhc_class = "nonsense"
      )
    ),
    "'mhc_class' must be either 'I', 'II' or NA"
  )

  expect_error(
    check_mhcnuggets_options(
      create_test_mhcnuggets_options(
        mhc = "nonsense"
      )
    ),
    "'mhc' must be one valid MHC haplotype name"
  )

  expect_error(
    check_mhcnuggets_options(
      create_test_mhcnuggets_options(
        mhc_class = "I",
        mhc = get_trained_mhc_2_haplotypes()[1]
      )
    ),
    "Must use the same 'mhc_class' as the 'mhc' is from"
  )
  expect_error(
    check_mhcnuggets_options(
      create_test_mhcnuggets_options(
        mhc_class = "II",
        mhc = get_trained_mhc_1_haplotypes()[1]
      )
    ),
    "Must use the same 'mhc_class' as the 'mhc' is from"
  )
})
richelbilderbeek/mhcnuggetsr documentation built on Nov. 9, 2023, 10 p.m.