tests/testthat/test-timeIdToDate.R

context("timeIdToDate")

suppressPackageStartupMessages(require(lubridate))

describe("timeIdToDate", {
  
  opts <- list(
    start = as.POSIXlt("2017-01-01", tz = "UTC"), 
    firstWeekday = "Monday"
  )
  
  it ("works for hourly time step", {
    res <- timeIdToDate(1:(365*24), "hourly", opts)
    expect_is(res, "POSIXt")
    expect_equal(as.Date(res[1]), as.Date("2017-01-01"))
    expect_equal(hour(res[1]), 0)
    expect_equal(minute(res[1]), 0)
    expect_equal(as.Date(res[365*24]), as.Date("2017-12-31"))
    expect_equal(hour(res[365*24]), 23)
    expect_equal(minute(res[365*24]), 0)
  })
  
  it("works for daily time step", {
    res <- timeIdToDate(1:365, "daily", opts)
    expect_is(res, "Date")
    expect_equal(res[1], as.Date("2017-01-01"))
    expect_equal(res[365], as.Date("2017-12-31"))
  })
  
  it("works for weekly time step", {
    res <- timeIdToDate(1:53, "weekly", opts)
    expect_is(res, "Date")
    expect_equal(res[1], as.Date("2016-12-26"))
    expect_equal(res[2], as.Date("2017-01-02"))
    expect_equal(res[53], as.Date("2017-12-25"))
    
    opts <- list(
      start = as.POSIXlt("2017-01-01", tz = "UTC"), 
      firstWeekday = "Tuesday"
    )
    res <- timeIdToDate(1:53, "weekly", opts)
    expect_is(res, "Date")
    expect_equal(res[1], as.Date("2016-12-27"))
    expect_equal(res[2], as.Date("2017-01-03"))
    expect_equal(res[53], as.Date("2017-12-26"))
  })
  
  it("works for monthly time step", {
    res <- timeIdToDate(1:12, "monthly", opts)
    expect_is(res, "Date")
    expect_equal(res[1], as.Date("2017-01-01"))
    expect_equal(res[12], as.Date("2017-12-01"))
  })
  
  it("works for annual", {
    res <- timeIdToDate(1, "annual", opts)
    expect_is(res, "Date")
    expect_equal(res[1], as.Date("2017-01-01"))
  })
})
rte-antares-rpackage/antaresDev documentation built on May 17, 2019, 5:53 p.m.