tests/testthat/test-targets.R

# library(testthat); library(remakeGenerator);
context("targets")
source("utils.R")

test_that("Function targets() is correct.", {
  d1 = example_datasets()
  d1$depends = c("u, v", "w, x, y, z")
  d2 = example_analyses()

  ld1 = list(
    all = list(depends = list("datasets")),
    datasets = list(depends = list("data1", "data2")),
    data1 = list(
      command = "df1(n = 10)",
      check = TRUE,
      depends = list("u", "v")
    ),
    data2 = list(
      command = "df2(n = 20)",
      check = FALSE,
      depends = list("w", "x", "y", "z")
    )
  )

  ld2 = list(
    all = list(depends = list("analyses")),
    analyses = list(depends = list("analysis1", "analysis2")),
    analysis1 = list(command = "analyze1(..dataset..)"),
    analysis2 = list(command = "analyze2(..dataset..)")
  )

  ld3 = list(
    all = list(depends = list("datasets", "analyses")),
    datasets = list(depends = list("data1", "data2")),
    analyses = list(depends = list("analysis1", "analysis2")),
    data1 = list(
      command = "df1(n = 10)",
      check = TRUE,
      depends = list("u", "v")
    ),
    data2 = list(
      command = "df2(n = 20)",
      check = FALSE,
      depends = list("w", "x", "y", "z")
    ),
    analysis1 = list(command = "analyze1(..dataset..)"),
    analysis2 = list(command = "analyze2(..dataset..)")
  )

  expect_equal(targets(), NULL)
  expect_error(targets(d1))
  expect_error(targets(datasets = d1, analyses = d1))
  expect_equal(targets(datasets = d1), ld1)
  expect_equal(targets(analyses = d2), ld2)
  expect_equal(targets(datasets = d1, analyses = d2), ld3)
  
  
  d1$target = rep("data", 2)
  expect_error(targets(k = d1))
  expect_error(targets(analysis1 = d2))
  for(x in c("all", "clean", "target_name")){
    d1$target[1] = x
    expect_error(targets(mystuff = d1))
  }
})
wlandau/remakeGenerator documentation built on May 4, 2019, 8:44 a.m.