context('encodefrom')
## -----------------------------------------------------------------------------
## PRELIM
## -----------------------------------------------------------------------------
## set up data
df <- tibble::tibble(state = c('Texas','Louisiana','Massachusetts',
'Florida','Oregon','Montana',
'Washington','Arkansas','Tennessee',
'Mississippi','Utah','Alabama',
'Kentucky','Maine','Michigan',
'California','Illinois','Delaware',
'Idaho','North Carolina','Nebraska',
'Maryland','Virginia','Pennsylvania',
'Rhode Island','South Carolina','Iowa',
'New Hampshire','Kansas','Nevada',
'South Dakota','Colorado','Arizona',
'Alaska','New York','Oklahoma',
'Wisconsin','Wyoming','Connecticut',
'Missouri','Minnesota','Ohio',
'Georgia','New Jersey','Vermont',
'District of Columbia','North Dakota',
'New Mexico','West Virginia','Indiana',
'Hawaii'),
y = seq(1:51))
crosswalk_file <- system.file('extdata', 'stcrosswalk.rda',
package = 'crosswalkr')
## encode vector
vec <- encodefrom(df, state, crosswalk_file, stname, stfips, stabbr)
## -----------------------------------------------------------------------------
## TESTS
## -----------------------------------------------------------------------------
test_that('Not proper labelled class', {
## skip until new haven is out
## skip_on_cran()
## skip_on_travis()
expect_is(vec, 'haven_labelled')
})
test_that('Failed to properly label vector', {
lab_names <- c('AL','AK','AZ','AR','CA','CO','CT','DE','DC','FL','GA','HI',
'ID','IL','IN','IA','KS','KY','LA','ME','MD','MA','MI','MN',
'MS','MO','MT','NE','NV','NH','NJ','NM','NY','NC','ND','OH',
'OK','OR','PA','RI','SC','SD','TN','TX','UT','VT','VA','WA',
'WV','WI','WY')
lab_vals <- c(1:2,4:6,8:13,15:42,44:51,53:56)
names(lab_vals) <- lab_names
expect_equal(names(attr(vec, 'labels', exact = TRUE)), lab_names)
expect_equal(attr(vec, 'labels', exact = TRUE), lab_vals)
})
test_that('Failed to assign proper values', {
act_vals <- c(48L,22L,25L,12L,41L,30L,53L,5L,47L,28L,49L,1L,
21L,23L,26L,6L,17L,10L,16L,37L,31L,24L,51L,42L,
44L,45L,19L,33L,20L,32L,46L,8L,4L,2L,36L,40L,
55L,56L,9L,29L,27L,39L,13L,34L,50L,11L,38L,35L,
54L,18L,15L)
expect_equal(haven::zap_labels(vec), act_vals)
})
## encode vector (factor)
vec <- encodefrom(df, state, crosswalk_file, stname, stfips,
stabbr, ignore_tibble = TRUE)
test_that('Not proper factor class', {
expect_is(vec, 'factor')
})
test_that('Failed to properly label factor', {
lab_names <- c('AL','AK','AZ','AR','CA','CO','CT','DE','DC','FL','GA','HI',
'ID','IL','IN','IA','KS','KY','LA','ME','MD','MA','MI','MN',
'MS','MO','MT','NE','NV','NH','NJ','NM','NY','NC','ND','OH',
'OK','OR','PA','RI','SC','SD','TN','TX','UT','VT','VA','WA',
'WV','WI','WY')
lab_vals <- as.character(c(1:2,4:6,8:13,15:42,44:51,53:56))
names(lab_vals) <- lab_names
expect_equal(levels(vec), lab_names)
expect_equal(labels(vec), as.character(1:51))
})
test_that('Failed to assign proper values', {
act_vals <- c('TX','LA','MA','FL','OR','MT','WA','AR','TN','MS','UT',
'AL','KY','ME','MI','CA','IL','DE','ID','NC','NE','MD',
'VA','PA','RI','SC','IA','NH','KS','NV','SD','CO','AZ',
'AK','NY','OK','WI','WY','CT','MO','MN','OH','GA','NJ',
'VT','DC','ND','NM','WV','IN','HI')
expect_equal(as.character(vec), act_vals)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.