Nothing
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"))
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.