tests/testthat/test-changeTimeStep.R

#Copyright © 2016 RTE Réseau de transport d’électricité

context("Function changeTimeStep")
sapply(studyPathS, function(studyPath){
  

opts <- setSimulationPath(studyPath)

areas <- readAntares(select = "LOAD", showProgress = FALSE, mcYears = "all")
areas$day <- areas$month <- areas$hour <- NULL

for (timeStep in c("daily", "weekly", "monthly", "annual")) {
  
  test_that(sprintf("changeTimeStep aggregates hourly data at %s timestep", timeStep), {
    
    calc <- suppressWarnings(changeTimeStep(areas, timeStep, "hourly", opts = opts))
    read <- readAntares(select = "LOAD", timeStep = timeStep, showProgress = FALSE, mcYears = "all")
    
    tmp <- merge(calc, read[, .(area, timeId, mcYear, read = LOAD)], by = c("area", "timeId", "mcYear"))
    
    expect_true(tmp[, all(read - LOAD == 0)])
    
  })
  
}

test_that("changeTimeStep keeps attributes", {
  areasD <- changeTimeStep(areas, "hourly", opts = opts)
  expect_equal(attr(areasD, "timeStep"), "hourly")
  expect_equal(attr(areasD, "synthesis"), attr(areas, "synthesis"))
  expect_equal(attr(areasD, "type"), attr(areas, "type"))
})

test_that("Aggregating desaggregated data should give the initial values.", {
  areasD <- readAntares(select = "LOAD", showProgress = FALSE, mcYears = "all", timeStep = "daily")
  areasH <- changeTimeStep(areasD, "hourly")
  areasD2 <- suppressWarnings(changeTimeStep(areasH, "daily"))
  setorder(areasD, timeId, area, mcYear)
  setorder(areasD2, timeId, area, mcYear)
  expect_equal(areasD, areasD2)
})

test_that("changeTimeStep works on antaresData objects", {
  mydata <- readAntares("all", "all", mcYears = "all", showProgress = FALSE)
  mydataAgg <- suppressWarnings(changeTimeStep(mydata, "daily"))
  expect_equal(attr(mydataAgg, "timeStep"), "daily")
  expect_equal(attr(mydataAgg$areas, "timeStep"), "daily")
  expect_equal(attr(mydataAgg$links, "timeStep"), "daily")
})

})

Try the antaresRead package in your browser

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

antaresRead documentation built on Aug. 31, 2023, 1:09 a.m.