tests/testthat/test-read_awe.R

test_that("tidy_awe() returns tidied data frame", {

  awe <- readxl::read_excel(file.path("..", "testdata", "6302002.xls"),
                            sheet = "Data1")

  awe <- tidy_abs(awe)

  tidied_awe <- tidy_awe(awe)

  expect_is(tidied_awe, "data.frame")
  expect_equal(nrow(tidied_awe), 927)
  expect_true(all(
    c("date", "sex", "wage_measure", "value") %in% names(tidied_awe)
                   ))
  expect_false(any(is.na(tidied_awe$value)))
})

test_that("read_awe() returns expected output", {
  skip_if_offline()
  skip_on_cran()

  no_params <- read_awe()

  expect_is(no_params, "tbl_df")
  expect_identical(unique(no_params$sex), "persons")
  expect_identical(unique(no_params$wage_measure), "awote")
  expect_identical(min(no_params$date), as.Date("1983-11-15"))
  expect_gt(max(no_params$date), as.Date("2020-05-14"))
  expect_is(no_params$value, "numeric")
  expect_gt(max(no_params$value, na.rm = T) /
              min(no_params$value, na.rm = T),
            4.5)

  params_df <- expand.grid(sex = c("persons", "males", "females"),
              wage_measure = c("awote", "ftawe", "awe"),
              sector = c("total", "private", "public"),
              state = c("all",
                        "nsw",
                        "vic",
                        "qld",
                        "sa",
                        "wa",
                        "tas",
                        "nt",
                        "act"),
              stringsAsFactors = FALSE)

  params_df <- params_df %>%
    dplyr::filter(sector == "total" | state == "all")


  for (i in seq_len(nrow(params_df))) {

    awe_data <- read_awe(wage_measure = params_df$wage_measure[i],
             sex = params_df$sex[i],
             sector = params_df$sector[i],
             state = params_df$state[i])

    expect_is(awe_data, "tbl_df")

    expect_gt(length(awe_data), 3)

    if (params_df$sector[i] != "total") {
      expect_length(unique(awe_data$sector), 1)
      expect_true(unique(awe_data$sector) != "total")
      expect_true(unique(awe_data$sector) == params_df$sector[i])
      expect_length(awe_data, 5)
      expect_true("sector" %in% names(awe_data))
    }

    if (params_df$state[i] != "all") {
      expect_length(unique(awe_data$state), 1)
      expect_true(unique(awe_data$state) != "all")
      expect_true(unique(awe_data$state) == params_df$state[i])
      expect_length(awe_data, 5)
      expect_true("state" %in% names(awe_data))
    }

  }



  expect_gt(nrow(read_awe()), nrow(read_awe(na.rm = TRUE)))
})

Try the readabs package in your browser

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

readabs documentation built on Dec. 17, 2021, 1:07 a.m.