tests/testthat/test-klassR.R

# Tests for functions imported from klassR
klassdata <- klassR::klassdata

#### GetKlass ####
test_that("GetKlass returns a classification", {
  class_data <- GetKlass(klass = 131, date = "2015-01-01")
  expect_equal(class_data$code[1], "0101")
})


test_that("GetKlass returns a classification with Norwegian letters", {
  class_data <- GetKlass(klass = 131, date = "2015-01-01")
  expect_equal(class_data$name[8], "Rømskog")
})


test_that("GetKlass returns a correspondence table", {
  class_data <- GetKlass(klass = 104, correspond = 131,
                         date = "2015-01-01")
  expect_equal(class_data$sourceCode[1], "01")
})


test_that("GetKlass returns a correspondence table in both directions", {
  class_data1 <- GetKlass(klass = 104, correspond = 131,
                          date = "2020-02-01")
  class_data2 <- GetKlass(klass = 131, correspond = 104,
                          date = "2020-02-01")  
  expect_equal(class_data1$sourceCode[1], "03")
  expect_equal(class_data2$sourceCode[1], "0301")
})


# test_that("GetKlass returns a valid variant", {
#   variant_data <- GetKlass(klass = 6, variant = 1616, date = "2021-01-02")
#   expect_equal(variant_data$name[2], '01-03 Jordbruk, skogbruk og fiske')
# })


#### Apply KLass ####
test_that("ApplyKlass returns correct names for numeric codes", {
  kommune_names <- ApplyKlass(klassdata$kommune, 
                              klass = 131, date = "2015-01-01")
  expect_equal(kommune_names[1], "Sandefjord")
})


test_that("ApplyKlass returns correct names for character codes", {
  sektor_names <- ApplyKlass(c("INNL", "UTL", "B_FIN"), 
                             klass = 39, date = "2019-01-01")
  expect_equal(sektor_names[2], "Utlandet")
})


test_that("ApplyKlass returns correct language", {
  occ <- ApplyKlass(klassdata$occupation, 
                    klass = 7, 
                    language = "en",
                    date = "2015-01-01", format = F)
  expect_equal(occ[1], "Bartenders")
  occ <- ApplyKlass(klassdata$occupation, 
                    klass = 7, 
                    language = "nb",
                    date = "2015-01-01", format = F)
  expect_equal(occ[4], "Elektronikkingeniører")
})


test_that("ApplyKlass returns correctly for character codes",{
  sektor <- c("INNL", "UTL")
  sektor_apply <- ApplyKlass(sektor, 39, date = "2020-01-01")
  expect_equal(sektor_apply[2], "Utlandet")
})


# In klassR 0.1.8 which is not on CRAN yet!
# test_that("ApplyKlass can return a variant classification",{
#   dat <- c('000','101','102','103')
#   new <- ApplyKlass(dat,
#                     klass = 91,
#                     variant = 847,
#                     output_level = 1,
#                     output = "code",
#                     date = "2020-01-01")
#   expect_equal(new[1], "0")
#   new <- ApplyKlass(dat,
#                     klass = 91,
#                     variant = 847,
#                     output_level = 1,
#                     date = "2020-01-01")
#   expect_equal(new[2], "EU/EØS, USA, Canada, Australia og New Zealand")
# })
# 
# test_that("ApplyKlass works for variant classification with Norwegian characters in the variant name",{
#   dat <- c("05", "01")
#   new <- ApplyKlass(dat,
#                     klass = 6,
#                     variant = 1616,
#                     output_level = 1,
#                     output = "name",
#                     date = "2020-01-01")
#   expect_equal(new[1], "05-09 Bergverksdrift og utvinning")
# })
statisticsnorway/metodebibliotek_testing documentation built on Jan. 21, 2022, 9:24 p.m.