tests/testthat/test-data.R

context("Data management")

dir <- tempdir()
setwd(dir)

if (dir.exists("project-test")) unlink("project-test", recursive = TRUE)
dir.create("project-test")
setwd("project-test")

prInit()

test_that("One can save and load objects", {
  x <- rnorm(100)
  y <- x
  prSave("x")
  expect_true(file.exists("data/x.rda"))
  rm(x)
  expect_output(prLoad("x"), "Numeric vector 'x' has been loaded")
  expect_true(exists("x"))
  expect_equivalent(x, y)
})

test_that("One can save and load objects in subdirectories", {
  x2 <- rnorm(100)
  y <- x2
  prSave("dir2/x2")
  expect_true(file.exists("data/dir2/x2.rda"))
  rm(x2)
  expect_output(prLoad("dir2/x2"), "Numeric vector 'x2' has been loaded")
  expect_true(exists("x2"))
  expect_equivalent(x2, y)

  x3 <- rnorm(100)
  y <- x3
  prSave("x3", subdir = "dir3")
  expect_true(file.exists("data/dir3/x3.rda"))
  rm(x3)
  expect_output(prLoad("x3", subdir = "dir3"), "Numeric vector 'x3' has been loaded")
  expect_true(exists("x3"))
  expect_equivalent(x3, y)
})

test_that("One can move data files", {
  x4 <- rnorm(100)
  prSave("x4")
  prMoveData("x4", "dir4")

  expect_false(file.exists("data/x4.rda"))
  expect_true(file.exists("data/dir4/x4.rda"))
})

test_that("One can delete data files", {
  x5 <- rnorm(100)
  prSave("x5")

  prDeleteData("x5")

  expect_false(file.exists("data/x5.rda"))
})

test_that("One cannot overwrite a data file", {
  x6 <- rnorm(100)
  prSave("x6")
  prSave("dir6/x6")

  expect_error(prSave("x6"))
  expect_error(prMoveData("x6", "dir6"))
})

test_that("prSave and prLoad work in other directories", {
  setwd("..")

  x7 <- rnorm(100)
  y <- x7
  prSave("x7")
  expect_true(file.exists("project-test/data/x7.rda"))
  rm(x7)
  expect_output(prLoad("x7"), "Numeric vector 'x7' has been loaded")
  expect_true(exists("x7"))
  expect_equivalent(x7, y)
})

test_that("Quotes are optional in prSave and prLoad", {
  x8 <- rnorm(100)
  y <- x8
  prSave(x8)
  expect_true(file.exists("project-test/data/x8.rda"))
  rm(x8)
  expect_output(prLoad(x8), "Numeric vector 'x8' has been loaded")
  expect_true(exists("x8"))
  expect_equivalent(x8, y)
})
cuche27/project documentation built on May 14, 2019, 12:50 p.m.