tests/testthat/test-metadata.R

base_path <- "c:/packages/defineR/tests/testthat"
data_dir <- base_path

base_path <- tempdir()
data_dir <- "."

dev <- FALSE

test_that("metadata1: Import sdtm metadata xls works as expected.", {

  fp <- file.path(data_dir, "data/SDTM_METADATA.xls")

  res <- import_metadata(fp)


  res

  expect_equal(length(res), 9)


})


test_that("metadata2: Import sdtm metadata xlsx works as expected.", {

  fp <- file.path(data_dir, "data/SDTM_METADATA2.xlsx")

  res <- import_metadata(fp)


  res

  expect_equal(length(res), 9)


})


test_that("metadata3: Import adam metadata works as expected.", {

  fp <- file.path(data_dir, "data/ADAM_METADATA.xlsx")

  res <- import_metadata(fp)


  res

  expect_equal(length(res), 10)


})


test_that("metadata4: Import sdtm robustness metadata works as expected.", {

  fp <- file.path(data_dir, "data/SDTM_METADATA_robustness.xls")

  res <- import_metadata(fp)


  res

  expect_equal(length(res), 9)


})


test_that("metadata5: Parameter checks work.", {

  fp <- file.path(data_dir, "data/SDTM_METADATA_robustmess.xls")

  expect_error(import_metadata(fp, "DB2"))
  expect_error(import_metadata(fp))


  fp <- file.path(data_dir, "xsl/define2-0-0.xsl")

  expect_error(import_metadata(fp))


})


test_that("metadata6: Templates can be created.", {

  dp1 <- file.path(base_path, "metadata/template")
  dp2 <- file.path(base_path, "metadata/demo")


  fp1 <- file.path(dp1, "SDTM_METADATA.xlsx")
  fp2 <- file.path(dp2, "SDTM_METADATA.xlsx")
  fp3 <- file.path(dp2, "SDTM_METADATA(1).xlsx")
  fp4 <- file.path(dp2, "SDTM_METADATA(2).xlsx")

  if (file.exists(fp1))
    file.remove(fp1)

  if (file.exists(fp2))
    file.remove(fp2)

  if (file.exists(fp3))
    file.remove(fp3)

  if (file.exists(fp4))
    file.remove(fp4)

  res <- write_metadata(dp1)

  expect_equal(is.null(res), FALSE)
  expect_equal(file.exists(fp1), TRUE)
  expect_equal(file.exists(res), TRUE)


  res <- write_metadata(dp2, demo = TRUE)

  expect_equal(file.exists(fp2), TRUE)
  expect_equal(file.exists(res), TRUE)


  res <- write_metadata(dp2, demo = TRUE)

  expect_equal(file.exists(fp3), TRUE)
  expect_equal(file.exists(res), TRUE)

  res <- write_metadata(dp2, demo = TRUE)

  expect_equal(file.exists(fp4), TRUE)
  expect_equal(file.exists(res), TRUE)


})

test_that("metadata7: ADAM Templates can be created.", {

  dp1 <- file.path(base_path, "metadata/template")
  dp2 <- file.path(base_path, "metadata/demo")


  fp1 <- file.path(dp1, "ADAM_METADATA.xlsx")
  fp2 <- file.path(dp2, "ADAM_METADATA.xlsx")
  fp3 <- file.path(dp2, "ADAM_METADATA(1).xlsx")
  fp4 <- file.path(dp2, "ADAM_METADATA(2).xlsx")

  if (file.exists(fp1))
    file.remove(fp1)

  if (file.exists(fp2))
    file.remove(fp2)

  if (file.exists(fp3))
    file.remove(fp3)

  if (file.exists(fp4))
    file.remove(fp4)

  res <- write_metadata(dp1, type = "adam")

  expect_equal(is.null(res), FALSE)
  expect_equal(file.exists(fp1), TRUE)
  expect_equal(file.exists(res), TRUE)


  res <- write_metadata(dp2, demo = TRUE, type = "adam")

  expect_equal(file.exists(fp2), TRUE)
  expect_equal(file.exists(res), TRUE)


  res <- write_metadata(dp2, demo = TRUE, type = "adam")

  expect_equal(file.exists(fp3), TRUE)
  expect_equal(file.exists(res), TRUE)

  res <- write_metadata(dp2, demo = TRUE, type = "adam")

  expect_equal(file.exists(fp4), TRUE)
  expect_equal(file.exists(res), TRUE)


})

test_that("metadata8: Parameter checks work.", {

  fp <- file.path(base_path, "metadata/template")

  expect_error(write_metadata(fp, ver = "2.1"))
  expect_error(write_metadata(fp, type = "fork"))
  expect_error(write_metadata(fp, type = NULL))

})



test_that("metadata9: prepare_toc() works as expected.", {

  library(libr)

  dict <- dictionary(mtcars)

  res <- prepare_toc(dict)

  res

  expect_equal(nrow(res), 1)
  expect_equal(ncol(res), 2)

})



test_that("metadata10: prepare_variable_metadata() works as expected.", {

  library(libr)

  dict <- dictionary(mtcars)

  res <- prepare_variable_metadata(dict)

  res

  expect_equal(nrow(res), 11)
  expect_equal(ncol(res) > 2, TRUE)

})



test_that("metadata11: generate_template works as expected for ADAM.", {

  sp <- file.path(data_dir, "xpt")
  op <- file.path(base_path, "xlsx")

  fp <- file.path(op, "ADAM_METADATA.xlsx")


  if (file.exists(fp))
    file.remove(fp)

  res <- generate_template(op, "adam", "2.0.0", sp, TRUE)


  expect_equal(file.exists(fp), TRUE)
  expect_equal(file.exists(res), TRUE)

})


test_that("metadata12: generate_template works as expected for SDTM", {

  sp <- file.path(data_dir, "xpt")
  op <- file.path(base_path, "xlsx")

  fp <- file.path(op, "SDTM_METADATA.xlsx")


  if (file.exists(fp))
    file.remove(fp)

  res <- generate_template(op, "sdtm", "2.0.0", sp, TRUE)


  expect_equal(file.exists(fp), TRUE)
  expect_equal(file.exists(res), TRUE)

})


test_that("metadata13: write_metadata() works as expected for ADAM.", {

  sp <- file.path(data_dir, "xpt")
  op <- file.path(base_path, "xlsx")

  fp <- file.path(op, "ADAM_METADATA.xlsx")

  if (file.exists(fp))
    file.remove(fp)

  res <- write_metadata(op, "adam", "2.0.0", sp, TRUE)


  expect_equal(file.exists(fp), TRUE)
  expect_equal(file.exists(res), TRUE)

})


test_that("metadata14: write_metadata() works as expected for SDTM", {

  sp <- file.path(data_dir, "xpt")
  op <- file.path(base_path, "xlsx")

  fp <- file.path(op, "SDTM_METADATA.xlsx")


  if (file.exists(fp))
    file.remove(fp)

  res <- write_metadata(op, "sdtm", "2.0.0", sp, TRUE)


  expect_equal(file.exists(fp), TRUE)
  expect_equal(file.exists(res), TRUE)

})

Try the defineR package in your browser

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

defineR documentation built on Sept. 20, 2022, 9:08 a.m.