diff --git a/tests/testthat/test-exchangesStack.R b/tests/testthat/test-exchangesStack.R
index f1cc108..95c8ad8 100644
--- a/tests/testthat/test-exchangesStack.R
+++ b/tests/testthat/test-exchangesStack.R
@@ -1,953 +1,953 @@
-# context("exchangesStack")
-#
-# test_that("no interactive", {
-#
-# mydata <- readAntares(links = "all", timeStep = "daily", showProgress = FALSE)
-# # default parameters
-# default_params <- exchangesStack(mydata, interactive = FALSE)
-# expect_is(default_params, "htmlwidget")
-# # TO DO : passer les arguments
-# # passer plusieurs data
-# # .compare
-# # suivant les cas :
-# # - tester les retours d'erreurs
-# })
-#
-# test_that("exchangesStack, no interactive", {
-# dta <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-# testClass <- function(obj){
-# class(obj)[1] == "combineWidgets"
-# }
-# listArgs <- list(noarg = list(x = dta, interactive = FALSE, areas = "a"),
-# allAreas = list(x = dta, interactive = FALSE, areas = "all"),
-# main = list(x = dta, interactive = FALSE, areas = "all", main = "Title"),
-# ylab = list(x = dta, interactive = FALSE, areas = "all", main = "Title", ylab = "Subt")
-# )
-# lapply(listArgs, function(X){
-# re1 <- do.call(exchangesStack, X)
-# expect_true(testClass(re1))
-# })
-#
-# })
-#
-# test_that("exchangesStack, no interactive return error", {
-# dta <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-# expect_error(exchangesStack(dta, interactive = FALSE, compare = "areas"))
-# })
-#
-# test_that("exchangesStack, no interactive, x and refStudy are antaresDataTable", {
-# myData1 <- readAntares(links = "all", showProgress = FALSE)
-# myData2 <- readAntares(links = "all", showProgress = FALSE)
-# myArea <- "a"
-# DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
-# exS1 <- exchangesStack(x = myData1, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# dataExS1 <- .get_data_from_htmlwidget(exS1)
-# timeEditValue <- "2018-04-25T00:00:00.000Z"
-# indexHour <- grep(timeEditValue, dataExS1$hour)
-# expect_gt(indexHour, 2)
-# expect_equal(dataExS1$nega_offshore[indexHour], 9)
-# #identical myData, diff == 0 always
-# exS21V0 <- exchangesStack(x = myData1, refStudy = myData2, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# dataExS21V0 <- .get_data_from_htmlwidget(exS21V0)
-# expect_equal(dataExS21V0$nega_offshore[indexHour], 0)
-# # edit myData2 to have a diff != 0
-# #pb timeZone local (PC, Travis, etc)
-# for (i in 0:5){
-# timeEditShift <- lubridate::hours(i)
-# timeEditMinus <- as.Date(timeEditValue) - timeEditShift
-# timeEditPlus <- as.Date(timeEditValue) + timeEditShift
-# myData2[ (time == timeEditMinus | time == timeEditPlus) & link == "a - a_offshore", `FLOW LIN.` := as.integer(`FLOW LIN.` + 2500)]
-# }
-# exS21V1 <- exchangesStack(x = myData1, refStudy = myData2, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# dataExS21V1 <- .get_data_from_htmlwidget(exS21V1)
-# expect_equal(dataExS21V1$nega_offshore[indexHour], 2500)
-# })
-#
-# test_that("exchangesStack, no interactive, x and refStudy are antaresDataList", {
-# myData1 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-# myData2 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-# myArea <- "a"
-# DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
-# exS1 <- exchangesStack(x = myData1, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# dataExS1 <- .get_data_from_htmlwidget(exS1)
-# timeEditValue <- "2018-04-25T00:00:00.000Z"
-# indexHour <- grep(timeEditValue, dataExS1$hour)
-# expect_gt(indexHour, 2)
-# expect_equal(dataExS1$nega_offshore[indexHour], 9)
-# #identical myData, diff == 0 always
-# exS21V0 <- exchangesStack(x = myData1, refStudy = myData2, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# dataExS21V0 <- .get_data_from_htmlwidget(exS21V0)
-# expect_equal(dataExS21V0$nega_offshore[indexHour], 0)
-# # edit myData2 to have a diff != 0
-# #pb timeZone local (PC, Travis, etc)
-# for (i in 0:5){
-# timeEditShift <- lubridate::hours(i)
-# timeEditMinus <- as.Date(timeEditValue) - timeEditShift
-# timeEditPlus <- as.Date(timeEditValue) + timeEditShift
-# myData2$links[ (time == timeEditMinus | time == timeEditPlus) & link == "a - a_offshore", `FLOW LIN.` := as.integer(`FLOW LIN.` + 2500)]
-# }
-# exS21V1 <- exchangesStack(x = myData1, refStudy = myData2, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# dataExS21V1 <- .get_data_from_htmlwidget(exS21V1)
-# expect_equal(dataExS21V1$nega_offshore[indexHour], 2500)
-# #ROW not null in myData1
-# for (i in 0:5){
-# timeEditShift <- lubridate::hours(i)
-# timeEditMinus <- as.Date(timeEditValue) - timeEditShift
-# timeEditPlus <- as.Date(timeEditValue) + timeEditShift
-# myData1$areas[ (time == timeEditMinus | time == timeEditPlus) & area == myArea, `ROW BAL.` := as.integer(`ROW BAL.` - 1500)]
-# }
-# #test if there is row
-# exS1V2 <- exchangesStack(x = myData1, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# dataExS1V2 <- .get_data_from_htmlwidget(exS1V2)
-# expect_equal(dataExS1V2$ROW[indexHour], 1500)
-# exS21V2 <- exchangesStack(x = myData1, refStudy = myData2, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# dataExS21V2 <- .get_data_from_htmlwidget(exS21V2)
-# expect_equal(dataExS21V2$nega_offshore[indexHour], 2500)
-# expect_equal(dataExS21V2$ROW[indexHour], 1500)
-# #ROW not null in myData2
-# for (i in 0:5){
-# timeEditShift <- lubridate::hours(i)
-# timeEditMinus <- as.Date(timeEditValue) - timeEditShift
-# timeEditPlus <- as.Date(timeEditValue) + timeEditShift
-# myData2$areas[ (time == timeEditMinus | time == timeEditPlus) & area == myArea, `ROW BAL.` := as.integer(`ROW BAL.` - 1000)]
-# }
-# exS21V3 <- exchangesStack(x = myData1, refStudy = myData2, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# dataExS21V3 <- .get_data_from_htmlwidget(exS21V3)
-# expect_equal(dataExS21V3$nega_offshore[indexHour], 2500)
-# expect_equal(dataExS21V3$ROW[indexHour], 500)
-# })
-#
-# test_that("exchangesStack, no interactive, x is a list of antaresDataTable and refStudy an antaresDataTable", {
-# myData1 <- readAntares(links = "all", showProgress = FALSE)
-# myData2 <- readAntares(links = "all", showProgress = FALSE)
-# myData3 <- readAntares(links = "all", showProgress = FALSE)
-# myData4 <- readAntares(links = "all", showProgress = FALSE)
-#
-# myDataList <- list(myData2, myData3, myData4)
-# myArea <- "a"
-# DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
-# exS2 <- exchangesStack(x = myDataList, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# # compare with myData3
-# idWidget <- 2
-# dataExS2 <- .get_data_from_htmlwidget(exS2, widgetsNumber = idWidget)
-# timeEditValue <- "2018-04-25T00:00:00.000Z"
-# indexHour <- grep(timeEditValue, dataExS2$hour)
-# expect_gt(indexHour, 2)
-# expect_equal(dataExS2$nega_offshore[indexHour], 9)
-# #identical myData, diff == 0 always
-# exS21V0 <- exchangesStack(x = myDataList, refStudy = myData1, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# dataExS21V0 <- .get_data_from_htmlwidget(exS21V0, widgetsNumber = idWidget)
-# expect_equal(dataExS21V0$nega_offshore[indexHour], 0)
-# # edit myData3 to have a diff != 0
-# #pb timeZone local (PC, Travis, etc)
-# for (i in 0:5){
-# timeEditShift <- lubridate::hours(i)
-# timeEditMinus <- as.Date(timeEditValue) - timeEditShift
-# timeEditPlus <- as.Date(timeEditValue) + timeEditShift
-# myData3[ (time == timeEditMinus | time == timeEditPlus) & link == "a - a_offshore", `FLOW LIN.` := as.integer(`FLOW LIN.` + 2500)]
-# }
-# exS21V1 <- exchangesStack(x = myDataList, refStudy = myData1, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# dataExS21V1 <- .get_data_from_htmlwidget(exS21V1, widgetsNumber = idWidget)
-# expect_equal(dataExS21V1$a_offshore[indexHour], 2500)
-# })
-#
-# test_that("exchangesStack, no interactive, x is a list of antaresDataList and refStudy an antaresDataList", {
-# myData1 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-# myData2 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-# myData3 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-# myData4 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-#
-# myDataList <- list(myData2, myData3, myData4)
-# myArea <- "a"
-# DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
-# exS2 <- exchangesStack(x = myDataList, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# # compare with myData3
-# idWidget <- 2
-# dataExS2 <- .get_data_from_htmlwidget(exS2, widgetsNumber = idWidget)
-# timeEditValue <- "2018-04-25T00:00:00.000Z"
-# indexHour <- grep(timeEditValue, dataExS2$hour)
-# expect_gt(indexHour, 2)
-# expect_equal(dataExS2$nega_offshore[indexHour], 9)
-# #identical myData, diff == 0 always
-# exS21V0 <- exchangesStack(x = myDataList, refStudy = myData1, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# dataExS21V0 <- .get_data_from_htmlwidget(exS21V0, widgetsNumber = idWidget)
-# expect_equal(dataExS21V0$nega_offshore[indexHour], 0)
-# # edit myData3 to have a diff != 0
-# #pb timeZone local (PC, Travis, etc)
-# for (i in 0:5){
-# timeEditShift <- lubridate::hours(i)
-# timeEditMinus <- as.Date(timeEditValue) - timeEditShift
-# timeEditPlus <- as.Date(timeEditValue) + timeEditShift
-# myData3$links[ (time == timeEditMinus | time == timeEditPlus) & link == "a - a_offshore", `FLOW LIN.` := as.integer(`FLOW LIN.` + 2500)]
-# }
-# exS21V1 <- exchangesStack(x = myDataList, refStudy = myData1, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# dataExS21V1 <- .get_data_from_htmlwidget(exS21V1, widgetsNumber = idWidget)
-# expect_equal(dataExS21V1$a_offshore[indexHour], 2500)
-# #ROW not null in myData4
-# for (i in 0:5){
-# timeEditShift <- lubridate::hours(i)
-# timeEditMinus <- as.Date(timeEditValue) - timeEditShift
-# timeEditPlus <- as.Date(timeEditValue) + timeEditShift
-# myData4$areas[ (time == timeEditMinus | time == timeEditPlus) & area == myArea, `ROW BAL.` := as.integer(`ROW BAL.` - 1500)]
-# }
-# #test if there is row
-# exList <- exchangesStack(x = myDataList, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# dataExList <- .get_data_from_htmlwidget(exList, widgetsNumber = idWidget)
-# expect_equal(dataExList$a_offshore[indexHour], 2500 - 9)
-# idRowNotNull <- 3
-# dataExListRow <- .get_data_from_htmlwidget(exList, widgetsNumber = idRowNotNull)
-# expect_equal(dataExListRow$ROW[indexHour], 1500)
-# #with a refStudy
-# exListListV2 <- exchangesStack(x = myDataList, refStudy = myData1, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# dataExListV2 <- .get_data_from_htmlwidget(exListListV2, widgetsNumber = idWidget)
-# expect_equal(dataExListV2$a_offshore[indexHour], 2500)
-# expect_equal(dataExListV2$ROW[indexHour], 0)
-# dataExListV2Row <- .get_data_from_htmlwidget(exListListV2, widgetsNumber = idRowNotNull)
-# expect_equal(dataExListV2Row$a_offshore[indexHour], 0)
-# expect_equal(dataExListV2Row$ROW[indexHour], 1500)
-# #ROW not null in refStudy myData1
-# for (i in 0:5){
-# timeEditShift <- lubridate::hours(i)
-# timeEditMinus <- as.Date(timeEditValue) - timeEditShift
-# timeEditPlus <- as.Date(timeEditValue) + timeEditShift
-# myData1$areas[ (time == timeEditMinus | time == timeEditPlus) & area == myArea, `ROW BAL.` := as.integer(`ROW BAL.` - 1000)]
-# }
-# exListListV3 <- exchangesStack(x = myDataList, refStudy = myData1, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# dataExListV3 <- .get_data_from_htmlwidget(exListListV3, widgetsNumber = idRowNotNull)
-# expect_equal(dataExListV3$nega_offshore[indexHour], 0)
-# expect_equal(dataExListV3$ROW[indexHour], 500)
-# dataExListV3g2 <- .get_data_from_htmlwidget(exListListV3, widgetsNumber = idWidget)
-# expect_equal(dataExListV3g2$a_offshore[indexHour], 2500)
-# expect_equal(dataExListV3g2$negROW[indexHour], 1000)
-# })
-#
-# test_that("exchangesStack, interactive, x and refStudy are antaresDataTable", {
-# skip_if_not(.runExchangesStackTest)
-# myData1 <- readAntares(links = "all", showProgress = FALSE)
-# myData2 <- readAntares(links = "all", showProgress = FALSE)
-# myArea <- "a"
-# DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
-# #no interactive
-# exS1 <- exchangesStack(x = myData1, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# dataExS1 <- .get_data_from_htmlwidget(exS1)
-# timeEditValue <- "2018-04-25T00:00:00.000Z"
-# indexHour <- grep(timeEditValue, dataExS1$hour)
-# expect_gt(indexHour, 2)
-# expect_equal(dataExS1$nega_offshore[indexHour], 9)
-# # interactive
-# exS1 <- exchangesStack(x = myData1, .runApp = FALSE, interactive = TRUE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# exS1 <- exS1$init()
-# expect_true(is(exS1, "MWController"))
-# expect_equal(exS1$ncharts, 1)
-# expect_equal(exS1$ncol, 1)
-# expect_equal(exS1$nrow, 1)
-# dataExS1 <- .get_data_from_htmlwidget(exS1)
-# expect_equal(dataExS1$nega_offshore[indexHour], 9)
-#
-# #identical myData, diff == 0 always
-# exS21V0 <- exchangesStack(x = myData1, refStudy = myData2, .runApp = FALSE, interactive = TRUE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# resExS1V0 <- exS21V0$init()
-# expect_true(is(exS21V0, "MWController"))
-# expect_equal(exS21V0$ncharts, 1)
-# expect_equal(exS21V0$ncol, 1)
-# expect_equal(exS21V0$nrow, 1)
-# #get the data
-# dataExS21V0 <- .get_data_from_htmlwidget(exS21V0)
-# expect_equal(dataExS21V0$nega_offshore[indexHour], 0)
-# # edit myData2 to have a diff != 0
-# #pb timeZone local (PC, Travis, etc)
-# for (i in 0:5){
-# timeEditShift <- lubridate::hours(i)
-# timeEditMinus <- as.Date(timeEditValue) - timeEditShift
-# timeEditPlus <- as.Date(timeEditValue) + timeEditShift
-# myData2[ (time == timeEditMinus | time == timeEditPlus) & link == "a - a_offshore", `FLOW LIN.` := as.integer(`FLOW LIN.` + 2500)]
-# }
-# exS21V1 <- exchangesStack(x = myData1, refStudy = myData2, .runApp = FALSE, interactive = TRUE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# resExS1V0 <- exS21V1$init()
-# expect_true(is(exS21V1, "MWController"))
-# expect_equal(exS21V1$ncharts, 1)
-# expect_equal(exS21V1$ncol, 1)
-# expect_equal(exS21V1$nrow, 1)
-# dataExS21V1 <- .get_data_from_htmlwidget(exS21V1)
-# expect_equal(dataExS21V1$nega_offshore[indexHour], 2500)
-# })
-#
-# test_that("exchangesStack, interactive, x and refStudy are antaresDataList", {
-# skip_if_not(.runExchangesStackTest)
-# myData1 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-# myData2 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-# myArea <- "a"
-# DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
-# #no interactive
-# exS1 <- exchangesStack(x = myData1, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# dataExS1 <- .get_data_from_htmlwidget(exS1)
-# timeEditValue <- "2018-04-25T00:00:00.000Z"
-# indexHour <- grep(timeEditValue, dataExS1$hour)
-# expect_gt(indexHour, 2)
-# expect_equal(dataExS1$nega_offshore[indexHour], 9)
-# # interactive no interactive
-# exS1I <- exchangesStack(x = myData1, .runApp = FALSE, interactive = TRUE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# resExS1 <- exS1I$init()
-# expect_true(is(exS1I, "MWController"))
-# expect_equal(exS1I$ncharts, 1)
-# expect_equal(exS1I$ncol, 1)
-# expect_equal(exS1I$nrow, 1)
-# dataExS1I <- .get_data_from_htmlwidget(exS1I)
-# expect_equal(dataExS1I$nega_offshore[indexHour], 9)
-#
-# # interactive with refStudy but myData1 =myData2
-# exS21V0 <- exchangesStack(x = myData1, refStudy = myData2, .runApp = FALSE, interactive = TRUE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# exS21V0 <- exS21V0$init()
-# expect_true(is(exS21V0, "MWController"))
-# expect_equal(exS21V0$ncharts, 1)
-# expect_equal(exS21V0$ncol, 1)
-# expect_equal(exS21V0$nrow, 1)
-# dataExS21V0 <- .get_data_from_htmlwidget(exS21V0)
-# expect_equal(dataExS21V0$nega_offshore[indexHour], 0)
-# # edit myData2 to have a diff != 0
-# #pb timeZone local (PC, Travis, etc)
-# for (i in 0:5){
-# timeEditShift <- lubridate::hours(i)
-# timeEditMinus <- as.Date(timeEditValue) - timeEditShift
-# timeEditPlus <- as.Date(timeEditValue) + timeEditShift
-# myData2$links[ (time == timeEditMinus | time == timeEditPlus) & link == "a - a_offshore", `FLOW LIN.` := as.integer(`FLOW LIN.` + 2500)]
-# }
-# exS21V1 <- exchangesStack(x = myData1, refStudy = myData2, .runApp = FALSE, interactive = TRUE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# exS21V1 <- exS21V1$init()
-# expect_true(is(exS21V1, "MWController"))
-# expect_equal(exS21V1$ncharts, 1)
-# expect_equal(exS21V1$ncol, 1)
-# expect_equal(exS21V1$nrow, 1)
-# dataExS21V1 <- .get_data_from_htmlwidget(exS21V1)
-# expect_equal(dataExS21V1$nega_offshore[indexHour], 2500)
-# #ROW not null in myData1
-# for (i in 0:5){
-# timeEditShift <- lubridate::hours(i)
-# timeEditMinus <- as.Date(timeEditValue) - timeEditShift
-# timeEditPlus <- as.Date(timeEditValue) + timeEditShift
-# myData1$areas[ (time == timeEditMinus | time == timeEditPlus) & area == myArea, `ROW BAL.` := as.integer(`ROW BAL.` - 1500)]
-# }
-# #test if there is row
-# exS1V2 <- exchangesStack(x = myData1, .runApp = FALSE, interactive = TRUE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# exS1V2 <- exS1V2$init()
-# expect_true(is(exS1V2, "MWController"))
-# expect_equal(exS1V2$ncharts, 1)
-# expect_equal(exS1V2$ncol, 1)
-# expect_equal(exS1V2$nrow, 1)
-# dataExS1V2 <- .get_data_from_htmlwidget(exS1V2)
-# expect_equal(dataExS1V2$ROW[indexHour], 1500)
-# exS21V2 <- exchangesStack(x = myData1, refStudy = myData2, .runApp = FALSE, interactive = TRUE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# exS21V2 <- exS21V2$init()
-# expect_true(is(exS21V2, "MWController"))
-# expect_equal(exS21V2$ncharts, 1)
-# expect_equal(exS21V2$ncol, 1)
-# expect_equal(exS21V2$nrow, 1)
-# dataExS21V2 <- .get_data_from_htmlwidget(exS21V2)
-# expect_equal(dataExS21V2$nega_offshore[indexHour], 2500)
-# expect_equal(dataExS21V2$ROW[indexHour], 1500)
-# #ROW not null in myData2
-# for (i in 0:5){
-# timeEditShift <- lubridate::hours(i)
-# timeEditMinus <- as.Date(timeEditValue) - timeEditShift
-# timeEditPlus <- as.Date(timeEditValue) + timeEditShift
-# myData2$areas[ (time == timeEditMinus | time == timeEditPlus) & area == myArea, `ROW BAL.` := as.integer(`ROW BAL.` - 1000)]
-# }
-# exS21V3 <- exchangesStack(x = myData1, refStudy = myData2, .runApp = FALSE, interactive = TRUE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# exS21V3 <- exS21V3$init()
-# expect_true(is(exS21V3, "MWController"))
-# expect_equal(exS21V3$ncharts, 1)
-# expect_equal(exS21V3$ncol, 1)
-# expect_equal(exS21V3$nrow, 1)
-# dataExS21V3 <- .get_data_from_htmlwidget(exS21V3)
-# expect_equal(dataExS21V3$nega_offshore[indexHour], 2500)
-# expect_equal(dataExS21V3$ROW[indexHour], 500)
-# })
-#
-# test_that("exchangesStack, interactive, x is a list of antaresDataTable and refStudy an antaresDataTable", {
-# skip_if_not(.runExchangesStackTest)
-# myData1 <- readAntares(links = "all", showProgress = FALSE)
-# myData2 <- readAntares(links = "all", showProgress = FALSE)
-# myData3 <- readAntares(links = "all", showProgress = FALSE)
-# myData4 <- readAntares(links = "all", showProgress = FALSE)
-# myDataList <- list(myData2, myData3, myData4)
-# myArea <- "a"
-# DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
-# # no interactive
-# exS2 <- exchangesStack(x = myDataList, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# # compare with myData3
-# idWidget <- 2
-# dataExS2 <- .get_data_from_htmlwidget(exS2, widgetsNumber = idWidget)
-# timeEditValue <- "2018-04-25T00:00:00.000Z"
-# indexHour <- grep(timeEditValue, dataExS2$hour)
-# expect_gt(indexHour, 2)
-# expect_equal(dataExS2$nega_offshore[indexHour], 9)
-# # interactive
-# exSList1 <- exchangesStack(x = myDataList, .runApp = FALSE, interactive = TRUE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# exSList1 <- exSList1$init()
-# expect_true(is(exSList1, "MWController"))
-# expect_equal(exSList1$ncharts, 3)
-# expect_equal(exSList1$ncol, 2)
-# expect_equal(exSList1$nrow, 2)
-# dataExS1I <- .get_data_from_htmlwidget(exSList1, widgetsNumber = idWidget)
-# expect_equal(dataExS1I$nega_offshore[indexHour], 9)
-# #identical myData, diff == 0 always
-# exS21V0 <- exchangesStack(x = myDataList, refStudy = myData1, .runApp = FALSE, interactive = TRUE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# exS21V0 <- exS21V0$init()
-# expect_true(is(exS21V0, "MWController"))
-# expect_equal(exS21V0$ncharts, 3)
-# expect_equal(exS21V0$ncol, 2)
-# expect_equal(exS21V0$nrow, 2)
-# dataExS21V0 <- .get_data_from_htmlwidget(exS21V0, widgetsNumber = idWidget)
-# expect_equal(dataExS21V0$nega_offshore[indexHour], 0)
-# # edit myData3 to have a diff != 0
-# #pb timeZone local (PC, Travis, etc)
-# for (i in 0:5){
-# timeEditShift <- lubridate::hours(i)
-# timeEditMinus <- as.Date(timeEditValue) - timeEditShift
-# timeEditPlus <- as.Date(timeEditValue) + timeEditShift
-# myData3[ (time == timeEditMinus | time == timeEditPlus) & link == "a - a_offshore", `FLOW LIN.` := as.integer(`FLOW LIN.` + 2500)]
-# }
-# exS21V1 <- exchangesStack(x = myDataList, refStudy = myData1, .runApp = FALSE, interactive = TRUE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# exS21V1 <- exS21V1$init()
-# expect_true(is(exS21V1, "MWController"))
-# expect_equal(exS21V1$ncharts, 3)
-# expect_equal(exS21V1$ncol, 2)
-# expect_equal(exS21V1$nrow, 2)
-# dataExS21V1 <- .get_data_from_htmlwidget(exS21V1, widgetsNumber = idWidget)
-# expect_equal(dataExS21V1$a_offshore[indexHour], 2500)
-# })
-#
-# test_that("exchangesStack, interactive, x is a list of antaresDataList and refStudy an antaresDataList", {
-# skip_if_not(.runExchangesStackTest)
-# myData1 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-# myData2 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-# myData3 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-# myData4 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-#
-# myDataList <- list(myData2, myData3, myData4)
-# myArea <- "a"
-# DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
-# # no interactive
-# exS2 <- exchangesStack(x = myDataList, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# # compare with myData3
-# idWidget <- 2
-# dataExS2 <- .get_data_from_htmlwidget(exS2, widgetsNumber = idWidget)
-# timeEditValue <- "2018-04-25T00:00:00.000Z"
-# indexHour <- grep(timeEditValue, dataExS2$hour)
-# expect_gt(indexHour, 2)
-# expect_equal(dataExS2$nega_offshore[indexHour], 9)
-# # interactive
-# exSList1 <- exchangesStack(x = myDataList, .runApp = FALSE, interactive = TRUE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# exSList1 <- exSList1$init()
-# expect_true(is(exSList1, "MWController"))
-# expect_equal(exSList1$ncharts, 3)
-# expect_equal(exSList1$ncol, 2)
-# expect_equal(exSList1$nrow, 2)
-# dataExS1I <- .get_data_from_htmlwidget(exSList1, widgetsNumber = idWidget)
-# expect_equal(dataExS1I$nega_offshore[indexHour], 9)
-#
-# #identical myData, diff == 0 always
-# exSList1Ref <- exchangesStack(x = myDataList, refStudy = myData1, .runApp = FALSE, interactive = TRUE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# exSList1Ref <- exSList1Ref$init()
-# expect_true(is(exSList1Ref, "MWController"))
-# expect_equal(exSList1Ref$ncharts, 3)
-# expect_equal(exSList1Ref$ncol, 2)
-# expect_equal(exSList1Ref$nrow, 2)
-# dataExS21V0Ref <- .get_data_from_htmlwidget(exSList1Ref, widgetsNumber = idWidget)
-# expect_equal(dataExS21V0Ref$nega_offshore[indexHour], 0)
-# # edit myData3 to have a diff != 0
-# #pb timeZone local (PC, Travis, etc)
-# for (i in 0:5){
-# timeEditShift <- lubridate::hours(i)
-# timeEditMinus <- as.Date(timeEditValue) - timeEditShift
-# timeEditPlus <- as.Date(timeEditValue) + timeEditShift
-# myData3$links[ (time == timeEditMinus | time == timeEditPlus) & link == "a - a_offshore", `FLOW LIN.` := as.integer(`FLOW LIN.` + 2500)]
-# }
-# exS21V1 <- exchangesStack(x = myDataList, refStudy = myData1, .runApp = FALSE, interactive = TRUE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# exS21V1 <- exS21V1$init()
-# expect_true(is(exS21V1, "MWController"))
-# expect_equal(exS21V1$ncharts, 3)
-# expect_equal(exS21V1$ncol, 2)
-# expect_equal(exS21V1$nrow, 2)
-# dataExS21V1 <- .get_data_from_htmlwidget(exS21V1, widgetsNumber = idWidget)
-# expect_equal(dataExS21V1$a_offshore[indexHour], 2500)
-# #ROW not null in myData4
-# for (i in 0:5){
-# timeEditShift <- lubridate::hours(i)
-# timeEditMinus <- as.Date(timeEditValue) - timeEditShift
-# timeEditPlus <- as.Date(timeEditValue) + timeEditShift
-# myData4$areas[ (time == timeEditMinus | time == timeEditPlus) & area == myArea, `ROW BAL.` := as.integer(`ROW BAL.` - 1500)]
-# }
-# #test if there is row
-# exList <- exchangesStack(x = myDataList, .runApp = FALSE, interactive = TRUE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# exList <- exList$init()
-# expect_true(is(exList, "MWController"))
-# expect_equal(exList$ncharts, 3)
-# expect_equal(exList$ncol, 2)
-# expect_equal(exList$nrow, 2)
-# dataExList <- .get_data_from_htmlwidget(exList, widgetsNumber = idWidget)
-# expect_equal(dataExList$a_offshore[indexHour], 2500 - 9)
-# idRowNotNull <- 3
-# dataExListRow <- .get_data_from_htmlwidget(exList, widgetsNumber = idRowNotNull)
-# expect_equal(dataExListRow$ROW[indexHour], 1500)
-# #with a refStudy
-# exListListV2 <- exchangesStack(x = myDataList, refStudy = myData1, .runApp = FALSE, interactive = TRUE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# exListListV2 <- exListListV2$init()
-# expect_true(is(exListListV2, "MWController"))
-# expect_equal(exListListV2$ncharts, 3)
-# expect_equal(exListListV2$ncol, 2)
-# expect_equal(exListListV2$nrow, 2)
-# dataExListV2 <- .get_data_from_htmlwidget(exListListV2, widgetsNumber = idWidget)
-# expect_equal(dataExListV2$a_offshore[indexHour], 2500)
-# expect_equal(dataExListV2$ROW[indexHour], 0)
-# dataExListV2Row <- .get_data_from_htmlwidget(exListListV2, widgetsNumber = idRowNotNull)
-# expect_equal(dataExListV2Row$a_offshore[indexHour], 0)
-# expect_equal(dataExListV2Row$ROW[indexHour], 1500)
-# #ROW not null in refStudy myData1
-# for (i in 0:5){
-# timeEditShift <- lubridate::hours(i)
-# timeEditMinus <- as.Date(timeEditValue) - timeEditShift
-# timeEditPlus <- as.Date(timeEditValue) + timeEditShift
-# myData1$areas[ (time == timeEditMinus | time == timeEditPlus) & area == myArea, `ROW BAL.` := as.integer(`ROW BAL.` - 1000)]
-# }
-# exListListV3 <- exchangesStack(x = myDataList, refStudy = myData1, .runApp = FALSE, interactive = TRUE, area = myArea, dateRange = DR, stepPlot = TRUE)
-# exListListV3 <- exListListV3$init()
-# expect_true(is(exListListV3, "MWController"))
-# expect_equal(exListListV3$ncharts, 3)
-# expect_equal(exListListV3$ncol, 2)
-# expect_equal(exListListV3$nrow, 2)
-# dataExListV3 <- .get_data_from_htmlwidget(exListListV3, widgetsNumber = idRowNotNull)
-# expect_equal(dataExListV3$nega_offshore[indexHour], 0)
-# expect_equal(dataExListV3$ROW[indexHour], 500)
-# dataExListV3g2 <- .get_data_from_htmlwidget(exListListV3, widgetsNumber = idWidget)
-# expect_equal(dataExListV3g2$a_offshore[indexHour], 2500)
-# expect_equal(dataExListV3g2$negROW[indexHour], 1000)
-# })
-#
-# test_that("exchangesStack, no interactive, x and refStudy are optsH5 ", {
-# if (.requireRhdf5_Antares(stopP = FALSE)){
-# skip_if_not(.runExchangesStackTest)
-# suppressMessages(writeAntaresH5(pathtemp, opts = opts, overwrite = TRUE))
-# optsH5 <- setSimulationPath(pathtemp)
-# myArea <- "a"
-# DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
-# ES1 <- exchangesStack(x = optsH5, interactive = FALSE, area = myArea, dateRange = DR)
-# dataHtmlWidgetES1 <- .get_data_from_htmlwidget(ES1)
-# timeEditValue <- "2018-04-25T00:00:00.000Z"
-# indexHour <- grep(timeEditValue, dataHtmlWidgetES1$hour)
-# expect_gt(indexHour, 2)
-# expect_equal(dataHtmlWidgetES1$nega_offshore[indexHour], 9)
-# # with refStudy
-# ESRef <- exchangesStack(x = optsH5, refStudy = optsH5, interactive = FALSE, area = myArea, dateRange = DR)
-# dataHtmlWidgetES1 <- .get_data_from_htmlwidget(ESRef)
-# expect_equal(dataHtmlWidgetES1$nega_offshore[indexHour], 0)
-# # with a new Study H5 test if compare prodStack works
-# ## create a new folder h5
-# pathInitial <- file.path(dirname(pathtemp), basename(pathtemp))
-# pathNewH5 <- file.path(pathInitial, "testH5")
-# if (!dir.exists(pathNewH5)){
-# dir.create(pathNewH5)
-# }
-# #write the study
-# #windows pb ? pathNewH5 <- gsub("/", "\\", pathNewH5, fixed = TRUE)
-# optsData <- antaresRead::setSimulationPath(path = studyPath)
-# suppressWarnings(writeAntaresH5(path = pathNewH5, opts = optsData,
-# overwrite = TRUE, supressMessages = TRUE))
-#
-#
-# pathNewH5File <- file.path(pathNewH5, list.files(pathNewH5))
-# myLink <- getLinks()[1]
-# .h5Antares_edit_variable(
-# pathH5 = pathNewH5File,
-# link = myLink,
-# timeId = 1:40,
-# antVar = "FLOW LIN.",
-# newValue = 15000
-# )
-#
-# optsH5New <- setSimulationPath(path = pathNewH5File)
-# ES1New <- exchangesStack(x = optsH5New, interactive = FALSE, area = myArea, dateRange = DR)
-# dataHtmlWidgetES1 <- .get_data_from_htmlwidget(ES1New)
-# expect_equal(dataHtmlWidgetES1$nega_offshore[indexHour], 9)
-# expect_equal(dataHtmlWidgetES1$a_offshore[2], 15000)
-# ES1NewRef <- exchangesStack(x = optsH5New, refStudy = optsH5, interactive = FALSE, area = myArea, dateRange = DR)
-# dataHtmlWidgetES1Ref <- .get_data_from_htmlwidget(ES1NewRef)
-# expect_equal(dataHtmlWidgetES1Ref$nega_offshore[indexHour], 0)
-# expect_gt(dataHtmlWidgetES1Ref$a_offshore[2], 15000)
-# }
-# })
-#
-# test_that("exchangesStack, no interactive, x is a list of optH5 and refStudy are optsH5 ", {
-# if (.requireRhdf5_Antares(stopP = FALSE)){
-# skip_if_not(.runExchangesStackTest)
-# suppressMessages(writeAntaresH5(pathtemp, opts = opts, overwrite = TRUE))
-# optsH5 <- setSimulationPath(pathtemp)
-#
-# # with new Studies H5 test if compare prodStack works
-# ## create new folders h5
-# pathInitial <- file.path(dirname(pathtemp), basename(pathtemp))
-#
-# listFolderToCreate <- c("testH5v2", "testH5v3", "testH5v4")
-# for (folder in listFolderToCreate){
-# pathNewH5 <- file.path(pathInitial, folder)
-# if (!dir.exists(pathNewH5)){
-# dir.create(pathNewH5)
-# }
-#
-# #write the study
-# #windows pb ? pathNewH5 <- gsub("/", "\\", pathNewH5, fixed = TRUE)
-# optsData <- antaresRead::setSimulationPath(path = studyPath)
-# suppressWarnings(
-# writeAntaresH5(
-# path = pathNewH5,
-# opts = optsData,
-# overwrite = TRUE,
-# supressMessages = TRUE)
-# )
-# }
-# idWidgetToEdit <- 2
-# pathH5FolderToEdit <- file.path(pathInitial, listFolderToCreate[[idWidgetToEdit]])
-# pathH5FileToEdit <- file.path(pathH5FolderToEdit, list.files(pathH5FolderToEdit))
-# newValueFlow <- 15000
-# myLink <- getLinks()[1]
-# .h5Antares_edit_variable(
-# pathH5 = pathH5FileToEdit,
-# link = myLink,
-# timeId = 1:40,
-# antVar = "FLOW LIN.",
-# newValue = newValueFlow
-# )
-#
-# optsList <- list()
-# antaresDataListH5 <- list()
-# for (i in 1:length(listFolderToCreate)){
-# pathOptsI <- file.path(pathInitial, listFolderToCreate[[i]])
-# optsList[[i]] <- setSimulationPath(path = pathOptsI)
-# antaresDataListH5[[i]] <- readAntares(links = myLink)
-# }
-# #test the data from h5
-# #get the data from the h5 file
-# antaresDataRef <- readAntares(opts = optsH5, links = myLink)
-# expect_equal(max(antaresDataListH5[[idWidgetToEdit]]$`FLOW LIN.`), newValueFlow)
-# expect_equal(max(antaresDataListH5[[1]]$`FLOW LIN.`), max(antaresDataRef$`FLOW LIN.`))
-# expect_equal(max(antaresDataListH5[[3]]$`FLOW LIN.`), max(antaresDataRef$`FLOW LIN.`))
-# # get the data from htmlwidget
-# myArea <- "a"
-# DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
-# ESList <- exchangesStack(x = optsList, interactive = FALSE, area = myArea, dateRange = DR)
-# dataHtmlWidgetES2 <- .get_data_from_htmlwidget(ESList, widgetsNumber = idWidgetToEdit)
-# expect_equal(dataHtmlWidgetES2$a_offshore[3], newValueFlow)
-# dataHtmlWidgetES1 <- .get_data_from_htmlwidget(ESList, widgetsNumber = 1)
-# expect_equal(dataHtmlWidgetES1$a_offshore[3], 0)
-# expect_equal(dataHtmlWidgetES1$nega_offshore[3], 6)
-# # with refStudy
-# ESListRef <- exchangesStack(x = optsList, refStudy = optsH5, interactive = FALSE, area = myArea, dateRange = DR)
-# dataHtmlWidgetES2Ref <- .get_data_from_htmlwidget(ESListRef, widgetsNumber = idWidgetToEdit)
-# expect_equal(dataHtmlWidgetES2Ref$a_offshore[3] - dataHtmlWidgetES1$nega_offshore[3], newValueFlow)
-# dataHtmlWidgetES1Ref <- .get_data_from_htmlwidget(ESListRef, widgetsNumber = 1)
-# expect_equal(dataHtmlWidgetES1Ref$a_offshore[3], 0)
-# expect_equal(dataHtmlWidgetES1Ref$nega_offshore[3], 0)
-# }
-# })
-#
-# test_that("exchangesStack, interactive, x and refStudy are optsH5 ", {
-# if (.requireRhdf5_Antares(stopP = FALSE)){
-# skip_if_not(.runExchangesStackTest)
-# suppressMessages(writeAntaresH5(pathtemp, opts = opts, overwrite = TRUE))
-# optsH5 <- setSimulationPath(pathtemp)
-# myArea <- "a"
-# DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
-# # no interactive
-# ES1 <- exchangesStack(x = optsH5,
-# interactive = FALSE,
-# area = myArea,
-# dateRange = DR,
-# mcYearh5 = 1)
-# dataHtmlWidgetES1 <- .get_data_from_htmlwidget(ES1)
-# timeEditValue <- "2018-04-24T23:00:00.000Z"
-# indexHour <- grep(timeEditValue, dataHtmlWidgetES1$hour)
-# expect_gt(indexHour, 2)
-# expect_equal(dataHtmlWidgetES1$nega_offshore[indexHour], 10)
-# # with interactive
-# #FOR DEBUG
-# #ES1I <- exchangesStack(x = optsH5,
-# # interactive = TRUE)
-#
-# ES1I <- exchangesStack(x = optsH5,
-# .runApp = FALSE,
-# interactive = TRUE,
-# dateRange = DR)
-# ES1I <- ES1I$init()
-# expect_true(is(ES1I, "MWController"))
-# expect_equal(ES1I$ncharts, 1)
-# expect_equal(ES1I$ncol, 1)
-# expect_equal(ES1I$nrow, 1)
-# dataHtmlWidgetES1I <- .get_data_from_htmlwidget(ES1I)
-# expect_equal(dataHtmlWidgetES1I$nega_offshore[indexHour], 10)
-# # with refStudy no interactive
-# ESRef <- exchangesStack(x = optsH5,
-# refStudy = optsH5,
-# interactive = FALSE,
-# area = myArea,
-# dateRange = DR,
-# mcYearh5 = 1)
-# dataHtmlWidgetES1 <- .get_data_from_htmlwidget(ESRef)
-# expect_equal(dataHtmlWidgetES1$nega_offshore[indexHour], 0)
-# # refStudy with interactive
-# ESRefI <- exchangesStack(x = optsH5,
-# refStudy = optsH5,
-# interactive = TRUE,
-# .runApp = FALSE,
-# area = myArea,
-# dateRange = DR)
-# ESRefI <- ESRefI$init()
-# expect_true(is(ESRefI, "MWController"))
-# expect_equal(ESRefI$ncharts, 1)
-# expect_equal(ESRefI$ncol, 1)
-# expect_equal(ESRefI$nrow, 1)
-# dataHtmlWidgetESRefI <- .get_data_from_htmlwidget(ESRefI)
-# expect_equal(dataHtmlWidgetESRefI$nega_offshore[indexHour], 0)
-# # with a new Study H5 test if compare prodStack works
-# ## create a new folder h5
-# pathInitial <- file.path(dirname(pathtemp), basename(pathtemp))
-# pathNewH5 <- file.path(pathInitial, "testH5")
-# if (!dir.exists(pathNewH5)){
-# dir.create(pathNewH5)
-# }
-# #write the study
-# #windows pb ? pathNewH5 <- gsub("/", "\\", pathNewH5, fixed = TRUE)
-# optsData <- antaresRead::setSimulationPath(path = studyPath)
-# suppressWarnings(writeAntaresH5(path = pathNewH5, opts = optsData,
-# overwrite = TRUE, supressMessages = TRUE))
-#
-#
-# pathNewH5File <- file.path(pathNewH5, list.files(pathNewH5))
-# myLink <- getLinks()[1]
-# .h5Antares_edit_variable(
-# pathH5 = pathNewH5File,
-# link = myLink,
-# timeId = 1:40,
-# antVar = "FLOW LIN.",
-# newValue = 15000,
-# mcYear = 1
-# )
-#
-# optsH5New <- setSimulationPath(path = pathNewH5File)
-# #no interactive
-# ES1New <- exchangesStack(x = optsH5New,
-# interactive = FALSE,
-# area = myArea,
-# dateRange = DR,
-# mcYearh5 = 1)
-# dataHtmlWidgetES1New <- .get_data_from_htmlwidget(ES1New)
-# expect_equal(dataHtmlWidgetES1New$nega_offshore[indexHour], 10)
-# expect_equal(dataHtmlWidgetES1New$a_offshore[2], 15000)
-# # with interactive
-# ES1NewI <- exchangesStack(x = optsH5New,
-# interactive = TRUE,
-# .runApp = FALSE,
-# area = myArea,
-# dateRange = DR)
-# ES1NewI <- ES1NewI$init()
-# expect_true(is(ES1NewI, "MWController"))
-# expect_equal(ES1NewI$ncharts, 1)
-# expect_equal(ES1NewI$ncol, 1)
-# expect_equal(ES1NewI$nrow, 1)
-# dataHtmlWidgetES1New <- .get_data_from_htmlwidget(ES1NewI)
-# expect_equal(dataHtmlWidgetES1New$nega_offshore[indexHour], 10)
-# expect_equal(dataHtmlWidgetES1New$a_offshore[2], 15000)
-# # no interactive, refStudy,
-# ES1NewRef <- exchangesStack(x = optsH5New,
-# refStudy = optsH5,
-# interactive = FALSE,
-# area = myArea,
-# dateRange = DR,
-# mcYearh5 = 1)
-# dataHtmlWidgetES1Ref <- .get_data_from_htmlwidget(ES1NewRef)
-# expect_equal(dataHtmlWidgetES1Ref$nega_offshore[indexHour], 0)
-# expect_gt(dataHtmlWidgetES1Ref$a_offshore[2], 15000)
-# # interactive, refStudy,
-# ES1NewRefI <- exchangesStack(x = optsH5New,
-# refStudy = optsH5,
-# interactive = TRUE,
-# .runApp = FALSE,
-# area = myArea,
-# dateRange = DR,
-# mcYearh5 = 1)
-# ES1NewRefI <- ES1NewRefI$init()
-# expect_true(is(ES1NewRefI, "MWController"))
-# expect_equal(ES1NewRefI$ncharts, 1)
-# expect_equal(ES1NewRefI$ncol, 1)
-# expect_equal(ES1NewRefI$nrow, 1)
-# dataHtmlWidgetES1RefI <- .get_data_from_htmlwidget(ES1NewRefI)
-# expect_equal(dataHtmlWidgetES1RefI$nega_offshore[indexHour], 0)
-# expect_gt(dataHtmlWidgetES1RefI$a_offshore[2], 15000)
-# }
-# })
-#
-# test_that("exchangesStack, interactive, x is a list of optsH5 and refStudy optsH5 , ", {
-# if (.requireRhdf5_Antares(stopP = FALSE)){
-# skip_if_not(.runExchangesStackTest)
-# suppressMessages(writeAntaresH5(pathtemp, opts = opts, overwrite = TRUE))
-# optsH5 <- setSimulationPath(pathtemp)
-#
-# # with new Studies H5 test if compare prodStack works
-# ## create new folders h5
-# pathInitial <- file.path(dirname(pathtemp), basename(pathtemp))
-#
-# listFolderToCreate <- c("testH5v2", "testH5v3", "testH5v4")
-# for (folder in listFolderToCreate){
-# pathNewH5 <- file.path(pathInitial, folder)
-# if (!dir.exists(pathNewH5)){
-# dir.create(pathNewH5)
-# }
-#
-# #write the study
-# #windows pb ? pathNewH5 <- gsub("/", "\\", pathNewH5, fixed = TRUE)
-# optsData <- antaresRead::setSimulationPath(path = studyPath)
-# suppressWarnings(
-# writeAntaresH5(
-# path = pathNewH5,
-# opts = optsData,
-# overwrite = TRUE,
-# supressMessages = TRUE)
-# )
-# }
-# pathH5FolderToEdit <- file.path(pathInitial, listFolderToCreate[[2]])
-# pathH5FileToEdit <- file.path(pathH5FolderToEdit, list.files(pathH5FolderToEdit))
-# myLink <- getLinks()[1]
-# newValueFlow <- 50000
-# mcYearToTestList <- c(2, NULL)
-# for (mcYearToTest in mcYearToTestList){
-# .h5Antares_edit_variable(
-# pathH5 = pathH5FileToEdit,
-# link = myLink,
-# timeId = 1:40,
-# antVar = "FLOW LIN.",
-# newValue = newValueFlow,
-# mcYear = mcYearToTest
-# )
-#
-# optsList <- list()
-# antaresDataListH5 <- list()
-# for (i in 1:length(listFolderToCreate)){
-# pathOptsI <- file.path(pathInitial, listFolderToCreate[[i]])
-# optsList[[i]] <- setSimulationPath(path = pathOptsI)
-# antaresDataListH5[[i]] <- readAntares(links = myLink, mcYear = mcYearToTest)
-# }
-#
-# DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
-# #try without refStudy and interactive == FALSE
-# myArea <- "a"
-# ESListNoInt <- exchangesStack(x = optsList,
-# dateRange = DR,
-# area = myArea,
-# interactive = FALSE,
-# mcYearh5 = mcYearToTest)
-# dataHtmlWidgetESNoInt <- .get_data_from_htmlwidget(ESListNoInt, widgetsNumber = 2)
-# expect_equal(max(dataHtmlWidgetESNoInt$a_offshore, na.rm = TRUE), 50000)
-#
-# # try with refStudy
-# ESListNoInt <- exchangesStack(x = optsList,
-# refStudy = optsH5,
-# interactive = FALSE,
-# areas = myArea,
-# dateRange = DR,
-# mcYearh5 = mcYearToTest)
-# ## get the data from htmlwidget
-# dataHtmlWidgetES1 <- .get_data_from_htmlwidget(ESListNoInt, widgetsNumber = 1)
-# dataHtmlWidgetES2 <- .get_data_from_htmlwidget(ESListNoInt, widgetsNumber = 2)
-#
-# ## get the data from the h5 file
-# antaresDataRef <- readAntares(opts = optsH5, links = myLink, mcYears = mcYearToTest)
-# expect_equal(max(antaresDataListH5[[2]]$`FLOW LIN.`), newValueFlow)
-# expect_equal(max(antaresDataListH5[[1]]$`FLOW LIN.`), max(antaresDataRef$`FLOW LIN.`))
-# expect_equal(max(antaresDataListH5[[3]]$`FLOW LIN.`), max(antaresDataRef$`FLOW LIN.`))
-# expect_equal(antaresDataListH5[[2]]$`OV. COST`, antaresDataRef$`OV. COST`)
-#
-# ## compare data
-# resCompareData1_ref <- antaresProcessing::compare(x = antaresDataRef, y = antaresDataListH5[[1]])
-# resCompareData2_ref <- antaresProcessing::compare(x = antaresDataRef, y = antaresDataListH5[[2]])
-# expect_equal(resCompareData1_ref[timeId == timeId[40], `FLOW LIN.`], -dataHtmlWidgetES1$nega_offshore[[2]])
-# expect_gt(resCompareData2_ref[timeId == timeId[40], `FLOW LIN.`], newValueFlow)
-#
-# # interactive == TRUE
-# ## DEBUG
-# # PSWORef <- prodStack(x = optsList,
-# # dateRange = DR,
-# # h5requestFiltering = list(areas = myArea,
-# # mcYears = mcYearToTest),
-# # .runApp = FALSE,
-# # interactive = TRUE)
-# # PSWORef <- PSWORef$init()
-# # ESWORef <- exchangesStack(x = antaresDataListH5[[2]])
-# # ESWORef <- exchangesStack(x = optsList)
-# # ESWORef <- exchangesStack(x = antaresDataListH5[[2]],
-# # dateRange = DR)
-# # ESWORef <- exchangesStack(x = optsList,
-# # dateRange = DR)
-#
-# ESWORef <- exchangesStack(
-# x = optsList,
-# dateRange = DR,
-# .runApp = FALSE,
-# interactive = TRUE,
-# h5requestFiltering = list(
-# areas = getAreas(select = "a"),
-# links = getLinks(areas = myArea),
-# mcYears = mcYearToTest))
-# ESWORef <- ESWORef$init()
-# expect_true(is(ESWORef, "MWController"))
-# expect_equal(ESWORef$ncharts, 3)
-# expect_equal(ESWORef$ncol, 2)
-# expect_equal(ESWORef$nrow, 2)
-# ## get the data from htmlwidget
-# dataHtmlWidgetESWORef <- .get_data_from_htmlwidget(ESWORef, widgetsNumber = 2)
-# expect_equal(dataHtmlWidgetESWORef$a_offshore[[2]], 50000)
-# expect_equal(dataHtmlWidgetESWORef$nega_offshore[[2]], 0)
-# dataHtmlWidgetESWORef1 <- .get_data_from_htmlwidget(ESWORef, widgetsNumber = 1)
-# expect_equal(dataHtmlWidgetESWORef1$a_offshore[[2]], 0)
-# expect_gt(dataHtmlWidgetESWORef1$nega_offshore[[2]], 0)
-#
-# # fourth, MWController with refStudy and interactive == TRUE
-# ESWORefListI <- exchangesStack(
-# x = optsList,
-# refStudy = optsH5,
-# dateRange = DR,
-# .runApp = FALSE,
-# interactive = TRUE,
-# h5requestFiltering = list(
-# areas = getAreas(select = "a"),
-# links = getLinks(areas = myArea),
-# mcYears = mcYearToTest))
-# ESWORefListI <- ESWORefListI$init()
-# expect_true(is(ESWORefListI, "MWController"))
-# expect_equal(ESWORefListI$ncharts, 3)
-# expect_equal(ESWORefListI$ncol, 2)
-# expect_equal(ESWORefListI$nrow, 2)
-# #check data from htmlwidgets
-# dataHtmlWidgetES31 <- .get_data_from_htmlwidget(ESWORefListI, widgetsNumber = 2)
-# expect_gt(dataHtmlWidgetES31$a_offshore[[2]], 50000)
-# expect_equal(dataHtmlWidgetES31$nega_offshore[[2]], 0)
-# dataHtmlWidgetES21 <- .get_data_from_htmlwidget(ESWORefListI, widgetsNumber = 1)
-# expect_equal(dataHtmlWidgetES21$a_offshore[[2]], 0)
-# expect_equal(dataHtmlWidgetES21$nega_offshore[[2]], 0)
-#
-# resOptsH5Old <- readAntares(opts = optsH5, links = myLink, showProgress = FALSE, mcYears = mcYearToTest)
-# resOptsH5New <- readAntares(opts = optsList[[2]], links = myLink, showProgress = FALSE, mcYears = mcYearToTest)
-# #timeId for time = "2018-04-24 00:00:00 UTC" ? timeId = 2713
-# timeIdVal <- 2713
-# expect_equal(resOptsH5New[timeId == timeIdVal, `FLOW LIN.`], newValueFlow)
-# expect_lt(resOptsH5Old[timeId == timeIdVal, `FLOW LIN.`], 0)
-#
-# resCompareData <- antaresProcessing::compare(x = resOptsH5Old, y = resOptsH5New)
-# expect_gt(resCompareData[timeId == timeIdVal, `FLOW LIN.`], newValueFlow)
-# expect_equal(resCompareData[timeId == timeIdVal, `FLOW LIN.`], dataHtmlWidgetES31$a_offshore[[1]])
-# #no change after timeID > 40
-# expect_equal(resCompareData[timeId == (timeIdVal + 90), `FLOW LIN.`], dataHtmlWidgetES31$a_offshore[[50]])
-# expect_equal(dataHtmlWidgetES21$a_offshore[[1]], 0)
-# expect_equal(dataHtmlWidgetES21$nega_offshore[[1]], 0)
-# }
-# }
-#
-# })
+context("exchangesStack")
+
+test_that("no interactive", {
+
+ mydata <- readAntares(links = "all", timeStep = "daily", showProgress = FALSE)
+ # default parameters
+ default_params <- exchangesStack(mydata, interactive = FALSE)
+ expect_is(default_params, "htmlwidget")
+ # TO DO : passer les arguments
+ # passer plusieurs data
+ # .compare
+ # suivant les cas :
+ # - tester les retours d'erreurs
+})
+
+test_that("exchangesStack, no interactive", {
+ dta <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+ testClass <- function(obj){
+ class(obj)[1] == "combineWidgets"
+ }
+ listArgs <- list(noarg = list(x = dta, interactive = FALSE, areas = "a"),
+ allAreas = list(x = dta, interactive = FALSE, areas = "all"),
+ main = list(x = dta, interactive = FALSE, areas = "all", main = "Title"),
+ ylab = list(x = dta, interactive = FALSE, areas = "all", main = "Title", ylab = "Subt")
+ )
+ lapply(listArgs, function(X){
+ re1 <- do.call(exchangesStack, X)
+ expect_true(testClass(re1))
+ })
+
+})
+
+test_that("exchangesStack, no interactive return error", {
+ dta <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+ expect_error(exchangesStack(dta, interactive = FALSE, compare = "areas"))
+})
+
+test_that("exchangesStack, no interactive, x and refStudy are antaresDataTable", {
+ myData1 <- readAntares(links = "all", showProgress = FALSE)
+ myData2 <- readAntares(links = "all", showProgress = FALSE)
+ myArea <- "a"
+ DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
+ exS1 <- exchangesStack(x = myData1, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ dataExS1 <- .get_data_from_htmlwidget(exS1)
+ timeEditValue <- "2018-04-25T00:00:00.000Z"
+ indexHour <- grep(timeEditValue, dataExS1$hour)
+ expect_gt(indexHour, 2)
+ expect_equal(dataExS1$nega_offshore[indexHour], 9)
+ #identical myData, diff == 0 always
+ exS21V0 <- exchangesStack(x = myData1, refStudy = myData2, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ dataExS21V0 <- .get_data_from_htmlwidget(exS21V0)
+ expect_equal(dataExS21V0$nega_offshore[indexHour], 0)
+ # edit myData2 to have a diff != 0
+ #pb timeZone local (PC, Travis, etc)
+ for (i in 0:5){
+ timeEditShift <- lubridate::hours(i)
+ timeEditMinus <- as.Date(timeEditValue) - timeEditShift
+ timeEditPlus <- as.Date(timeEditValue) + timeEditShift
+ myData2[ (time == timeEditMinus | time == timeEditPlus) & link == "a - a_offshore", `FLOW LIN.` := as.integer(`FLOW LIN.` + 2500)]
+ }
+ exS21V1 <- exchangesStack(x = myData1, refStudy = myData2, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ dataExS21V1 <- .get_data_from_htmlwidget(exS21V1)
+ expect_equal(dataExS21V1$nega_offshore[indexHour], 2500)
+})
+
+test_that("exchangesStack, no interactive, x and refStudy are antaresDataList", {
+ myData1 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+ myData2 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+ myArea <- "a"
+ DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
+ exS1 <- exchangesStack(x = myData1, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ dataExS1 <- .get_data_from_htmlwidget(exS1)
+ timeEditValue <- "2018-04-25T00:00:00.000Z"
+ indexHour <- grep(timeEditValue, dataExS1$hour)
+ expect_gt(indexHour, 2)
+ expect_equal(dataExS1$nega_offshore[indexHour], 9)
+ #identical myData, diff == 0 always
+ exS21V0 <- exchangesStack(x = myData1, refStudy = myData2, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ dataExS21V0 <- .get_data_from_htmlwidget(exS21V0)
+ expect_equal(dataExS21V0$nega_offshore[indexHour], 0)
+ # edit myData2 to have a diff != 0
+ #pb timeZone local (PC, Travis, etc)
+ for (i in 0:5){
+ timeEditShift <- lubridate::hours(i)
+ timeEditMinus <- as.Date(timeEditValue) - timeEditShift
+ timeEditPlus <- as.Date(timeEditValue) + timeEditShift
+ myData2$links[ (time == timeEditMinus | time == timeEditPlus) & link == "a - a_offshore", `FLOW LIN.` := as.integer(`FLOW LIN.` + 2500)]
+ }
+ exS21V1 <- exchangesStack(x = myData1, refStudy = myData2, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ dataExS21V1 <- .get_data_from_htmlwidget(exS21V1)
+ expect_equal(dataExS21V1$nega_offshore[indexHour], 2500)
+ #ROW not null in myData1
+ for (i in 0:5){
+ timeEditShift <- lubridate::hours(i)
+ timeEditMinus <- as.Date(timeEditValue) - timeEditShift
+ timeEditPlus <- as.Date(timeEditValue) + timeEditShift
+ myData1$areas[ (time == timeEditMinus | time == timeEditPlus) & area == myArea, `ROW BAL.` := as.integer(`ROW BAL.` - 1500)]
+ }
+ #test if there is row
+ exS1V2 <- exchangesStack(x = myData1, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ dataExS1V2 <- .get_data_from_htmlwidget(exS1V2)
+ expect_equal(dataExS1V2$ROW[indexHour], 1500)
+ exS21V2 <- exchangesStack(x = myData1, refStudy = myData2, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ dataExS21V2 <- .get_data_from_htmlwidget(exS21V2)
+ expect_equal(dataExS21V2$nega_offshore[indexHour], 2500)
+ expect_equal(dataExS21V2$ROW[indexHour], 1500)
+ #ROW not null in myData2
+ for (i in 0:5){
+ timeEditShift <- lubridate::hours(i)
+ timeEditMinus <- as.Date(timeEditValue) - timeEditShift
+ timeEditPlus <- as.Date(timeEditValue) + timeEditShift
+ myData2$areas[ (time == timeEditMinus | time == timeEditPlus) & area == myArea, `ROW BAL.` := as.integer(`ROW BAL.` - 1000)]
+ }
+ exS21V3 <- exchangesStack(x = myData1, refStudy = myData2, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ dataExS21V3 <- .get_data_from_htmlwidget(exS21V3)
+ expect_equal(dataExS21V3$nega_offshore[indexHour], 2500)
+ expect_equal(dataExS21V3$ROW[indexHour], 500)
+})
+
+test_that("exchangesStack, no interactive, x is a list of antaresDataTable and refStudy an antaresDataTable", {
+ myData1 <- readAntares(links = "all", showProgress = FALSE)
+ myData2 <- readAntares(links = "all", showProgress = FALSE)
+ myData3 <- readAntares(links = "all", showProgress = FALSE)
+ myData4 <- readAntares(links = "all", showProgress = FALSE)
+
+ myDataList <- list(myData2, myData3, myData4)
+ myArea <- "a"
+ DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
+ exS2 <- exchangesStack(x = myDataList, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ # compare with myData3
+ idWidget <- 2
+ dataExS2 <- .get_data_from_htmlwidget(exS2, widgetsNumber = idWidget)
+ timeEditValue <- "2018-04-25T00:00:00.000Z"
+ indexHour <- grep(timeEditValue, dataExS2$hour)
+ expect_gt(indexHour, 2)
+ expect_equal(dataExS2$nega_offshore[indexHour], 9)
+ #identical myData, diff == 0 always
+ exS21V0 <- exchangesStack(x = myDataList, refStudy = myData1, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ dataExS21V0 <- .get_data_from_htmlwidget(exS21V0, widgetsNumber = idWidget)
+ expect_equal(dataExS21V0$nega_offshore[indexHour], 0)
+ # edit myData3 to have a diff != 0
+ #pb timeZone local (PC, Travis, etc)
+ for (i in 0:5){
+ timeEditShift <- lubridate::hours(i)
+ timeEditMinus <- as.Date(timeEditValue) - timeEditShift
+ timeEditPlus <- as.Date(timeEditValue) + timeEditShift
+ myData3[ (time == timeEditMinus | time == timeEditPlus) & link == "a - a_offshore", `FLOW LIN.` := as.integer(`FLOW LIN.` + 2500)]
+ }
+ exS21V1 <- exchangesStack(x = myDataList, refStudy = myData1, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ dataExS21V1 <- .get_data_from_htmlwidget(exS21V1, widgetsNumber = idWidget)
+ expect_equal(dataExS21V1$a_offshore[indexHour], 2500)
+})
+
+test_that("exchangesStack, no interactive, x is a list of antaresDataList and refStudy an antaresDataList", {
+ myData1 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+ myData2 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+ myData3 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+ myData4 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+
+ myDataList <- list(myData2, myData3, myData4)
+ myArea <- "a"
+ DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
+ exS2 <- exchangesStack(x = myDataList, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ # compare with myData3
+ idWidget <- 2
+ dataExS2 <- .get_data_from_htmlwidget(exS2, widgetsNumber = idWidget)
+ timeEditValue <- "2018-04-25T00:00:00.000Z"
+ indexHour <- grep(timeEditValue, dataExS2$hour)
+ expect_gt(indexHour, 2)
+ expect_equal(dataExS2$nega_offshore[indexHour], 9)
+ #identical myData, diff == 0 always
+ exS21V0 <- exchangesStack(x = myDataList, refStudy = myData1, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ dataExS21V0 <- .get_data_from_htmlwidget(exS21V0, widgetsNumber = idWidget)
+ expect_equal(dataExS21V0$nega_offshore[indexHour], 0)
+ # edit myData3 to have a diff != 0
+ #pb timeZone local (PC, Travis, etc)
+ for (i in 0:5){
+ timeEditShift <- lubridate::hours(i)
+ timeEditMinus <- as.Date(timeEditValue) - timeEditShift
+ timeEditPlus <- as.Date(timeEditValue) + timeEditShift
+ myData3$links[ (time == timeEditMinus | time == timeEditPlus) & link == "a - a_offshore", `FLOW LIN.` := as.integer(`FLOW LIN.` + 2500)]
+ }
+ exS21V1 <- exchangesStack(x = myDataList, refStudy = myData1, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ dataExS21V1 <- .get_data_from_htmlwidget(exS21V1, widgetsNumber = idWidget)
+ expect_equal(dataExS21V1$a_offshore[indexHour], 2500)
+ #ROW not null in myData4
+ for (i in 0:5){
+ timeEditShift <- lubridate::hours(i)
+ timeEditMinus <- as.Date(timeEditValue) - timeEditShift
+ timeEditPlus <- as.Date(timeEditValue) + timeEditShift
+ myData4$areas[ (time == timeEditMinus | time == timeEditPlus) & area == myArea, `ROW BAL.` := as.integer(`ROW BAL.` - 1500)]
+ }
+ #test if there is row
+ exList <- exchangesStack(x = myDataList, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ dataExList <- .get_data_from_htmlwidget(exList, widgetsNumber = idWidget)
+ expect_equal(dataExList$a_offshore[indexHour], 2500 - 9)
+ idRowNotNull <- 3
+ dataExListRow <- .get_data_from_htmlwidget(exList, widgetsNumber = idRowNotNull)
+ expect_equal(dataExListRow$ROW[indexHour], 1500)
+ #with a refStudy
+ exListListV2 <- exchangesStack(x = myDataList, refStudy = myData1, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ dataExListV2 <- .get_data_from_htmlwidget(exListListV2, widgetsNumber = idWidget)
+ expect_equal(dataExListV2$a_offshore[indexHour], 2500)
+ expect_equal(dataExListV2$ROW[indexHour], 0)
+ dataExListV2Row <- .get_data_from_htmlwidget(exListListV2, widgetsNumber = idRowNotNull)
+ expect_equal(dataExListV2Row$a_offshore[indexHour], 0)
+ expect_equal(dataExListV2Row$ROW[indexHour], 1500)
+ #ROW not null in refStudy myData1
+ for (i in 0:5){
+ timeEditShift <- lubridate::hours(i)
+ timeEditMinus <- as.Date(timeEditValue) - timeEditShift
+ timeEditPlus <- as.Date(timeEditValue) + timeEditShift
+ myData1$areas[ (time == timeEditMinus | time == timeEditPlus) & area == myArea, `ROW BAL.` := as.integer(`ROW BAL.` - 1000)]
+ }
+ exListListV3 <- exchangesStack(x = myDataList, refStudy = myData1, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ dataExListV3 <- .get_data_from_htmlwidget(exListListV3, widgetsNumber = idRowNotNull)
+ expect_equal(dataExListV3$nega_offshore[indexHour], 0)
+ expect_equal(dataExListV3$ROW[indexHour], 500)
+ dataExListV3g2 <- .get_data_from_htmlwidget(exListListV3, widgetsNumber = idWidget)
+ expect_equal(dataExListV3g2$a_offshore[indexHour], 2500)
+ expect_equal(dataExListV3g2$negROW[indexHour], 1000)
+})
+
+test_that("exchangesStack, interactive, x and refStudy are antaresDataTable", {
+ skip_if_not(.runExchangesStackTest)
+ myData1 <- readAntares(links = "all", showProgress = FALSE)
+ myData2 <- readAntares(links = "all", showProgress = FALSE)
+ myArea <- "a"
+ DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
+ #no interactive
+ exS1 <- exchangesStack(x = myData1, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ dataExS1 <- .get_data_from_htmlwidget(exS1)
+ timeEditValue <- "2018-04-25T00:00:00.000Z"
+ indexHour <- grep(timeEditValue, dataExS1$hour)
+ expect_gt(indexHour, 2)
+ expect_equal(dataExS1$nega_offshore[indexHour], 9)
+ # interactive
+ exS1 <- exchangesStack(x = myData1, .runApp = FALSE, interactive = TRUE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ exS1 <- exS1$init()
+ expect_true(is(exS1, "MWController"))
+ expect_equal(exS1$ncharts, 1)
+ expect_equal(exS1$ncol, 1)
+ expect_equal(exS1$nrow, 1)
+ dataExS1 <- .get_data_from_htmlwidget(exS1)
+ expect_equal(dataExS1$nega_offshore[indexHour], 9)
+
+ #identical myData, diff == 0 always
+ exS21V0 <- exchangesStack(x = myData1, refStudy = myData2, .runApp = FALSE, interactive = TRUE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ resExS1V0 <- exS21V0$init()
+ expect_true(is(exS21V0, "MWController"))
+ expect_equal(exS21V0$ncharts, 1)
+ expect_equal(exS21V0$ncol, 1)
+ expect_equal(exS21V0$nrow, 1)
+ #get the data
+ dataExS21V0 <- .get_data_from_htmlwidget(exS21V0)
+ expect_equal(dataExS21V0$nega_offshore[indexHour], 0)
+ # edit myData2 to have a diff != 0
+ #pb timeZone local (PC, Travis, etc)
+ for (i in 0:5){
+ timeEditShift <- lubridate::hours(i)
+ timeEditMinus <- as.Date(timeEditValue) - timeEditShift
+ timeEditPlus <- as.Date(timeEditValue) + timeEditShift
+ myData2[ (time == timeEditMinus | time == timeEditPlus) & link == "a - a_offshore", `FLOW LIN.` := as.integer(`FLOW LIN.` + 2500)]
+ }
+ exS21V1 <- exchangesStack(x = myData1, refStudy = myData2, .runApp = FALSE, interactive = TRUE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ resExS1V0 <- exS21V1$init()
+ expect_true(is(exS21V1, "MWController"))
+ expect_equal(exS21V1$ncharts, 1)
+ expect_equal(exS21V1$ncol, 1)
+ expect_equal(exS21V1$nrow, 1)
+ dataExS21V1 <- .get_data_from_htmlwidget(exS21V1)
+ expect_equal(dataExS21V1$nega_offshore[indexHour], 2500)
+})
+
+test_that("exchangesStack, interactive, x and refStudy are antaresDataList", {
+ skip_if_not(.runExchangesStackTest)
+ myData1 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+ myData2 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+ myArea <- "a"
+ DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
+ #no interactive
+ exS1 <- exchangesStack(x = myData1, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ dataExS1 <- .get_data_from_htmlwidget(exS1)
+ timeEditValue <- "2018-04-25T00:00:00.000Z"
+ indexHour <- grep(timeEditValue, dataExS1$hour)
+ expect_gt(indexHour, 2)
+ expect_equal(dataExS1$nega_offshore[indexHour], 9)
+ # interactive no interactive
+ exS1I <- exchangesStack(x = myData1, .runApp = FALSE, interactive = TRUE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ resExS1 <- exS1I$init()
+ expect_true(is(exS1I, "MWController"))
+ expect_equal(exS1I$ncharts, 1)
+ expect_equal(exS1I$ncol, 1)
+ expect_equal(exS1I$nrow, 1)
+ dataExS1I <- .get_data_from_htmlwidget(exS1I)
+ expect_equal(dataExS1I$nega_offshore[indexHour], 9)
+
+ # interactive with refStudy but myData1 =myData2
+ exS21V0 <- exchangesStack(x = myData1, refStudy = myData2, .runApp = FALSE, interactive = TRUE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ exS21V0 <- exS21V0$init()
+ expect_true(is(exS21V0, "MWController"))
+ expect_equal(exS21V0$ncharts, 1)
+ expect_equal(exS21V0$ncol, 1)
+ expect_equal(exS21V0$nrow, 1)
+ dataExS21V0 <- .get_data_from_htmlwidget(exS21V0)
+ expect_equal(dataExS21V0$nega_offshore[indexHour], 0)
+ # edit myData2 to have a diff != 0
+ #pb timeZone local (PC, Travis, etc)
+ for (i in 0:5){
+ timeEditShift <- lubridate::hours(i)
+ timeEditMinus <- as.Date(timeEditValue) - timeEditShift
+ timeEditPlus <- as.Date(timeEditValue) + timeEditShift
+ myData2$links[ (time == timeEditMinus | time == timeEditPlus) & link == "a - a_offshore", `FLOW LIN.` := as.integer(`FLOW LIN.` + 2500)]
+ }
+ exS21V1 <- exchangesStack(x = myData1, refStudy = myData2, .runApp = FALSE, interactive = TRUE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ exS21V1 <- exS21V1$init()
+ expect_true(is(exS21V1, "MWController"))
+ expect_equal(exS21V1$ncharts, 1)
+ expect_equal(exS21V1$ncol, 1)
+ expect_equal(exS21V1$nrow, 1)
+ dataExS21V1 <- .get_data_from_htmlwidget(exS21V1)
+ expect_equal(dataExS21V1$nega_offshore[indexHour], 2500)
+ #ROW not null in myData1
+ for (i in 0:5){
+ timeEditShift <- lubridate::hours(i)
+ timeEditMinus <- as.Date(timeEditValue) - timeEditShift
+ timeEditPlus <- as.Date(timeEditValue) + timeEditShift
+ myData1$areas[ (time == timeEditMinus | time == timeEditPlus) & area == myArea, `ROW BAL.` := as.integer(`ROW BAL.` - 1500)]
+ }
+ #test if there is row
+ exS1V2 <- exchangesStack(x = myData1, .runApp = FALSE, interactive = TRUE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ exS1V2 <- exS1V2$init()
+ expect_true(is(exS1V2, "MWController"))
+ expect_equal(exS1V2$ncharts, 1)
+ expect_equal(exS1V2$ncol, 1)
+ expect_equal(exS1V2$nrow, 1)
+ dataExS1V2 <- .get_data_from_htmlwidget(exS1V2)
+ expect_equal(dataExS1V2$ROW[indexHour], 1500)
+ exS21V2 <- exchangesStack(x = myData1, refStudy = myData2, .runApp = FALSE, interactive = TRUE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ exS21V2 <- exS21V2$init()
+ expect_true(is(exS21V2, "MWController"))
+ expect_equal(exS21V2$ncharts, 1)
+ expect_equal(exS21V2$ncol, 1)
+ expect_equal(exS21V2$nrow, 1)
+ dataExS21V2 <- .get_data_from_htmlwidget(exS21V2)
+ expect_equal(dataExS21V2$nega_offshore[indexHour], 2500)
+ expect_equal(dataExS21V2$ROW[indexHour], 1500)
+ #ROW not null in myData2
+ for (i in 0:5){
+ timeEditShift <- lubridate::hours(i)
+ timeEditMinus <- as.Date(timeEditValue) - timeEditShift
+ timeEditPlus <- as.Date(timeEditValue) + timeEditShift
+ myData2$areas[ (time == timeEditMinus | time == timeEditPlus) & area == myArea, `ROW BAL.` := as.integer(`ROW BAL.` - 1000)]
+ }
+ exS21V3 <- exchangesStack(x = myData1, refStudy = myData2, .runApp = FALSE, interactive = TRUE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ exS21V3 <- exS21V3$init()
+ expect_true(is(exS21V3, "MWController"))
+ expect_equal(exS21V3$ncharts, 1)
+ expect_equal(exS21V3$ncol, 1)
+ expect_equal(exS21V3$nrow, 1)
+ dataExS21V3 <- .get_data_from_htmlwidget(exS21V3)
+ expect_equal(dataExS21V3$nega_offshore[indexHour], 2500)
+ expect_equal(dataExS21V3$ROW[indexHour], 500)
+})
+
+test_that("exchangesStack, interactive, x is a list of antaresDataTable and refStudy an antaresDataTable", {
+ skip_if_not(.runExchangesStackTest)
+ myData1 <- readAntares(links = "all", showProgress = FALSE)
+ myData2 <- readAntares(links = "all", showProgress = FALSE)
+ myData3 <- readAntares(links = "all", showProgress = FALSE)
+ myData4 <- readAntares(links = "all", showProgress = FALSE)
+ myDataList <- list(myData2, myData3, myData4)
+ myArea <- "a"
+ DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
+ # no interactive
+ exS2 <- exchangesStack(x = myDataList, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ # compare with myData3
+ idWidget <- 2
+ dataExS2 <- .get_data_from_htmlwidget(exS2, widgetsNumber = idWidget)
+ timeEditValue <- "2018-04-25T00:00:00.000Z"
+ indexHour <- grep(timeEditValue, dataExS2$hour)
+ expect_gt(indexHour, 2)
+ expect_equal(dataExS2$nega_offshore[indexHour], 9)
+ # interactive
+ exSList1 <- exchangesStack(x = myDataList, .runApp = FALSE, interactive = TRUE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ exSList1 <- exSList1$init()
+ expect_true(is(exSList1, "MWController"))
+ expect_equal(exSList1$ncharts, 3)
+ expect_equal(exSList1$ncol, 2)
+ expect_equal(exSList1$nrow, 2)
+ dataExS1I <- .get_data_from_htmlwidget(exSList1, widgetsNumber = idWidget)
+ expect_equal(dataExS1I$nega_offshore[indexHour], 9)
+ #identical myData, diff == 0 always
+ exS21V0 <- exchangesStack(x = myDataList, refStudy = myData1, .runApp = FALSE, interactive = TRUE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ exS21V0 <- exS21V0$init()
+ expect_true(is(exS21V0, "MWController"))
+ expect_equal(exS21V0$ncharts, 3)
+ expect_equal(exS21V0$ncol, 2)
+ expect_equal(exS21V0$nrow, 2)
+ dataExS21V0 <- .get_data_from_htmlwidget(exS21V0, widgetsNumber = idWidget)
+ expect_equal(dataExS21V0$nega_offshore[indexHour], 0)
+ # edit myData3 to have a diff != 0
+ #pb timeZone local (PC, Travis, etc)
+ for (i in 0:5){
+ timeEditShift <- lubridate::hours(i)
+ timeEditMinus <- as.Date(timeEditValue) - timeEditShift
+ timeEditPlus <- as.Date(timeEditValue) + timeEditShift
+ myData3[ (time == timeEditMinus | time == timeEditPlus) & link == "a - a_offshore", `FLOW LIN.` := as.integer(`FLOW LIN.` + 2500)]
+ }
+ exS21V1 <- exchangesStack(x = myDataList, refStudy = myData1, .runApp = FALSE, interactive = TRUE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ exS21V1 <- exS21V1$init()
+ expect_true(is(exS21V1, "MWController"))
+ expect_equal(exS21V1$ncharts, 3)
+ expect_equal(exS21V1$ncol, 2)
+ expect_equal(exS21V1$nrow, 2)
+ dataExS21V1 <- .get_data_from_htmlwidget(exS21V1, widgetsNumber = idWidget)
+ expect_equal(dataExS21V1$a_offshore[indexHour], 2500)
+})
+
+test_that("exchangesStack, interactive, x is a list of antaresDataList and refStudy an antaresDataList", {
+ skip_if_not(.runExchangesStackTest)
+ myData1 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+ myData2 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+ myData3 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+ myData4 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+
+ myDataList <- list(myData2, myData3, myData4)
+ myArea <- "a"
+ DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
+ # no interactive
+ exS2 <- exchangesStack(x = myDataList, interactive = FALSE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ # compare with myData3
+ idWidget <- 2
+ dataExS2 <- .get_data_from_htmlwidget(exS2, widgetsNumber = idWidget)
+ timeEditValue <- "2018-04-25T00:00:00.000Z"
+ indexHour <- grep(timeEditValue, dataExS2$hour)
+ expect_gt(indexHour, 2)
+ expect_equal(dataExS2$nega_offshore[indexHour], 9)
+ # interactive
+ exSList1 <- exchangesStack(x = myDataList, .runApp = FALSE, interactive = TRUE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ exSList1 <- exSList1$init()
+ expect_true(is(exSList1, "MWController"))
+ expect_equal(exSList1$ncharts, 3)
+ expect_equal(exSList1$ncol, 2)
+ expect_equal(exSList1$nrow, 2)
+ dataExS1I <- .get_data_from_htmlwidget(exSList1, widgetsNumber = idWidget)
+ expect_equal(dataExS1I$nega_offshore[indexHour], 9)
+
+ #identical myData, diff == 0 always
+ exSList1Ref <- exchangesStack(x = myDataList, refStudy = myData1, .runApp = FALSE, interactive = TRUE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ exSList1Ref <- exSList1Ref$init()
+ expect_true(is(exSList1Ref, "MWController"))
+ expect_equal(exSList1Ref$ncharts, 3)
+ expect_equal(exSList1Ref$ncol, 2)
+ expect_equal(exSList1Ref$nrow, 2)
+ dataExS21V0Ref <- .get_data_from_htmlwidget(exSList1Ref, widgetsNumber = idWidget)
+ expect_equal(dataExS21V0Ref$nega_offshore[indexHour], 0)
+ # edit myData3 to have a diff != 0
+ #pb timeZone local (PC, Travis, etc)
+ for (i in 0:5){
+ timeEditShift <- lubridate::hours(i)
+ timeEditMinus <- as.Date(timeEditValue) - timeEditShift
+ timeEditPlus <- as.Date(timeEditValue) + timeEditShift
+ myData3$links[ (time == timeEditMinus | time == timeEditPlus) & link == "a - a_offshore", `FLOW LIN.` := as.integer(`FLOW LIN.` + 2500)]
+ }
+ exS21V1 <- exchangesStack(x = myDataList, refStudy = myData1, .runApp = FALSE, interactive = TRUE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ exS21V1 <- exS21V1$init()
+ expect_true(is(exS21V1, "MWController"))
+ expect_equal(exS21V1$ncharts, 3)
+ expect_equal(exS21V1$ncol, 2)
+ expect_equal(exS21V1$nrow, 2)
+ dataExS21V1 <- .get_data_from_htmlwidget(exS21V1, widgetsNumber = idWidget)
+ expect_equal(dataExS21V1$a_offshore[indexHour], 2500)
+ #ROW not null in myData4
+ for (i in 0:5){
+ timeEditShift <- lubridate::hours(i)
+ timeEditMinus <- as.Date(timeEditValue) - timeEditShift
+ timeEditPlus <- as.Date(timeEditValue) + timeEditShift
+ myData4$areas[ (time == timeEditMinus | time == timeEditPlus) & area == myArea, `ROW BAL.` := as.integer(`ROW BAL.` - 1500)]
+ }
+ #test if there is row
+ exList <- exchangesStack(x = myDataList, .runApp = FALSE, interactive = TRUE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ exList <- exList$init()
+ expect_true(is(exList, "MWController"))
+ expect_equal(exList$ncharts, 3)
+ expect_equal(exList$ncol, 2)
+ expect_equal(exList$nrow, 2)
+ dataExList <- .get_data_from_htmlwidget(exList, widgetsNumber = idWidget)
+ expect_equal(dataExList$a_offshore[indexHour], 2500 - 9)
+ idRowNotNull <- 3
+ dataExListRow <- .get_data_from_htmlwidget(exList, widgetsNumber = idRowNotNull)
+ expect_equal(dataExListRow$ROW[indexHour], 1500)
+ #with a refStudy
+ exListListV2 <- exchangesStack(x = myDataList, refStudy = myData1, .runApp = FALSE, interactive = TRUE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ exListListV2 <- exListListV2$init()
+ expect_true(is(exListListV2, "MWController"))
+ expect_equal(exListListV2$ncharts, 3)
+ expect_equal(exListListV2$ncol, 2)
+ expect_equal(exListListV2$nrow, 2)
+ dataExListV2 <- .get_data_from_htmlwidget(exListListV2, widgetsNumber = idWidget)
+ expect_equal(dataExListV2$a_offshore[indexHour], 2500)
+ expect_equal(dataExListV2$ROW[indexHour], 0)
+ dataExListV2Row <- .get_data_from_htmlwidget(exListListV2, widgetsNumber = idRowNotNull)
+ expect_equal(dataExListV2Row$a_offshore[indexHour], 0)
+ expect_equal(dataExListV2Row$ROW[indexHour], 1500)
+ #ROW not null in refStudy myData1
+ for (i in 0:5){
+ timeEditShift <- lubridate::hours(i)
+ timeEditMinus <- as.Date(timeEditValue) - timeEditShift
+ timeEditPlus <- as.Date(timeEditValue) + timeEditShift
+ myData1$areas[ (time == timeEditMinus | time == timeEditPlus) & area == myArea, `ROW BAL.` := as.integer(`ROW BAL.` - 1000)]
+ }
+ exListListV3 <- exchangesStack(x = myDataList, refStudy = myData1, .runApp = FALSE, interactive = TRUE, area = myArea, dateRange = DR, stepPlot = TRUE)
+ exListListV3 <- exListListV3$init()
+ expect_true(is(exListListV3, "MWController"))
+ expect_equal(exListListV3$ncharts, 3)
+ expect_equal(exListListV3$ncol, 2)
+ expect_equal(exListListV3$nrow, 2)
+ dataExListV3 <- .get_data_from_htmlwidget(exListListV3, widgetsNumber = idRowNotNull)
+ expect_equal(dataExListV3$nega_offshore[indexHour], 0)
+ expect_equal(dataExListV3$ROW[indexHour], 500)
+ dataExListV3g2 <- .get_data_from_htmlwidget(exListListV3, widgetsNumber = idWidget)
+ expect_equal(dataExListV3g2$a_offshore[indexHour], 2500)
+ expect_equal(dataExListV3g2$negROW[indexHour], 1000)
+})
+
+test_that("exchangesStack, no interactive, x and refStudy are optsH5 ", {
+ if (.requireRhdf5_Antares(stopP = FALSE)){
+ skip_if_not(.runExchangesStackTest)
+ suppressMessages(writeAntaresH5(pathtemp, opts = opts, overwrite = TRUE))
+ optsH5 <- setSimulationPath(pathtemp)
+ myArea <- "a"
+ DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
+ ES1 <- exchangesStack(x = optsH5, interactive = FALSE, area = myArea, dateRange = DR)
+ dataHtmlWidgetES1 <- .get_data_from_htmlwidget(ES1)
+ timeEditValue <- "2018-04-25T00:00:00.000Z"
+ indexHour <- grep(timeEditValue, dataHtmlWidgetES1$hour)
+ expect_gt(indexHour, 2)
+ expect_equal(dataHtmlWidgetES1$nega_offshore[indexHour], 9)
+ # with refStudy
+ ESRef <- exchangesStack(x = optsH5, refStudy = optsH5, interactive = FALSE, area = myArea, dateRange = DR)
+ dataHtmlWidgetES1 <- .get_data_from_htmlwidget(ESRef)
+ expect_equal(dataHtmlWidgetES1$nega_offshore[indexHour], 0)
+ # with a new Study H5 test if compare prodStack works
+ ## create a new folder h5
+ pathInitial <- file.path(dirname(pathtemp), basename(pathtemp))
+ pathNewH5 <- file.path(pathInitial, "testH5")
+ if (!dir.exists(pathNewH5)){
+ dir.create(pathNewH5)
+ }
+ #write the study
+ #windows pb ? pathNewH5 <- gsub("/", "\\", pathNewH5, fixed = TRUE)
+ optsData <- antaresRead::setSimulationPath(path = studyPath)
+ suppressWarnings(writeAntaresH5(path = pathNewH5, opts = optsData,
+ overwrite = TRUE, supressMessages = TRUE))
+
+
+ pathNewH5File <- file.path(pathNewH5, list.files(pathNewH5))
+ myLink <- getLinks()[1]
+ .h5Antares_edit_variable(
+ pathH5 = pathNewH5File,
+ link = myLink,
+ timeId = 1:40,
+ antVar = "FLOW LIN.",
+ newValue = 15000
+ )
+
+ optsH5New <- setSimulationPath(path = pathNewH5File)
+ ES1New <- exchangesStack(x = optsH5New, interactive = FALSE, area = myArea, dateRange = DR)
+ dataHtmlWidgetES1 <- .get_data_from_htmlwidget(ES1New)
+ expect_equal(dataHtmlWidgetES1$nega_offshore[indexHour], 9)
+ expect_equal(dataHtmlWidgetES1$a_offshore[2], 15000)
+ ES1NewRef <- exchangesStack(x = optsH5New, refStudy = optsH5, interactive = FALSE, area = myArea, dateRange = DR)
+ dataHtmlWidgetES1Ref <- .get_data_from_htmlwidget(ES1NewRef)
+ expect_equal(dataHtmlWidgetES1Ref$nega_offshore[indexHour], 0)
+ expect_gt(dataHtmlWidgetES1Ref$a_offshore[2], 15000)
+ }
+})
+
+test_that("exchangesStack, no interactive, x is a list of optH5 and refStudy are optsH5 ", {
+ if (.requireRhdf5_Antares(stopP = FALSE)){
+ skip_if_not(.runExchangesStackTest)
+ suppressMessages(writeAntaresH5(pathtemp, opts = opts, overwrite = TRUE))
+ optsH5 <- setSimulationPath(pathtemp)
+
+ # with new Studies H5 test if compare prodStack works
+ ## create new folders h5
+ pathInitial <- file.path(dirname(pathtemp), basename(pathtemp))
+
+ listFolderToCreate <- c("testH5v2", "testH5v3", "testH5v4")
+ for (folder in listFolderToCreate){
+ pathNewH5 <- file.path(pathInitial, folder)
+ if (!dir.exists(pathNewH5)){
+ dir.create(pathNewH5)
+ }
+
+ #write the study
+ #windows pb ? pathNewH5 <- gsub("/", "\\", pathNewH5, fixed = TRUE)
+ optsData <- antaresRead::setSimulationPath(path = studyPath)
+ suppressWarnings(
+ writeAntaresH5(
+ path = pathNewH5,
+ opts = optsData,
+ overwrite = TRUE,
+ supressMessages = TRUE)
+ )
+ }
+ idWidgetToEdit <- 2
+ pathH5FolderToEdit <- file.path(pathInitial, listFolderToCreate[[idWidgetToEdit]])
+ pathH5FileToEdit <- file.path(pathH5FolderToEdit, list.files(pathH5FolderToEdit))
+ newValueFlow <- 15000
+ myLink <- getLinks()[1]
+ .h5Antares_edit_variable(
+ pathH5 = pathH5FileToEdit,
+ link = myLink,
+ timeId = 1:40,
+ antVar = "FLOW LIN.",
+ newValue = newValueFlow
+ )
+
+ optsList <- list()
+ antaresDataListH5 <- list()
+ for (i in 1:length(listFolderToCreate)){
+ pathOptsI <- file.path(pathInitial, listFolderToCreate[[i]])
+ optsList[[i]] <- setSimulationPath(path = pathOptsI)
+ antaresDataListH5[[i]] <- readAntares(links = myLink)
+ }
+ #test the data from h5
+ #get the data from the h5 file
+ antaresDataRef <- readAntares(opts = optsH5, links = myLink)
+ expect_equal(max(antaresDataListH5[[idWidgetToEdit]]$`FLOW LIN.`), newValueFlow)
+ expect_equal(max(antaresDataListH5[[1]]$`FLOW LIN.`), max(antaresDataRef$`FLOW LIN.`))
+ expect_equal(max(antaresDataListH5[[3]]$`FLOW LIN.`), max(antaresDataRef$`FLOW LIN.`))
+ # get the data from htmlwidget
+ myArea <- "a"
+ DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
+ ESList <- exchangesStack(x = optsList, interactive = FALSE, area = myArea, dateRange = DR)
+ dataHtmlWidgetES2 <- .get_data_from_htmlwidget(ESList, widgetsNumber = idWidgetToEdit)
+ expect_equal(dataHtmlWidgetES2$a_offshore[3], newValueFlow)
+ dataHtmlWidgetES1 <- .get_data_from_htmlwidget(ESList, widgetsNumber = 1)
+ expect_equal(dataHtmlWidgetES1$a_offshore[3], 0)
+ expect_equal(dataHtmlWidgetES1$nega_offshore[3], 6)
+ # with refStudy
+ ESListRef <- exchangesStack(x = optsList, refStudy = optsH5, interactive = FALSE, area = myArea, dateRange = DR)
+ dataHtmlWidgetES2Ref <- .get_data_from_htmlwidget(ESListRef, widgetsNumber = idWidgetToEdit)
+ expect_equal(dataHtmlWidgetES2Ref$a_offshore[3] - dataHtmlWidgetES1$nega_offshore[3], newValueFlow)
+ dataHtmlWidgetES1Ref <- .get_data_from_htmlwidget(ESListRef, widgetsNumber = 1)
+ expect_equal(dataHtmlWidgetES1Ref$a_offshore[3], 0)
+ expect_equal(dataHtmlWidgetES1Ref$nega_offshore[3], 0)
+ }
+})
+
+test_that("exchangesStack, interactive, x and refStudy are optsH5 ", {
+ if (.requireRhdf5_Antares(stopP = FALSE)){
+ skip_if_not(.runExchangesStackTest)
+ suppressMessages(writeAntaresH5(pathtemp, opts = opts, overwrite = TRUE))
+ optsH5 <- setSimulationPath(pathtemp)
+ myArea <- "a"
+ DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
+ # no interactive
+ ES1 <- exchangesStack(x = optsH5,
+ interactive = FALSE,
+ area = myArea,
+ dateRange = DR,
+ mcYearh5 = 1)
+ dataHtmlWidgetES1 <- .get_data_from_htmlwidget(ES1)
+ timeEditValue <- "2018-04-24T23:00:00.000Z"
+ indexHour <- grep(timeEditValue, dataHtmlWidgetES1$hour)
+ expect_gt(indexHour, 2)
+ expect_equal(dataHtmlWidgetES1$nega_offshore[indexHour], 10)
+ # with interactive
+ #FOR DEBUG
+ #ES1I <- exchangesStack(x = optsH5,
+ # interactive = TRUE)
+
+ ES1I <- exchangesStack(x = optsH5,
+ .runApp = FALSE,
+ interactive = TRUE,
+ dateRange = DR)
+ ES1I <- ES1I$init()
+ expect_true(is(ES1I, "MWController"))
+ expect_equal(ES1I$ncharts, 1)
+ expect_equal(ES1I$ncol, 1)
+ expect_equal(ES1I$nrow, 1)
+ dataHtmlWidgetES1I <- .get_data_from_htmlwidget(ES1I)
+ expect_equal(dataHtmlWidgetES1I$nega_offshore[indexHour], 10)
+ # with refStudy no interactive
+ ESRef <- exchangesStack(x = optsH5,
+ refStudy = optsH5,
+ interactive = FALSE,
+ area = myArea,
+ dateRange = DR,
+ mcYearh5 = 1)
+ dataHtmlWidgetES1 <- .get_data_from_htmlwidget(ESRef)
+ expect_equal(dataHtmlWidgetES1$nega_offshore[indexHour], 0)
+ # refStudy with interactive
+ ESRefI <- exchangesStack(x = optsH5,
+ refStudy = optsH5,
+ interactive = TRUE,
+ .runApp = FALSE,
+ area = myArea,
+ dateRange = DR)
+ ESRefI <- ESRefI$init()
+ expect_true(is(ESRefI, "MWController"))
+ expect_equal(ESRefI$ncharts, 1)
+ expect_equal(ESRefI$ncol, 1)
+ expect_equal(ESRefI$nrow, 1)
+ dataHtmlWidgetESRefI <- .get_data_from_htmlwidget(ESRefI)
+ expect_equal(dataHtmlWidgetESRefI$nega_offshore[indexHour], 0)
+ # with a new Study H5 test if compare prodStack works
+ ## create a new folder h5
+ pathInitial <- file.path(dirname(pathtemp), basename(pathtemp))
+ pathNewH5 <- file.path(pathInitial, "testH5")
+ if (!dir.exists(pathNewH5)){
+ dir.create(pathNewH5)
+ }
+ #write the study
+ #windows pb ? pathNewH5 <- gsub("/", "\\", pathNewH5, fixed = TRUE)
+ optsData <- antaresRead::setSimulationPath(path = studyPath)
+ suppressWarnings(writeAntaresH5(path = pathNewH5, opts = optsData,
+ overwrite = TRUE, supressMessages = TRUE))
+
+
+ pathNewH5File <- file.path(pathNewH5, list.files(pathNewH5))
+ myLink <- getLinks()[1]
+ .h5Antares_edit_variable(
+ pathH5 = pathNewH5File,
+ link = myLink,
+ timeId = 1:40,
+ antVar = "FLOW LIN.",
+ newValue = 15000,
+ mcYear = 1
+ )
+
+ optsH5New <- setSimulationPath(path = pathNewH5File)
+ #no interactive
+ ES1New <- exchangesStack(x = optsH5New,
+ interactive = FALSE,
+ area = myArea,
+ dateRange = DR,
+ mcYearh5 = 1)
+ dataHtmlWidgetES1New <- .get_data_from_htmlwidget(ES1New)
+ expect_equal(dataHtmlWidgetES1New$nega_offshore[indexHour], 10)
+ expect_equal(dataHtmlWidgetES1New$a_offshore[2], 15000)
+ # with interactive
+ ES1NewI <- exchangesStack(x = optsH5New,
+ interactive = TRUE,
+ .runApp = FALSE,
+ area = myArea,
+ dateRange = DR)
+ ES1NewI <- ES1NewI$init()
+ expect_true(is(ES1NewI, "MWController"))
+ expect_equal(ES1NewI$ncharts, 1)
+ expect_equal(ES1NewI$ncol, 1)
+ expect_equal(ES1NewI$nrow, 1)
+ dataHtmlWidgetES1New <- .get_data_from_htmlwidget(ES1NewI)
+ expect_equal(dataHtmlWidgetES1New$nega_offshore[indexHour], 10)
+ expect_equal(dataHtmlWidgetES1New$a_offshore[2], 15000)
+ # no interactive, refStudy,
+ ES1NewRef <- exchangesStack(x = optsH5New,
+ refStudy = optsH5,
+ interactive = FALSE,
+ area = myArea,
+ dateRange = DR,
+ mcYearh5 = 1)
+ dataHtmlWidgetES1Ref <- .get_data_from_htmlwidget(ES1NewRef)
+ expect_equal(dataHtmlWidgetES1Ref$nega_offshore[indexHour], 0)
+ expect_gt(dataHtmlWidgetES1Ref$a_offshore[2], 15000)
+ # interactive, refStudy,
+ ES1NewRefI <- exchangesStack(x = optsH5New,
+ refStudy = optsH5,
+ interactive = TRUE,
+ .runApp = FALSE,
+ area = myArea,
+ dateRange = DR,
+ mcYearh5 = 1)
+ ES1NewRefI <- ES1NewRefI$init()
+ expect_true(is(ES1NewRefI, "MWController"))
+ expect_equal(ES1NewRefI$ncharts, 1)
+ expect_equal(ES1NewRefI$ncol, 1)
+ expect_equal(ES1NewRefI$nrow, 1)
+ dataHtmlWidgetES1RefI <- .get_data_from_htmlwidget(ES1NewRefI)
+ expect_equal(dataHtmlWidgetES1RefI$nega_offshore[indexHour], 0)
+ expect_gt(dataHtmlWidgetES1RefI$a_offshore[2], 15000)
+ }
+})
+
+test_that("exchangesStack, interactive, x is a list of optsH5 and refStudy optsH5 , ", {
+ if (.requireRhdf5_Antares(stopP = FALSE)){
+ skip_if_not(.runExchangesStackTest)
+ suppressMessages(writeAntaresH5(pathtemp, opts = opts, overwrite = TRUE))
+ optsH5 <- setSimulationPath(pathtemp)
+
+ # with new Studies H5 test if compare prodStack works
+ ## create new folders h5
+ pathInitial <- file.path(dirname(pathtemp), basename(pathtemp))
+
+ listFolderToCreate <- c("testH5v2", "testH5v3", "testH5v4")
+ for (folder in listFolderToCreate){
+ pathNewH5 <- file.path(pathInitial, folder)
+ if (!dir.exists(pathNewH5)){
+ dir.create(pathNewH5)
+ }
+
+ #write the study
+ #windows pb ? pathNewH5 <- gsub("/", "\\", pathNewH5, fixed = TRUE)
+ optsData <- antaresRead::setSimulationPath(path = studyPath)
+ suppressWarnings(
+ writeAntaresH5(
+ path = pathNewH5,
+ opts = optsData,
+ overwrite = TRUE,
+ supressMessages = TRUE)
+ )
+ }
+ pathH5FolderToEdit <- file.path(pathInitial, listFolderToCreate[[2]])
+ pathH5FileToEdit <- file.path(pathH5FolderToEdit, list.files(pathH5FolderToEdit))
+ myLink <- getLinks()[1]
+ newValueFlow <- 50000
+ mcYearToTestList <- c(2, NULL)
+ for (mcYearToTest in mcYearToTestList){
+ .h5Antares_edit_variable(
+ pathH5 = pathH5FileToEdit,
+ link = myLink,
+ timeId = 1:40,
+ antVar = "FLOW LIN.",
+ newValue = newValueFlow,
+ mcYear = mcYearToTest
+ )
+
+ optsList <- list()
+ antaresDataListH5 <- list()
+ for (i in 1:length(listFolderToCreate)){
+ pathOptsI <- file.path(pathInitial, listFolderToCreate[[i]])
+ optsList[[i]] <- setSimulationPath(path = pathOptsI)
+ antaresDataListH5[[i]] <- readAntares(links = myLink, mcYear = mcYearToTest)
+ }
+
+ DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
+ #try without refStudy and interactive == FALSE
+ myArea <- "a"
+ ESListNoInt <- exchangesStack(x = optsList,
+ dateRange = DR,
+ area = myArea,
+ interactive = FALSE,
+ mcYearh5 = mcYearToTest)
+ dataHtmlWidgetESNoInt <- .get_data_from_htmlwidget(ESListNoInt, widgetsNumber = 2)
+ expect_equal(max(dataHtmlWidgetESNoInt$a_offshore, na.rm = TRUE), 50000)
+
+ # try with refStudy
+ ESListNoInt <- exchangesStack(x = optsList,
+ refStudy = optsH5,
+ interactive = FALSE,
+ areas = myArea,
+ dateRange = DR,
+ mcYearh5 = mcYearToTest)
+ ## get the data from htmlwidget
+ dataHtmlWidgetES1 <- .get_data_from_htmlwidget(ESListNoInt, widgetsNumber = 1)
+ dataHtmlWidgetES2 <- .get_data_from_htmlwidget(ESListNoInt, widgetsNumber = 2)
+
+ ## get the data from the h5 file
+ antaresDataRef <- readAntares(opts = optsH5, links = myLink, mcYears = mcYearToTest)
+ expect_equal(max(antaresDataListH5[[2]]$`FLOW LIN.`), newValueFlow)
+ expect_equal(max(antaresDataListH5[[1]]$`FLOW LIN.`), max(antaresDataRef$`FLOW LIN.`))
+ expect_equal(max(antaresDataListH5[[3]]$`FLOW LIN.`), max(antaresDataRef$`FLOW LIN.`))
+ expect_equal(antaresDataListH5[[2]]$`OV. COST`, antaresDataRef$`OV. COST`)
+
+ ## compare data
+ resCompareData1_ref <- antaresProcessing::compare(x = antaresDataRef, y = antaresDataListH5[[1]])
+ resCompareData2_ref <- antaresProcessing::compare(x = antaresDataRef, y = antaresDataListH5[[2]])
+ expect_equal(resCompareData1_ref[timeId == timeId[40], `FLOW LIN.`], -dataHtmlWidgetES1$nega_offshore[[2]])
+ expect_gt(resCompareData2_ref[timeId == timeId[40], `FLOW LIN.`], newValueFlow)
+
+ # interactive == TRUE
+ ## DEBUG
+ # PSWORef <- prodStack(x = optsList,
+ # dateRange = DR,
+ # h5requestFiltering = list(areas = myArea,
+ # mcYears = mcYearToTest),
+ # .runApp = FALSE,
+ # interactive = TRUE)
+ # PSWORef <- PSWORef$init()
+ # ESWORef <- exchangesStack(x = antaresDataListH5[[2]])
+ # ESWORef <- exchangesStack(x = optsList)
+ # ESWORef <- exchangesStack(x = antaresDataListH5[[2]],
+ # dateRange = DR)
+ # ESWORef <- exchangesStack(x = optsList,
+ # dateRange = DR)
+
+ ESWORef <- exchangesStack(
+ x = optsList,
+ dateRange = DR,
+ .runApp = FALSE,
+ interactive = TRUE,
+ h5requestFiltering = list(
+ areas = getAreas(select = "a"),
+ links = getLinks(areas = myArea),
+ mcYears = mcYearToTest))
+ ESWORef <- ESWORef$init()
+ expect_true(is(ESWORef, "MWController"))
+ expect_equal(ESWORef$ncharts, 3)
+ expect_equal(ESWORef$ncol, 2)
+ expect_equal(ESWORef$nrow, 2)
+ ## get the data from htmlwidget
+ dataHtmlWidgetESWORef <- .get_data_from_htmlwidget(ESWORef, widgetsNumber = 2)
+ expect_equal(dataHtmlWidgetESWORef$a_offshore[[2]], 50000)
+ expect_equal(dataHtmlWidgetESWORef$nega_offshore[[2]], 0)
+ dataHtmlWidgetESWORef1 <- .get_data_from_htmlwidget(ESWORef, widgetsNumber = 1)
+ expect_equal(dataHtmlWidgetESWORef1$a_offshore[[2]], 0)
+ expect_gt(dataHtmlWidgetESWORef1$nega_offshore[[2]], 0)
+
+ # fourth, MWController with refStudy and interactive == TRUE
+ ESWORefListI <- exchangesStack(
+ x = optsList,
+ refStudy = optsH5,
+ dateRange = DR,
+ .runApp = FALSE,
+ interactive = TRUE,
+ h5requestFiltering = list(
+ areas = getAreas(select = "a"),
+ links = getLinks(areas = myArea),
+ mcYears = mcYearToTest))
+ ESWORefListI <- ESWORefListI$init()
+ expect_true(is(ESWORefListI, "MWController"))
+ expect_equal(ESWORefListI$ncharts, 3)
+ expect_equal(ESWORefListI$ncol, 2)
+ expect_equal(ESWORefListI$nrow, 2)
+ #check data from htmlwidgets
+ dataHtmlWidgetES31 <- .get_data_from_htmlwidget(ESWORefListI, widgetsNumber = 2)
+ expect_gt(dataHtmlWidgetES31$a_offshore[[2]], 50000)
+ expect_equal(dataHtmlWidgetES31$nega_offshore[[2]], 0)
+ dataHtmlWidgetES21 <- .get_data_from_htmlwidget(ESWORefListI, widgetsNumber = 1)
+ expect_equal(dataHtmlWidgetES21$a_offshore[[2]], 0)
+ expect_equal(dataHtmlWidgetES21$nega_offshore[[2]], 0)
+
+ resOptsH5Old <- readAntares(opts = optsH5, links = myLink, showProgress = FALSE, mcYears = mcYearToTest)
+ resOptsH5New <- readAntares(opts = optsList[[2]], links = myLink, showProgress = FALSE, mcYears = mcYearToTest)
+ #timeId for time = "2018-04-24 00:00:00 UTC" ? timeId = 2713
+ timeIdVal <- 2713
+ expect_equal(resOptsH5New[timeId == timeIdVal, `FLOW LIN.`], newValueFlow)
+ expect_lt(resOptsH5Old[timeId == timeIdVal, `FLOW LIN.`], 0)
+
+ resCompareData <- antaresProcessing::compare(x = resOptsH5Old, y = resOptsH5New)
+ expect_gt(resCompareData[timeId == timeIdVal, `FLOW LIN.`], newValueFlow)
+ expect_equal(resCompareData[timeId == timeIdVal, `FLOW LIN.`], dataHtmlWidgetES31$a_offshore[[1]])
+ #no change after timeID > 40
+ expect_equal(resCompareData[timeId == (timeIdVal + 90), `FLOW LIN.`], dataHtmlWidgetES31$a_offshore[[50]])
+ expect_equal(dataHtmlWidgetES21$a_offshore[[1]], 0)
+ expect_equal(dataHtmlWidgetES21$nega_offshore[[1]], 0)
+ }
+ }
+
+})
diff --git a/tests/testthat/test-graphUtils.R b/tests/testthat/test-graphUtils.R
index 47aebd4..b4cdc46 100644
--- a/tests/testthat/test-graphUtils.R
+++ b/tests/testthat/test-graphUtils.R
@@ -1,47 +1,47 @@
-# context(".compOpts")
-#
-#
-# test_that(".compOpts", {
-#
-# expect_true(.compOpts("", "cp")$ncharts == 2)
-# expect_true(.compOpts("", NULL)$ncharts == 1)
-# expect_true(.compOpts(list(), NULL)$ncharts == 1)
-# })
-#
-# if(.requireRhdf5_Antares(stopP = FALSE)){
-# context(".dateRangeJoin")
-# test_that(".dateRangeJoin", {
-# dt <- list()
-# dt$x <- list(list(dateRange = as.Date(c("2010-01-01", "2010-01-10"))),
-# list(dateRange = as.Date(c("2010-01-02", "2010-01-09"))))
-#
-#
-#
-#
-# expect_true(.dateRangeJoin(dt, "union", "min") == as.Date("2010-01-01"))
-# expect_true(.dateRangeJoin(dt, "union", "max") == as.Date("2010-01-10"))
-# expect_true(.dateRangeJoin(dt, "intersect", "max") == as.Date("2010-01-09"))
-# expect_true(.dateRangeJoin(dt, "intersect", "min") == as.Date("2010-01-02"))
-#
-# dt2 <- list()
-# dt2$x <- list(list(ar = list(dateRange = as.Date(c("2010-01-01", "2010-01-10")))),
-# list(ar = list(dateRange = as.Date(c("2010-01-02", "2010-01-09")))))
-#
-# expect_true(.dateRangeJoin(dt2, "union", "min", "ar") == as.Date("2010-01-01"))
-# expect_true(.dateRangeJoin(dt2, "union", "max", "ar") == as.Date("2010-01-10"))
-# expect_true(.dateRangeJoin(dt2, "intersect", "max", "ar") == as.Date("2010-01-09"))
-# expect_true(.dateRangeJoin(dt2, "intersect", "min", "ar") == as.Date("2010-01-02"))
-#
-# })
-#
-# context(".loadH5Data")
-# test_that(".loadH5Data", {
-# opts <- setSimulationPath(studyPath)
-# sharerequest <- list()
-# sharerequest$mcYearh_l <- "all"
-# sharerequest$tables_l <- c("areas", "links", "clusters", "districts")
-# sharerequest$timeSteph5_l <- "hourly"
-# expect_true("antaresDataList" %in% class(.loadH5Data(sharerequest, opts)))
-#
-# })
-# }
+context(".compOpts")
+
+
+test_that(".compOpts", {
+
+ expect_true(.compOpts("", "cp")$ncharts == 2)
+ expect_true(.compOpts("", NULL)$ncharts == 1)
+ expect_true(.compOpts(list(), NULL)$ncharts == 1)
+})
+
+if(.requireRhdf5_Antares(stopP = FALSE)){
+ context(".dateRangeJoin")
+ test_that(".dateRangeJoin", {
+ dt <- list()
+ dt$x <- list(list(dateRange = as.Date(c("2010-01-01", "2010-01-10"))),
+ list(dateRange = as.Date(c("2010-01-02", "2010-01-09"))))
+
+
+
+
+ expect_true(.dateRangeJoin(dt, "union", "min") == as.Date("2010-01-01"))
+ expect_true(.dateRangeJoin(dt, "union", "max") == as.Date("2010-01-10"))
+ expect_true(.dateRangeJoin(dt, "intersect", "max") == as.Date("2010-01-09"))
+ expect_true(.dateRangeJoin(dt, "intersect", "min") == as.Date("2010-01-02"))
+
+ dt2 <- list()
+ dt2$x <- list(list(ar = list(dateRange = as.Date(c("2010-01-01", "2010-01-10")))),
+ list(ar = list(dateRange = as.Date(c("2010-01-02", "2010-01-09")))))
+
+ expect_true(.dateRangeJoin(dt2, "union", "min", "ar") == as.Date("2010-01-01"))
+ expect_true(.dateRangeJoin(dt2, "union", "max", "ar") == as.Date("2010-01-10"))
+ expect_true(.dateRangeJoin(dt2, "intersect", "max", "ar") == as.Date("2010-01-09"))
+ expect_true(.dateRangeJoin(dt2, "intersect", "min", "ar") == as.Date("2010-01-02"))
+
+ })
+
+ context(".loadH5Data")
+ test_that(".loadH5Data", {
+ opts <- setSimulationPath(studyPath)
+ sharerequest <- list()
+ sharerequest$mcYearh_l <- "all"
+ sharerequest$tables_l <- c("areas", "links", "clusters", "districts")
+ sharerequest$timeSteph5_l <- "hourly"
+ expect_true("antaresDataList" %in% class(.loadH5Data(sharerequest, opts)))
+
+ })
+}
diff --git a/tests/testthat/test-plotMap.R b/tests/testthat/test-plotMap.R
index 55f088b..45254c9 100644
--- a/tests/testthat/test-plotMap.R
+++ b/tests/testthat/test-plotMap.R
@@ -1,138 +1,138 @@
-# context("plotMap")
-#
-# test_that("plotMap, no interactive", {
-#
-# dta <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-# testClass <- function(obj){
-# class(obj)[1] == 'combineWidgets'
-# }
-# load(system.file("mapLayout/ml.rda", package = "antaresViz"))
-#
-# listArgs <- list(noarg = list(x = dta, interactive = FALSE, mapLayout = ml),
-# colorLinks = list(x = dta, interactive = FALSE, mapLayout = ml, colLinkVar = "FLOW LIN."),
-# colorAll = list(x = dta, interactive = FALSE, mapLayout = ml, colLinkVar = "FLOW LIN.",
-# colAreaVar = "OP. COST")
-# )
-#
-# lapply(listArgs, function(X){
-# re1 <- do.call(plotMap, X)
-# expect_true(testClass(re1))
-# })
-#
-# })
-#
-# test_that("plotMap, no interactive return error", {
-#
-# dta <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-# load(system.file("mapLayout/ml.rda", package = "antaresViz"))
-#
-# expect_error(plotMap(x = dta, mapLayout = ml , interactive = FALSE, compare = "areas"))
-#
-#
-# })
-#
-# test_that("plotMap, interactive", {
-# dta <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-# load(system.file("mapLayout/ml.rda", package = "antaresViz"))
-# VV <- plotMap(x = dta, mapLayout = ml, .runApp = FALSE, interactive = TRUE)
-# VV$init()
-# expect_true("MWController" %in% class(VV))
-# })
-#
-# test_that("plotMap, no interactive, x and refStudy are antaresDataList", {
-# dta <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-# load(system.file("mapLayout/ml.rda", package = "antaresViz"))
-# resPlotMap <- plotMap(x = dta,
-# mapLayout = ml,
-# interactive = FALSE,
-# colAreaVar = "LOAD",
-# sizeAreaVars = c("LOAD", "WIND", "SOLAR"))
-# expect_true("htmlwidget" %in% class(resPlotMap))
-# valToValid <- .getDataFromPlotMap(area = "c",
-# time = "sam. 05 mai 2018
17:00",
-# variable = "LOAD",
-# htmlPlotMap = resPlotMap)
-# expect_gt(valToValid, 50000)
-# # with refStudy
-# resPlotMap <- plotMap(x = dta,
-# refStudy = dta,
-# mapLayout = ml,
-# interactive = FALSE,
-# colAreaVar = "LOAD",
-# sizeAreaVars = c("LOAD", "WIND", "SOLAR"))
-# expect_true("htmlwidget" %in% class(resPlotMap))
-# valToValid <- .getDataFromPlotMap(area = "c",
-# time = "sam. 05 mai 2018
17:00",
-# variable = "LOAD",
-# htmlPlotMap = resPlotMap)
-# expect_equal(valToValid, 0)
-# # edit myData
-# data2 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-# data2$areas[ , LOAD := as.double(LOAD)][area=="c", LOAD := as.double(LOAD +2500.0)]
-# resPlotMap2 <- plotMap(x = data2,
-# refStudy = dta,
-# mapLayout = ml,
-# interactive = FALSE,
-# colAreaVar = "LOAD",
-# sizeAreaVars = c("LOAD", "WIND", "SOLAR"))
-# expect_true("htmlwidget" %in% class(resPlotMap2))
-# valToValid <- .getDataFromPlotMap(area = "c",
-# time = "sam. 05 mai 2018
17:00",
-# variable = "LOAD",
-# htmlPlotMap = resPlotMap2)
-# expect_equal(valToValid, 2500)
-# })
-#
-# test_that("plotMap, no interactive, x is a list of antaresDataList and refStudy an antaresDataList", {
-# data1 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-# dataList <- list(data1, data1, data1)
-# load(system.file("mapLayout/ml.rda", package = "antaresViz"))
-# resPlotMap <- plotMap(x = dataList,
-# mapLayout = ml,
-# interactive = FALSE,
-# colAreaVar = "LOAD",
-# sizeAreaVars = c("LOAD", "WIND", "SOLAR"))
-# expect_true("htmlwidget" %in% class(resPlotMap))
-# valToValid <- .getDataFromPlotMap(area = "c",
-# time = "sam. 05 mai 2018
17:00",
-# variable = "LOAD",
-# htmlPlotMap = resPlotMap,
-# idWidget = 2)
-# expect_gt(valToValid, 50000)
-# # with refStudy
-# resPlotMap <- plotMap(x = dataList,
-# refStudy = data1,
-# mapLayout = ml,
-# interactive = FALSE,
-# colAreaVar = "LOAD",
-# sizeAreaVars = c("LOAD", "WIND", "SOLAR"))
-# expect_true("htmlwidget" %in% class(resPlotMap))
-# valToValid <- .getDataFromPlotMap(area = "c",
-# time = "sam. 05 mai 2018
17:00",
-# variable = "LOAD",
-# htmlPlotMap = resPlotMap,
-# idWidget = 2)
-# expect_equal(valToValid, 0)
-# # edit myData
-# data2 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-# data1 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-# data2$areas[ , LOAD := as.double(LOAD)][area=="c", LOAD := as.double(LOAD +2500.0)]
-# dataList2 <- list(data1, data2, data1)
-# expect_equal(dataList2[[2]]$areas[area=="c", LOAD], dataList2[[1]]$areas[area=="c", LOAD] + 2500)
-# resPlotMap2 <- plotMap(x = dataList2,
-# refStudy = data1,
-# mapLayout = ml,
-# interactive = FALSE,
-# colAreaVar = "LOAD",
-# sizeAreaVars = c("LOAD", "WIND", "SOLAR"))
-# expect_true("htmlwidget" %in% class(resPlotMap2))
-# valToValid <- .getDataFromPlotMap(area = "c",
-# time = "sam. 05 mai 2018
17:00",
-# variable = "LOAD",
-# htmlPlotMap = resPlotMap2,
-# idWidget = 2)
-# expect_equal(valToValid, 2500)
-# })
+context("plotMap")
+
+test_that("plotMap, no interactive", {
+
+ dta <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+ testClass <- function(obj){
+ class(obj)[1] == 'combineWidgets'
+ }
+ load(system.file("mapLayout/ml.rda", package = "antaresViz"))
+
+ listArgs <- list(noarg = list(x = dta, interactive = FALSE, mapLayout = ml),
+ colorLinks = list(x = dta, interactive = FALSE, mapLayout = ml, colLinkVar = "FLOW LIN."),
+ colorAll = list(x = dta, interactive = FALSE, mapLayout = ml, colLinkVar = "FLOW LIN.",
+ colAreaVar = "OP. COST")
+ )
+
+ lapply(listArgs, function(X){
+ re1 <- do.call(plotMap, X)
+ expect_true(testClass(re1))
+ })
+
+})
+
+test_that("plotMap, no interactive return error", {
+
+ dta <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+ load(system.file("mapLayout/ml.rda", package = "antaresViz"))
+
+ expect_error(plotMap(x = dta, mapLayout = ml , interactive = FALSE, compare = "areas"))
+
+
+})
+
+test_that("plotMap, interactive", {
+ dta <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+ load(system.file("mapLayout/ml.rda", package = "antaresViz"))
+ VV <- plotMap(x = dta, mapLayout = ml, .runApp = FALSE, interactive = TRUE)
+ VV$init()
+ expect_true("MWController" %in% class(VV))
+})
+
+test_that("plotMap, no interactive, x and refStudy are antaresDataList", {
+ dta <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+ load(system.file("mapLayout/ml.rda", package = "antaresViz"))
+ resPlotMap <- plotMap(x = dta,
+ mapLayout = ml,
+ interactive = FALSE,
+ colAreaVar = "LOAD",
+ sizeAreaVars = c("LOAD", "WIND", "SOLAR"))
+ expect_true("htmlwidget" %in% class(resPlotMap))
+ valToValid <- .getDataFromPlotMap(area = "c",
+ time = "sam. 05 mai 2018
17:00",
+ variable = "LOAD",
+ htmlPlotMap = resPlotMap)
+ expect_gt(valToValid, 50000)
+ # with refStudy
+ resPlotMap <- plotMap(x = dta,
+ refStudy = dta,
+ mapLayout = ml,
+ interactive = FALSE,
+ colAreaVar = "LOAD",
+ sizeAreaVars = c("LOAD", "WIND", "SOLAR"))
+ expect_true("htmlwidget" %in% class(resPlotMap))
+ valToValid <- .getDataFromPlotMap(area = "c",
+ time = "sam. 05 mai 2018
17:00",
+ variable = "LOAD",
+ htmlPlotMap = resPlotMap)
+ expect_equal(valToValid, 0)
+ # edit myData
+ data2 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+ data2$areas[ , LOAD := as.double(LOAD)][area=="c", LOAD := as.double(LOAD +2500.0)]
+ resPlotMap2 <- plotMap(x = data2,
+ refStudy = dta,
+ mapLayout = ml,
+ interactive = FALSE,
+ colAreaVar = "LOAD",
+ sizeAreaVars = c("LOAD", "WIND", "SOLAR"))
+ expect_true("htmlwidget" %in% class(resPlotMap2))
+ valToValid <- .getDataFromPlotMap(area = "c",
+ time = "sam. 05 mai 2018
17:00",
+ variable = "LOAD",
+ htmlPlotMap = resPlotMap2)
+ expect_equal(valToValid, 2500)
+})
+
+test_that("plotMap, no interactive, x is a list of antaresDataList and refStudy an antaresDataList", {
+ data1 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+ dataList <- list(data1, data1, data1)
+ load(system.file("mapLayout/ml.rda", package = "antaresViz"))
+ resPlotMap <- plotMap(x = dataList,
+ mapLayout = ml,
+ interactive = FALSE,
+ colAreaVar = "LOAD",
+ sizeAreaVars = c("LOAD", "WIND", "SOLAR"))
+ expect_true("htmlwidget" %in% class(resPlotMap))
+ valToValid <- .getDataFromPlotMap(area = "c",
+ time = "sam. 05 mai 2018
17:00",
+ variable = "LOAD",
+ htmlPlotMap = resPlotMap,
+ idWidget = 2)
+ expect_gt(valToValid, 50000)
+ # with refStudy
+ resPlotMap <- plotMap(x = dataList,
+ refStudy = data1,
+ mapLayout = ml,
+ interactive = FALSE,
+ colAreaVar = "LOAD",
+ sizeAreaVars = c("LOAD", "WIND", "SOLAR"))
+ expect_true("htmlwidget" %in% class(resPlotMap))
+ valToValid <- .getDataFromPlotMap(area = "c",
+ time = "sam. 05 mai 2018
17:00",
+ variable = "LOAD",
+ htmlPlotMap = resPlotMap,
+ idWidget = 2)
+ expect_equal(valToValid, 0)
+ # edit myData
+ data2 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+ data1 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+ data2$areas[ , LOAD := as.double(LOAD)][area=="c", LOAD := as.double(LOAD +2500.0)]
+ dataList2 <- list(data1, data2, data1)
+ expect_equal(dataList2[[2]]$areas[area=="c", LOAD], dataList2[[1]]$areas[area=="c", LOAD] + 2500)
+ resPlotMap2 <- plotMap(x = dataList2,
+ refStudy = data1,
+ mapLayout = ml,
+ interactive = FALSE,
+ colAreaVar = "LOAD",
+ sizeAreaVars = c("LOAD", "WIND", "SOLAR"))
+ expect_true("htmlwidget" %in% class(resPlotMap2))
+ valToValid <- .getDataFromPlotMap(area = "c",
+ time = "sam. 05 mai 2018
17:00",
+ variable = "LOAD",
+ htmlPlotMap = resPlotMap2,
+ idWidget = 2)
+ expect_equal(valToValid, 2500)
+})
# test_that("plotMap, interactive, x and refStudy are antaresDataList", {
# dta <- readAntares(areas = "all", links = "all", showProgress = FALSE)
diff --git a/tests/testthat/test-plotThermalGroupCapacities.R b/tests/testthat/test-plotThermalGroupCapacities.R
index 4b792c7..8262b2f 100644
--- a/tests/testthat/test-plotThermalGroupCapacities.R
+++ b/tests/testthat/test-plotThermalGroupCapacities.R
@@ -1,10 +1,10 @@
-# context("plotThermalGroupCapacities")
-#
-# test_that("plotThermalGroupCapacities", {
-# opts <- setSimulationPath(studyPath)
-# GG <- plotThermalGroupCapacities( data = thermalGroupCapacities(opts))
-#
-# expect_true("htmlwidget" %in% class(GG))
-#
-# })
-#
+context("plotThermalGroupCapacities")
+
+test_that("plotThermalGroupCapacities", {
+ opts <- setSimulationPath(studyPath)
+ GG <- plotThermalGroupCapacities( data = thermalGroupCapacities(opts))
+
+ expect_true("htmlwidget" %in% class(GG))
+
+})
+
diff --git a/tests/testthat/test-plotXY.R b/tests/testthat/test-plotXY.R
index 537fcab..ccd9151 100644
--- a/tests/testthat/test-plotXY.R
+++ b/tests/testthat/test-plotXY.R
@@ -1,10 +1,10 @@
-# context("prodStack no interactive")
-#
-# test_that("prodStack, no interactive", {
-# skip_if_not_installed("hexbin")
-# if(.requireRhdf5_Antares(stopP = FALSE)){
-# dta <- readAntares(areas = "all", showProgress = FALSE)
-# g <- plotXY(dta, "NODU", "LOAD", precision = 50, sizeOnCount = FALSE)
-# expect_true("htmlwidget" %in% class(g))
-# }
-# })
+context("prodStack no interactive")
+
+test_that("prodStack, no interactive", {
+ skip_if_not_installed("hexbin")
+ if(.requireRhdf5_Antares(stopP = FALSE)){
+ dta <- readAntares(areas = "all", showProgress = FALSE)
+ g <- plotXY(dta, "NODU", "LOAD", precision = 50, sizeOnCount = FALSE)
+ expect_true("htmlwidget" %in% class(g))
+ }
+})
diff --git a/tests/testthat/test-prodStack.R b/tests/testthat/test-prodStack.R
index 959bcb4..1f77b71 100644
--- a/tests/testthat/test-prodStack.R
+++ b/tests/testthat/test-prodStack.R
@@ -1,731 +1,731 @@
-# context("prodStack")
-#
-# test_that("prodStack, no interactive", {
-# dta <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-# testClass <- function(obj){
-# class(obj)[1] == "combineWidgets"
-# }
-# listArgs <- list(noarg = list(x = dta, interactive = FALSE, areas = "a"),
-# areas2 = list(x = dta, interactive = FALSE, areas = c("a", "b"))
-# )
-#
-# lapply(listArgs, function(X){
-# re1 <- do.call(prodStack, X)
-# expect_true(testClass(re1))
-# })
-#
-# })
-#
-# test_that("prodStack, no interactive return error", {
-#
-# dta <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-# expect_error(prodStack(dta, interactive = FALSE, compare = "areas"))
-#
-# })
-#
-# test_that("prodStack, interactive", {
-# dta <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-# VV <- prodStack(dta, interactive = FALSE)
-# expect_true("htmlwidget" %in% class(VV))
-# })
-#
-# test_that("prodStack must work with refStudy, if x and refStudy are antaresDataList, ", {
-# myData1 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-# myData2 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-#
-# myArea <- "a"
-# DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
-# PS3 <- prodStack(x = myData2, refStudy = myData1, interactive = FALSE, areas = myArea, dateRange = DR)
-#
-# resCompare <- antaresProcessing::compare(myData2, myData1, method = "diff")
-# dataHtmlWidgetPS <- .get_data_from_htmlwidget(PS3)
-#
-# expect_true(isTRUE(max(resCompare$areas$GAS) == max(dataHtmlWidgetPS$neggas, na.rm = TRUE)))
-#
-# #pb timeZine local (PC, Travis, etc)
-# for (i in 0:5){
-# timeEditShift <- lubridate::hours(i)
-# timeEditMinus <- as.Date(DR[1]) - timeEditShift
-# timeEditPlus <- as.Date(DR[1]) + timeEditShift
-# myData1$areas[ (time == timeEditMinus | time == timeEditPlus) & area == myArea, GAS := as.integer(GAS + 2500)]
-# }
-# #check console
-# #myData1$areas[ time == as.Date(DR)[1] & area == myArea, ]$GAS
-# #myData2$areas[ time == as.Date(DR)[1] & area == myArea, ]$GAS
-#
-# expect_true(isTRUE(all.equal(myData2$areas[ time == as.Date(DR)[1] & area == myArea, ]$GAS + 2500, myData1$areas[ time == as.Date(DR)[1] & area == myArea, ]$GAS)))
-#
-# PS3 <- prodStack(x = myData2, refStudy = myData1, interactive = FALSE, areas = myArea, dateRange = DR)
-#
-# dataHtmlWidgetPS <- .get_data_from_htmlwidget(PS3)
-# resCompare <- antaresProcessing::compare(myData1, myData2, method = "diff")
-# expect_true(all.equal(resCompare$areas[ time == as.Date(DR)[1] & area == myArea, GAS ], - (dataHtmlWidgetPS$neggas[[2]])))
-# #after DR + 5 hours (no change)
-# expect_true(all.equal(0, dataHtmlWidgetPS$neggas[[20]]))
-# })
-#
-# test_that("prodStack must work with refStudy, if x is a list of antaresDataList and refStudy an antaresDataList, ", {
-# myData1 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-# myData2 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-# myData3 <- readAntares(areas = c("a", "b", "c"), links = "all", showProgress = FALSE)
-# myData4 <- readAntares(areas = c("a", "b"), links = "all", showProgress = FALSE)
-# myArea <- "a"
-# myDataList <- list(myData4, myData3, myData2)
-# DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
-# PS1_list <- prodStack(x = myDataList, refStudy = myData1, interactive = FALSE, areas = myArea, dateRange = DR)
-# resCompare <- antaresProcessing::compare(myDataList[[3]], myData1, method = "diff")
-# dataHtmlWidgetPS <- .get_data_from_htmlwidget(PS1_list, widgetsNumber = 3)
-# all.equal(max(resCompare$areas$GAS), max(dataHtmlWidgetPS$neggas, na.rm = TRUE))
-# #pb timeZone local (PC, Travis, etc)
-# for (i in 0:5){
-# timeEditShift <- lubridate::hours(i)
-# timeEditMinus <- as.Date(DR[1]) - timeEditShift
-# timeEditPlus <- as.Date(DR[1]) + timeEditShift
-# myData1$areas[ (time == timeEditMinus | time == timeEditPlus) & area == myArea, GAS := as.integer(GAS + 2500)]
-# myData4$areas[ (time == timeEditMinus | time == timeEditPlus) & area == myArea, GAS := as.integer(GAS + 2500)]
-# myData3$areas[ (time == timeEditMinus | time == timeEditPlus) & area == myArea, GAS := as.integer(GAS + 2500)]
-# }
-# #check console
-# #myData1$areas[ time == as.Date(DR)[1] & area == myArea, ]$GAS
-# #myData3$areas[ time == as.Date(DR)[1] & area == myArea, ]$GAS
-#
-# expect_true(isTRUE(all.equal(myData2$areas[ time == as.Date(DR)[1] & area == myArea, ]$GAS + 2500, myData1$areas[ time == as.Date(DR)[1] & area == myArea, ]$GAS)))
-#
-# PS1_list <- prodStack(x = myDataList, refStudy = myData1, interactive = FALSE, areas = myArea, dateRange = DR)
-#
-# dataHtmlWidgetPS <- .get_data_from_htmlwidget(PS1_list, widgetsNumber = 3)
-# resCompare <- antaresProcessing::compare(myData1, myData2, method = "diff")
-# expect_true(all.equal(resCompare$areas[ time == as.Date(DR)[1] & area == myArea, GAS ], - (dataHtmlWidgetPS$neggas[[2]])))
-# #after DR + 5 hours (no edit)
-# expect_true(all.equal(0, dataHtmlWidgetPS$neggas[[20]]))
-#
-# #no change for myData3
-# resCompare3 <- antaresProcessing::compare(myData3, myData1, method = "diff")
-# dataHtmlWidgetPS <- .get_data_from_htmlwidget(PS1_list, widgetsNumber = 2)
-# expect_true(all.equal(resCompare3$areas[ time == as.Date(DR)[1] & area == myArea, GAS], dataHtmlWidgetPS$neggas[[2]]))
-# expect_true(all.equal(0, dataHtmlWidgetPS$neggas[[20]]))
-#
-# })
-#
-# test_that("prodStack must work with refStudy, if x and refStudy are optsH5, ", {
-# if (.requireRhdf5_Antares(stopP = FALSE)){
-# skip_if_not(.runProdStackTest)
-# suppressMessages(writeAntaresH5(pathtemp, opts = opts, overwrite = TRUE))
-# optsH5 <- setSimulationPath(pathtemp)
-#
-# myArea <- "b"
-# DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
-# PS3 <- prodStack(x = optsH5,
-# refStudy = optsH5,
-# interactive = FALSE,
-# areas = myArea,
-# dateRange = DR)
-#
-# #check that PS1 == PS2 or PS3 == 0
-# dataHtmlWidgetPS <- .get_data_from_htmlwidget(PS3)
-# expect_equal(0, max(dataHtmlWidgetPS$totalProduction, na.rm = TRUE))
-# expect_equal(0, max(dataHtmlWidgetPS$gas, na.rm = TRUE))
-#
-# # with a new Study H5 test if compare prodStack works
-# ## create a new folder h5
-# pathInitial <- file.path(dirname(pathtemp), basename(pathtemp))
-# pathNewH5 <- file.path(pathInitial, "testH5")
-# if (!dir.exists(pathNewH5)){
-# dir.create(pathNewH5)
-# }
-# #write the study
-# #windows pb ? pathNewH5 <- gsub("/", "\\", pathNewH5, fixed = TRUE)
-# optsData <- antaresRead::setSimulationPath(path = studyPath)
-# suppressWarnings(writeAntaresH5(path = pathNewH5, opts = optsData,
-# overwrite = TRUE, supressMessages = TRUE))
-#
-#
-# pathNewH5File <- file.path(pathNewH5, list.files(pathNewH5))
-# .h5Antares_edit_variable(
-# pathH5 = pathNewH5File,
-# area = myArea,
-# timeId = 1:40,
-# antVar = "LIGNITE",
-# newValue = 15000
-# )
-#
-# optsH5New <- setSimulationPath(path = pathNewH5)
-# PS3 <- prodStack(x = optsH5New, refStudy = optsH5, interactive = FALSE, areas = myArea, dateRange = DR)
-#
-# resOptsH5Old <- readAntares(opts = optsH5, areas = myArea, showProgress = FALSE)
-# resOptsH5New <- readAntares(opts = optsH5New, areas = myArea, showProgress = FALSE)
-# expect_equal(resOptsH5New[time == as.Date(DR)[1], LIGNITE], 15000)
-#
-# resCompareData <- antaresProcessing::compare(x = resOptsH5Old, y = resOptsH5New)
-# expect_equal(resCompareData[timeId == timeId[40], LIGNITE], -24000)
-#
-# dataHtmlWidgetPS <- .get_data_from_htmlwidget(PS3)
-# expect_equal(resCompareData[timeId == timeId[40], LIGNITE], -dataHtmlWidgetPS$neglignite[[2]])
-# #no change after timeID > 40
-# expect_equal(resCompareData[timeId == timeId[90], LIGNITE], -dataHtmlWidgetPS$neglignite[[50]])
-# }
-#
-# })
-#
-# test_that("prodStack must work with refStudy, if x is a list of optsH5 and refStudy an optsH5, ", {
-# if (.requireRhdf5_Antares(stopP = FALSE)){
-# skip_if_not(.runProdStackTest)
-# suppressMessages(writeAntaresH5(pathtemp, opts = opts, overwrite = TRUE))
-# optsH5 <- setSimulationPath(pathtemp)
-#
-# # with new Studies H5 test if compare prodStack works
-# ## create new folders h5
-# pathInitial <- file.path(dirname(pathtemp), basename(pathtemp))
-#
-# listFolderToCreate <- c("testH5v2", "testH5v3", "testH5v4")
-# for (folder in listFolderToCreate){
-# pathNewH5 <- file.path(pathInitial, folder)
-# if (!dir.exists(pathNewH5)){
-# dir.create(pathNewH5)
-# }
-#
-# #write the study
-# #windows pb ? pathNewH5 <- gsub("/", "\\", pathNewH5, fixed = TRUE)
-# optsData <- antaresRead::setSimulationPath(path = studyPath)
-# suppressWarnings(
-# writeAntaresH5(
-# path = pathNewH5,
-# opts = optsData,
-# overwrite = TRUE,
-# supressMessages = TRUE)
-# )
-# }
-# myArea <- "b"
-# pathH5FolderToEdit <- file.path(pathInitial, listFolderToCreate[[2]])
-# pathH5FileToEdit <- file.path(pathH5FolderToEdit, list.files(pathH5FolderToEdit))
-# newValueLignite <- 100000
-# .h5Antares_edit_variable(
-# pathH5 = pathH5FileToEdit,
-# area = myArea,
-# timeId = 1:40,
-# antVar = "LIGNITE",
-# newValue = newValueLignite
-# )
-#
-# optsList <- list()
-# antaresDataListH5 <- list()
-# for (i in 1:length(listFolderToCreate)){
-# pathOptsI <- file.path(pathInitial, listFolderToCreate[[i]])
-# optsList[[i]] <- setSimulationPath(path = pathOptsI)
-# antaresDataListH5[[i]] <- readAntares(areas = myArea)
-# }
-# DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
-# PS1 <- prodStack(x = optsH5, interactive = FALSE, areas = myArea, dateRange = DR)
-# PS2 <- prodStack(x = optsList, interactive = FALSE, areas = myArea, dateRange = DR)
-# PS_List <- prodStack(x = optsList, refStudy = optsH5, interactive = FALSE, areas = myArea, dateRange = DR)
-# #get the data from the h5 file
-# antaresDataRef <- readAntares(opts = optsH5, areas = myArea)
-# expect_equal(max(antaresDataListH5[[2]]$LIGNITE), newValueLignite)
-# expect_equal(max(antaresDataListH5[[1]]$LIGNITE), max(antaresDataRef$LIGNITE))
-# expect_equal(max(antaresDataListH5[[3]]$LIGNITE), max(antaresDataRef$LIGNITE))
-# #get the data from htmlwidget
-# dataHtmlWidgetPS1 <- .get_data_from_htmlwidget(PS_List, widgetsNumber = 1)
-# dataHtmlWidgetPS2 <- .get_data_from_htmlwidget(PS_List, widgetsNumber = 2)
-# #compare data
-# resCompareData1_ref <- antaresProcessing::compare(x = antaresDataRef, y = antaresDataListH5[[1]])
-# resCompareData2_ref <- antaresProcessing::compare(x = antaresDataRef, y = antaresDataListH5[[2]])
-# expect_equal(resCompareData1_ref[timeId == timeId[40], LIGNITE], -dataHtmlWidgetPS1$lignite[[2]])
-# expect_equal(resCompareData2_ref[timeId == timeId[40], LIGNITE], dataHtmlWidgetPS2$lignite[[2]])
-# #no change after timeID > 40
-# expect_equal(resCompareData1_ref[timeId == timeId[90], LIGNITE], -dataHtmlWidgetPS1$lignite[[50]])
-# expect_equal(resCompareData2_ref[timeId == timeId[90], LIGNITE], -dataHtmlWidgetPS2$lignite[[50]])
-#
-# }
-# })
-#
-# test_that("prodStack must work with refStudy, if interactive is set to TRUE and if x and refStudy are antaresData, ", {
-# myData1 <- readAntares(areas = "all", showProgress = FALSE)
-# myData2 <- readAntares(areas = "all", showProgress = FALSE)
-#
-# myArea <- "a"
-# DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
-#
-# #for debug, dont compare
-# # PS3 <- prodStack(
-# # x = myData2,
-# # dateRange = DR,
-# # .runApp = FALSE,
-# # interactive = TRUE,
-# # h5requestFiltering = list(areas = myArea))
-# # res <- PS3$init()
-# # PS3
-# # #for debug, refStudy but not interactive
-# # PS3 <- prodStack(
-# # x = myData2,
-# # refStudy = myData1,
-# # dateRange = DR,
-# # .runApp = FALSE,
-# # interactive = FALSE,
-# # areas = myArea)
-# # PS3
-#
-# #MWController
-# PS3 <- prodStack(
-# x = myData2,
-# refStudy = myData1,
-# dateRange = DR,
-# .runApp = FALSE,
-# interactive = TRUE,
-# h5requestFiltering = list(areas = myArea))
-# res <- PS3$init()
-# expect_true(is(PS3, "MWController"))
-# expect_equal(PS3$ncharts, 1)
-# expect_equal(PS3$ncol, 1)
-# expect_equal(PS3$nrow, 1)
-#
-# #get the data from antaresData
-# resCompare <- antaresProcessing::compare(myData2, myData1, method = "diff")
-#
-# dataHtmlWidgetPS <- .get_data_from_htmlwidget(PS3)
-# expect_true(isTRUE(max(resCompare$GAS) == max(dataHtmlWidgetPS$neggas, na.rm = TRUE)))
-#
-# #pb timeZine local (PC, Travis, etc)
-# for (i in 0:5){
-# timeEditShift <- lubridate::hours(i)
-# timeEditMinus <- as.Date(DR[1]) - timeEditShift
-# timeEditPlus <- as.Date(DR[1]) + timeEditShift
-# myData1[ (time == timeEditMinus | time == timeEditPlus) & area == myArea, GAS := as.integer(GAS + 2500)]
-# }
-# #check console
-# #myData1[ time == as.Date(DR)[1] & area == myArea, ]$GAS
-# #myData2[ time == as.Date(DR)[1] & area == myArea, ]$GAS
-#
-# expect_true(isTRUE(all.equal(myData2[ time == as.Date(DR)[1] & area == myArea, ]$GAS + 2500, myData1[ time == as.Date(DR)[1] & area == myArea, ]$GAS)))
-#
-# PS3 <- prodStack(x = myData2, refStudy = myData1, areas = myArea, dateRange = DR, .runApp = FALSE, interactive = TRUE)
-# expect_true(is(PS3, "MWController"))
-# expect_equal(PS3$ncharts, 1)
-# expect_equal(PS3$ncol, 1)
-# expect_equal(PS3$nrow, 1)
-#
-# resCompare <- antaresProcessing::compare(myData1, myData2, method = "diff")
-#
-# PS3$init()
-# dataHtmlWidgetPS <- .get_data_from_htmlwidget(PS3)
-# expect_true(all.equal(resCompare[ time == as.Date(DR)[1] & area == myArea, GAS ], - (dataHtmlWidgetPS$neggas[[2]])))
-# #after DR + 5 hours (no change)
-# expect_true(all.equal(0, dataHtmlWidgetPS$neggas[[20]]))
-#
-# })
-#
-# test_that("prodStack must work with refStudy, if interactive is set to TRUE and if x a list of antaresData and refStudy an antaresData, ", {
-# myData1 <- readAntares(areas = "all", showProgress = FALSE)
-# myData2 <- readAntares(areas = "all", showProgress = FALSE)
-# myData3 <- readAntares(areas = "all", showProgress = FALSE)
-# myData4 <- readAntares(areas = "all", showProgress = FALSE)
-#
-# myDataList <- list(myData2, myData3, myData4)
-#
-# myArea <- "a"
-# DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
-# #MWController
-# PS3 <- prodStack(x = myDataList, refStudy = myData1, areas = myArea, dateRange = DR, .runApp = FALSE, interactive = TRUE)
-# #PS3 <- prodStack(x = myData2, refStudy = myData1, areas = myArea, dateRange = DR)
-# res <- PS3$init()
-# expect_true(is(PS3, "MWController"))
-# expect_equal(PS3$ncharts, 3)
-# expect_equal(PS3$ncol, 2)
-# expect_equal(PS3$nrow, 2)
-#
-# #get the data from antaresData
-# resCompare3_1 <- antaresProcessing::compare(myDataList[[2]], myData1, method = "diff")
-#
-# dataHtmlWidgetPS <- .get_data_from_htmlwidget(PS3, widgetsNumber = 2)
-# expect_true(isTRUE(max(resCompare3_1$GAS) == max(dataHtmlWidgetPS$neggas, na.rm = TRUE)))
-#
-# #pb timeZine local (PC, Travis, etc)
-# for (i in 0:5){
-# timeEditShift <- lubridate::hours(i)
-# timeEditMinus <- as.Date(DR[1]) - timeEditShift
-# timeEditPlus <- as.Date(DR[1]) + timeEditShift
-# myData3[ (time == timeEditMinus | time == timeEditPlus) & area == myArea, GAS := as.integer(GAS + 2500)]
-# }
-# #check console
-# #myData1[ time == as.Date(DR)[1] & area == myArea, ]$GAS
-# #myData2[ time == as.Date(DR)[1] & area == myArea, ]$GAS
-#
-# expect_true(isTRUE(all.equal(myData3[ time == as.Date(DR)[1] & area == myArea, ]$GAS, myData1[ time == as.Date(DR)[1] & area == myArea, ]$GAS + 2500)))
-#
-# PS3 <- prodStack(x = myDataList, refStudy = myData1, areas = myArea, dateRange = DR, .runApp = FALSE, interactive = TRUE)
-#
-# expect_true(is(PS3, "MWController"))
-# expect_equal(PS3$ncharts, 3)
-# expect_equal(PS3$ncol, 2)
-# expect_equal(PS3$nrow, 2)
-#
-# resCompare3_1 <- antaresProcessing::compare(myDataList[[2]], myData2, method = "diff")
-#
-# PS3$init()
-# dataHtmlWidgetPS <- .get_data_from_htmlwidget(PS3, widgetsNumber = 2)
-# expect_true(all.equal(resCompare3_1[ time == as.Date(DR)[1] & area == myArea, GAS ], - (dataHtmlWidgetPS$gas[[2]])))
-# #after DR + 5 hours (no change)
-# expect_true(all.equal(0, dataHtmlWidgetPS$neggas[[20]]))
-#
-# })
-#
-# test_that("prodStack must work with refStudy, if interactive is set to TRUE and if x is an antaresDataList and refStudy an antaresDataList, ", {
-# myData1 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-# myData2 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-#
-# myArea <- "a"
-# DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
-# #MWController
-# PS3 <- prodStack(x = myData2, refStudy = myData1, areas = myArea, dateRange = DR, .runApp = FALSE, interactive = TRUE)
-# res <- PS3$init()
-# expect_true(is(PS3, "MWController"))
-# expect_equal(PS3$ncharts, 1)
-# expect_equal(PS3$ncol, 1)
-# expect_equal(PS3$nrow, 1)
-#
-# #get the data from antaresData
-# resCompare2_1 <- antaresProcessing::compare(myData2, myData1, method = "diff")
-#
-# dataHtmlWidgetPS <- .get_data_from_htmlwidget(PS3, widgetsNumber = 1)
-# expect_true(isTRUE(max(resCompare2_1$areas$GAS) == max(dataHtmlWidgetPS$neggas, na.rm = TRUE)))
-#
-# #pb timeZine local (PC, Travis, etc)
-# for (i in 0:5){
-# timeEditShift <- lubridate::hours(i)
-# timeEditMinus <- as.Date(DR[1]) - timeEditShift
-# timeEditPlus <- as.Date(DR[1]) + timeEditShift
-# myData2$areas[ (time == timeEditMinus | time == timeEditPlus) & area == myArea, GAS := as.integer(GAS + 2500)]
-# }
-# #check console
-# #myData1[ time == as.Date(DR)[1] & area == myArea, ]$GAS
-# #myData2[ time == as.Date(DR)[1] & area == myArea, ]$GAS
-#
-# expect_true(isTRUE(all.equal(myData2$areas[ time == as.Date(DR)[1] & area == myArea, ]$GAS, myData1$areas[ time == as.Date(DR)[1] & area == myArea, ]$GAS + 2500)))
-#
-# PS3 <- prodStack(x = myData2, refStudy = myData1, areas = myArea, dateRange = DR, .runApp = FALSE, interactive = TRUE)
-#
-# expect_true(is(PS3, "MWController"))
-# expect_equal(PS3$ncharts, 1)
-# expect_equal(PS3$ncol, 1)
-# expect_equal(PS3$nrow, 1)
-#
-# resCompare2_1 <- antaresProcessing::compare(myData1, myData2, method = "diff")
-#
-# PS3$init()
-# dataHtmlWidgetPS <- .get_data_from_htmlwidget(PS3, widgetsNumber = 1)
-# expect_true(all.equal(resCompare2_1$areas[ time == as.Date(DR)[1] & area == myArea, GAS ], (dataHtmlWidgetPS$gas[[2]])))
-# #after DR + 5 hours (no change)
-# expect_true(all.equal(0, dataHtmlWidgetPS$neggas[[20]]))
-#
-# })
-#
-# test_that("prodStack must work with refStudy, if interactive is set to TRUE and if x is a list of antaresDataList and refStudy an antaresDataList , ", {
-# myData1 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-# myData2 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-# myData3 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-# myData4 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-#
-# myDataList <- list(myData4, myData3, myData2)
-#
-# myArea <- "a"
-# DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
-# #MWController
-# PS3 <- prodStack(x = myDataList, refStudy = myData1, areas = myArea, dateRange = DR, .runApp = FALSE, interactive = TRUE)
-# res <- PS3$init()
-# expect_true(is(PS3, "MWController"))
-# expect_equal(PS3$ncharts, 3)
-# expect_equal(PS3$ncol, 2)
-# expect_equal(PS3$nrow, 2)
-#
-# #get the data from antaresData
-# resCompare2_1 <- antaresProcessing::compare(myDataList[[3]], myData1, method = "diff")
-#
-# dataHtmlWidgetPS <- .get_data_from_htmlwidget(PS3, widgetsNumber = 3)
-# expect_true(isTRUE(max(resCompare2_1$areas$GAS) == max(dataHtmlWidgetPS$neggas, na.rm = TRUE)))
-#
-# #pb timeZine local (PC, Travis, etc)
-# for (i in 0:5){
-# timeEditShift <- lubridate::hours(i)
-# timeEditMinus <- as.Date(DR[1]) - timeEditShift
-# timeEditPlus <- as.Date(DR[1]) + timeEditShift
-# myData2$areas[ (time == timeEditMinus | time == timeEditPlus) & area == myArea, GAS := as.integer(GAS + 2500)]
-# }
-# #check console
-# #myData1[ time == as.Date(DR)[1] & area == myArea, ]$GAS
-# #myData2[ time == as.Date(DR)[1] & area == myArea, ]$GAS
-#
-# expect_true(isTRUE(all.equal(myData2$areas[ time == as.Date(DR)[1] & area == myArea, ]$GAS, myData1$areas[ time == as.Date(DR)[1] & area == myArea, ]$GAS + 2500)))
-#
-# PS3 <- prodStack(x = myDataList, refStudy = myData1, areas = myArea, dateRange = DR, .runApp = FALSE, interactive = TRUE)
-#
-# expect_true(is(PS3, "MWController"))
-# expect_equal(PS3$ncharts, 3)
-# expect_equal(PS3$ncol, 2)
-# expect_equal(PS3$nrow, 2)
-#
-# resCompare2_1 <- antaresProcessing::compare(myData1, myData2, method = "diff")
-# resCompare3_1 <- antaresProcessing::compare(myData1, myData3, method = "diff")
-#
-# PS3$init()
-# dataHtmlWidgetPS <- .get_data_from_htmlwidget(PS3, widgetsNumber = 3)
-# expect_true(all.equal(resCompare2_1$areas[ time == as.Date(DR)[1] & area == myArea, GAS ], (dataHtmlWidgetPS$gas[[2]])))
-# #no change for myData3
-# dataHtmlWidgetPS3 <- .get_data_from_htmlwidget(PS3, widgetsNumber = 2)
-# expect_true(all.equal(resCompare3_1$areas[ time == as.Date(DR)[1] & area == myArea, GAS ], (dataHtmlWidgetPS3$gas[[2]])))
-# #after DR + 5 hours (no change)
-# expect_true(all.equal(0, dataHtmlWidgetPS$neggas[[20]]))
-#
-# })
-#
-# test_that("prodStack must work with refStudy, if interactive is set to TRUE and if x, refStudy are optsH5 , ", {
-# if (.requireRhdf5_Antares(stopP = FALSE)){
-# skip_if_not(.runProdStackTest)
-# suppressMessages(writeAntaresH5(pathtemp, opts = opts, overwrite = TRUE))
-# optsH5 <- setSimulationPath(pathtemp)
-#
-# myArea <- "b"
-# DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
-# #MWController
-# # test debug prodStack(x = optsH5, refStudy = optsH5, dateRange = DR, h5requestFiltering = list(areas = myArea, mcYears = 2))
-# PS3 <- prodStack(x = optsH5,
-# refStudy = optsH5,
-# dateRange = DR,
-# h5requestFiltering = list(areas = myArea, mcYears = 2),
-# .runApp = FALSE,
-# interactive = TRUE)
-#
-# res <- PS3$init()
-# expect_true(is(PS3, "MWController"))
-# expect_equal(PS3$ncharts, 1)
-# expect_equal(PS3$ncol, 1)
-# expect_equal(PS3$nrow, 1)
-#
-# #check that PS1 == PS2 or PS3 == 0
-# dataHtmlWidgetPS <- .get_data_from_htmlwidget(PS3)
-# expect_equal(0, max(dataHtmlWidgetPS$totalProduction, na.rm = TRUE))
-# expect_equal(0, max(dataHtmlWidgetPS$gas, na.rm = TRUE))
-#
-# # with a new Study H5 test if compare prodStack works
-# ## create a new folder h5
-# pathInitial <- file.path(dirname(pathtemp), basename(pathtemp))
-#
-# pathNewH5 <- file.path(pathInitial, "testH5")
-# if (!dir.exists(pathNewH5)){
-# dir.create(pathNewH5)
-# }
-# #write the study
-# #windows pb ? pathNewH5 <- gsub("/", "\\", pathNewH5, fixed = TRUE)
-# optsData <- antaresRead::setSimulationPath(path = studyPath)
-# suppressWarnings(writeAntaresH5(path = pathNewH5, opts = optsData,
-# overwrite = TRUE, supressMessages = TRUE))
-#
-#
-# pathNewH5File <- file.path(pathNewH5, list.files(pathNewH5))
-# .h5Antares_edit_variable(
-# pathH5 = pathNewH5File,
-# area = myArea,
-# timeId = 1:40,
-# antVar = "LIGNITE",
-# newValue = 15000,
-# mcYear = 2
-# )
-#
-# optsH5New <- setSimulationPath(path = pathNewH5File)
-# PS3 <- prodStack(x = optsH5New,
-# refStudy = optsH5,
-# dateRange = DR,
-# h5requestFiltering = list(areas = myArea, mcYears = 2),
-# .runApp = FALSE,
-# interactive = TRUE)
-# res <- PS3$init()
-#
-# #TEST non interactive for debug
-# PS_FInt <- prodStack(x = optsH5New,
-# refStudy = optsH5,
-# mcYearh5 = 2,
-# interactive = FALSE,
-# areas = myArea,
-# dateRange = DR)
-# dataHtmlWidgetPSFint <- .get_data_from_htmlwidget(PS_FInt)
-# expect_equal(-23000, min(dataHtmlWidgetPSFint$totalProduction, na.rm = TRUE))
-# expect_equal(0, max(dataHtmlWidgetPSFint$neggas, na.rm = TRUE))
-# expect_equal(23000, max(dataHtmlWidgetPSFint$neglignite, na.rm = TRUE))
-#
-# res <- PS3$init()
-# expect_true(is(PS3, "MWController"))
-# expect_equal(PS3$ncharts, 1)
-# expect_equal(PS3$ncol, 1)
-# expect_equal(PS3$nrow, 1)
-#
-# resOptsH5Old <- readAntares(opts = optsH5, areas = myArea, showProgress = FALSE, mcYears = 2)
-# resOptsH5New <- readAntares(opts = optsH5New, areas = myArea, showProgress = FALSE, mcYears = 2)
-# #timeId for time = "2018-04-24 00:00:00 UTC" ? timeId = 2713
-# timeIdVal <- 2713
-# expect_equal(resOptsH5New[timeId == timeIdVal, LIGNITE], 15000)
-# expect_equal(resOptsH5Old[timeId == timeIdVal, LIGNITE], 38000)
-#
-# resCompareData <- antaresProcessing::compare(x = resOptsH5Old, y = resOptsH5New)
-# expect_equal(resCompareData[timeId == timeIdVal, LIGNITE], -23000)
-#
-# dataHtmlWidgetPS <- .get_data_from_htmlwidget(PS3)
-# expect_equal(resCompareData[timeId == timeIdVal, LIGNITE], -dataHtmlWidgetPS$neglignite[[1]])
-# #no change after timeID > 40
-# expect_equal(resCompareData[timeId == (timeIdVal + 90), LIGNITE], -dataHtmlWidgetPS$neglignite[[50]])
-# }
-#
-# })
-#
-# test_that("prodStack must work with refStudy, if interactive is set to TRUE and if x is a list of optsH5 and refStudy optsH5 , ", {
-# if (.requireRhdf5_Antares(stopP = FALSE)){
-# skip_if_not(.runProdStackTest)
-# suppressMessages(writeAntaresH5(pathtemp, opts = opts, overwrite = TRUE))
-# optsH5 <- setSimulationPath(pathtemp)
-#
-# # with new Studies H5 test if compare prodStack works
-# ## create new folders h5
-# pathInitial <- file.path(dirname(pathtemp), basename(pathtemp))
-#
-# listFolderToCreate <- c("testH5v2", "testH5v3", "testH5v4")
-# for (folder in listFolderToCreate){
-# pathNewH5 <- file.path(pathInitial, folder)
-# if (!dir.exists(pathNewH5)){
-# dir.create(pathNewH5)
-# }
-#
-# #write the study
-# #windows pb ? pathNewH5 <- gsub("/", "\\", pathNewH5, fixed = TRUE)
-# optsData <- antaresRead::setSimulationPath(path = studyPath)
-# suppressWarnings(
-# writeAntaresH5(
-# path = pathNewH5,
-# opts = optsData,
-# overwrite = TRUE,
-# supressMessages = TRUE)
-# )
-# }
-# myArea <- "b"
-# pathH5FolderToEdit <- file.path(pathInitial, listFolderToCreate[[2]])
-# pathH5FileToEdit <- file.path(pathH5FolderToEdit, list.files(pathH5FolderToEdit))
-# newValueGAS <- 50000
-# mcYearToTestList <- c(2, NULL)
-# for (mcYearToTest in mcYearToTestList){
-# .h5Antares_edit_variable(
-# pathH5 = pathH5FileToEdit,
-# area = myArea,
-# timeId = 1:40,
-# antVar = "GAS",
-# newValue = newValueGAS,
-# mcYear = mcYearToTest
-# )
-#
-# optsList <- list()
-# antaresDataListH5 <- list()
-# for (i in 1:length(listFolderToCreate)){
-# pathOptsI <- file.path(pathInitial, listFolderToCreate[[i]])
-# optsList[[i]] <- setSimulationPath(path = pathOptsI)
-# antaresDataListH5[[i]] <- readAntares(areas = myArea, mcYear = mcYearToTest)
-# }
-#
-# DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
-# #first, try with interactive == FALSE
-# PSListNoInt <- prodStack(x = optsList,
-# refStudy = optsH5,
-# interactive = FALSE,
-# areas = myArea,
-# dateRange = DR,
-# mcYearh5 = mcYearToTest)
-#
-# #get the data from the h5 file
-# antaresDataRef <- readAntares(opts = optsH5, areas = myArea, mcYears = mcYearToTest)
-# expect_equal(max(antaresDataListH5[[2]]$GAS), newValueGAS)
-# expect_equal(max(antaresDataListH5[[1]]$GAS), max(antaresDataRef$GAS))
-# expect_equal(max(antaresDataListH5[[3]]$GAS), max(antaresDataRef$GAS))
-# expect_equal(antaresDataListH5[[2]]$`OV. COST`, antaresDataRef$`OV. COST`)
-#
-# #get the data from htmlwidget
-# dataHtmlWidgetPS1 <- .get_data_from_htmlwidget(PSListNoInt, widgetsNumber = 1)
-# dataHtmlWidgetPS2 <- .get_data_from_htmlwidget(PSListNoInt, widgetsNumber = 2)
-# #compare data
-# resCompareData1_ref <- antaresProcessing::compare(x = antaresDataRef, y = antaresDataListH5[[1]])
-# resCompareData2_ref <- antaresProcessing::compare(x = antaresDataRef, y = antaresDataListH5[[2]])
-# expect_equal(resCompareData1_ref[timeId == timeId[40], GAS], -dataHtmlWidgetPS1$gas[[2]])
-# expect_equal(resCompareData2_ref[timeId == timeId[40], GAS], dataHtmlWidgetPS2$gas[[2]])
-#
-# #second, try without refStudy and interactive == FALSE
-# PSListNoInt <- prodStack(x = optsList,
-# dateRange = DR,
-# areas = myArea,
-# interactive = FALSE,
-# mcYearh5 = mcYearToTest)
-#
-# dataHtmlWidgetPSNoInt <- .get_data_from_htmlwidget(PSListNoInt, widgetsNumber = 2)
-# expect_gt(max(dataHtmlWidgetPSNoInt$totalProduction, na.rm = TRUE), 100000)
-# expect_equal(max(dataHtmlWidgetPSNoInt$gas, na.rm = TRUE), 50000)
-#
-# #thirdly, try without refStudy and interactive == TRUE
-# PSWORef <- prodStack(x = optsList,
-# dateRange = DR,
-# h5requestFiltering = list(areas = myArea,
-# mcYears = mcYearToTest),
-# .runApp = FALSE,
-# interactive = TRUE)
-#
-# res <- PSWORef$init()
-# expect_true(is(PSWORef, "MWController"))
-# expect_equal(PSWORef$ncharts, 3)
-# expect_equal(PSWORef$ncol, 2)
-# expect_equal(PSWORef$nrow, 2)
-#
-# #fourth, MWController with refStudy and interactive == TRUE
-# # test debug prodStack(x = optsH5, refStudy = optsH5, dateRange = DR, h5requestFiltering = list(areas = myArea, mcYears = 2))
-# PSWRefI <- prodStack(x = optsList,
-# refStudy = optsH5,
-# dateRange = DR,
-# h5requestFiltering = list(areas = myArea,
-# mcYears = mcYearToTest),
-# .runApp = FALSE,
-# interactive = TRUE)
-#
-# res <- PSWRefI$init()
-# expect_true(is(PSWRefI, "MWController"))
-# expect_equal(PSWRefI$ncharts, 3)
-# expect_equal(PSWRefI$ncol, 2)
-# expect_equal(PSWRefI$nrow, 2)
-#
-# #check that PS1 == PS2 or PSWRefI == 0
-# dataHtmlWidgetPS31 <- .get_data_from_htmlwidget(PSWRefI, widgetsNumber = 2)
-# expect_equal(newValueGAS, max(dataHtmlWidgetPS31$totalProduction, na.rm = TRUE))
-# expect_equal(newValueGAS, max(dataHtmlWidgetPS31$gas, na.rm = TRUE))
-#
-# dataHtmlWidgetPS21 <- .get_data_from_htmlwidget(PSWRefI, widgetsNumber = 1)
-# expect_equal(0, max(dataHtmlWidgetPS21$totalProduction, na.rm = TRUE))
-# expect_equal(0, max(dataHtmlWidgetPS21$gas, na.rm = TRUE))
-#
-# resOptsH5Old <- readAntares(opts = optsH5, areas = myArea, showProgress = FALSE, mcYears = mcYearToTest)
-# resOptsH5New <- readAntares(opts = optsList[[2]], areas = myArea, showProgress = FALSE, mcYears = mcYearToTest)
-# #timeId for time = "2018-04-24 00:00:00 UTC" ? timeId = 2713
-# timeIdVal <- 2713
-# expect_equal(resOptsH5New[timeId == timeIdVal, GAS], newValueGAS)
-# expect_equal(resOptsH5Old[timeId == timeIdVal, GAS], 0)
-#
-# resCompareData <- antaresProcessing::compare(x = resOptsH5Old, y = resOptsH5New)
-# expect_equal(resCompareData[timeId == timeIdVal, GAS], newValueGAS)
-#
-# expect_equal(resCompareData[timeId == timeIdVal, GAS], dataHtmlWidgetPS31$gas[[1]])
-# #no change after timeID > 40
-# expect_equal(resCompareData[timeId == (timeIdVal + 90), GAS], dataHtmlWidgetPS31$gas[[50]])
-# expect_equal(0, dataHtmlWidgetPS21$gas[[1]])
-# expect_equal(0, dataHtmlWidgetPS21$gas[[50]])
-# }
-# }
-#
-# })
-#
-# test_that("prodStack, no interactive, ne error with compare main", {
-# myData <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-# myApplica <- prodStack(x = myData,
-# interactive = TRUE,
-# compare = "main",
-# .runApp = FALSE)
-# myApplica$init()
-# expect_true(is(myApplica, "MWController"))
-# })
+context("prodStack")
+
+test_that("prodStack, no interactive", {
+ dta <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+ testClass <- function(obj){
+ class(obj)[1] == "combineWidgets"
+ }
+ listArgs <- list(noarg = list(x = dta, interactive = FALSE, areas = "a"),
+ areas2 = list(x = dta, interactive = FALSE, areas = c("a", "b"))
+ )
+
+ lapply(listArgs, function(X){
+ re1 <- do.call(prodStack, X)
+ expect_true(testClass(re1))
+ })
+
+})
+
+test_that("prodStack, no interactive return error", {
+
+ dta <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+ expect_error(prodStack(dta, interactive = FALSE, compare = "areas"))
+
+})
+
+test_that("prodStack, interactive", {
+ dta <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+ VV <- prodStack(dta, interactive = FALSE)
+ expect_true("htmlwidget" %in% class(VV))
+})
+
+test_that("prodStack must work with refStudy, if x and refStudy are antaresDataList, ", {
+ myData1 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+ myData2 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+
+ myArea <- "a"
+ DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
+ PS3 <- prodStack(x = myData2, refStudy = myData1, interactive = FALSE, areas = myArea, dateRange = DR)
+
+ resCompare <- antaresProcessing::compare(myData2, myData1, method = "diff")
+ dataHtmlWidgetPS <- .get_data_from_htmlwidget(PS3)
+
+ expect_true(isTRUE(max(resCompare$areas$GAS) == max(dataHtmlWidgetPS$neggas, na.rm = TRUE)))
+
+ #pb timeZine local (PC, Travis, etc)
+ for (i in 0:5){
+ timeEditShift <- lubridate::hours(i)
+ timeEditMinus <- as.Date(DR[1]) - timeEditShift
+ timeEditPlus <- as.Date(DR[1]) + timeEditShift
+ myData1$areas[ (time == timeEditMinus | time == timeEditPlus) & area == myArea, GAS := as.integer(GAS + 2500)]
+ }
+ #check console
+ #myData1$areas[ time == as.Date(DR)[1] & area == myArea, ]$GAS
+ #myData2$areas[ time == as.Date(DR)[1] & area == myArea, ]$GAS
+
+ expect_true(isTRUE(all.equal(myData2$areas[ time == as.Date(DR)[1] & area == myArea, ]$GAS + 2500, myData1$areas[ time == as.Date(DR)[1] & area == myArea, ]$GAS)))
+
+ PS3 <- prodStack(x = myData2, refStudy = myData1, interactive = FALSE, areas = myArea, dateRange = DR)
+
+ dataHtmlWidgetPS <- .get_data_from_htmlwidget(PS3)
+ resCompare <- antaresProcessing::compare(myData1, myData2, method = "diff")
+ expect_true(all.equal(resCompare$areas[ time == as.Date(DR)[1] & area == myArea, GAS ], - (dataHtmlWidgetPS$neggas[[2]])))
+ #after DR + 5 hours (no change)
+ expect_true(all.equal(0, dataHtmlWidgetPS$neggas[[20]]))
+})
+
+test_that("prodStack must work with refStudy, if x is a list of antaresDataList and refStudy an antaresDataList, ", {
+ myData1 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+ myData2 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+ myData3 <- readAntares(areas = c("a", "b", "c"), links = "all", showProgress = FALSE)
+ myData4 <- readAntares(areas = c("a", "b"), links = "all", showProgress = FALSE)
+ myArea <- "a"
+ myDataList <- list(myData4, myData3, myData2)
+ DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
+ PS1_list <- prodStack(x = myDataList, refStudy = myData1, interactive = FALSE, areas = myArea, dateRange = DR)
+ resCompare <- antaresProcessing::compare(myDataList[[3]], myData1, method = "diff")
+ dataHtmlWidgetPS <- .get_data_from_htmlwidget(PS1_list, widgetsNumber = 3)
+ all.equal(max(resCompare$areas$GAS), max(dataHtmlWidgetPS$neggas, na.rm = TRUE))
+ #pb timeZone local (PC, Travis, etc)
+ for (i in 0:5){
+ timeEditShift <- lubridate::hours(i)
+ timeEditMinus <- as.Date(DR[1]) - timeEditShift
+ timeEditPlus <- as.Date(DR[1]) + timeEditShift
+ myData1$areas[ (time == timeEditMinus | time == timeEditPlus) & area == myArea, GAS := as.integer(GAS + 2500)]
+ myData4$areas[ (time == timeEditMinus | time == timeEditPlus) & area == myArea, GAS := as.integer(GAS + 2500)]
+ myData3$areas[ (time == timeEditMinus | time == timeEditPlus) & area == myArea, GAS := as.integer(GAS + 2500)]
+ }
+ #check console
+ #myData1$areas[ time == as.Date(DR)[1] & area == myArea, ]$GAS
+ #myData3$areas[ time == as.Date(DR)[1] & area == myArea, ]$GAS
+
+ expect_true(isTRUE(all.equal(myData2$areas[ time == as.Date(DR)[1] & area == myArea, ]$GAS + 2500, myData1$areas[ time == as.Date(DR)[1] & area == myArea, ]$GAS)))
+
+ PS1_list <- prodStack(x = myDataList, refStudy = myData1, interactive = FALSE, areas = myArea, dateRange = DR)
+
+ dataHtmlWidgetPS <- .get_data_from_htmlwidget(PS1_list, widgetsNumber = 3)
+ resCompare <- antaresProcessing::compare(myData1, myData2, method = "diff")
+ expect_true(all.equal(resCompare$areas[ time == as.Date(DR)[1] & area == myArea, GAS ], - (dataHtmlWidgetPS$neggas[[2]])))
+ #after DR + 5 hours (no edit)
+ expect_true(all.equal(0, dataHtmlWidgetPS$neggas[[20]]))
+
+ #no change for myData3
+ resCompare3 <- antaresProcessing::compare(myData3, myData1, method = "diff")
+ dataHtmlWidgetPS <- .get_data_from_htmlwidget(PS1_list, widgetsNumber = 2)
+ expect_true(all.equal(resCompare3$areas[ time == as.Date(DR)[1] & area == myArea, GAS], dataHtmlWidgetPS$neggas[[2]]))
+ expect_true(all.equal(0, dataHtmlWidgetPS$neggas[[20]]))
+
+})
+
+test_that("prodStack must work with refStudy, if x and refStudy are optsH5, ", {
+ if (.requireRhdf5_Antares(stopP = FALSE)){
+ skip_if_not(.runProdStackTest)
+ suppressMessages(writeAntaresH5(pathtemp, opts = opts, overwrite = TRUE))
+ optsH5 <- setSimulationPath(pathtemp)
+
+ myArea <- "b"
+ DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
+ PS3 <- prodStack(x = optsH5,
+ refStudy = optsH5,
+ interactive = FALSE,
+ areas = myArea,
+ dateRange = DR)
+
+ #check that PS1 == PS2 or PS3 == 0
+ dataHtmlWidgetPS <- .get_data_from_htmlwidget(PS3)
+ expect_equal(0, max(dataHtmlWidgetPS$totalProduction, na.rm = TRUE))
+ expect_equal(0, max(dataHtmlWidgetPS$gas, na.rm = TRUE))
+
+ # with a new Study H5 test if compare prodStack works
+ ## create a new folder h5
+ pathInitial <- file.path(dirname(pathtemp), basename(pathtemp))
+ pathNewH5 <- file.path(pathInitial, "testH5")
+ if (!dir.exists(pathNewH5)){
+ dir.create(pathNewH5)
+ }
+ #write the study
+ #windows pb ? pathNewH5 <- gsub("/", "\\", pathNewH5, fixed = TRUE)
+ optsData <- antaresRead::setSimulationPath(path = studyPath)
+ suppressWarnings(writeAntaresH5(path = pathNewH5, opts = optsData,
+ overwrite = TRUE, supressMessages = TRUE))
+
+
+ pathNewH5File <- file.path(pathNewH5, list.files(pathNewH5))
+ .h5Antares_edit_variable(
+ pathH5 = pathNewH5File,
+ area = myArea,
+ timeId = 1:40,
+ antVar = "LIGNITE",
+ newValue = 15000
+ )
+
+ optsH5New <- setSimulationPath(path = pathNewH5)
+ PS3 <- prodStack(x = optsH5New, refStudy = optsH5, interactive = FALSE, areas = myArea, dateRange = DR)
+
+ resOptsH5Old <- readAntares(opts = optsH5, areas = myArea, showProgress = FALSE)
+ resOptsH5New <- readAntares(opts = optsH5New, areas = myArea, showProgress = FALSE)
+ expect_equal(resOptsH5New[time == as.Date(DR)[1], LIGNITE], 15000)
+
+ resCompareData <- antaresProcessing::compare(x = resOptsH5Old, y = resOptsH5New)
+ expect_equal(resCompareData[timeId == timeId[40], LIGNITE], -24000)
+
+ dataHtmlWidgetPS <- .get_data_from_htmlwidget(PS3)
+ expect_equal(resCompareData[timeId == timeId[40], LIGNITE], -dataHtmlWidgetPS$neglignite[[2]])
+ #no change after timeID > 40
+ expect_equal(resCompareData[timeId == timeId[90], LIGNITE], -dataHtmlWidgetPS$neglignite[[50]])
+ }
+
+})
+
+test_that("prodStack must work with refStudy, if x is a list of optsH5 and refStudy an optsH5, ", {
+ if (.requireRhdf5_Antares(stopP = FALSE)){
+ skip_if_not(.runProdStackTest)
+ suppressMessages(writeAntaresH5(pathtemp, opts = opts, overwrite = TRUE))
+ optsH5 <- setSimulationPath(pathtemp)
+
+ # with new Studies H5 test if compare prodStack works
+ ## create new folders h5
+ pathInitial <- file.path(dirname(pathtemp), basename(pathtemp))
+
+ listFolderToCreate <- c("testH5v2", "testH5v3", "testH5v4")
+ for (folder in listFolderToCreate){
+ pathNewH5 <- file.path(pathInitial, folder)
+ if (!dir.exists(pathNewH5)){
+ dir.create(pathNewH5)
+ }
+
+ #write the study
+ #windows pb ? pathNewH5 <- gsub("/", "\\", pathNewH5, fixed = TRUE)
+ optsData <- antaresRead::setSimulationPath(path = studyPath)
+ suppressWarnings(
+ writeAntaresH5(
+ path = pathNewH5,
+ opts = optsData,
+ overwrite = TRUE,
+ supressMessages = TRUE)
+ )
+ }
+ myArea <- "b"
+ pathH5FolderToEdit <- file.path(pathInitial, listFolderToCreate[[2]])
+ pathH5FileToEdit <- file.path(pathH5FolderToEdit, list.files(pathH5FolderToEdit))
+ newValueLignite <- 100000
+ .h5Antares_edit_variable(
+ pathH5 = pathH5FileToEdit,
+ area = myArea,
+ timeId = 1:40,
+ antVar = "LIGNITE",
+ newValue = newValueLignite
+ )
+
+ optsList <- list()
+ antaresDataListH5 <- list()
+ for (i in 1:length(listFolderToCreate)){
+ pathOptsI <- file.path(pathInitial, listFolderToCreate[[i]])
+ optsList[[i]] <- setSimulationPath(path = pathOptsI)
+ antaresDataListH5[[i]] <- readAntares(areas = myArea)
+ }
+ DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
+ PS1 <- prodStack(x = optsH5, interactive = FALSE, areas = myArea, dateRange = DR)
+ PS2 <- prodStack(x = optsList, interactive = FALSE, areas = myArea, dateRange = DR)
+ PS_List <- prodStack(x = optsList, refStudy = optsH5, interactive = FALSE, areas = myArea, dateRange = DR)
+ #get the data from the h5 file
+ antaresDataRef <- readAntares(opts = optsH5, areas = myArea)
+ expect_equal(max(antaresDataListH5[[2]]$LIGNITE), newValueLignite)
+ expect_equal(max(antaresDataListH5[[1]]$LIGNITE), max(antaresDataRef$LIGNITE))
+ expect_equal(max(antaresDataListH5[[3]]$LIGNITE), max(antaresDataRef$LIGNITE))
+ #get the data from htmlwidget
+ dataHtmlWidgetPS1 <- .get_data_from_htmlwidget(PS_List, widgetsNumber = 1)
+ dataHtmlWidgetPS2 <- .get_data_from_htmlwidget(PS_List, widgetsNumber = 2)
+ #compare data
+ resCompareData1_ref <- antaresProcessing::compare(x = antaresDataRef, y = antaresDataListH5[[1]])
+ resCompareData2_ref <- antaresProcessing::compare(x = antaresDataRef, y = antaresDataListH5[[2]])
+ expect_equal(resCompareData1_ref[timeId == timeId[40], LIGNITE], -dataHtmlWidgetPS1$lignite[[2]])
+ expect_equal(resCompareData2_ref[timeId == timeId[40], LIGNITE], dataHtmlWidgetPS2$lignite[[2]])
+ #no change after timeID > 40
+ expect_equal(resCompareData1_ref[timeId == timeId[90], LIGNITE], -dataHtmlWidgetPS1$lignite[[50]])
+ expect_equal(resCompareData2_ref[timeId == timeId[90], LIGNITE], -dataHtmlWidgetPS2$lignite[[50]])
+
+ }
+})
+
+test_that("prodStack must work with refStudy, if interactive is set to TRUE and if x and refStudy are antaresData, ", {
+ myData1 <- readAntares(areas = "all", showProgress = FALSE)
+ myData2 <- readAntares(areas = "all", showProgress = FALSE)
+
+ myArea <- "a"
+ DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
+
+ #for debug, dont compare
+ # PS3 <- prodStack(
+ # x = myData2,
+ # dateRange = DR,
+ # .runApp = FALSE,
+ # interactive = TRUE,
+ # h5requestFiltering = list(areas = myArea))
+ # res <- PS3$init()
+ # PS3
+ # #for debug, refStudy but not interactive
+ # PS3 <- prodStack(
+ # x = myData2,
+ # refStudy = myData1,
+ # dateRange = DR,
+ # .runApp = FALSE,
+ # interactive = FALSE,
+ # areas = myArea)
+ # PS3
+
+ #MWController
+ PS3 <- prodStack(
+ x = myData2,
+ refStudy = myData1,
+ dateRange = DR,
+ .runApp = FALSE,
+ interactive = TRUE,
+ h5requestFiltering = list(areas = myArea))
+ res <- PS3$init()
+ expect_true(is(PS3, "MWController"))
+ expect_equal(PS3$ncharts, 1)
+ expect_equal(PS3$ncol, 1)
+ expect_equal(PS3$nrow, 1)
+
+ #get the data from antaresData
+ resCompare <- antaresProcessing::compare(myData2, myData1, method = "diff")
+
+ dataHtmlWidgetPS <- .get_data_from_htmlwidget(PS3)
+ expect_true(isTRUE(max(resCompare$GAS) == max(dataHtmlWidgetPS$neggas, na.rm = TRUE)))
+
+ #pb timeZine local (PC, Travis, etc)
+ for (i in 0:5){
+ timeEditShift <- lubridate::hours(i)
+ timeEditMinus <- as.Date(DR[1]) - timeEditShift
+ timeEditPlus <- as.Date(DR[1]) + timeEditShift
+ myData1[ (time == timeEditMinus | time == timeEditPlus) & area == myArea, GAS := as.integer(GAS + 2500)]
+ }
+ #check console
+ #myData1[ time == as.Date(DR)[1] & area == myArea, ]$GAS
+ #myData2[ time == as.Date(DR)[1] & area == myArea, ]$GAS
+
+ expect_true(isTRUE(all.equal(myData2[ time == as.Date(DR)[1] & area == myArea, ]$GAS + 2500, myData1[ time == as.Date(DR)[1] & area == myArea, ]$GAS)))
+
+ PS3 <- prodStack(x = myData2, refStudy = myData1, areas = myArea, dateRange = DR, .runApp = FALSE, interactive = TRUE)
+ expect_true(is(PS3, "MWController"))
+ expect_equal(PS3$ncharts, 1)
+ expect_equal(PS3$ncol, 1)
+ expect_equal(PS3$nrow, 1)
+
+ resCompare <- antaresProcessing::compare(myData1, myData2, method = "diff")
+
+ PS3$init()
+ dataHtmlWidgetPS <- .get_data_from_htmlwidget(PS3)
+ expect_true(all.equal(resCompare[ time == as.Date(DR)[1] & area == myArea, GAS ], - (dataHtmlWidgetPS$neggas[[2]])))
+ #after DR + 5 hours (no change)
+ expect_true(all.equal(0, dataHtmlWidgetPS$neggas[[20]]))
+
+})
+
+test_that("prodStack must work with refStudy, if interactive is set to TRUE and if x a list of antaresData and refStudy an antaresData, ", {
+ myData1 <- readAntares(areas = "all", showProgress = FALSE)
+ myData2 <- readAntares(areas = "all", showProgress = FALSE)
+ myData3 <- readAntares(areas = "all", showProgress = FALSE)
+ myData4 <- readAntares(areas = "all", showProgress = FALSE)
+
+ myDataList <- list(myData2, myData3, myData4)
+
+ myArea <- "a"
+ DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
+ #MWController
+ PS3 <- prodStack(x = myDataList, refStudy = myData1, areas = myArea, dateRange = DR, .runApp = FALSE, interactive = TRUE)
+ #PS3 <- prodStack(x = myData2, refStudy = myData1, areas = myArea, dateRange = DR)
+ res <- PS3$init()
+ expect_true(is(PS3, "MWController"))
+ expect_equal(PS3$ncharts, 3)
+ expect_equal(PS3$ncol, 2)
+ expect_equal(PS3$nrow, 2)
+
+ #get the data from antaresData
+ resCompare3_1 <- antaresProcessing::compare(myDataList[[2]], myData1, method = "diff")
+
+ dataHtmlWidgetPS <- .get_data_from_htmlwidget(PS3, widgetsNumber = 2)
+ expect_true(isTRUE(max(resCompare3_1$GAS) == max(dataHtmlWidgetPS$neggas, na.rm = TRUE)))
+
+ #pb timeZine local (PC, Travis, etc)
+ for (i in 0:5){
+ timeEditShift <- lubridate::hours(i)
+ timeEditMinus <- as.Date(DR[1]) - timeEditShift
+ timeEditPlus <- as.Date(DR[1]) + timeEditShift
+ myData3[ (time == timeEditMinus | time == timeEditPlus) & area == myArea, GAS := as.integer(GAS + 2500)]
+ }
+ #check console
+ #myData1[ time == as.Date(DR)[1] & area == myArea, ]$GAS
+ #myData2[ time == as.Date(DR)[1] & area == myArea, ]$GAS
+
+ expect_true(isTRUE(all.equal(myData3[ time == as.Date(DR)[1] & area == myArea, ]$GAS, myData1[ time == as.Date(DR)[1] & area == myArea, ]$GAS + 2500)))
+
+ PS3 <- prodStack(x = myDataList, refStudy = myData1, areas = myArea, dateRange = DR, .runApp = FALSE, interactive = TRUE)
+
+ expect_true(is(PS3, "MWController"))
+ expect_equal(PS3$ncharts, 3)
+ expect_equal(PS3$ncol, 2)
+ expect_equal(PS3$nrow, 2)
+
+ resCompare3_1 <- antaresProcessing::compare(myDataList[[2]], myData2, method = "diff")
+
+ PS3$init()
+ dataHtmlWidgetPS <- .get_data_from_htmlwidget(PS3, widgetsNumber = 2)
+ expect_true(all.equal(resCompare3_1[ time == as.Date(DR)[1] & area == myArea, GAS ], - (dataHtmlWidgetPS$gas[[2]])))
+ #after DR + 5 hours (no change)
+ expect_true(all.equal(0, dataHtmlWidgetPS$neggas[[20]]))
+
+})
+
+test_that("prodStack must work with refStudy, if interactive is set to TRUE and if x is an antaresDataList and refStudy an antaresDataList, ", {
+ myData1 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+ myData2 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+
+ myArea <- "a"
+ DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
+ #MWController
+ PS3 <- prodStack(x = myData2, refStudy = myData1, areas = myArea, dateRange = DR, .runApp = FALSE, interactive = TRUE)
+ res <- PS3$init()
+ expect_true(is(PS3, "MWController"))
+ expect_equal(PS3$ncharts, 1)
+ expect_equal(PS3$ncol, 1)
+ expect_equal(PS3$nrow, 1)
+
+ #get the data from antaresData
+ resCompare2_1 <- antaresProcessing::compare(myData2, myData1, method = "diff")
+
+ dataHtmlWidgetPS <- .get_data_from_htmlwidget(PS3, widgetsNumber = 1)
+ expect_true(isTRUE(max(resCompare2_1$areas$GAS) == max(dataHtmlWidgetPS$neggas, na.rm = TRUE)))
+
+ #pb timeZine local (PC, Travis, etc)
+ for (i in 0:5){
+ timeEditShift <- lubridate::hours(i)
+ timeEditMinus <- as.Date(DR[1]) - timeEditShift
+ timeEditPlus <- as.Date(DR[1]) + timeEditShift
+ myData2$areas[ (time == timeEditMinus | time == timeEditPlus) & area == myArea, GAS := as.integer(GAS + 2500)]
+ }
+ #check console
+ #myData1[ time == as.Date(DR)[1] & area == myArea, ]$GAS
+ #myData2[ time == as.Date(DR)[1] & area == myArea, ]$GAS
+
+ expect_true(isTRUE(all.equal(myData2$areas[ time == as.Date(DR)[1] & area == myArea, ]$GAS, myData1$areas[ time == as.Date(DR)[1] & area == myArea, ]$GAS + 2500)))
+
+ PS3 <- prodStack(x = myData2, refStudy = myData1, areas = myArea, dateRange = DR, .runApp = FALSE, interactive = TRUE)
+
+ expect_true(is(PS3, "MWController"))
+ expect_equal(PS3$ncharts, 1)
+ expect_equal(PS3$ncol, 1)
+ expect_equal(PS3$nrow, 1)
+
+ resCompare2_1 <- antaresProcessing::compare(myData1, myData2, method = "diff")
+
+ PS3$init()
+ dataHtmlWidgetPS <- .get_data_from_htmlwidget(PS3, widgetsNumber = 1)
+ expect_true(all.equal(resCompare2_1$areas[ time == as.Date(DR)[1] & area == myArea, GAS ], (dataHtmlWidgetPS$gas[[2]])))
+ #after DR + 5 hours (no change)
+ expect_true(all.equal(0, dataHtmlWidgetPS$neggas[[20]]))
+
+})
+
+test_that("prodStack must work with refStudy, if interactive is set to TRUE and if x is a list of antaresDataList and refStudy an antaresDataList , ", {
+ myData1 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+ myData2 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+ myData3 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+ myData4 <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+
+ myDataList <- list(myData4, myData3, myData2)
+
+ myArea <- "a"
+ DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
+ #MWController
+ PS3 <- prodStack(x = myDataList, refStudy = myData1, areas = myArea, dateRange = DR, .runApp = FALSE, interactive = TRUE)
+ res <- PS3$init()
+ expect_true(is(PS3, "MWController"))
+ expect_equal(PS3$ncharts, 3)
+ expect_equal(PS3$ncol, 2)
+ expect_equal(PS3$nrow, 2)
+
+ #get the data from antaresData
+ resCompare2_1 <- antaresProcessing::compare(myDataList[[3]], myData1, method = "diff")
+
+ dataHtmlWidgetPS <- .get_data_from_htmlwidget(PS3, widgetsNumber = 3)
+ expect_true(isTRUE(max(resCompare2_1$areas$GAS) == max(dataHtmlWidgetPS$neggas, na.rm = TRUE)))
+
+ #pb timeZine local (PC, Travis, etc)
+ for (i in 0:5){
+ timeEditShift <- lubridate::hours(i)
+ timeEditMinus <- as.Date(DR[1]) - timeEditShift
+ timeEditPlus <- as.Date(DR[1]) + timeEditShift
+ myData2$areas[ (time == timeEditMinus | time == timeEditPlus) & area == myArea, GAS := as.integer(GAS + 2500)]
+ }
+ #check console
+ #myData1[ time == as.Date(DR)[1] & area == myArea, ]$GAS
+ #myData2[ time == as.Date(DR)[1] & area == myArea, ]$GAS
+
+ expect_true(isTRUE(all.equal(myData2$areas[ time == as.Date(DR)[1] & area == myArea, ]$GAS, myData1$areas[ time == as.Date(DR)[1] & area == myArea, ]$GAS + 2500)))
+
+ PS3 <- prodStack(x = myDataList, refStudy = myData1, areas = myArea, dateRange = DR, .runApp = FALSE, interactive = TRUE)
+
+ expect_true(is(PS3, "MWController"))
+ expect_equal(PS3$ncharts, 3)
+ expect_equal(PS3$ncol, 2)
+ expect_equal(PS3$nrow, 2)
+
+ resCompare2_1 <- antaresProcessing::compare(myData1, myData2, method = "diff")
+ resCompare3_1 <- antaresProcessing::compare(myData1, myData3, method = "diff")
+
+ PS3$init()
+ dataHtmlWidgetPS <- .get_data_from_htmlwidget(PS3, widgetsNumber = 3)
+ expect_true(all.equal(resCompare2_1$areas[ time == as.Date(DR)[1] & area == myArea, GAS ], (dataHtmlWidgetPS$gas[[2]])))
+ #no change for myData3
+ dataHtmlWidgetPS3 <- .get_data_from_htmlwidget(PS3, widgetsNumber = 2)
+ expect_true(all.equal(resCompare3_1$areas[ time == as.Date(DR)[1] & area == myArea, GAS ], (dataHtmlWidgetPS3$gas[[2]])))
+ #after DR + 5 hours (no change)
+ expect_true(all.equal(0, dataHtmlWidgetPS$neggas[[20]]))
+
+})
+
+test_that("prodStack must work with refStudy, if interactive is set to TRUE and if x, refStudy are optsH5 , ", {
+ if (.requireRhdf5_Antares(stopP = FALSE)){
+ skip_if_not(.runProdStackTest)
+ suppressMessages(writeAntaresH5(pathtemp, opts = opts, overwrite = TRUE))
+ optsH5 <- setSimulationPath(pathtemp)
+
+ myArea <- "b"
+ DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
+ #MWController
+ # test debug prodStack(x = optsH5, refStudy = optsH5, dateRange = DR, h5requestFiltering = list(areas = myArea, mcYears = 2))
+ PS3 <- prodStack(x = optsH5,
+ refStudy = optsH5,
+ dateRange = DR,
+ h5requestFiltering = list(areas = myArea, mcYears = 2),
+ .runApp = FALSE,
+ interactive = TRUE)
+
+ res <- PS3$init()
+ expect_true(is(PS3, "MWController"))
+ expect_equal(PS3$ncharts, 1)
+ expect_equal(PS3$ncol, 1)
+ expect_equal(PS3$nrow, 1)
+
+ #check that PS1 == PS2 or PS3 == 0
+ dataHtmlWidgetPS <- .get_data_from_htmlwidget(PS3)
+ expect_equal(0, max(dataHtmlWidgetPS$totalProduction, na.rm = TRUE))
+ expect_equal(0, max(dataHtmlWidgetPS$gas, na.rm = TRUE))
+
+ # with a new Study H5 test if compare prodStack works
+ ## create a new folder h5
+ pathInitial <- file.path(dirname(pathtemp), basename(pathtemp))
+
+ pathNewH5 <- file.path(pathInitial, "testH5")
+ if (!dir.exists(pathNewH5)){
+ dir.create(pathNewH5)
+ }
+ #write the study
+ #windows pb ? pathNewH5 <- gsub("/", "\\", pathNewH5, fixed = TRUE)
+ optsData <- antaresRead::setSimulationPath(path = studyPath)
+ suppressWarnings(writeAntaresH5(path = pathNewH5, opts = optsData,
+ overwrite = TRUE, supressMessages = TRUE))
+
+
+ pathNewH5File <- file.path(pathNewH5, list.files(pathNewH5))
+ .h5Antares_edit_variable(
+ pathH5 = pathNewH5File,
+ area = myArea,
+ timeId = 1:40,
+ antVar = "LIGNITE",
+ newValue = 15000,
+ mcYear = 2
+ )
+
+ optsH5New <- setSimulationPath(path = pathNewH5File)
+ PS3 <- prodStack(x = optsH5New,
+ refStudy = optsH5,
+ dateRange = DR,
+ h5requestFiltering = list(areas = myArea, mcYears = 2),
+ .runApp = FALSE,
+ interactive = TRUE)
+ res <- PS3$init()
+
+ #TEST non interactive for debug
+ PS_FInt <- prodStack(x = optsH5New,
+ refStudy = optsH5,
+ mcYearh5 = 2,
+ interactive = FALSE,
+ areas = myArea,
+ dateRange = DR)
+ dataHtmlWidgetPSFint <- .get_data_from_htmlwidget(PS_FInt)
+ expect_equal(-23000, min(dataHtmlWidgetPSFint$totalProduction, na.rm = TRUE))
+ expect_equal(0, max(dataHtmlWidgetPSFint$neggas, na.rm = TRUE))
+ expect_equal(23000, max(dataHtmlWidgetPSFint$neglignite, na.rm = TRUE))
+
+ res <- PS3$init()
+ expect_true(is(PS3, "MWController"))
+ expect_equal(PS3$ncharts, 1)
+ expect_equal(PS3$ncol, 1)
+ expect_equal(PS3$nrow, 1)
+
+ resOptsH5Old <- readAntares(opts = optsH5, areas = myArea, showProgress = FALSE, mcYears = 2)
+ resOptsH5New <- readAntares(opts = optsH5New, areas = myArea, showProgress = FALSE, mcYears = 2)
+ #timeId for time = "2018-04-24 00:00:00 UTC" ? timeId = 2713
+ timeIdVal <- 2713
+ expect_equal(resOptsH5New[timeId == timeIdVal, LIGNITE], 15000)
+ expect_equal(resOptsH5Old[timeId == timeIdVal, LIGNITE], 38000)
+
+ resCompareData <- antaresProcessing::compare(x = resOptsH5Old, y = resOptsH5New)
+ expect_equal(resCompareData[timeId == timeIdVal, LIGNITE], -23000)
+
+ dataHtmlWidgetPS <- .get_data_from_htmlwidget(PS3)
+ expect_equal(resCompareData[timeId == timeIdVal, LIGNITE], -dataHtmlWidgetPS$neglignite[[1]])
+ #no change after timeID > 40
+ expect_equal(resCompareData[timeId == (timeIdVal + 90), LIGNITE], -dataHtmlWidgetPS$neglignite[[50]])
+ }
+
+})
+
+test_that("prodStack must work with refStudy, if interactive is set to TRUE and if x is a list of optsH5 and refStudy optsH5 , ", {
+ if (.requireRhdf5_Antares(stopP = FALSE)){
+ skip_if_not(.runProdStackTest)
+ suppressMessages(writeAntaresH5(pathtemp, opts = opts, overwrite = TRUE))
+ optsH5 <- setSimulationPath(pathtemp)
+
+ # with new Studies H5 test if compare prodStack works
+ ## create new folders h5
+ pathInitial <- file.path(dirname(pathtemp), basename(pathtemp))
+
+ listFolderToCreate <- c("testH5v2", "testH5v3", "testH5v4")
+ for (folder in listFolderToCreate){
+ pathNewH5 <- file.path(pathInitial, folder)
+ if (!dir.exists(pathNewH5)){
+ dir.create(pathNewH5)
+ }
+
+ #write the study
+ #windows pb ? pathNewH5 <- gsub("/", "\\", pathNewH5, fixed = TRUE)
+ optsData <- antaresRead::setSimulationPath(path = studyPath)
+ suppressWarnings(
+ writeAntaresH5(
+ path = pathNewH5,
+ opts = optsData,
+ overwrite = TRUE,
+ supressMessages = TRUE)
+ )
+ }
+ myArea <- "b"
+ pathH5FolderToEdit <- file.path(pathInitial, listFolderToCreate[[2]])
+ pathH5FileToEdit <- file.path(pathH5FolderToEdit, list.files(pathH5FolderToEdit))
+ newValueGAS <- 50000
+ mcYearToTestList <- c(2, NULL)
+ for (mcYearToTest in mcYearToTestList){
+ .h5Antares_edit_variable(
+ pathH5 = pathH5FileToEdit,
+ area = myArea,
+ timeId = 1:40,
+ antVar = "GAS",
+ newValue = newValueGAS,
+ mcYear = mcYearToTest
+ )
+
+ optsList <- list()
+ antaresDataListH5 <- list()
+ for (i in 1:length(listFolderToCreate)){
+ pathOptsI <- file.path(pathInitial, listFolderToCreate[[i]])
+ optsList[[i]] <- setSimulationPath(path = pathOptsI)
+ antaresDataListH5[[i]] <- readAntares(areas = myArea, mcYear = mcYearToTest)
+ }
+
+ DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
+ #first, try with interactive == FALSE
+ PSListNoInt <- prodStack(x = optsList,
+ refStudy = optsH5,
+ interactive = FALSE,
+ areas = myArea,
+ dateRange = DR,
+ mcYearh5 = mcYearToTest)
+
+ #get the data from the h5 file
+ antaresDataRef <- readAntares(opts = optsH5, areas = myArea, mcYears = mcYearToTest)
+ expect_equal(max(antaresDataListH5[[2]]$GAS), newValueGAS)
+ expect_equal(max(antaresDataListH5[[1]]$GAS), max(antaresDataRef$GAS))
+ expect_equal(max(antaresDataListH5[[3]]$GAS), max(antaresDataRef$GAS))
+ expect_equal(antaresDataListH5[[2]]$`OV. COST`, antaresDataRef$`OV. COST`)
+
+ #get the data from htmlwidget
+ dataHtmlWidgetPS1 <- .get_data_from_htmlwidget(PSListNoInt, widgetsNumber = 1)
+ dataHtmlWidgetPS2 <- .get_data_from_htmlwidget(PSListNoInt, widgetsNumber = 2)
+ #compare data
+ resCompareData1_ref <- antaresProcessing::compare(x = antaresDataRef, y = antaresDataListH5[[1]])
+ resCompareData2_ref <- antaresProcessing::compare(x = antaresDataRef, y = antaresDataListH5[[2]])
+ expect_equal(resCompareData1_ref[timeId == timeId[40], GAS], -dataHtmlWidgetPS1$gas[[2]])
+ expect_equal(resCompareData2_ref[timeId == timeId[40], GAS], dataHtmlWidgetPS2$gas[[2]])
+
+ #second, try without refStudy and interactive == FALSE
+ PSListNoInt <- prodStack(x = optsList,
+ dateRange = DR,
+ areas = myArea,
+ interactive = FALSE,
+ mcYearh5 = mcYearToTest)
+
+ dataHtmlWidgetPSNoInt <- .get_data_from_htmlwidget(PSListNoInt, widgetsNumber = 2)
+ expect_gt(max(dataHtmlWidgetPSNoInt$totalProduction, na.rm = TRUE), 100000)
+ expect_equal(max(dataHtmlWidgetPSNoInt$gas, na.rm = TRUE), 50000)
+
+ #thirdly, try without refStudy and interactive == TRUE
+ PSWORef <- prodStack(x = optsList,
+ dateRange = DR,
+ h5requestFiltering = list(areas = myArea,
+ mcYears = mcYearToTest),
+ .runApp = FALSE,
+ interactive = TRUE)
+
+ res <- PSWORef$init()
+ expect_true(is(PSWORef, "MWController"))
+ expect_equal(PSWORef$ncharts, 3)
+ expect_equal(PSWORef$ncol, 2)
+ expect_equal(PSWORef$nrow, 2)
+
+ #fourth, MWController with refStudy and interactive == TRUE
+ # test debug prodStack(x = optsH5, refStudy = optsH5, dateRange = DR, h5requestFiltering = list(areas = myArea, mcYears = 2))
+ PSWRefI <- prodStack(x = optsList,
+ refStudy = optsH5,
+ dateRange = DR,
+ h5requestFiltering = list(areas = myArea,
+ mcYears = mcYearToTest),
+ .runApp = FALSE,
+ interactive = TRUE)
+
+ res <- PSWRefI$init()
+ expect_true(is(PSWRefI, "MWController"))
+ expect_equal(PSWRefI$ncharts, 3)
+ expect_equal(PSWRefI$ncol, 2)
+ expect_equal(PSWRefI$nrow, 2)
+
+ #check that PS1 == PS2 or PSWRefI == 0
+ dataHtmlWidgetPS31 <- .get_data_from_htmlwidget(PSWRefI, widgetsNumber = 2)
+ expect_equal(newValueGAS, max(dataHtmlWidgetPS31$totalProduction, na.rm = TRUE))
+ expect_equal(newValueGAS, max(dataHtmlWidgetPS31$gas, na.rm = TRUE))
+
+ dataHtmlWidgetPS21 <- .get_data_from_htmlwidget(PSWRefI, widgetsNumber = 1)
+ expect_equal(0, max(dataHtmlWidgetPS21$totalProduction, na.rm = TRUE))
+ expect_equal(0, max(dataHtmlWidgetPS21$gas, na.rm = TRUE))
+
+ resOptsH5Old <- readAntares(opts = optsH5, areas = myArea, showProgress = FALSE, mcYears = mcYearToTest)
+ resOptsH5New <- readAntares(opts = optsList[[2]], areas = myArea, showProgress = FALSE, mcYears = mcYearToTest)
+ #timeId for time = "2018-04-24 00:00:00 UTC" ? timeId = 2713
+ timeIdVal <- 2713
+ expect_equal(resOptsH5New[timeId == timeIdVal, GAS], newValueGAS)
+ expect_equal(resOptsH5Old[timeId == timeIdVal, GAS], 0)
+
+ resCompareData <- antaresProcessing::compare(x = resOptsH5Old, y = resOptsH5New)
+ expect_equal(resCompareData[timeId == timeIdVal, GAS], newValueGAS)
+
+ expect_equal(resCompareData[timeId == timeIdVal, GAS], dataHtmlWidgetPS31$gas[[1]])
+ #no change after timeID > 40
+ expect_equal(resCompareData[timeId == (timeIdVal + 90), GAS], dataHtmlWidgetPS31$gas[[50]])
+ expect_equal(0, dataHtmlWidgetPS21$gas[[1]])
+ expect_equal(0, dataHtmlWidgetPS21$gas[[50]])
+ }
+ }
+
+})
+
+test_that("prodStack, no interactive, ne error with compare main", {
+ myData <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+ myApplica <- prodStack(x = myData,
+ interactive = TRUE,
+ compare = "main",
+ .runApp = FALSE)
+ myApplica$init()
+ expect_true(is(myApplica, "MWController"))
+})
diff --git a/tests/testthat/test-ts_plot.R b/tests/testthat/test-ts_plot.R
index e1a290e..ba05d22 100644
--- a/tests/testthat/test-ts_plot.R
+++ b/tests/testthat/test-ts_plot.R
@@ -1,859 +1,859 @@
-# context("tsPlot")
-#
-# test_that("tsPlot, no interactive", {
-# dta <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-# testClass <- function(obj){
-# class(obj)[1] == 'combineWidgets'
-# }
-# listArgs <- list(noarg = list(x = dta, interactive = FALSE),
-# elem = list(x = dta, interactive = FALSE, elements = "a"),
-# elemS = list(x = dta, interactive = FALSE, elements = c("a", "b")),
-# linkS = list(x = dta, table = "links", interactive = FALSE, elements = c("a - a_offshore")),
-# linkSVarSel = list(x = dta, table = "links", interactive = FALSE,
-# elements = c("a - a_offshore"),
-# variable = "FLOW LIN._std"),
-# bar = list(x = dta, interactive = FALSE, elements = "all", type = "barplot"),
-# monotone = list(x = dta, interactive = FALSE, elements = "all", type = "monotone"),
-# density = list(x = dta, interactive = FALSE, elements = "all", type = "density"),
-# cdf = list(x = dta, interactive = FALSE, elements = "all", type = "cdf")
-# )
-#
-# lapply(listArgs, function(X){
-# re1 <- do.call(tsPlot, X)
-# expect_true(testClass(re1))
-# })
-#
-# })
-#
-#
-#
-# test_that("tsPlot, no interactive return error", {
-#
-# dta <- readAntares(areas = "all", links = "all", showProgress = FALSE)
-#
-# expect_error(tsPlot(dta, interactive = FALSE, compare = "areas"))
-#
-# })
-#
-# # test_that("tsPlot, work with compare", {
-# #
-# # dta <- readAntares(areas = "all", links = "all", showProgress = FALSE, mcYears = "all")
-# # exList <- tsPlot(x = dta, .runApp = FALSE, interactive = TRUE, compare = "mcYear")
-# # exList <- exList$init()
-# # #to get a param exList$getParams("tables")
-# # # exList$getValue("mcYear")
-# # exList$setValue("mcYear", 1, chartId = 1, reactive = FALSE)
-# # exList$setValue("mcYear", 2, chartId = 2, reactive = FALSE)
-# # exList$updateCharts()
-# # expect_equal(exList$getValue("tables"), "areas")
-# # expect_equal(exList$getValue("main"), "")
-# # expect_true(is(exList, "MWController"))
-# # expect_equal(exList$ncharts, 2)
-# # expect_equal(exList$ncol, 1)
-# # expect_equal(exList$nrow, 2)
-# # dataTsCompare <- .get_data_from_htmlwidget(exList, widgetsNumber = 1)
-# # timeEditValue <- "2018-05-06T18:00:00.000Z"
-# # indexHour <- grep(timeEditValue, dataTsCompare$hour)
-# # expect_gt(indexHour, 180)
-# # expect_equal(dataTsCompare$a[indexHour], 1627275)
-# #
-# # dataTsCompareMcYear2 <- .get_data_from_htmlwidget(exList, widgetsNumber = 2)
-# # expect_equal(dataTsCompareMcYear2$a[indexHour], 1432100)
-# #
-# # })
-#
-# test_that("tsPlot, no interactive, x and refStudy are antaresDataTable", {
-# myData1 <- readAntares(links = "all", showProgress = FALSE)
-# myData2 <- readAntares(links = "all", showProgress = FALSE)
-# myLink <- "a - a_offshore"
-# DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
-# tsDa1 <- tsPlot(x = myData1,
-# table = "links",
-# elements = myLink,
-# type = "ts",
-# interactive = FALSE)
-# dataTsDa1 <- .get_data_from_htmlwidget(tsDa1)
-# timeEditValue <- "2018-04-25T00:00:00.000Z"
-# indexHour <- grep(timeEditValue, dataTsDa1$hour)
-# expect_gt(indexHour, 2)
-# expect_equal(dataTsDa1$`a - a_offshore`[indexHour], -9)
-# tsDa2 <- tsPlot(x = myData1,
-# refStudy = myData2,
-# table = "links",
-# elements = myLink,
-# type = "ts",
-# interactive = FALSE)
-# dataTsDa2 <- .get_data_from_htmlwidget(tsDa2)
-# expect_equal(dataTsDa2$`a - a_offshore`[indexHour], 0)
-#
-# table <- "areas"
-# myArea <- "b"
-# myData1 <- readAntares(areas = myArea, showProgress = FALSE)
-# myData2 <- readAntares(areas = myArea, showProgress = FALSE)
-# tsDa1 <- tsPlot(x = myData1,
-# table = table,
-# elements = myArea,
-# type = "ts",
-# interactive = FALSE)
-# dataTsDa1 <- .get_data_from_htmlwidget(tsDa1)
-# expect_equal(dataTsDa1[[myArea]][[indexHour]], 2427150)
-# tsDa2 <- tsPlot(x = myData1,
-# refStudy = myData2,
-# table = table,
-# elements = myArea,
-# type = "ts",
-# interactive = FALSE)
-# dataTsDa2 <- .get_data_from_htmlwidget(tsDa2)
-# expect_equal(dataTsDa2[[myArea]][[indexHour]], 0)
-# })
-#
-# test_that("tsPlot, no interactive, x and refStudy are antaresDataList", {
-# myArea <- "b"
-# myLink <- "a - a_offshore"
-# myData1 <- readAntares(links = myLink, areas = myArea, showProgress = FALSE, mcYears = 1)
-# myData2 <- readAntares(links = myLink, areas = myArea, showProgress = FALSE, mcYears = 1)
-# DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
-# tsDa1 <- tsPlot(x = myData1,
-# table = "links",
-# elements = myLink,
-# type = "ts",
-# interactive = FALSE)
-# dataTsDa1 <- .get_data_from_htmlwidget(tsDa1)
-# timeEditValue <- "2018-04-25T00:00:00.000Z"
-# indexHour <- grep(timeEditValue, dataTsDa1$hour)
-# expect_gt(indexHour, 2)
-# expect_equal(dataTsDa1$`a - a_offshore`[indexHour], -10)
-# tsDa2 <- tsPlot(x = myData1,
-# refStudy = myData2,
-# table = "links",
-# elements = myLink,
-# type = "ts",
-# interactive = FALSE)
-# dataTsDa2 <- .get_data_from_htmlwidget(tsDa2)
-# expect_equal(dataTsDa2$`a - a_offshore`[indexHour], 0)
-#
-# #pb timeZone local (PC, Travis, etc)
-# for (i in 0:5){
-# timeEditShift <- lubridate::hours(i)
-# timeEditMinus <- as.Date(timeEditValue) - timeEditShift
-# timeEditPlus <- as.Date(timeEditValue) + timeEditShift
-# myData2$links[ (time == timeEditMinus | time == timeEditPlus) & link == "a - a_offshore", `FLOW LIN.` := as.integer(`FLOW LIN.` + 2500)]
-# }
-# tsDa2 <- tsPlot(x = myData1,
-# refStudy = myData2,
-# table = "links",
-# elements = myLink,
-# type = "ts",
-# interactive = FALSE)
-# dataTsDa2 <- .get_data_from_htmlwidget(tsDa2)
-# expect_equal(dataTsDa2$`a - a_offshore`[indexHour], -2500)
-#
-# })
-
-# describe("tsPlot, no interactive, x is a list of antaresDataList and refStudy an antaresDataList", {
-# myData1 <- readAntares(links = "all", areas = "all", showProgress = FALSE)
-# myData2 <- readAntares(links = "all", areas = "all", showProgress = FALSE)
-# myData3 <- readAntares(links = "all", areas = "all", showProgress = FALSE)
-# myData4 <- readAntares(links = "all", areas = "all", showProgress = FALSE)
-#
-# myDataList <- list(myData2, myData3, myData4)
-# myLink <- "a - a_offshore"
-# mytables <- "links"
-# myVariable <- "FLOW LIN."
-# DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
-# TsDaList <- tsPlot(x = myDataList,
-# table = mytables,
-# elements = myLink,
-# type = "ts",
-# interactive = FALSE,
-# variable = myVariable)
-# # compare with myData3
-# idWidget <- 2
-# dataTsDaList <- .get_data_from_htmlwidget(TsDaList, widgetsNumber = idWidget)
-# timeEditValue <- "2018-04-25T00:00:00.000Z"
-# indexHour <- grep(timeEditValue, dataTsDaList$hour)
-# expect_gt(indexHour, 2)
-# expect_equal(dataTsDaList$`a - a_offshore`[indexHour], -9)
-# #with a refStudy
-# TsDaList <- tsPlot(x = myDataList,
-# refStudy = myData1,
-# table = mytables,
-# elements = myLink,
-# type = "ts",
-# interactive = FALSE,
-# variable = myVariable)
-# dataTsDaList <- .get_data_from_htmlwidget(TsDaList, widgetsNumber = idWidget)
-# expect_equal(dataTsDaList$`a - a_offshore`[indexHour], 0)
-# # edit myData3 to have a diff != 0
-# #pb timeZone local (PC, Travis, etc)
-# for (i in 0:5){
-# timeEditShift <- lubridate::hours(i)
-# timeEditMinus <- as.Date(timeEditValue) - timeEditShift
-# timeEditPlus <- as.Date(timeEditValue) + timeEditShift
-# myData3$links[ (time == timeEditMinus | time == timeEditPlus) & link == "a - a_offshore", `FLOW LIN.` := as.integer(`FLOW LIN.` + 2500)]
-# }
-# TsDaList <- tsPlot(x = myDataList,
-# refStudy = myData1,
-# table = mytables,
-# elements = myLink,
-# type = "ts",
-# interactive = FALSE,
-# variable = myVariable)
-# dataTsDaList <- .get_data_from_htmlwidget(TsDaList, widgetsNumber = idWidget)
-# expect_equal(dataTsDaList$`a - a_offshore`[indexHour], 2500)
-# })
-#
-# describe("tsPlot, interactive, x and refStudy are antaresDataTable", {
-# myData1 <- readAntares(links = "all", showProgress = FALSE)
-# myData2 <- readAntares(links = "all", showProgress = FALSE)
-# myLink <- "a - a_offshore"
-# DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
-# # no interactive
-# tsDa1 <- tsPlot(x = myData1,
-# table = "links",
-# elements = myLink,
-# type = "ts",
-# interactive = FALSE)
-# dataTsDa1 <- .get_data_from_htmlwidget(tsDa1)
-# timeEditValue <- "2018-04-25T00:00:00.000Z"
-# indexHour <- grep(timeEditValue, dataTsDa1$hour)
-# expect_gt(indexHour, 2)
-# expect_equal(dataTsDa1$`a - a_offshore`[indexHour], -9)
-# # interactive
-# tsDa1Int <- tsPlot(x = myData1,
-# table = "links",
-# elements = myLink,
-# type = "ts",
-# interactive = TRUE,
-# .runApp = FALSE,
-# dateRange = DR)
-# tsDa1Int <- tsDa1Int$init()
-# expect_true(is(tsDa1Int, "MWController"))
-# expect_equal(tsDa1Int$ncharts, 1)
-# expect_equal(tsDa1Int$ncol, 1)
-# expect_equal(tsDa1Int$nrow, 1)
-# tsDa1Int$setValue("mcYear", "average", reactive = FALSE)
-# tsDa1Int$updateCharts()
-# expect_equal(tsDa1Int$getValue("tables"), "links")
-# expect_equal(tsDa1Int$getValue("mcYear"), "average")
-# dataTsDAInt <- .get_data_from_htmlwidget(tsDa1Int)
-# indexHour <- grep(timeEditValue, dataTsDa1$hour)
-# expect_gt(indexHour, 2)
-# expect_lt(indexHour, 50)
-# # BUG with interactive
-# ## we must remove 24 hours ?
-# expect_equal(dataTsDAInt$`a - a_offshore`[indexHour - 24], -9)
-# # interactive with refStudy
-# tsDa1Int <- tsPlot(x = myData1,
-# refStudy = myData2,
-# table = "links",
-# elements = myLink,
-# type = "ts",
-# interactive = TRUE,
-# .runApp = FALSE,
-# dateRange = DR)
-# tsDa1Int <- tsDa1Int$init()
-# expect_true(is(tsDa1Int, "MWController"))
-# tsDa1Int$setValue("mcYear", "average", reactive = FALSE)
-# dataTsDAInt <- .get_data_from_htmlwidget(tsDa1Int)
-# expect_equal(dataTsDAInt$`a - a_offshore`[indexHour - 24], 0)
-#
-# # edit myData2 to have a diff != 0
-# ## pb timeZone local (PC, Travis, etc)
-# for (i in 0:5){
-# timeEditShift <- lubridate::hours(i)
-# timeEditMinus <- as.Date(timeEditValue) - timeEditShift
-# timeEditPlus <- as.Date(timeEditValue) + timeEditShift
-# myData2[ (time == timeEditMinus | time == timeEditPlus) & link == myLink, `FLOW LIN.` := as.integer(`FLOW LIN.` + 2500)]
-# }
-# tsDa1Int <- tsPlot(x = myData2,
-# refStudy = myData1,
-# table = "links",
-# elements = myLink,
-# type = "ts",
-# interactive = TRUE,
-# .runApp = FALSE,
-# dateRange = DR)
-# tsDa1Int <- tsDa1Int$init()
-# expect_true(is(tsDa1Int, "MWController"))
-# tsDa1Int$setValue("mcYear", "average", reactive = FALSE)
-# dataTsDAInt <- .get_data_from_htmlwidget(tsDa1Int)
-# expect_equal(dataTsDAInt$`a - a_offshore`[indexHour - 24], 2500)
-# })
-#
-# describe("tsPlot, interactive, x and refStudy are antaresDataList", {
-# myData1 <- readAntares(links = "all", areas = "all", showProgress = FALSE)
-# myData2 <- readAntares(links = "all", areas = "all", showProgress = FALSE)
-# myArea <- "b"
-# DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
-# # no interactive
-# tsDa1 <- tsPlot(x = myData1,
-# table = "areas",
-# elements = myArea,
-# type = "ts",
-# interactive = FALSE)
-# dataTsDa1 <- .get_data_from_htmlwidget(tsDa1)
-# timeEditValue <- "2018-04-25T00:00:00.000Z"
-# indexHour <- grep(timeEditValue, dataTsDa1$hour)
-# expect_gt(indexHour, 2)
-# expect_equal(dataTsDa1$b[indexHour], 2427150)
-# # interactive
-# tsDa1Int <- tsPlot(x = myData1,
-# table = "areas",
-# elements = myArea,
-# type = "ts",
-# interactive = TRUE,
-# .runApp = FALSE,
-# dateRange = DR)
-# tsDa1Int <- tsDa1Int$init()
-# expect_true(is(tsDa1Int, "MWController"))
-# expect_equal(tsDa1Int$ncharts, 1)
-# expect_equal(tsDa1Int$ncol, 1)
-# expect_equal(tsDa1Int$nrow, 1)
-# tsDa1Int$setValue("mcYear", "average", reactive = TRUE)
-# tsDa1Int$setValue("tables", "areas", reactive = TRUE)
-# tsDa1Int$setValue("elements", "b", reactive = TRUE)
-# tsDa1Int$updateCharts()
-# expect_equal(tsDa1Int$getValue("tables"), "areas")
-# expect_equal(tsDa1Int$getValue("mcYear"), "average")
-# expect_equal(tsDa1Int$getValue("elements"), "b")
-# dataTsDAInt <- .get_data_from_htmlwidget(tsDa1Int)
-# indexHour <- grep(timeEditValue, dataTsDa1$hour)
-# expect_gt(indexHour, 2)
-# expect_lt(indexHour, 50)
-# # BUG with interactive
-# ## we must remove 24 hours ?
-# expect_equal(dataTsDAInt$b[indexHour - 24], 2427150)
-# # interactive with refStudy
-# tsDa1Int <- tsPlot(x = myData1,
-# refStudy = myData2,
-# table = "areas",
-# elements = myArea,
-# type = "ts",
-# interactive = TRUE,
-# .runApp = FALSE,
-# dateRange = DR)
-# tsDa1Int <- tsDa1Int$init()
-# expect_true(is(tsDa1Int, "MWController"))
-# tsDa1Int$setValue("mcYear", "average", reactive = FALSE)
-# dataTsDAInt <- .get_data_from_htmlwidget(tsDa1Int)
-# expect_equal(dataTsDAInt$b[indexHour - 24], 0)
-#
-# # edit myData2 to have a diff != 0
-# ## pb timeZone local (PC, Travis, etc)
-# for (i in 0:5){
-# timeEditShift <- lubridate::hours(i)
-# timeEditMinus <- as.Date(timeEditValue) - timeEditShift
-# timeEditPlus <- as.Date(timeEditValue) + timeEditShift
-# myData2$areas[ (time == timeEditMinus | time == timeEditPlus) & area == myArea, `OV. COST` := as.integer(`OV. COST` + 2500)]
-# }
-# tsDa1Int <- tsPlot(x = myData2,
-# refStudy = myData1,
-# table = "areas",
-# elements = myArea,
-# type = "ts",
-# interactive = TRUE,
-# .runApp = FALSE,
-# dateRange = DR)
-# tsDa1Int <- tsDa1Int$init()
-# expect_true(is(tsDa1Int, "MWController"))
-# tsDa1Int$setValue("mcYear", "average", reactive = TRUE)
-# tsDa1Int$setValue("tables", "areas", reactive = TRUE)
-# tsDa1Int$setValue("elements", "b", reactive = TRUE)
-# tsDa1Int$updateCharts()
-# dataTsDAInt <- .get_data_from_htmlwidget(tsDa1Int)
-# expect_equal(dataTsDAInt$b[indexHour - 24], 2500)
-# })
-#
-# describe("tsPlot, no interactive, x and refStudy are optsH5 ", {
-# testthat::skip("Reason: .runTsPlotTest is not TRUE")
-# if (.requireRhdf5_Antares(stopP = FALSE)){
-# skip_if_not(.runTsPlotTest)
-# suppressMessages(writeAntaresH5(pathtemp, opts = opts, overwrite = TRUE))
-# optsH5 <- setSimulationPath(pathtemp)
-# myLink <- "a - a_offshore"
-# DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
-# # no interactive
-# tsDa1 <- tsPlot(x = optsH5,
-# table = "links",
-# elements = myLink,
-# type = "ts",
-# interactive = FALSE)
-# dataTsDa1 <- .get_data_from_htmlwidget(tsDa1)
-# timeEditValue <- "2018-04-25T00:00:00.000Z"
-# indexHour <- grep(timeEditValue, dataTsDa1$hour)
-# expect_gt(indexHour, 2)
-# expect_equal(dataTsDa1$`a - a_offshore`[indexHour], -9)
-# #ref Study
-# tsDa1 <- tsPlot(x = optsH5,
-# refStudy = optsH5,
-# table = "links",
-# elements = myLink,
-# type = "ts",
-# interactive = FALSE)
-# dataTsDa1 <- .get_data_from_htmlwidget(tsDa1)
-# indexHour <- grep(timeEditValue, dataTsDa1$hour)
-# expect_gt(indexHour, 2)
-# expect_equal(dataTsDa1$`a - a_offshore`[indexHour], 0)
-# # Edit H5 file
-# ## create a new folder h5
-# pathInitial <- file.path(dirname(pathtemp), basename(pathtemp))
-# pathNewH5 <- file.path(pathInitial, "testH5")
-# if (!dir.exists(pathNewH5)){
-# dir.create(pathNewH5)
-# }
-# #write the study
-# #windows pb ? pathNewH5 <- gsub("/", "\\", pathNewH5, fixed = TRUE)
-# optsData <- antaresRead::setSimulationPath(path = studyPath)
-# suppressWarnings(writeAntaresH5(path = pathNewH5, opts = optsData,
-# overwrite = TRUE, supressMessages = TRUE))
-#
-# pathNewH5File <- file.path(pathNewH5, list.files(pathNewH5))
-# .h5Antares_edit_variable(
-# pathH5 = pathNewH5File,
-# link = myLink,
-# timeId = 1:100,
-# antVar = "FLOW LIN.",
-# newValue = 15000
-# )
-#
-# optsH5New <- setSimulationPath(path = pathNewH5File)
-# tsDa1 <- tsPlot(x = optsH5New,
-# refStudy = optsH5,
-# table = "links",
-# elements = myLink,
-# type = "ts",
-# interactive = FALSE)
-# dataTsDa1 <- .get_data_from_htmlwidget(tsDa1)
-# indexHour <- grep(timeEditValue, dataTsDa1$hour)
-# expect_equal(dataTsDa1$`a - a_offshore`[indexHour], 15009)
-# }
-# })
-#
-# describe("tsPlot, no interactive, x is a list of optH5 and refStudy are optsH5 ", {
-# if (.requireRhdf5_Antares(stopP = FALSE)){
-# skip_if_not(.runTsPlotTest)
-# suppressMessages(writeAntaresH5(pathtemp, opts = opts, overwrite = TRUE))
-# optsH5 <- setSimulationPath(pathtemp)
-#
-# # with new Studies H5 test if compare prodStack works
-# ## create new folders h5
-# pathInitial <- file.path(dirname(pathtemp), basename(pathtemp))
-#
-# listFolderToCreate <- c("testH5v2", "testH5v3", "testH5v4")
-# for (folder in listFolderToCreate){
-# pathNewH5 <- file.path(pathInitial, folder)
-# if (!dir.exists(pathNewH5)){
-# dir.create(pathNewH5)
-# }
-# #write the study
-# #windows pb ? pathNewH5 <- gsub("/", "\\", pathNewH5, fixed = TRUE)
-# optsData <- antaresRead::setSimulationPath(path = studyPath)
-# suppressWarnings(
-# writeAntaresH5(
-# path = pathNewH5,
-# opts = optsData,
-# overwrite = TRUE,
-# supressMessages = TRUE)
-# )
-# }
-# idWidgetToEdit <- 2
-# pathH5FolderToEdit <- file.path(pathInitial, listFolderToCreate[[idWidgetToEdit]])
-# pathH5FileToEdit <- file.path(pathH5FolderToEdit, list.files(pathH5FolderToEdit))
-# newValueFlow <- 15000
-# myLink <- getLinks()[1]
-# .h5Antares_edit_variable(
-# pathH5 = pathH5FileToEdit,
-# link = myLink,
-# timeId = 1:100,
-# antVar = "FLOW LIN.",
-# newValue = newValueFlow
-# )
-# optsList <- list()
-# antaresDataListH5 <- list()
-# for (i in 1:length(listFolderToCreate)){
-# pathOptsI <- file.path(pathInitial, listFolderToCreate[[i]])
-# optsList[[i]] <- setSimulationPath(path = pathOptsI)
-# antaresDataListH5[[i]] <- readAntares(links = myLink)
-# }
-# #test the data from h5
-# #get the data from the h5 file
-# antaresDataRef <- readAntares(opts = optsH5, links = myLink)
-# expect_equal(max(antaresDataListH5[[idWidgetToEdit]]$`FLOW LIN.`), newValueFlow)
-# expect_equal(max(antaresDataListH5[[1]]$`FLOW LIN.`), max(antaresDataRef$`FLOW LIN.`))
-# expect_equal(max(antaresDataListH5[[3]]$`FLOW LIN.`), max(antaresDataRef$`FLOW LIN.`))
-# # get the data from htmlwidget
-# myArea <- "a"
-# DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
-# tsDa1 <- tsPlot(x = optsList,
-# refStudy = optsH5,
-# table = "links",
-# elements = myLink,
-# type = "ts",
-# interactive = FALSE)
-# dataTsDa3 <- .get_data_from_htmlwidget(tsDa1, widgetsNumber = idWidgetToEdit)
-# timeEditValue <- "2018-04-25T00:00:00.000Z"
-# indexHour <- grep(timeEditValue, dataTsDa3$hour)
-# expect_equal(dataTsDa3$`a - a_offshore`[indexHour], 15009)
-# dataTsDa2 <- .get_data_from_htmlwidget(tsDa1, widgetsNumber = 1)
-# expect_equal(dataTsDa2$`a - a_offshore`[indexHour], 0)
-# }
-# })
-#
-# describe("tsPlot, interactive, x and refStudy are optsH5 ", {
-# if (.requireRhdf5_Antares(stopP = FALSE)){
-# skip_if_not(.runTsPlotTest)
-# suppressMessages(writeAntaresH5(pathtemp, opts = opts, overwrite = TRUE))
-# optsH5 <- setSimulationPath(pathtemp)
-# myLink <- "a - a_offshore"
-# DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
-# # no interactive
-# tsDa1 <- tsPlot(x = optsH5,
-# table = "links",
-# elements = myLink,
-# type = "ts",
-# interactive = FALSE)
-# dataTsDa1 <- .get_data_from_htmlwidget(tsDa1)
-# timeEditValue <- "2018-04-25T00:00:00.000Z"
-# indexHour <- grep(timeEditValue, dataTsDa1$hour)
-# expect_gt(indexHour, 2)
-# expect_equal(dataTsDa1$`a - a_offshore`[indexHour], -9)
-# #interactive
-# tsDa1Int <- tsPlot(x = optsH5,
-# type = "ts",
-# interactive = TRUE,
-# .runApp = FALSE,
-# h5requestFiltering = list(
-# mcYears = 1
-# ))
-# tsDa1Int <- tsDa1Int$init()
-# expect_true(is(tsDa1Int, "MWController"))
-# expect_equal(tsDa1Int$ncharts, 1)
-# expect_equal(tsDa1Int$ncol, 1)
-# expect_equal(tsDa1Int$nrow, 1)
-# expect_true(is((tsDa1Int$getValue("x_tranform")[[1]]), "antaresData"))
-# tsDa1Int$setValue("mcYear", 1, reactive = TRUE)
-# tsDa1Int$setValue("tables", "areas", reactive = TRUE)
-# tsDa1Int$setValue("elements", "b", reactive = TRUE)
-# tsDa1Int$setValue("variable", "LOAD", reactive = TRUE)
-# tsDa1Int$setValue("dateRange", DR, reactive = TRUE)
-# tsDa1Int$updateCharts()
-# tsDa1Int$setValue("mcYear", 1, reactive = TRUE)
-# tsDa1Int$setValue("meanYearH5", FALSE, reactive = TRUE)
-# tsDa1Int$updateCharts()
-# tsDa1Int$setValue("meanYearH5", FALSE, reactive = TRUE)
-# tsDa1Int$setValue("mcYear", 1, reactive = TRUE)
-# expect_equal(tsDa1Int$getValue("tables"), "areas")
-# expect_equal(tsDa1Int$getValue("mcYear"), 1)
-# expect_equal(tsDa1Int$getValue("elements"), "b")
-# expect_equal(tsDa1Int$getValue("variable"), "LOAD")
-# dataTsDa1 <- .get_data_from_htmlwidget(tsDa1Int)
-# indexHour <- grep(timeEditValue, dataTsDa1$hour)
-# expect_gt(indexHour, 2)
-# expect_equal(dataTsDa1$b[indexHour], 60262)
-# # Edit H5 file
-# ## create a new folder h5
-# pathInitial <- file.path(dirname(pathtemp), basename(pathtemp))
-# pathNewH5 <- file.path(pathInitial, "testH5")
-# if (!dir.exists(pathNewH5)){
-# dir.create(pathNewH5)
-# }
-# #write the study
-# #windows pb ? pathNewH5 <- gsub("/", "\\", pathNewH5, fixed = TRUE)
-# optsData <- antaresRead::setSimulationPath(path = studyPath)
-# suppressWarnings(writeAntaresH5(path = pathNewH5, opts = optsData,
-# overwrite = TRUE, supressMessages = TRUE))
-# pathNewH5File <- file.path(pathNewH5, list.files(pathNewH5))
-# .h5Antares_edit_variable(
-# pathH5 = pathNewH5File,
-# area = "b",
-# timeId = 1:100,
-# antVar = "LOAD",
-# newValue = 15000,
-# mcYear = 1
-# )
-# optsH5New <- setSimulationPath(path = pathNewH5File)
-# myData <- readAntares(areas = "b",
-# select = "LOAD",
-# opts = optsH5New,
-# mcYears = 1)
-# myDataRef <- readAntares(areas = "b",
-# select = "LOAD",
-# opts = optsH5,
-# mcYears = 1)
-# expect_equal(myData[area == "b" & timeId == 2737, LOAD], 15000)
-# expect_gt(myDataRef[area == "b" & timeId == 2737, LOAD], 16000)
-#
-# diffValue <- myData[area == "b" & timeId == 2737, LOAD] -
-# myDataRef[area == "b" & timeId == 2737, LOAD]
-# tsDa1Int <- tsPlot(x = optsH5New,
-# refStudy = optsH5,
-# type = "ts",
-# interactive = TRUE,
-# .runApp = FALSE,
-# h5requestFiltering = list(
-# mcYears = 1
-# ))
-# tsDa1Int <- tsDa1Int$init()
-# expect_true(is(tsDa1Int, "MWController"))
-# expect_equal(tsDa1Int$ncharts, 1)
-# expect_equal(tsDa1Int$ncol, 1)
-# expect_equal(tsDa1Int$nrow, 1)
-# tsDa1Int$setValue("mcYear", 1, reactive = TRUE)
-# tsDa1Int$setValue("tables", "areas", reactive = TRUE)
-# tsDa1Int$setValue("elements", "b", reactive = FALSE)
-# tsDa1Int$setValue("variable", "LOAD", reactive = FALSE)
-# tsDa1Int$setValue("dateRange", DR, reactive = FALSE)
-# tsDa1Int$updateCharts()
-# expect_equal(tsDa1Int$getValue("tables"), "areas")
-# expect_equal(tsDa1Int$getValue("mcYear"), 1)
-# expect_equal(tsDa1Int$getValue("elements"), "b")
-# expect_equal(tsDa1Int$getValue("variable"), "LOAD")
-# dataTsDa1 <- .get_data_from_htmlwidget(tsDa1Int)
-# indexHour <- grep(timeEditValue, dataTsDa1$hour)
-# expect_equal(dataTsDa1$b[indexHour], diffValue)
-# # for links, no refStudy
-# tsDa1Int <- tsPlot(x = optsH5New,
-# type = "ts",
-# interactive = TRUE,
-# .runApp = FALSE,
-# h5requestFiltering = list(
-# mcYears = 1
-# ))
-# tsDa1Int <- tsDa1Int$init()
-# expect_true(is(tsDa1Int, "MWController"))
-# expect_equal(tsDa1Int$ncharts, 1)
-# expect_equal(tsDa1Int$ncol, 1)
-# expect_equal(tsDa1Int$nrow, 1)
-# tsDa1Int$setValue("mcYear", 1, reactive = TRUE)
-# tsDa1Int$setValue("tables", "links", reactive = TRUE)
-# tsDa1Int$setValue("elements", myLink, reactive = FALSE)
-# tsDa1Int$setValue("variable", "FLOW LIN.", reactive = FALSE)
-# tsDa1Int$setValue("dateRange", DR, reactive = FALSE)
-# tsDa1Int$updateCharts()
-# tsDa1Int$setValue("mcYear", 1, reactive = TRUE)
-# expect_true(is((tsDa1Int$getValue("x_tranform")[[1]]), "antaresData"))
-# expect_equal(tsDa1Int$getValue("tables"), "links")
-# expect_equal(tsDa1Int$getValue("mcYear"), 1)
-# expect_equal(tsDa1Int$getValue("elements"), myLink)
-# expect_equal(tsDa1Int$getValue("variable"), "FLOW LIN.")
-# dataTsDa1 <- .get_data_from_htmlwidget(tsDa1Int)
-# indexHour <- grep(timeEditValue, dataTsDa1$hour)
-# expect_equal(dataTsDa1$`a - a_offshore`[indexHour], -10)
-# # for links, with refStudy
-# tsDa1IntRef <- tsPlot(x = optsH5New,
-# refStudy = optsH5,
-# type = "ts",
-# interactive = TRUE,
-# .runApp = FALSE,
-# h5requestFiltering = list(
-# mcYears = 1
-# ))
-# tsDa1IntRef <- tsDa1IntRef$init()
-# expect_true(is(tsDa1IntRef, "MWController"))
-# expect_equal(tsDa1IntRef$ncharts, 1)
-# expect_equal(tsDa1IntRef$ncol, 1)
-# expect_equal(tsDa1IntRef$nrow, 1)
-# expect_true(is((tsDa1IntRef$getValue("x_tranform")[[1]]), "antaresData"))
-# tsDa1IntRef$setValue("mcYear", 1, reactive = TRUE)
-# expect_equal(tsDa1IntRef$getValue("mcYear"), 1)
-# expect_equal(tsDa1IntRef$getValue("tables"), "areas")
-# tsDa1IntRef$setValue("tables", "links", reactive = TRUE)
-# tsDa1IntRef$setValue("elements", myLink, reactive = FALSE)
-# tsDa1IntRef$setValue("variable", "FLOW LIN.", reactive = FALSE)
-# tsDa1IntRef$setValue("dateRange", DR, reactive = FALSE)
-# tsDa1IntRef$setValue("meanYearH5", FALSE, reactive = TRUE)
-# tsDa1IntRef$updateCharts()
-# tsDa1IntRef$setValue("meanYearH5", TRUE, reactive = TRUE)
-# tsDa1IntRef$setValue("mcYear", 1, reactive = TRUE)
-# expect_true(is((tsDa1IntRef$getValue("x_tranform")[[1]]), "antaresData"))
-# expect_equal(tsDa1IntRef$getValue("tables"), "links")
-# expect_true(is((tsDa1IntRef$getValue("x_tranform")[[1]]), "antaresData"))
-# expect_equal(tsDa1IntRef$getValue("elements"), myLink)
-# expect_equal(tsDa1IntRef$getValue("variable"), "FLOW LIN.")
-# expect_equal(tsDa1IntRef$getValue("mcYear"), 1)
-# dataTsDa1Ref <- .get_data_from_htmlwidget(tsDa1IntRef)
-# indexHour <- grep(timeEditValue, dataTsDa1Ref$hour)
-# expect_equal(dataTsDa1Ref$`a - a_offshore`[indexHour], 0)
-# }
-# })
-#
-# describe("tsPlot, interactive, x is a list of optsH5 and refStudy optsH5", {
-# if (.requireRhdf5_Antares(stopP = FALSE)){
-# skip_if_not(.runTsPlotTest)
-# suppressMessages(writeAntaresH5(pathtemp, opts = opts, overwrite = TRUE))
-# optsH5 <- setSimulationPath(pathtemp)
-#
-# # with new Studies H5 test if compare prodStack works
-# ## create new folders h5
-# pathInitial <- file.path(dirname(pathtemp), basename(pathtemp))
-# listFolderToCreate <- c("testH5v2", "testH5v3", "testH5v4")
-# for (folder in listFolderToCreate){
-# pathNewH5 <- file.path(pathInitial, folder)
-# if (!dir.exists(pathNewH5)){
-# dir.create(pathNewH5)
-# }
-#
-# #write the study
-# #windows pb ? pathNewH5 <- gsub("/", "\\", pathNewH5, fixed = TRUE)
-# optsData <- antaresRead::setSimulationPath(path = studyPath)
-# suppressWarnings(
-# writeAntaresH5(
-# path = pathNewH5,
-# opts = optsData,
-# overwrite = TRUE,
-# supressMessages = TRUE)
-# )
-# }
-# pathH5FolderToEdit <- file.path(pathInitial, listFolderToCreate[[2]])
-# pathH5FileToEdit <- file.path(pathH5FolderToEdit, list.files(pathH5FolderToEdit))
-# myLink <- getLinks()[1]
-# newValueFlow <- 50000
-# mcYearToTestList <- c(2, NULL)
-# myVar <- "FLOW LIN."
-# for (mcYearToTest in mcYearToTestList){
-# .h5Antares_edit_variable(
-# pathH5 = pathH5FileToEdit,
-# link = myLink,
-# timeId = 1:100,
-# antVar = myVar,
-# newValue = newValueFlow,
-# mcYear = mcYearToTest
-# )
-# #stock the data
-# optsList <- list()
-# antaresDataListH5 <- list()
-# for (i in 1:length(listFolderToCreate)){
-# pathOptsI <- file.path(pathInitial, listFolderToCreate[[i]])
-# optsList[[i]] <- setSimulationPath(path = pathOptsI)
-# antaresDataListH5[[i]] <- readAntares(links = myLink,
-# mcYear = mcYearToTest,
-# opts = optsList[[i]])
-# }
-# DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
-# #try without refStudy and interactive == FALSE
-# indexHour <- 49
-# expect_equal(antaresDataListH5[[2]]$`FLOW LIN.`[[indexHour]], 50000)
-# if(is.null(mcYearToTest)){
-# valFlow <- (-9)
-# }else{
-# valFlow <- (-7)
-# }
-# expect_equal(antaresDataListH5[[1]]$`FLOW LIN.`[[indexHour]], valFlow)
-# expect_equal(antaresDataListH5[[3]]$`FLOW LIN.`[[indexHour]], valFlow)
-#
-# if(!is.null(mcYearToTest)){
-# expect_error(tsPlot(x = optsList,
-# table = "links",
-# elements = myLink,
-# type = "ts",
-# interactive = FALSE,
-# mcYear = mcYearToTest),
-# "You can't use mcYear for h5 file when interactive is set to FALSE. You can use mcYearh5.")
-# }
-# tsPlotNoInt <- tsPlot(x = optsList,
-# table = "links",
-# elements = myLink,
-# type = "ts",
-# interactive = FALSE,
-# mcYearh5 = mcYearToTest)
-# datatsPlotNoInt <- .get_data_from_htmlwidget(tsPlotNoInt, widgetsNumber = 2)
-# timeEditValue <- "2018-04-25T00:00:00.000Z"
-# indexHour <- grep(timeEditValue, datatsPlotNoInt$hour)
-# expect_gt(indexHour, 2)
-# expect_equal(datatsPlotNoInt$`a - a_offshore`[[indexHour]], 50000)
-# #interactive
-# tsPlotInt <- tsPlot(x = optsList,
-# type = "ts",
-# dateRange = DR,
-# .runApp = FALSE,
-# interactive = TRUE,
-# h5requestFiltering = list(
-# mcYears = mcYearToTest
-# ))
-# tsPlotInt <- tsPlotInt$init()
-# expect_true(is(tsPlotInt, "MWController"))
-# expect_equal(tsPlotInt$ncharts, 3)
-# expect_equal(tsPlotInt$ncol, 2)
-# expect_equal(tsPlotInt$nrow, 2)
-# tsPlotInt$setValue("mcYear", mcYearToTest, reactive = TRUE)
-# tsPlotInt$setValue("tables", "links", reactive = TRUE)
-# tsPlotInt$setValue("elements", myLink, reactive = TRUE)
-# tsPlotInt$setValue("variable", myVar, reactive = TRUE)
-# tsPlotInt$setValue("dateRange", DR, reactive = TRUE)
-# if(is.null(mcYearToTest)){
-# tsPlotInt$setValue("meanYearH5", FALSE, reactive = TRUE)
-# expect_equal(tsPlotInt$getValue("meanYearH5"), FALSE)
-# tsPlotInt$setValue("mcYear", "average", reactive = TRUE)
-# }else{
-# tsPlotInt$setValue("meanYearH5", TRUE, reactive = TRUE)
-# expect_equal(tsPlotInt$getValue("meanYearH5"), TRUE)
-# }
-# tsPlotInt$updateCharts()
-# expect_equal(tsPlotInt$getValue("tables"), "links")
-# tsPlotInt$setValue("mcYear", mcYearToTest, reactive = TRUE)
-# if(!is.null(mcYearToTest)){
-# expect_equal(tsPlotInt$getValue("mcYear"), mcYearToTest)
-# }else{
-# tsPlotInt$setValue("mcYear", "average", reactive = TRUE)
-# expect_equal(tsPlotInt$getValue("mcYear"), "average")
-# }
-# expect_equal(tsPlotInt$getValue("mcYearH5"),"1")
-# expect_equal(tsPlotInt$getValue("elements"), myLink)
-# expect_equal(tsPlotInt$getValue("variable"), myVar)
-# datatsPlotInt <- .get_data_from_htmlwidget(tsPlotInt, widgetsNumber = 2)
-# indexHour <- grep(timeEditValue, datatsPlotInt$hour)
-# expect_equal(datatsPlotInt$`a - a_offshore`[[indexHour]], 50000)
-# datatsPlotInt2 <- .get_data_from_htmlwidget(tsPlotInt, widgetsNumber = 1)
-# indexHour <- grep(timeEditValue, datatsPlotInt2$hour)
-# expect_equal(datatsPlotInt2$`a - a_offshore`[[indexHour]], valFlow)
-# #interactive with refStudy
-# tsPlotIntRef <- tsPlot(x = optsList,
-# refStudy = optsH5,
-# type = "ts",
-# dateRange = DR,
-# .runApp = FALSE,
-# interactive = TRUE,
-# h5requestFiltering = list(
-# mcYears = mcYearToTest
-# ))
-# tsPlotIntRef <- tsPlotIntRef$init()
-# expect_true(is(tsPlotIntRef, "MWController"))
-# expect_equal(tsPlotIntRef$ncharts, 3)
-# expect_equal(tsPlotIntRef$ncol, 2)
-# expect_equal(tsPlotIntRef$nrow, 2)
-# tsPlotIntRef$setValue("mcYear", mcYearToTest, reactive = TRUE)
-# tsPlotIntRef$setValue("tables", "links", reactive = TRUE)
-# tsPlotIntRef$setValue("elements", myLink, reactive = TRUE)
-# tsPlotIntRef$setValue("variable", myVar, reactive = TRUE)
-# tsPlotIntRef$setValue("dateRange", DR, reactive = TRUE)
-# if(is.null(mcYearToTest)){
-# tsPlotIntRef$setValue("meanYearH5", FALSE, reactive = TRUE)
-# expect_equal(tsPlotIntRef$getValue("meanYearH5"), FALSE)
-# }else{
-# tsPlotIntRef$setValue("meanYearH5", TRUE, reactive = TRUE)
-# expect_equal(tsPlotIntRef$getValue("meanYearH5"), TRUE)
-# }
-# tsPlotIntRef$updateCharts()
-# expect_equal(tsPlotIntRef$getValue("tables"), "links")
-# tsPlotIntRef$setValue("mcYear", mcYearToTest, reactive = TRUE)
-# if(!is.null(mcYearToTest)){
-# expect_equal(tsPlotInt$getValue("mcYear"), mcYearToTest)
-# expect_equal(tsPlotIntRef$getValue("mcYearH5"),"1")
-# }else{
-# tsPlotIntRef$setValue("mcYear", "average", reactive = TRUE)
-# tsPlotIntRef$setValue("mcYearH5", "", reactive = TRUE)
-# expect_equal(tsPlotIntRef$getValue("mcYearH5"),"")
-# expect_equal(tsPlotIntRef$getValue("mcYear"), "average")
-# }
-# expect_equal(tsPlotIntRef$getValue("elements"), myLink)
-# expect_equal(tsPlotIntRef$getValue("variable"), myVar)
-# datatsPlotIntRef <- .get_data_from_htmlwidget(tsPlotIntRef, widgetsNumber = 2)
-# indexHour <- grep(timeEditValue, datatsPlotIntRef$hour)
-# expect_equal(datatsPlotIntRef$`a - a_offshore`[[indexHour]], 50000-(valFlow))
-# datatsPlotIntRef2 <- .get_data_from_htmlwidget(tsPlotIntRef, widgetsNumber = 1)
-# indexHour <- grep(timeEditValue, datatsPlotIntRef2$hour)
-# expect_equal(datatsPlotIntRef2$`a - a_offshore`[[indexHour]], 0)
-# }
-# }
-# })
+context("tsPlot")
+
+test_that("tsPlot, no interactive", {
+ dta <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+ testClass <- function(obj){
+ class(obj)[1] == 'combineWidgets'
+ }
+ listArgs <- list(noarg = list(x = dta, interactive = FALSE),
+ elem = list(x = dta, interactive = FALSE, elements = "a"),
+ elemS = list(x = dta, interactive = FALSE, elements = c("a", "b")),
+ linkS = list(x = dta, table = "links", interactive = FALSE, elements = c("a - a_offshore")),
+ linkSVarSel = list(x = dta, table = "links", interactive = FALSE,
+ elements = c("a - a_offshore"),
+ variable = "FLOW LIN._std"),
+ bar = list(x = dta, interactive = FALSE, elements = "all", type = "barplot"),
+ monotone = list(x = dta, interactive = FALSE, elements = "all", type = "monotone"),
+ density = list(x = dta, interactive = FALSE, elements = "all", type = "density"),
+ cdf = list(x = dta, interactive = FALSE, elements = "all", type = "cdf")
+ )
+
+ lapply(listArgs, function(X){
+ re1 <- do.call(tsPlot, X)
+ expect_true(testClass(re1))
+ })
+
+})
+
+
+
+test_that("tsPlot, no interactive return error", {
+
+ dta <- readAntares(areas = "all", links = "all", showProgress = FALSE)
+
+ expect_error(tsPlot(dta, interactive = FALSE, compare = "areas"))
+
+})
+
+test_that("tsPlot, work with compare", {
+
+ dta <- readAntares(areas = "all", links = "all", showProgress = FALSE, mcYears = "all")
+ exList <- tsPlot(x = dta, .runApp = FALSE, interactive = TRUE, compare = "mcYear")
+ exList <- exList$init()
+ #to get a param exList$getParams("tables")
+ # exList$getValue("mcYear")
+ exList$setValue("mcYear", 1, chartId = 1, reactive = FALSE)
+ exList$setValue("mcYear", 2, chartId = 2, reactive = FALSE)
+ exList$updateCharts()
+ expect_equal(exList$getValue("tables"), "areas")
+ expect_equal(exList$getValue("main"), "")
+ expect_true(is(exList, "MWController"))
+ expect_equal(exList$ncharts, 2)
+ expect_equal(exList$ncol, 1)
+ expect_equal(exList$nrow, 2)
+ dataTsCompare <- .get_data_from_htmlwidget(exList, widgetsNumber = 1)
+ timeEditValue <- "2018-05-06T18:00:00.000Z"
+ indexHour <- grep(timeEditValue, dataTsCompare$hour)
+ expect_gt(indexHour, 180)
+ expect_equal(dataTsCompare$a[indexHour], 1627275)
+
+ dataTsCompareMcYear2 <- .get_data_from_htmlwidget(exList, widgetsNumber = 2)
+ expect_equal(dataTsCompareMcYear2$a[indexHour], 1432100)
+
+})
+
+test_that("tsPlot, no interactive, x and refStudy are antaresDataTable", {
+ myData1 <- readAntares(links = "all", showProgress = FALSE)
+ myData2 <- readAntares(links = "all", showProgress = FALSE)
+ myLink <- "a - a_offshore"
+ DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
+ tsDa1 <- tsPlot(x = myData1,
+ table = "links",
+ elements = myLink,
+ type = "ts",
+ interactive = FALSE)
+ dataTsDa1 <- .get_data_from_htmlwidget(tsDa1)
+ timeEditValue <- "2018-04-25T00:00:00.000Z"
+ indexHour <- grep(timeEditValue, dataTsDa1$hour)
+ expect_gt(indexHour, 2)
+ expect_equal(dataTsDa1$`a - a_offshore`[indexHour], -9)
+ tsDa2 <- tsPlot(x = myData1,
+ refStudy = myData2,
+ table = "links",
+ elements = myLink,
+ type = "ts",
+ interactive = FALSE)
+ dataTsDa2 <- .get_data_from_htmlwidget(tsDa2)
+ expect_equal(dataTsDa2$`a - a_offshore`[indexHour], 0)
+
+ table <- "areas"
+ myArea <- "b"
+ myData1 <- readAntares(areas = myArea, showProgress = FALSE)
+ myData2 <- readAntares(areas = myArea, showProgress = FALSE)
+ tsDa1 <- tsPlot(x = myData1,
+ table = table,
+ elements = myArea,
+ type = "ts",
+ interactive = FALSE)
+ dataTsDa1 <- .get_data_from_htmlwidget(tsDa1)
+ expect_equal(dataTsDa1[[myArea]][[indexHour]], 2427150)
+ tsDa2 <- tsPlot(x = myData1,
+ refStudy = myData2,
+ table = table,
+ elements = myArea,
+ type = "ts",
+ interactive = FALSE)
+ dataTsDa2 <- .get_data_from_htmlwidget(tsDa2)
+ expect_equal(dataTsDa2[[myArea]][[indexHour]], 0)
+})
+
+test_that("tsPlot, no interactive, x and refStudy are antaresDataList", {
+ myArea <- "b"
+ myLink <- "a - a_offshore"
+ myData1 <- readAntares(links = myLink, areas = myArea, showProgress = FALSE, mcYears = 1)
+ myData2 <- readAntares(links = myLink, areas = myArea, showProgress = FALSE, mcYears = 1)
+ DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
+ tsDa1 <- tsPlot(x = myData1,
+ table = "links",
+ elements = myLink,
+ type = "ts",
+ interactive = FALSE)
+ dataTsDa1 <- .get_data_from_htmlwidget(tsDa1)
+ timeEditValue <- "2018-04-25T00:00:00.000Z"
+ indexHour <- grep(timeEditValue, dataTsDa1$hour)
+ expect_gt(indexHour, 2)
+ expect_equal(dataTsDa1$`a - a_offshore`[indexHour], -10)
+ tsDa2 <- tsPlot(x = myData1,
+ refStudy = myData2,
+ table = "links",
+ elements = myLink,
+ type = "ts",
+ interactive = FALSE)
+ dataTsDa2 <- .get_data_from_htmlwidget(tsDa2)
+ expect_equal(dataTsDa2$`a - a_offshore`[indexHour], 0)
+
+ #pb timeZone local (PC, Travis, etc)
+ for (i in 0:5){
+ timeEditShift <- lubridate::hours(i)
+ timeEditMinus <- as.Date(timeEditValue) - timeEditShift
+ timeEditPlus <- as.Date(timeEditValue) + timeEditShift
+ myData2$links[ (time == timeEditMinus | time == timeEditPlus) & link == "a - a_offshore", `FLOW LIN.` := as.integer(`FLOW LIN.` + 2500)]
+ }
+ tsDa2 <- tsPlot(x = myData1,
+ refStudy = myData2,
+ table = "links",
+ elements = myLink,
+ type = "ts",
+ interactive = FALSE)
+ dataTsDa2 <- .get_data_from_htmlwidget(tsDa2)
+ expect_equal(dataTsDa2$`a - a_offshore`[indexHour], -2500)
+
+})
+
+describe("tsPlot, no interactive, x is a list of antaresDataList and refStudy an antaresDataList", {
+ myData1 <- readAntares(links = "all", areas = "all", showProgress = FALSE)
+ myData2 <- readAntares(links = "all", areas = "all", showProgress = FALSE)
+ myData3 <- readAntares(links = "all", areas = "all", showProgress = FALSE)
+ myData4 <- readAntares(links = "all", areas = "all", showProgress = FALSE)
+
+ myDataList <- list(myData2, myData3, myData4)
+ myLink <- "a - a_offshore"
+ mytables <- "links"
+ myVariable <- "FLOW LIN."
+ DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
+ TsDaList <- tsPlot(x = myDataList,
+ table = mytables,
+ elements = myLink,
+ type = "ts",
+ interactive = FALSE,
+ variable = myVariable)
+ # compare with myData3
+ idWidget <- 2
+ dataTsDaList <- .get_data_from_htmlwidget(TsDaList, widgetsNumber = idWidget)
+ timeEditValue <- "2018-04-25T00:00:00.000Z"
+ indexHour <- grep(timeEditValue, dataTsDaList$hour)
+ expect_gt(indexHour, 2)
+ expect_equal(dataTsDaList$`a - a_offshore`[indexHour], -9)
+ #with a refStudy
+ TsDaList <- tsPlot(x = myDataList,
+ refStudy = myData1,
+ table = mytables,
+ elements = myLink,
+ type = "ts",
+ interactive = FALSE,
+ variable = myVariable)
+ dataTsDaList <- .get_data_from_htmlwidget(TsDaList, widgetsNumber = idWidget)
+ expect_equal(dataTsDaList$`a - a_offshore`[indexHour], 0)
+ # edit myData3 to have a diff != 0
+ #pb timeZone local (PC, Travis, etc)
+ for (i in 0:5){
+ timeEditShift <- lubridate::hours(i)
+ timeEditMinus <- as.Date(timeEditValue) - timeEditShift
+ timeEditPlus <- as.Date(timeEditValue) + timeEditShift
+ myData3$links[ (time == timeEditMinus | time == timeEditPlus) & link == "a - a_offshore", `FLOW LIN.` := as.integer(`FLOW LIN.` + 2500)]
+ }
+ TsDaList <- tsPlot(x = myDataList,
+ refStudy = myData1,
+ table = mytables,
+ elements = myLink,
+ type = "ts",
+ interactive = FALSE,
+ variable = myVariable)
+ dataTsDaList <- .get_data_from_htmlwidget(TsDaList, widgetsNumber = idWidget)
+ expect_equal(dataTsDaList$`a - a_offshore`[indexHour], 2500)
+})
+
+describe("tsPlot, interactive, x and refStudy are antaresDataTable", {
+ myData1 <- readAntares(links = "all", showProgress = FALSE)
+ myData2 <- readAntares(links = "all", showProgress = FALSE)
+ myLink <- "a - a_offshore"
+ DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
+ # no interactive
+ tsDa1 <- tsPlot(x = myData1,
+ table = "links",
+ elements = myLink,
+ type = "ts",
+ interactive = FALSE)
+ dataTsDa1 <- .get_data_from_htmlwidget(tsDa1)
+ timeEditValue <- "2018-04-25T00:00:00.000Z"
+ indexHour <- grep(timeEditValue, dataTsDa1$hour)
+ expect_gt(indexHour, 2)
+ expect_equal(dataTsDa1$`a - a_offshore`[indexHour], -9)
+ # interactive
+ tsDa1Int <- tsPlot(x = myData1,
+ table = "links",
+ elements = myLink,
+ type = "ts",
+ interactive = TRUE,
+ .runApp = FALSE,
+ dateRange = DR)
+ tsDa1Int <- tsDa1Int$init()
+ expect_true(is(tsDa1Int, "MWController"))
+ expect_equal(tsDa1Int$ncharts, 1)
+ expect_equal(tsDa1Int$ncol, 1)
+ expect_equal(tsDa1Int$nrow, 1)
+ tsDa1Int$setValue("mcYear", "average", reactive = FALSE)
+ tsDa1Int$updateCharts()
+ expect_equal(tsDa1Int$getValue("tables"), "links")
+ expect_equal(tsDa1Int$getValue("mcYear"), "average")
+ dataTsDAInt <- .get_data_from_htmlwidget(tsDa1Int)
+ indexHour <- grep(timeEditValue, dataTsDa1$hour)
+ expect_gt(indexHour, 2)
+ expect_lt(indexHour, 50)
+ # BUG with interactive
+ ## we must remove 24 hours ?
+ expect_equal(dataTsDAInt$`a - a_offshore`[indexHour - 24], -9)
+ # interactive with refStudy
+ tsDa1Int <- tsPlot(x = myData1,
+ refStudy = myData2,
+ table = "links",
+ elements = myLink,
+ type = "ts",
+ interactive = TRUE,
+ .runApp = FALSE,
+ dateRange = DR)
+ tsDa1Int <- tsDa1Int$init()
+ expect_true(is(tsDa1Int, "MWController"))
+ tsDa1Int$setValue("mcYear", "average", reactive = FALSE)
+ dataTsDAInt <- .get_data_from_htmlwidget(tsDa1Int)
+ expect_equal(dataTsDAInt$`a - a_offshore`[indexHour - 24], 0)
+
+ # edit myData2 to have a diff != 0
+ ## pb timeZone local (PC, Travis, etc)
+ for (i in 0:5){
+ timeEditShift <- lubridate::hours(i)
+ timeEditMinus <- as.Date(timeEditValue) - timeEditShift
+ timeEditPlus <- as.Date(timeEditValue) + timeEditShift
+ myData2[ (time == timeEditMinus | time == timeEditPlus) & link == myLink, `FLOW LIN.` := as.integer(`FLOW LIN.` + 2500)]
+ }
+ tsDa1Int <- tsPlot(x = myData2,
+ refStudy = myData1,
+ table = "links",
+ elements = myLink,
+ type = "ts",
+ interactive = TRUE,
+ .runApp = FALSE,
+ dateRange = DR)
+ tsDa1Int <- tsDa1Int$init()
+ expect_true(is(tsDa1Int, "MWController"))
+ tsDa1Int$setValue("mcYear", "average", reactive = FALSE)
+ dataTsDAInt <- .get_data_from_htmlwidget(tsDa1Int)
+ expect_equal(dataTsDAInt$`a - a_offshore`[indexHour - 24], 2500)
+})
+
+describe("tsPlot, interactive, x and refStudy are antaresDataList", {
+ myData1 <- readAntares(links = "all", areas = "all", showProgress = FALSE)
+ myData2 <- readAntares(links = "all", areas = "all", showProgress = FALSE)
+ myArea <- "b"
+ DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
+ # no interactive
+ tsDa1 <- tsPlot(x = myData1,
+ table = "areas",
+ elements = myArea,
+ type = "ts",
+ interactive = FALSE)
+ dataTsDa1 <- .get_data_from_htmlwidget(tsDa1)
+ timeEditValue <- "2018-04-25T00:00:00.000Z"
+ indexHour <- grep(timeEditValue, dataTsDa1$hour)
+ expect_gt(indexHour, 2)
+ expect_equal(dataTsDa1$b[indexHour], 2427150)
+ # interactive
+ tsDa1Int <- tsPlot(x = myData1,
+ table = "areas",
+ elements = myArea,
+ type = "ts",
+ interactive = TRUE,
+ .runApp = FALSE,
+ dateRange = DR)
+ tsDa1Int <- tsDa1Int$init()
+ expect_true(is(tsDa1Int, "MWController"))
+ expect_equal(tsDa1Int$ncharts, 1)
+ expect_equal(tsDa1Int$ncol, 1)
+ expect_equal(tsDa1Int$nrow, 1)
+ tsDa1Int$setValue("mcYear", "average", reactive = TRUE)
+ tsDa1Int$setValue("tables", "areas", reactive = TRUE)
+ tsDa1Int$setValue("elements", "b", reactive = TRUE)
+ tsDa1Int$updateCharts()
+ expect_equal(tsDa1Int$getValue("tables"), "areas")
+ expect_equal(tsDa1Int$getValue("mcYear"), "average")
+ expect_equal(tsDa1Int$getValue("elements"), "b")
+ dataTsDAInt <- .get_data_from_htmlwidget(tsDa1Int)
+ indexHour <- grep(timeEditValue, dataTsDa1$hour)
+ expect_gt(indexHour, 2)
+ expect_lt(indexHour, 50)
+ # BUG with interactive
+ ## we must remove 24 hours ?
+ expect_equal(dataTsDAInt$b[indexHour - 24], 2427150)
+ # interactive with refStudy
+ tsDa1Int <- tsPlot(x = myData1,
+ refStudy = myData2,
+ table = "areas",
+ elements = myArea,
+ type = "ts",
+ interactive = TRUE,
+ .runApp = FALSE,
+ dateRange = DR)
+ tsDa1Int <- tsDa1Int$init()
+ expect_true(is(tsDa1Int, "MWController"))
+ tsDa1Int$setValue("mcYear", "average", reactive = FALSE)
+ dataTsDAInt <- .get_data_from_htmlwidget(tsDa1Int)
+ expect_equal(dataTsDAInt$b[indexHour - 24], 0)
+
+ # edit myData2 to have a diff != 0
+ ## pb timeZone local (PC, Travis, etc)
+ for (i in 0:5){
+ timeEditShift <- lubridate::hours(i)
+ timeEditMinus <- as.Date(timeEditValue) - timeEditShift
+ timeEditPlus <- as.Date(timeEditValue) + timeEditShift
+ myData2$areas[ (time == timeEditMinus | time == timeEditPlus) & area == myArea, `OV. COST` := as.integer(`OV. COST` + 2500)]
+ }
+ tsDa1Int <- tsPlot(x = myData2,
+ refStudy = myData1,
+ table = "areas",
+ elements = myArea,
+ type = "ts",
+ interactive = TRUE,
+ .runApp = FALSE,
+ dateRange = DR)
+ tsDa1Int <- tsDa1Int$init()
+ expect_true(is(tsDa1Int, "MWController"))
+ tsDa1Int$setValue("mcYear", "average", reactive = TRUE)
+ tsDa1Int$setValue("tables", "areas", reactive = TRUE)
+ tsDa1Int$setValue("elements", "b", reactive = TRUE)
+ tsDa1Int$updateCharts()
+ dataTsDAInt <- .get_data_from_htmlwidget(tsDa1Int)
+ expect_equal(dataTsDAInt$b[indexHour - 24], 2500)
+})
+
+describe("tsPlot, no interactive, x and refStudy are optsH5 ", {
+ testthat::skip("Reason: .runTsPlotTest is not TRUE")
+ if (.requireRhdf5_Antares(stopP = FALSE)){
+ skip_if_not(.runTsPlotTest)
+ suppressMessages(writeAntaresH5(pathtemp, opts = opts, overwrite = TRUE))
+ optsH5 <- setSimulationPath(pathtemp)
+ myLink <- "a - a_offshore"
+ DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
+ # no interactive
+ tsDa1 <- tsPlot(x = optsH5,
+ table = "links",
+ elements = myLink,
+ type = "ts",
+ interactive = FALSE)
+ dataTsDa1 <- .get_data_from_htmlwidget(tsDa1)
+ timeEditValue <- "2018-04-25T00:00:00.000Z"
+ indexHour <- grep(timeEditValue, dataTsDa1$hour)
+ expect_gt(indexHour, 2)
+ expect_equal(dataTsDa1$`a - a_offshore`[indexHour], -9)
+ #ref Study
+ tsDa1 <- tsPlot(x = optsH5,
+ refStudy = optsH5,
+ table = "links",
+ elements = myLink,
+ type = "ts",
+ interactive = FALSE)
+ dataTsDa1 <- .get_data_from_htmlwidget(tsDa1)
+ indexHour <- grep(timeEditValue, dataTsDa1$hour)
+ expect_gt(indexHour, 2)
+ expect_equal(dataTsDa1$`a - a_offshore`[indexHour], 0)
+ # Edit H5 file
+ ## create a new folder h5
+ pathInitial <- file.path(dirname(pathtemp), basename(pathtemp))
+ pathNewH5 <- file.path(pathInitial, "testH5")
+ if (!dir.exists(pathNewH5)){
+ dir.create(pathNewH5)
+ }
+ #write the study
+ #windows pb ? pathNewH5 <- gsub("/", "\\", pathNewH5, fixed = TRUE)
+ optsData <- antaresRead::setSimulationPath(path = studyPath)
+ suppressWarnings(writeAntaresH5(path = pathNewH5, opts = optsData,
+ overwrite = TRUE, supressMessages = TRUE))
+
+ pathNewH5File <- file.path(pathNewH5, list.files(pathNewH5))
+ .h5Antares_edit_variable(
+ pathH5 = pathNewH5File,
+ link = myLink,
+ timeId = 1:100,
+ antVar = "FLOW LIN.",
+ newValue = 15000
+ )
+
+ optsH5New <- setSimulationPath(path = pathNewH5File)
+ tsDa1 <- tsPlot(x = optsH5New,
+ refStudy = optsH5,
+ table = "links",
+ elements = myLink,
+ type = "ts",
+ interactive = FALSE)
+ dataTsDa1 <- .get_data_from_htmlwidget(tsDa1)
+ indexHour <- grep(timeEditValue, dataTsDa1$hour)
+ expect_equal(dataTsDa1$`a - a_offshore`[indexHour], 15009)
+ }
+})
+
+describe("tsPlot, no interactive, x is a list of optH5 and refStudy are optsH5 ", {
+ if (.requireRhdf5_Antares(stopP = FALSE)){
+ skip_if_not(.runTsPlotTest)
+ suppressMessages(writeAntaresH5(pathtemp, opts = opts, overwrite = TRUE))
+ optsH5 <- setSimulationPath(pathtemp)
+
+ # with new Studies H5 test if compare prodStack works
+ ## create new folders h5
+ pathInitial <- file.path(dirname(pathtemp), basename(pathtemp))
+
+ listFolderToCreate <- c("testH5v2", "testH5v3", "testH5v4")
+ for (folder in listFolderToCreate){
+ pathNewH5 <- file.path(pathInitial, folder)
+ if (!dir.exists(pathNewH5)){
+ dir.create(pathNewH5)
+ }
+ #write the study
+ #windows pb ? pathNewH5 <- gsub("/", "\\", pathNewH5, fixed = TRUE)
+ optsData <- antaresRead::setSimulationPath(path = studyPath)
+ suppressWarnings(
+ writeAntaresH5(
+ path = pathNewH5,
+ opts = optsData,
+ overwrite = TRUE,
+ supressMessages = TRUE)
+ )
+ }
+ idWidgetToEdit <- 2
+ pathH5FolderToEdit <- file.path(pathInitial, listFolderToCreate[[idWidgetToEdit]])
+ pathH5FileToEdit <- file.path(pathH5FolderToEdit, list.files(pathH5FolderToEdit))
+ newValueFlow <- 15000
+ myLink <- getLinks()[1]
+ .h5Antares_edit_variable(
+ pathH5 = pathH5FileToEdit,
+ link = myLink,
+ timeId = 1:100,
+ antVar = "FLOW LIN.",
+ newValue = newValueFlow
+ )
+ optsList <- list()
+ antaresDataListH5 <- list()
+ for (i in 1:length(listFolderToCreate)){
+ pathOptsI <- file.path(pathInitial, listFolderToCreate[[i]])
+ optsList[[i]] <- setSimulationPath(path = pathOptsI)
+ antaresDataListH5[[i]] <- readAntares(links = myLink)
+ }
+ #test the data from h5
+ #get the data from the h5 file
+ antaresDataRef <- readAntares(opts = optsH5, links = myLink)
+ expect_equal(max(antaresDataListH5[[idWidgetToEdit]]$`FLOW LIN.`), newValueFlow)
+ expect_equal(max(antaresDataListH5[[1]]$`FLOW LIN.`), max(antaresDataRef$`FLOW LIN.`))
+ expect_equal(max(antaresDataListH5[[3]]$`FLOW LIN.`), max(antaresDataRef$`FLOW LIN.`))
+ # get the data from htmlwidget
+ myArea <- "a"
+ DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
+ tsDa1 <- tsPlot(x = optsList,
+ refStudy = optsH5,
+ table = "links",
+ elements = myLink,
+ type = "ts",
+ interactive = FALSE)
+ dataTsDa3 <- .get_data_from_htmlwidget(tsDa1, widgetsNumber = idWidgetToEdit)
+ timeEditValue <- "2018-04-25T00:00:00.000Z"
+ indexHour <- grep(timeEditValue, dataTsDa3$hour)
+ expect_equal(dataTsDa3$`a - a_offshore`[indexHour], 15009)
+ dataTsDa2 <- .get_data_from_htmlwidget(tsDa1, widgetsNumber = 1)
+ expect_equal(dataTsDa2$`a - a_offshore`[indexHour], 0)
+ }
+})
+
+describe("tsPlot, interactive, x and refStudy are optsH5 ", {
+ if (.requireRhdf5_Antares(stopP = FALSE)){
+ skip_if_not(.runTsPlotTest)
+ suppressMessages(writeAntaresH5(pathtemp, opts = opts, overwrite = TRUE))
+ optsH5 <- setSimulationPath(pathtemp)
+ myLink <- "a - a_offshore"
+ DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
+ # no interactive
+ tsDa1 <- tsPlot(x = optsH5,
+ table = "links",
+ elements = myLink,
+ type = "ts",
+ interactive = FALSE)
+ dataTsDa1 <- .get_data_from_htmlwidget(tsDa1)
+ timeEditValue <- "2018-04-25T00:00:00.000Z"
+ indexHour <- grep(timeEditValue, dataTsDa1$hour)
+ expect_gt(indexHour, 2)
+ expect_equal(dataTsDa1$`a - a_offshore`[indexHour], -9)
+ #interactive
+ tsDa1Int <- tsPlot(x = optsH5,
+ type = "ts",
+ interactive = TRUE,
+ .runApp = FALSE,
+ h5requestFiltering = list(
+ mcYears = 1
+ ))
+ tsDa1Int <- tsDa1Int$init()
+ expect_true(is(tsDa1Int, "MWController"))
+ expect_equal(tsDa1Int$ncharts, 1)
+ expect_equal(tsDa1Int$ncol, 1)
+ expect_equal(tsDa1Int$nrow, 1)
+ expect_true(is((tsDa1Int$getValue("x_tranform")[[1]]), "antaresData"))
+ tsDa1Int$setValue("mcYear", 1, reactive = TRUE)
+ tsDa1Int$setValue("tables", "areas", reactive = TRUE)
+ tsDa1Int$setValue("elements", "b", reactive = TRUE)
+ tsDa1Int$setValue("variable", "LOAD", reactive = TRUE)
+ tsDa1Int$setValue("dateRange", DR, reactive = TRUE)
+ tsDa1Int$updateCharts()
+ tsDa1Int$setValue("mcYear", 1, reactive = TRUE)
+ tsDa1Int$setValue("meanYearH5", FALSE, reactive = TRUE)
+ tsDa1Int$updateCharts()
+ tsDa1Int$setValue("meanYearH5", FALSE, reactive = TRUE)
+ tsDa1Int$setValue("mcYear", 1, reactive = TRUE)
+ expect_equal(tsDa1Int$getValue("tables"), "areas")
+ expect_equal(tsDa1Int$getValue("mcYear"), 1)
+ expect_equal(tsDa1Int$getValue("elements"), "b")
+ expect_equal(tsDa1Int$getValue("variable"), "LOAD")
+ dataTsDa1 <- .get_data_from_htmlwidget(tsDa1Int)
+ indexHour <- grep(timeEditValue, dataTsDa1$hour)
+ expect_gt(indexHour, 2)
+ expect_equal(dataTsDa1$b[indexHour], 60262)
+ # Edit H5 file
+ ## create a new folder h5
+ pathInitial <- file.path(dirname(pathtemp), basename(pathtemp))
+ pathNewH5 <- file.path(pathInitial, "testH5")
+ if (!dir.exists(pathNewH5)){
+ dir.create(pathNewH5)
+ }
+ #write the study
+ #windows pb ? pathNewH5 <- gsub("/", "\\", pathNewH5, fixed = TRUE)
+ optsData <- antaresRead::setSimulationPath(path = studyPath)
+ suppressWarnings(writeAntaresH5(path = pathNewH5, opts = optsData,
+ overwrite = TRUE, supressMessages = TRUE))
+ pathNewH5File <- file.path(pathNewH5, list.files(pathNewH5))
+ .h5Antares_edit_variable(
+ pathH5 = pathNewH5File,
+ area = "b",
+ timeId = 1:100,
+ antVar = "LOAD",
+ newValue = 15000,
+ mcYear = 1
+ )
+ optsH5New <- setSimulationPath(path = pathNewH5File)
+ myData <- readAntares(areas = "b",
+ select = "LOAD",
+ opts = optsH5New,
+ mcYears = 1)
+ myDataRef <- readAntares(areas = "b",
+ select = "LOAD",
+ opts = optsH5,
+ mcYears = 1)
+ expect_equal(myData[area == "b" & timeId == 2737, LOAD], 15000)
+ expect_gt(myDataRef[area == "b" & timeId == 2737, LOAD], 16000)
+
+ diffValue <- myData[area == "b" & timeId == 2737, LOAD] -
+ myDataRef[area == "b" & timeId == 2737, LOAD]
+ tsDa1Int <- tsPlot(x = optsH5New,
+ refStudy = optsH5,
+ type = "ts",
+ interactive = TRUE,
+ .runApp = FALSE,
+ h5requestFiltering = list(
+ mcYears = 1
+ ))
+ tsDa1Int <- tsDa1Int$init()
+ expect_true(is(tsDa1Int, "MWController"))
+ expect_equal(tsDa1Int$ncharts, 1)
+ expect_equal(tsDa1Int$ncol, 1)
+ expect_equal(tsDa1Int$nrow, 1)
+ tsDa1Int$setValue("mcYear", 1, reactive = TRUE)
+ tsDa1Int$setValue("tables", "areas", reactive = TRUE)
+ tsDa1Int$setValue("elements", "b", reactive = FALSE)
+ tsDa1Int$setValue("variable", "LOAD", reactive = FALSE)
+ tsDa1Int$setValue("dateRange", DR, reactive = FALSE)
+ tsDa1Int$updateCharts()
+ expect_equal(tsDa1Int$getValue("tables"), "areas")
+ expect_equal(tsDa1Int$getValue("mcYear"), 1)
+ expect_equal(tsDa1Int$getValue("elements"), "b")
+ expect_equal(tsDa1Int$getValue("variable"), "LOAD")
+ dataTsDa1 <- .get_data_from_htmlwidget(tsDa1Int)
+ indexHour <- grep(timeEditValue, dataTsDa1$hour)
+ expect_equal(dataTsDa1$b[indexHour], diffValue)
+ # for links, no refStudy
+ tsDa1Int <- tsPlot(x = optsH5New,
+ type = "ts",
+ interactive = TRUE,
+ .runApp = FALSE,
+ h5requestFiltering = list(
+ mcYears = 1
+ ))
+ tsDa1Int <- tsDa1Int$init()
+ expect_true(is(tsDa1Int, "MWController"))
+ expect_equal(tsDa1Int$ncharts, 1)
+ expect_equal(tsDa1Int$ncol, 1)
+ expect_equal(tsDa1Int$nrow, 1)
+ tsDa1Int$setValue("mcYear", 1, reactive = TRUE)
+ tsDa1Int$setValue("tables", "links", reactive = TRUE)
+ tsDa1Int$setValue("elements", myLink, reactive = FALSE)
+ tsDa1Int$setValue("variable", "FLOW LIN.", reactive = FALSE)
+ tsDa1Int$setValue("dateRange", DR, reactive = FALSE)
+ tsDa1Int$updateCharts()
+ tsDa1Int$setValue("mcYear", 1, reactive = TRUE)
+ expect_true(is((tsDa1Int$getValue("x_tranform")[[1]]), "antaresData"))
+ expect_equal(tsDa1Int$getValue("tables"), "links")
+ expect_equal(tsDa1Int$getValue("mcYear"), 1)
+ expect_equal(tsDa1Int$getValue("elements"), myLink)
+ expect_equal(tsDa1Int$getValue("variable"), "FLOW LIN.")
+ dataTsDa1 <- .get_data_from_htmlwidget(tsDa1Int)
+ indexHour <- grep(timeEditValue, dataTsDa1$hour)
+ expect_equal(dataTsDa1$`a - a_offshore`[indexHour], -10)
+ # for links, with refStudy
+ tsDa1IntRef <- tsPlot(x = optsH5New,
+ refStudy = optsH5,
+ type = "ts",
+ interactive = TRUE,
+ .runApp = FALSE,
+ h5requestFiltering = list(
+ mcYears = 1
+ ))
+ tsDa1IntRef <- tsDa1IntRef$init()
+ expect_true(is(tsDa1IntRef, "MWController"))
+ expect_equal(tsDa1IntRef$ncharts, 1)
+ expect_equal(tsDa1IntRef$ncol, 1)
+ expect_equal(tsDa1IntRef$nrow, 1)
+ expect_true(is((tsDa1IntRef$getValue("x_tranform")[[1]]), "antaresData"))
+ tsDa1IntRef$setValue("mcYear", 1, reactive = TRUE)
+ expect_equal(tsDa1IntRef$getValue("mcYear"), 1)
+ expect_equal(tsDa1IntRef$getValue("tables"), "areas")
+ tsDa1IntRef$setValue("tables", "links", reactive = TRUE)
+ tsDa1IntRef$setValue("elements", myLink, reactive = FALSE)
+ tsDa1IntRef$setValue("variable", "FLOW LIN.", reactive = FALSE)
+ tsDa1IntRef$setValue("dateRange", DR, reactive = FALSE)
+ tsDa1IntRef$setValue("meanYearH5", FALSE, reactive = TRUE)
+ tsDa1IntRef$updateCharts()
+ tsDa1IntRef$setValue("meanYearH5", TRUE, reactive = TRUE)
+ tsDa1IntRef$setValue("mcYear", 1, reactive = TRUE)
+ expect_true(is((tsDa1IntRef$getValue("x_tranform")[[1]]), "antaresData"))
+ expect_equal(tsDa1IntRef$getValue("tables"), "links")
+ expect_true(is((tsDa1IntRef$getValue("x_tranform")[[1]]), "antaresData"))
+ expect_equal(tsDa1IntRef$getValue("elements"), myLink)
+ expect_equal(tsDa1IntRef$getValue("variable"), "FLOW LIN.")
+ expect_equal(tsDa1IntRef$getValue("mcYear"), 1)
+ dataTsDa1Ref <- .get_data_from_htmlwidget(tsDa1IntRef)
+ indexHour <- grep(timeEditValue, dataTsDa1Ref$hour)
+ expect_equal(dataTsDa1Ref$`a - a_offshore`[indexHour], 0)
+ }
+})
+
+describe("tsPlot, interactive, x is a list of optsH5 and refStudy optsH5", {
+ if (.requireRhdf5_Antares(stopP = FALSE)){
+ skip_if_not(.runTsPlotTest)
+ suppressMessages(writeAntaresH5(pathtemp, opts = opts, overwrite = TRUE))
+ optsH5 <- setSimulationPath(pathtemp)
+
+ # with new Studies H5 test if compare prodStack works
+ ## create new folders h5
+ pathInitial <- file.path(dirname(pathtemp), basename(pathtemp))
+ listFolderToCreate <- c("testH5v2", "testH5v3", "testH5v4")
+ for (folder in listFolderToCreate){
+ pathNewH5 <- file.path(pathInitial, folder)
+ if (!dir.exists(pathNewH5)){
+ dir.create(pathNewH5)
+ }
+
+ #write the study
+ #windows pb ? pathNewH5 <- gsub("/", "\\", pathNewH5, fixed = TRUE)
+ optsData <- antaresRead::setSimulationPath(path = studyPath)
+ suppressWarnings(
+ writeAntaresH5(
+ path = pathNewH5,
+ opts = optsData,
+ overwrite = TRUE,
+ supressMessages = TRUE)
+ )
+ }
+ pathH5FolderToEdit <- file.path(pathInitial, listFolderToCreate[[2]])
+ pathH5FileToEdit <- file.path(pathH5FolderToEdit, list.files(pathH5FolderToEdit))
+ myLink <- getLinks()[1]
+ newValueFlow <- 50000
+ mcYearToTestList <- c(2, NULL)
+ myVar <- "FLOW LIN."
+ for (mcYearToTest in mcYearToTestList){
+ .h5Antares_edit_variable(
+ pathH5 = pathH5FileToEdit,
+ link = myLink,
+ timeId = 1:100,
+ antVar = myVar,
+ newValue = newValueFlow,
+ mcYear = mcYearToTest
+ )
+ #stock the data
+ optsList <- list()
+ antaresDataListH5 <- list()
+ for (i in 1:length(listFolderToCreate)){
+ pathOptsI <- file.path(pathInitial, listFolderToCreate[[i]])
+ optsList[[i]] <- setSimulationPath(path = pathOptsI)
+ antaresDataListH5[[i]] <- readAntares(links = myLink,
+ mcYear = mcYearToTest,
+ opts = optsList[[i]])
+ }
+ DR <- c("2018-04-24 00:00:00 UTC", "2018-04-26 00:00:00 UTC")
+ #try without refStudy and interactive == FALSE
+ indexHour <- 49
+ expect_equal(antaresDataListH5[[2]]$`FLOW LIN.`[[indexHour]], 50000)
+ if(is.null(mcYearToTest)){
+ valFlow <- (-9)
+ }else{
+ valFlow <- (-7)
+ }
+ expect_equal(antaresDataListH5[[1]]$`FLOW LIN.`[[indexHour]], valFlow)
+ expect_equal(antaresDataListH5[[3]]$`FLOW LIN.`[[indexHour]], valFlow)
+
+ if(!is.null(mcYearToTest)){
+ expect_error(tsPlot(x = optsList,
+ table = "links",
+ elements = myLink,
+ type = "ts",
+ interactive = FALSE,
+ mcYear = mcYearToTest),
+ "You can't use mcYear for h5 file when interactive is set to FALSE. You can use mcYearh5.")
+ }
+ tsPlotNoInt <- tsPlot(x = optsList,
+ table = "links",
+ elements = myLink,
+ type = "ts",
+ interactive = FALSE,
+ mcYearh5 = mcYearToTest)
+ datatsPlotNoInt <- .get_data_from_htmlwidget(tsPlotNoInt, widgetsNumber = 2)
+ timeEditValue <- "2018-04-25T00:00:00.000Z"
+ indexHour <- grep(timeEditValue, datatsPlotNoInt$hour)
+ expect_gt(indexHour, 2)
+ expect_equal(datatsPlotNoInt$`a - a_offshore`[[indexHour]], 50000)
+ #interactive
+ tsPlotInt <- tsPlot(x = optsList,
+ type = "ts",
+ dateRange = DR,
+ .runApp = FALSE,
+ interactive = TRUE,
+ h5requestFiltering = list(
+ mcYears = mcYearToTest
+ ))
+ tsPlotInt <- tsPlotInt$init()
+ expect_true(is(tsPlotInt, "MWController"))
+ expect_equal(tsPlotInt$ncharts, 3)
+ expect_equal(tsPlotInt$ncol, 2)
+ expect_equal(tsPlotInt$nrow, 2)
+ tsPlotInt$setValue("mcYear", mcYearToTest, reactive = TRUE)
+ tsPlotInt$setValue("tables", "links", reactive = TRUE)
+ tsPlotInt$setValue("elements", myLink, reactive = TRUE)
+ tsPlotInt$setValue("variable", myVar, reactive = TRUE)
+ tsPlotInt$setValue("dateRange", DR, reactive = TRUE)
+ if(is.null(mcYearToTest)){
+ tsPlotInt$setValue("meanYearH5", FALSE, reactive = TRUE)
+ expect_equal(tsPlotInt$getValue("meanYearH5"), FALSE)
+ tsPlotInt$setValue("mcYear", "average", reactive = TRUE)
+ }else{
+ tsPlotInt$setValue("meanYearH5", TRUE, reactive = TRUE)
+ expect_equal(tsPlotInt$getValue("meanYearH5"), TRUE)
+ }
+ tsPlotInt$updateCharts()
+ expect_equal(tsPlotInt$getValue("tables"), "links")
+ tsPlotInt$setValue("mcYear", mcYearToTest, reactive = TRUE)
+ if(!is.null(mcYearToTest)){
+ expect_equal(tsPlotInt$getValue("mcYear"), mcYearToTest)
+ }else{
+ tsPlotInt$setValue("mcYear", "average", reactive = TRUE)
+ expect_equal(tsPlotInt$getValue("mcYear"), "average")
+ }
+ expect_equal(tsPlotInt$getValue("mcYearH5"),"1")
+ expect_equal(tsPlotInt$getValue("elements"), myLink)
+ expect_equal(tsPlotInt$getValue("variable"), myVar)
+ datatsPlotInt <- .get_data_from_htmlwidget(tsPlotInt, widgetsNumber = 2)
+ indexHour <- grep(timeEditValue, datatsPlotInt$hour)
+ expect_equal(datatsPlotInt$`a - a_offshore`[[indexHour]], 50000)
+ datatsPlotInt2 <- .get_data_from_htmlwidget(tsPlotInt, widgetsNumber = 1)
+ indexHour <- grep(timeEditValue, datatsPlotInt2$hour)
+ expect_equal(datatsPlotInt2$`a - a_offshore`[[indexHour]], valFlow)
+ #interactive with refStudy
+ tsPlotIntRef <- tsPlot(x = optsList,
+ refStudy = optsH5,
+ type = "ts",
+ dateRange = DR,
+ .runApp = FALSE,
+ interactive = TRUE,
+ h5requestFiltering = list(
+ mcYears = mcYearToTest
+ ))
+ tsPlotIntRef <- tsPlotIntRef$init()
+ expect_true(is(tsPlotIntRef, "MWController"))
+ expect_equal(tsPlotIntRef$ncharts, 3)
+ expect_equal(tsPlotIntRef$ncol, 2)
+ expect_equal(tsPlotIntRef$nrow, 2)
+ tsPlotIntRef$setValue("mcYear", mcYearToTest, reactive = TRUE)
+ tsPlotIntRef$setValue("tables", "links", reactive = TRUE)
+ tsPlotIntRef$setValue("elements", myLink, reactive = TRUE)
+ tsPlotIntRef$setValue("variable", myVar, reactive = TRUE)
+ tsPlotIntRef$setValue("dateRange", DR, reactive = TRUE)
+ if(is.null(mcYearToTest)){
+ tsPlotIntRef$setValue("meanYearH5", FALSE, reactive = TRUE)
+ expect_equal(tsPlotIntRef$getValue("meanYearH5"), FALSE)
+ }else{
+ tsPlotIntRef$setValue("meanYearH5", TRUE, reactive = TRUE)
+ expect_equal(tsPlotIntRef$getValue("meanYearH5"), TRUE)
+ }
+ tsPlotIntRef$updateCharts()
+ expect_equal(tsPlotIntRef$getValue("tables"), "links")
+ tsPlotIntRef$setValue("mcYear", mcYearToTest, reactive = TRUE)
+ if(!is.null(mcYearToTest)){
+ expect_equal(tsPlotInt$getValue("mcYear"), mcYearToTest)
+ expect_equal(tsPlotIntRef$getValue("mcYearH5"),"1")
+ }else{
+ tsPlotIntRef$setValue("mcYear", "average", reactive = TRUE)
+ tsPlotIntRef$setValue("mcYearH5", "", reactive = TRUE)
+ expect_equal(tsPlotIntRef$getValue("mcYearH5"),"")
+ expect_equal(tsPlotIntRef$getValue("mcYear"), "average")
+ }
+ expect_equal(tsPlotIntRef$getValue("elements"), myLink)
+ expect_equal(tsPlotIntRef$getValue("variable"), myVar)
+ datatsPlotIntRef <- .get_data_from_htmlwidget(tsPlotIntRef, widgetsNumber = 2)
+ indexHour <- grep(timeEditValue, datatsPlotIntRef$hour)
+ expect_equal(datatsPlotIntRef$`a - a_offshore`[[indexHour]], 50000-(valFlow))
+ datatsPlotIntRef2 <- .get_data_from_htmlwidget(tsPlotIntRef, widgetsNumber = 1)
+ indexHour <- grep(timeEditValue, datatsPlotIntRef2$hour)
+ expect_equal(datatsPlotIntRef2$`a - a_offshore`[[indexHour]], 0)
+ }
+ }
+})
diff --git a/tests/testthat/test-zzCleanTests.R b/tests/testthat/test-zzCleanTests.R
index 24f79b7..2e23689 100644
--- a/tests/testthat/test-zzCleanTests.R
+++ b/tests/testthat/test-zzCleanTests.R
@@ -1,8 +1,8 @@
-# ### AFTER ALL TESTS, CLOSE H5 FILES AND REMOVE TEMP FOLDER
-# ### DONT WRITE TEST AFTER THIS
-# if (.requireRhdf5_Antares(stopP = FALSE)){
-# rhdf5::H5close()
-# }
-# if (dir.exists(pathtemp)){
-# unlink(pathtemp, recursive = TRUE)
-# }
\ No newline at end of file
+### AFTER ALL TESTS, CLOSE H5 FILES AND REMOVE TEMP FOLDER
+### DONT WRITE TEST AFTER THIS
+if (.requireRhdf5_Antares(stopP = FALSE)){
+ rhdf5::H5close()
+}
+if (dir.exists(pathtemp)){
+ unlink(pathtemp, recursive = TRUE)
+}
\ No newline at end of file