tests/testthat/test_awote.R

context("AWOTE")

test_that("Error handling", {
  expect_error(awote(isMale = "yes"))
  expect_error(awote(isAdult = "yes"))
  expect_error(awote(isOrdinary = "yes"))
  expect_error(awote(isAdult = NA))
  expect_error(awote(isOrdinary = NA))
})

test_that("Message", {
  expect_message(awote(), 
                 regexp = "both NULL so using")
})

test_that("AWOTE fy", {
  library(data.table)
  expect_true(between(awote(Date = fy2date("2013-14")),
                      awote(fy.year = "2012-13"),
                      awote(fy.year = "2014-15")))
  expect_equal(awote_fy("2014-15", isMale = NA, isAdult = TRUE, isOrdinary = TRUE),
               awote(fy.year = "2014-15"))
})

test_that("AWOTE unsorted, issue #204", {
  ufys <- yr2fy(2015:2014)
  # Reversing inputs same as referring outputs
  expect_equal(awote(fy.year = rev(ufys)),
               rev(awote(fy.year = ufys)))
  
  udates <- paste0(2015:2014, "-01-01")
  expect_equal(awote(Date = rev(udates)),
               rev(awote(Date = udates)))
  
  withr::with_seed(602, {
    library(data.table)
    # Create a combination of inputs, randomly order them
    # and ensure the collected inputs match the inputs alone
    
    DT <- CJ(fy.year = yr2fy(2013:2015),
             isMale = c(NA, TRUE, FALSE),
             isAdult = c(TRUE, FALSE), 
             isOrdinary = c(TRUE, FALSE))
    DT[, awote_ordered := awote(fy.year = fy.year, 
                                isMale = isMale,
                                isAdult = isAdult,
                                isOrdinary = isOrdinary)]
    myorder <- sample(1:nrow(DT))
    DT2 <- DT[myorder]
    DT2[, this_awote := awote(fy.year = fy.year, 
                              isMale = isMale, 
                              isAdult = isAdult,
                              isOrdinary = isOrdinary)]
    first_awote <- awote(fy.year = .subset2(DT2, "fy.year")[1],
                         isMale = .subset2(DT2, "isMale")[1],
                         isAdult = .subset2(DT2, "isAdult")[1],
                         isOrdinary = .subset2(DT2, "isOrdinary")[1])
    expect_equal(first_awote, DT2[["this_awote"]][1])
    expect_equal(.subset2(DT2, "this_awote"),
                 .subset2(DT2, "awote_ordered"))
  })
  
  
})

Try the grattan package in your browser

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

grattan documentation built on Sept. 4, 2023, 5:08 p.m.