tests/testthat/test-white_blau.R

context('white_blau')

# ------------------- #
# white_blau testthat #
# ------------------- #

test_that('white_blau throws error with invalid arguments', {
  # Unavailable geography
  expect_error(
    white_blau(
      geo_small = 'zcta',
      state = 'DC',
      year = 2020,
      subgroup = 'NHoLB',
      subgroup_ref = 'NHoLW',
      quiet = TRUE
    )
  )
  expect_error(
    white_blau(
      geo_large = 'block group',
      state = 'DC',
      year = 2020,
      subgroup = 'NHoLB',
      subgroup_ref = 'NHoLW',
      quiet = TRUE
    )
  )
  
  # Unavailable year
  expect_error(
    white_blau(
      state = 'DC',
      year = 2005,
      subgroup = 'NHoLB',
      subgroup_ref = 'NHoLW',
      quiet = TRUE
    )
  )
  
  # Unavailable subgroup
  expect_error(
    white_blau(
      state = 'DC',
      year = 2020,
      subgroup = 'terran',
      subgroup_ref = 'NHoLW',
      quiet = TRUE
    )
  )
  expect_error(
    white_blau(
      state = 'DC',
      year = 2020,
      subgroup = 'NHoLB',
      subgroup_ref = 'terran',
      quiet = TRUE
    )
  )
  
  skip_if(Sys.getenv('CENSUS_API_KEY') == '')
  
  # Incorrect state
  expect_error(
    white_blau(
      state = 'AB',
      year = 2020,
      subgroup = 'NHoLB',
      subgroup_ref = 'NHoLW',
      quiet = TRUE
    )
  )
  
})

test_that('white_blau works', {
  skip_if(Sys.getenv('CENSUS_API_KEY') == '')
  
  expect_silent(
    white_blau(
      state = 'DC',
      year = 2020,
      subgroup = c('NHoLB', 'HoLB'),
      subgroup_ref = c('NHoLW', 'HoLW')
    )
  )
  
  expect_silent(
    white_blau(
      state = 'DC',
      year = 2020,
      subgroup = 'NHoLB',
      subgroup_ref = 'NHoLW',
      quiet = TRUE
    )
  )
  
  expect_silent(
    white_blau(
      state = 'DC',
      year = 2020,
      subgroup = c('NHoLB', 'HoLB'),
      subgroup_ref = c('NHoLW', 'HoLW'),
      quiet = TRUE
    )
  )
  
})

Try the ndi package in your browser

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

ndi documentation built on Sept. 9, 2025, 5:26 p.m.