tests/testthat/test-chr_numeric.R

library (surveyreader)
library(testthat)
context("Converting numeric values in character vectors to numeric values.")

test_that("correct numeric conversion takes place", {
  expect_equal(
    sum ( chr_numeric(column = as.character (c(1982, 1990, 2019,
                                               "missing", NA, 1678)),
                      validate_min  = 1900, validate_max = 2017,
                      na_id = "missing",
                      is_integer = FALSE ), na.rm = TRUE),
    3972
  )
  expect_equal(
    sum(is.na(chr_numeric(column = as.character (c(1982, 1990, 2019,
                                                   "missing", NA, 1678)),
                          validate_min  = 1900, validate_max = 2017,
                          na_id = "missing",
                          is_integer = FALSE ))),
    4
  )
  expect_equal(sum(chr_numeric(column = as.character (c("1 - egyet", "11 - tizenegyet",
                                                    "missing", "2")),
                           validate_min  = NA, validate_max = 12,
                           digits = 2,
                           na_id = "missing",
                           is_integer = FALSE ), na.rm = TRUE),
    14
  )
})

test_that("regex filters", {
  expect_equal(
    sum ( chr_numeric(column = as.character (c("1.1", "1.9", "11,000",
                                               "missing")),
                      validate_min  = 1.5, validate_max = NA,
                      na_id = "missing", decimals = "point",
                      is_integer = FALSE ), na.rm = TRUE),
    11001.9
  )
  expect_equal(
    sum(chr_numeric(column = as.character (c("1.1", "1,9", "11.000",
                                             "missing")),
                    validate_min  = NA, validate_max = NA,
                    na_id = "missing", decimals = "comma",
                    is_integer = FALSE ), na.rm = TRUE),
    11012.9)
})

test_that("digits work", {
  expect_equal(
    sum ( chr_numeric(column = as.character (c("1.1", "1.9", "11,000",
                                               "missing")),
                      validate_min  = 1.5, validate_max = NA,
                      digits = 3,
                      na_id = "missing", decimals = "point",
                      is_integer = FALSE ), na.rm = TRUE),
    12.9
  )
  expect_equal(
    sum ( chr_numeric(column <- c("1 - egyet", "11 - tizenegyet",
                                  "missing", "2.5"),
                      validate_min  = 1.5, validate_max = NA,
                      digits = 3,
                      na_id = "missing", decimals = "point",
                      is_integer = FALSE ), na.rm = TRUE),
    13.5
  )
})
antaldaniel/surveyreader documentation built on May 16, 2019, 2:29 a.m.