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) # } # } # })