tests/testthat/test_tobool.R

test_that( "works as expected", {
  
  x = c( 'TRUE', 'FALSE', '0', NA, 'not a boolean', 'NA' )
  
  expect_equal( tobool( x, verbose = FALSE ), x )
  
  expect_warning( asbool <- tobool( x, ifna = 'warning' ), 'NAs were created' )
  expect_equal( asbool, c( TRUE, FALSE, FALSE, NA, NA, NA ) )
  
  expect_error( asbool <- tobool( x, ifna = 'error' ),  'NAs were created' )
  
  # test true and false.
  idt = dplyr::mutate(iris, binaryExample = ifelse(Species=="versicolor", "F", "M"))
  expect_equal(
      unique(tobool(idt$binaryExample, true.vals = "F", false.vals = "M")),
      c(FALSE, TRUE)
  )

# test all-true (this has failed in the past)
idt = iris
idt$newSpecies = toupper(idt$Species)
expect_equal(
    unique(tobool(idt$newSpecies, true.vals = unique(idt$newSpecies))),
    TRUE
)

})
oliver-wyman-actuarial/easyR documentation built on Jan. 27, 2024, 4:35 a.m.