diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index bc3a8dd6..1bac20ea 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -221,6 +221,8 @@ jobs:
sleep 60
+ R -q -e "library(opalr); opal <- opal.login('administrator', 'datashield_test&', url='http://localhost:8080/'); dsadmin.profile_init(opal, name = 'default', packages = c('dsBase', 'dsTidyverse', 'resourcer')); opal.logout(opal)"
+
R -q -e "library(opalr); opal <- opal.login('administrator','datashield_test&', url='http://localhost:8080/'); dsadmin.set_option(opal, 'default.datashield.privacyControlLevel', 'permissive'); opal.logout(opal)"
workingDirectory: $(Pipeline.Workspace)/dsBaseClient/tests/testthat/data_files
diff --git a/opal_azure-pipelines.yml b/opal_azure-pipelines.yml
index bc3a8dd6..1bac20ea 100644
--- a/opal_azure-pipelines.yml
+++ b/opal_azure-pipelines.yml
@@ -221,6 +221,8 @@ jobs:
sleep 60
+ R -q -e "library(opalr); opal <- opal.login('administrator', 'datashield_test&', url='http://localhost:8080/'); dsadmin.profile_init(opal, name = 'default', packages = c('dsBase', 'dsTidyverse', 'resourcer')); opal.logout(opal)"
+
R -q -e "library(opalr); opal <- opal.login('administrator','datashield_test&', url='http://localhost:8080/'); dsadmin.set_option(opal, 'default.datashield.privacyControlLevel', 'permissive'); opal.logout(opal)"
workingDirectory: $(Pipeline.Workspace)/dsBaseClient/tests/testthat/data_files
diff --git a/tests/testthat/connection_to_datasets/init_discordant_datasets.R b/tests/testthat/connection_to_datasets/init_discordant_datasets.R
index a117deb7..b701f67d 100644
--- a/tests/testthat/connection_to_datasets/init_discordant_datasets.R
+++ b/tests/testthat/connection_to_datasets/init_discordant_datasets.R
@@ -5,17 +5,17 @@ init.discordant.dataset.simple <- function(variables)
if (ds.test_env$driver == "OpalDriver")
{
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
- builder$append(server = "discordant1", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "DISCORDANT.DISCORDANT_STUDY1", options=ds.test_env$options_1)
- builder$append(server = "discordant2", url = ds.test_env$ip_address_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "DISCORDANT.DISCORDANT_STUDY2", options=ds.test_env$options_2)
- builder$append(server = "discordant3", url = ds.test_env$ip_address_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "DISCORDANT.DISCORDANT_STUDY3", options=ds.test_env$options_3)
+ builder$append(server = "discordant1", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "DISCORDANT.DISCORDANT_STUDY1", options=ds.test_env$options_1)
+ builder$append(server = "discordant2", url = ds.test_env$server_url_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "DISCORDANT.DISCORDANT_STUDY2", options=ds.test_env$options_2)
+ builder$append(server = "discordant3", url = ds.test_env$server_url_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "DISCORDANT.DISCORDANT_STUDY3", options=ds.test_env$options_3)
ds.test_env$login.data <- builder$build()
}
else if (ds.test_env$driver == "ArmadilloDriver")
{
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
- builder$append(server = "discordant1", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "datashield/discordant/DISCORDANT_STUDY1", driver = "ArmadilloDriver")
- builder$append(server = "discordant2", url = ds.test_env$ip_address_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "datashield/discordant/DISCORDANT_STUDY2", driver = "ArmadilloDriver")
- builder$append(server = "discordant3", url = ds.test_env$ip_address_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "datashield/discordant/DISCORDANT_STUDY3", driver = "ArmadilloDriver")
+ builder$append(server = "discordant1", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "datashield/discordant/DISCORDANT_STUDY1", driver = "ArmadilloDriver")
+ builder$append(server = "discordant2", url = ds.test_env$server_url_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "datashield/discordant/DISCORDANT_STUDY2", driver = "ArmadilloDriver")
+ builder$append(server = "discordant3", url = ds.test_env$server_url_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "datashield/discordant/DISCORDANT_STUDY3", driver = "ArmadilloDriver")
ds.test_env$login.data <- builder$build()
}
else
diff --git a/tests/testthat/connection_to_datasets/init_local_settings.R b/tests/testthat/connection_to_datasets/init_local_settings.R
index 11ac245f..4315688d 100644
--- a/tests/testthat/connection_to_datasets/init_local_settings.R
+++ b/tests/testthat/connection_to_datasets/init_local_settings.R
@@ -1,28 +1,32 @@
-#this file stores some settings for the continuous integration and local testing.
+#
+# The file "connection_to_datasets/local_settings.csv" (within the directory "tests/testthat") contains, if present,
+# values which can be used to affect the behavious of the continuous integration.
+#
+# The server URL is in a CVS file, being the value of the first column, first row.
+#
-init.ip.address <- function()
+init.server.url <- function()
{
file.name <- init.local.settings()
if (file.exists(file.name))
{
- content <- read.csv(file.name, header = FALSE)
- ip.address <- as.character(content[[1]][1])
+ content <- read.csv(file.name, header = FALSE)
+ server.url <- as.character(content[[1]][1])
}
else
{
- # ip.address <- "127.0.0.1"
- ip.address <- "localhost"
+ server.url <- NULL
}
- return (ip.address)
+ return (server.url)
}
init.local.settings <- function()
{
- path <- getwd()
- sub.folder.name <- "/connection_to_datasets/"
- file.name <- "local_settings.csv"
- return(paste(path, sub.folder.name,file.name, sep=""))
-
+ path <- getwd()
+ sub.folder.name <- "/connection_to_datasets/"
+ file.name <- "local_settings.csv"
+
+ return(paste(path, sub.folder.name, file.name, sep=""))
}
diff --git a/tests/testthat/connection_to_datasets/init_mediation_datasets.R b/tests/testthat/connection_to_datasets/init_mediation_datasets.R
index 479266ec..89e5f8e6 100644
--- a/tests/testthat/connection_to_datasets/init_mediation_datasets.R
+++ b/tests/testthat/connection_to_datasets/init_mediation_datasets.R
@@ -5,9 +5,9 @@ init.mediation.dataset.upb <- function(variables)
if (ds.test_env$driver == "OpalDriver")
{
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
- builder$append(server = "study1", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "MEDIATION.UPBdata1", options=ds.test_env$options_1)
- builder$append(server = "study2", url = ds.test_env$ip_address_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "MEDIATION.UPBdata2", options=ds.test_env$options_2)
- builder$append(server = "study3", url = ds.test_env$ip_address_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "MEDIATION.UPBdata3", options=ds.test_env$options_3)
+ builder$append(server = "study1", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "MEDIATION.UPBdata1", options=ds.test_env$options_1)
+ builder$append(server = "study2", url = ds.test_env$server_url_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "MEDIATION.UPBdata2", options=ds.test_env$options_2)
+ builder$append(server = "study3", url = ds.test_env$server_url_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "MEDIATION.UPBdata3", options=ds.test_env$options_3)
ds.test_env$login.data <- builder$build()
}
else
@@ -25,7 +25,7 @@ init.mediation.dataset.student <- function(variables)
if (ds.test_env$driver == "OpalDriver")
{
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
- builder$append(server = "study1", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "MEDIATION.student", options=ds.test_env$options_1)
+ builder$append(server = "study1", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "MEDIATION.student", options=ds.test_env$options_1)
ds.test_env$login.data <- builder$build()
}
else
@@ -43,7 +43,7 @@ init.mediation.dataset.framing <- function(variables)
if (ds.test_env$driver == "OpalDriver")
{
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
- builder$append(server = "study1", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "MEDIATION.framing", options=ds.test_env$options_1)
+ builder$append(server = "study1", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "MEDIATION.framing", options=ds.test_env$options_1)
ds.test_env$login.data <- builder$build()
}
else
@@ -61,7 +61,7 @@ init.mediation.dataset.vv2015 <- function(variables)
if (ds.test_env$driver == "OpalDriver")
{
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
- builder$append(server = "study1", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "MEDIATION.vv2015", options=ds.test_env$options_1)
+ builder$append(server = "study1", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "MEDIATION.vv2015", options=ds.test_env$options_1)
ds.test_env$login.data <- builder$build()
}
else
diff --git a/tests/testthat/connection_to_datasets/init_studies_datasets.R b/tests/testthat/connection_to_datasets/init_studies_datasets.R
index b34ed00d..283cc18a 100644
--- a/tests/testthat/connection_to_datasets/init_studies_datasets.R
+++ b/tests/testthat/connection_to_datasets/init_studies_datasets.R
@@ -5,17 +5,17 @@ init.studies.dataset.cnsim <- function(variables)
if (ds.test_env$driver == "OpalDriver")
{
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
- builder$append(server = "sim1", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "CNSIM.CNSIM1", options=ds.test_env$options_1)
- builder$append(server = "sim2", url = ds.test_env$ip_address_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "CNSIM.CNSIM2", options=ds.test_env$options_2)
- builder$append(server = "sim3", url = ds.test_env$ip_address_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "CNSIM.CNSIM3", options=ds.test_env$options_3)
+ builder$append(server = "sim1", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "CNSIM.CNSIM1", options=ds.test_env$options_1)
+ builder$append(server = "sim2", url = ds.test_env$server_url_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "CNSIM.CNSIM2", options=ds.test_env$options_2)
+ builder$append(server = "sim3", url = ds.test_env$server_url_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "CNSIM.CNSIM3", options=ds.test_env$options_3)
ds.test_env$login.data <- builder$build()
}
else if (ds.test_env$driver == "ArmadilloDriver")
{
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
- builder$append(server = "sim1", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "datashield/cnsim/CNSIM1", driver = ds.test_env$driver)
- builder$append(server = "sim2", url = ds.test_env$ip_address_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "datashield/cnsim/CNSIM2", driver = ds.test_env$driver)
- builder$append(server = "sim3", url = ds.test_env$ip_address_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "datashield/cnsim/CNSIM3", driver = ds.test_env$driver)
+ builder$append(server = "sim1", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "datashield/cnsim/CNSIM1", driver = ds.test_env$driver)
+ builder$append(server = "sim2", url = ds.test_env$server_url_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "datashield/cnsim/CNSIM2", driver = ds.test_env$driver)
+ builder$append(server = "sim3", url = ds.test_env$server_url_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "datashield/cnsim/CNSIM3", driver = ds.test_env$driver)
ds.test_env$login.data <- builder$build()
}
else
@@ -33,17 +33,17 @@ init.studies.dataset.dasim <- function(variables)
if (ds.test_env$driver == "OpalDriver")
{
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
- builder$append(server = "sim1", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "DASIM.DASIM1", options=ds.test_env$options_1)
- builder$append(server = "sim2", url = ds.test_env$ip_address_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "DASIM.DASIM2", options=ds.test_env$options_2)
- builder$append(server = "sim3", url = ds.test_env$ip_address_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "DASIM.DASIM3", options=ds.test_env$options_3)
+ builder$append(server = "sim1", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "DASIM.DASIM1", options=ds.test_env$options_1)
+ builder$append(server = "sim2", url = ds.test_env$server_url_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "DASIM.DASIM2", options=ds.test_env$options_2)
+ builder$append(server = "sim3", url = ds.test_env$server_url_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "DASIM.DASIM3", options=ds.test_env$options_3)
ds.test_env$login.data <- builder$build()
}
else if (ds.test_env$driver == "ArmadilloDriver")
{
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
- builder$append(server = "sim1", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "datashield/dasim/DASIM1", driver = ds.test_env$driver)
- builder$append(server = "sim2", url = ds.test_env$ip_address_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "datashield/dasim/DASIM2", driver = ds.test_env$driver)
- builder$append(server = "sim3", url = ds.test_env$ip_address_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "datashield/dasim/DASIM3", driver = ds.test_env$driver)
+ builder$append(server = "sim1", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "datashield/dasim/DASIM1", driver = ds.test_env$driver)
+ builder$append(server = "sim2", url = ds.test_env$server_url_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "datashield/dasim/DASIM2", driver = ds.test_env$driver)
+ builder$append(server = "sim3", url = ds.test_env$server_url_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "datashield/dasim/DASIM3", driver = ds.test_env$driver)
ds.test_env$login.data <- builder$build()
}
else
@@ -61,17 +61,17 @@ init.studies.dataset.survival <- function(variables)
if (ds.test_env$driver == "OpalDriver")
{
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
- builder$append(server = "survival1", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "SURVIVAL.EXPAND_WITH_MISSING1", options=ds.test_env$options_1)
- builder$append(server = "survival2", url = ds.test_env$ip_address_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "SURVIVAL.EXPAND_WITH_MISSING2", options=ds.test_env$options_2)
- builder$append(server = "survival3", url = ds.test_env$ip_address_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "SURVIVAL.EXPAND_WITH_MISSING3", options=ds.test_env$options_3)
+ builder$append(server = "survival1", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "SURVIVAL.EXPAND_WITH_MISSING1", options=ds.test_env$options_1)
+ builder$append(server = "survival2", url = ds.test_env$server_url_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "SURVIVAL.EXPAND_WITH_MISSING2", options=ds.test_env$options_2)
+ builder$append(server = "survival3", url = ds.test_env$server_url_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "SURVIVAL.EXPAND_WITH_MISSING3", options=ds.test_env$options_3)
ds.test_env$login.data <- builder$build()
}
else if (ds.test_env$driver == "ArmadilloDriver")
{
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
- builder$append(server = "survival1", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "datashield/survival/EXPAND_WITH_MISSING1", driver = ds.test_env$driver)
- builder$append(server = "survival2", url = ds.test_env$ip_address_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "datashield/survival/EXPAND_WITH_MISSING2", driver = ds.test_env$driver)
- builder$append(server = "survival3", url = ds.test_env$ip_address_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "datashield/survival/EXPAND_WITH_MISSING3", driver = ds.test_env$driver)
+ builder$append(server = "survival1", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "datashield/survival/EXPAND_WITH_MISSING1", driver = ds.test_env$driver)
+ builder$append(server = "survival2", url = ds.test_env$server_url_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "datashield/survival/EXPAND_WITH_MISSING2", driver = ds.test_env$driver)
+ builder$append(server = "survival3", url = ds.test_env$server_url_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "datashield/survival/EXPAND_WITH_MISSING3", driver = ds.test_env$driver)
ds.test_env$login.data <- builder$build()
}
else
@@ -94,17 +94,17 @@ init.studies.dataset.cluster.int <- function(variables)
if (ds.test_env$driver == "OpalDriver")
{
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
- builder$append(server = "cluster.int1", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "CLUSTER.CLUSTER_INT1", options=ds.test_env$options_1)
- builder$append(server = "cluster.int2", url = ds.test_env$ip_address_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "CLUSTER.CLUSTER_INT2", options=ds.test_env$options_2)
- builder$append(server = "cluster.int3", url = ds.test_env$ip_address_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "CLUSTER.CLUSTER_INT3", options=ds.test_env$options_3)
+ builder$append(server = "cluster.int1", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "CLUSTER.CLUSTER_INT1", options=ds.test_env$options_1)
+ builder$append(server = "cluster.int2", url = ds.test_env$server_url_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "CLUSTER.CLUSTER_INT2", options=ds.test_env$options_2)
+ builder$append(server = "cluster.int3", url = ds.test_env$server_url_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "CLUSTER.CLUSTER_INT3", options=ds.test_env$options_3)
ds.test_env$login.data <- builder$build()
}
else if (ds.test_env$driver == "ArmadilloDriver")
{
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
- builder$append(server = "cluster.int1", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "datashield/cluster/CLUSTER_INT1", driver = ds.test_env$driver)
- builder$append(server = "cluster.int2", url = ds.test_env$ip_address_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "datashield/cluster/CLUSTER_INT2", driver = ds.test_env$driver)
- builder$append(server = "cluster.int3", url = ds.test_env$ip_address_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "datashield/cluster/CLUSTER_INT3", driver = ds.test_env$driver)
+ builder$append(server = "cluster.int1", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "datashield/cluster/CLUSTER_INT1", driver = ds.test_env$driver)
+ builder$append(server = "cluster.int2", url = ds.test_env$server_url_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "datashield/cluster/CLUSTER_INT2", driver = ds.test_env$driver)
+ builder$append(server = "cluster.int3", url = ds.test_env$server_url_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "datashield/cluster/CLUSTER_INT3", driver = ds.test_env$driver)
ds.test_env$login.data <- builder$build()
}
else
@@ -128,17 +128,17 @@ init.studies.dataset.cluster.slo <- function(variables)
if (ds.test_env$driver == "OpalDriver")
{
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
- builder$append(server = "cluster.slo1", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "CLUSTER.CLUSTER_SLO1", options=ds.test_env$options_1)
- builder$append(server = "cluster.slo2", url = ds.test_env$ip_address_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "CLUSTER.CLUSTER_SLO2", options=ds.test_env$options_2)
- builder$append(server = "cluster.slo3", url = ds.test_env$ip_address_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "CLUSTER.CLUSTER_SLO3", options=ds.test_env$options_3)
+ builder$append(server = "cluster.slo1", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "CLUSTER.CLUSTER_SLO1", options=ds.test_env$options_1)
+ builder$append(server = "cluster.slo2", url = ds.test_env$server_url_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "CLUSTER.CLUSTER_SLO2", options=ds.test_env$options_2)
+ builder$append(server = "cluster.slo3", url = ds.test_env$server_url_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "CLUSTER.CLUSTER_SLO3", options=ds.test_env$options_3)
ds.test_env$login.data <- builder$build()
}
else if (ds.test_env$driver == "ArmadilloDriver")
{
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
- builder$append(server = "cluster.slo1", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "datashield/cluster/CLUSTER_SLO1", driver = ds.test_env$driver)
- builder$append(server = "cluster.slo2", url = ds.test_env$ip_address_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "datashield/cluster/CLUSTER_SLO2", driver = ds.test_env$driver)
- builder$append(server = "cluster.slo3", url = ds.test_env$ip_address_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "datashield/cluster/CLUSTER_SLO3", driver = ds.test_env$driver)
+ builder$append(server = "cluster.slo1", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "datashield/cluster/CLUSTER_SLO1", driver = ds.test_env$driver)
+ builder$append(server = "cluster.slo2", url = ds.test_env$server_url_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "datashield/cluster/CLUSTER_SLO2", driver = ds.test_env$driver)
+ builder$append(server = "cluster.slo3", url = ds.test_env$server_url_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "datashield/cluster/CLUSTER_SLO3", driver = ds.test_env$driver)
ds.test_env$login.data <- builder$build()
}
else
@@ -163,17 +163,17 @@ init.studies.dataset.anthro <- function(variables)
if (ds.test_env$driver == "OpalDriver")
{
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
- builder$append(server = "study1", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "ANTHRO.anthro1", options=ds.test_env$options_1)
- builder$append(server = "study2", url = ds.test_env$ip_address_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "ANTHRO.anthro2", options=ds.test_env$options_2)
- builder$append(server = "study3", url = ds.test_env$ip_address_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "ANTHRO.anthro3", options=ds.test_env$options_3)
+ builder$append(server = "study1", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "ANTHRO.anthro1", options=ds.test_env$options_1)
+ builder$append(server = "study2", url = ds.test_env$server_url_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "ANTHRO.anthro2", options=ds.test_env$options_2)
+ builder$append(server = "study3", url = ds.test_env$server_url_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "ANTHRO.anthro3", options=ds.test_env$options_3)
ds.test_env$login.data <- builder$build()
}
else if (ds.test_env$driver == "ArmadilloDriver")
{
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
- builder$append(server = "study1", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "datashield/anthro/anthro1", driver = ds.test_env$driver)
- builder$append(server = "study2", url = ds.test_env$ip_address_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "datashield/anthro/anthro2", driver = ds.test_env$driver)
- builder$append(server = "study3", url = ds.test_env$ip_address_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "datashield/anthro/anthro3", driver = ds.test_env$driver)
+ builder$append(server = "study1", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "datashield/anthro/anthro1", driver = ds.test_env$driver)
+ builder$append(server = "study2", url = ds.test_env$server_url_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "datashield/anthro/anthro2", driver = ds.test_env$driver)
+ builder$append(server = "study3", url = ds.test_env$server_url_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "datashield/anthro/anthro3", driver = ds.test_env$driver)
ds.test_env$login.data <- builder$build()
}
else
@@ -198,17 +198,17 @@ init.studies.dataset.gamlss <- function(variables)
if (ds.test_env$driver == "OpalDriver")
{
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
- builder$append(server = "study1", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "GAMLSS.gamlss1", options=ds.test_env$options_1)
- builder$append(server = "study2", url = ds.test_env$ip_address_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "GAMLSS.gamlss2", options=ds.test_env$options_2)
- builder$append(server = "study3", url = ds.test_env$ip_address_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "GAMLSS.gamlss3", options=ds.test_env$options_3)
+ builder$append(server = "study1", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "GAMLSS.gamlss1", options=ds.test_env$options_1)
+ builder$append(server = "study2", url = ds.test_env$server_url_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "GAMLSS.gamlss2", options=ds.test_env$options_2)
+ builder$append(server = "study3", url = ds.test_env$server_url_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "GAMLSS.gamlss3", options=ds.test_env$options_3)
ds.test_env$login.data <- builder$build()
}
else if (ds.test_env$driver == "ArmadilloDriver")
{
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
- builder$append(server = "study1", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "datashield/gamlss/gamlss1", driver = ds.test_env$driver)
- builder$append(server = "study2", url = ds.test_env$ip_address_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "datashield/gamlss/gamlss2", driver = ds.test_env$driver)
- builder$append(server = "study3", url = ds.test_env$ip_address_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "datashield/gamlss/gamlss3", driver = ds.test_env$driver)
+ builder$append(server = "study1", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "datashield/gamlss/gamlss1", driver = ds.test_env$driver)
+ builder$append(server = "study2", url = ds.test_env$server_url_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "datashield/gamlss/gamlss2", driver = ds.test_env$driver)
+ builder$append(server = "study3", url = ds.test_env$server_url_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "datashield/gamlss/gamlss3", driver = ds.test_env$driver)
ds.test_env$login.data <- builder$build()
}
else
diff --git a/tests/testthat/connection_to_datasets/init_testing_datasets.R b/tests/testthat/connection_to_datasets/init_testing_datasets.R
index 52fb7fcf..ff445777 100644
--- a/tests/testthat/connection_to_datasets/init_testing_datasets.R
+++ b/tests/testthat/connection_to_datasets/init_testing_datasets.R
@@ -21,17 +21,17 @@ init.testing.datasets <- function()
if (ds.test_env$driver == "OpalDriver")
{
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
- builder$append(server = "study1", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "TESTING.DATASET1", options=ds.test_env$options_1)
- builder$append(server = "study2", url = ds.test_env$ip_address_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "TESTING.DATASET2", options=ds.test_env$options_2)
- builder$append(server = "study3", url = ds.test_env$ip_address_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "TESTING.DATASET3", options=ds.test_env$options_3)
+ builder$append(server = "study1", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "TESTING.DATASET1", options=ds.test_env$options_1)
+ builder$append(server = "study2", url = ds.test_env$server_url_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "TESTING.DATASET2", options=ds.test_env$options_2)
+ builder$append(server = "study3", url = ds.test_env$server_url_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "TESTING.DATASET3", options=ds.test_env$options_3)
ds.test_env$login.data <- builder$build()
}
else if (ds.test_env$driver == "ArmadilloDriver")
{
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
- builder$append(server = "study1", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "datashield/testing/DATASET1", driver = "ArmadilloDriver")
- builder$append(server = "study2", url = ds.test_env$ip_address_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "datashield/testing/DATASET2", driver = "ArmadilloDriver")
- builder$append(server = "study3", url = ds.test_env$ip_address_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "datashield/testing/DATASET3", driver = "ArmadilloDriver")
+ builder$append(server = "study1", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "datashield/testing/DATASET1", driver = "ArmadilloDriver")
+ builder$append(server = "study2", url = ds.test_env$server_url_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "datashield/testing/DATASET2", driver = "ArmadilloDriver")
+ builder$append(server = "study3", url = ds.test_env$server_url_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "datashield/testing/DATASET3", driver = "ArmadilloDriver")
ds.test_env$login.data <- builder$build()
}
else
@@ -56,13 +56,13 @@ init.dataset.3 <- function()
if (ds.test_env$driver == "OpalDriver")
{
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
- builder$append(server = "study3", url = ds.test_env$ip_address_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "TESTING.DATASET3", options=ds.test_env$options_3)
+ builder$append(server = "study3", url = ds.test_env$server_url_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "TESTING.DATASET3", options=ds.test_env$options_3)
ds.test_env$login.data <- builder$build()
}
else if (ds.test_env$driver == "ArmadilloDriver")
{
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
- builder$append(server = "study3", url = ds.test_env$ip_address_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "datashield/testing/DATASET3", driver = "ArmadilloDriver")
+ builder$append(server = "study3", url = ds.test_env$server_url_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "datashield/testing/DATASET3", driver = "ArmadilloDriver")
ds.test_env$login.data <- builder$build()
}
else
@@ -88,13 +88,13 @@ init.dataset.2 <- function()
if (ds.test_env$driver == "OpalDriver")
{
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
- builder$append(server = "study2", url = ds.test_env$ip_address_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "TESTING.DATASET2", options=ds.test_env$options_2)
+ builder$append(server = "study2", url = ds.test_env$server_url_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "TESTING.DATASET2", options=ds.test_env$options_2)
ds.test_env$login.data <- builder$build()
}
else if (ds.test_env$driver == "ArmadilloDriver")
{
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
- builder$append(server = "study2", url = ds.test_env$ip_address_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "datashield/testing/DATASET2", driver = "ArmadilloDriver")
+ builder$append(server = "study2", url = ds.test_env$server_url_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "datashield/testing/DATASET2", driver = "ArmadilloDriver")
ds.test_env$login.data <- builder$build()
}
else
@@ -120,13 +120,13 @@ init.dataset.1 <- function()
if (ds.test_env$driver == "OpalDriver")
{
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
- builder$append(server = "study1", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "TESTING.DATASET1", options=ds.test_env$options_1)
+ builder$append(server = "study1", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "TESTING.DATASET1", options=ds.test_env$options_1)
ds.test_env$login.data <- builder$build()
}
else if (ds.test_env$driver == "ArmadilloDriver")
{
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
- builder$append(server = "study1", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "datashield/testing/DATASET1", driver = "ArmadilloDriver")
+ builder$append(server = "study1", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "datashield/testing/DATASET1", driver = "ArmadilloDriver")
ds.test_env$login.data <- builder$build()
}
else
@@ -159,17 +159,17 @@ init.testing.dataset.factor_levels <- function()
if (ds.test_env$driver == "OpalDriver")
{
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
- builder$append(server = "GROUP1", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "FACTOR_LEVELS.FACTOR_LEVELS1", options=ds.test_env$options_1)
- builder$append(server = "GROUP2", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "FACTOR_LEVELS.FACTOR_LEVELS2", options=ds.test_env$options_2)
- builder$append(server = "GROUP3", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "FACTOR_LEVELS.FACTOR_LEVELS3", options=ds.test_env$options_3)
+ builder$append(server = "GROUP1", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "FACTOR_LEVELS.FACTOR_LEVELS1", options=ds.test_env$options_1)
+ builder$append(server = "GROUP2", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "FACTOR_LEVELS.FACTOR_LEVELS2", options=ds.test_env$options_2)
+ builder$append(server = "GROUP3", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "FACTOR_LEVELS.FACTOR_LEVELS3", options=ds.test_env$options_3)
ds.test_env$login.data <- builder$build()
}
else if (ds.test_env$driver == "ArmadilloDriver")
{
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
- builder$append(server = "GROUP1", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "datashield/factor_levels/FACTOR_LEVELS1", driver = "ArmadilloDriver")
- builder$append(server = "GROUP2", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "datashield/factor_levels/FACTOR_LEVELS2", driver = "ArmadilloDriver")
- builder$append(server = "GROUP3", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "datashield/factor_levels/FACTOR_LEVELS3", driver = "ArmadilloDriver")
+ builder$append(server = "GROUP1", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "datashield/factor_levels/FACTOR_LEVELS1", driver = "ArmadilloDriver")
+ builder$append(server = "GROUP2", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "datashield/factor_levels/FACTOR_LEVELS2", driver = "ArmadilloDriver")
+ builder$append(server = "GROUP3", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "datashield/factor_levels/FACTOR_LEVELS3", driver = "ArmadilloDriver")
ds.test_env$login.data <- builder$build()
}
else
@@ -192,13 +192,13 @@ init.testing.dataset.factor_levels.1 <- function()
if (ds.test_env$driver == "OpalDriver")
{
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
- builder$append(server = "GROUP1", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "FACTOR_LEVELS.FACTOR_LEVELS1", options=ds.test_env$options_1)
+ builder$append(server = "GROUP1", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "FACTOR_LEVELS.FACTOR_LEVELS1", options=ds.test_env$options_1)
ds.test_env$login.data <- builder$build()
}
else if (ds.test_env$driver == "ArmadilloDriver")
{
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
- builder$append(server = "GROUP1", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "datashield/factor_levels/FACTOR_LEVELS1", driver = "ArmadilloDriver")
+ builder$append(server = "GROUP1", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "datashield/factor_levels/FACTOR_LEVELS1", driver = "ArmadilloDriver")
ds.test_env$login.data <- builder$build()
}
else
diff --git a/tests/testthat/connection_to_datasets/login_details.R b/tests/testthat/connection_to_datasets/login_details.R
index 7e410470..c9470a3b 100644
--- a/tests/testthat/connection_to_datasets/login_details.R
+++ b/tests/testthat/connection_to_datasets/login_details.R
@@ -2,7 +2,7 @@
source("connection_to_datasets/init_local_settings.R")
-init.ip.address()
+init.server.url()
# create blank environment of test data
ds.test_env <- new.env()
@@ -10,7 +10,7 @@ ds.test_env <- new.env()
# this option helps DSI to find the connection objects by looking in the right environment
options(datashield.env=ds.test_env)
-ds.test_env$server_ip_address <- init.ip.address()
+ds.test_env$server_url <- init.server.url()
if (! is.null(getOption("default_driver"))) {
ds.test_env$driver <- getOption("default_driver")
@@ -22,12 +22,20 @@ if (! is.null(getOption("default_driver"))) {
}
if ((ds.test_env$driver == "DSLiteDriver") || (ds.test_env$driver == "OpalDriver")) {
- ds.test_env$ping_address <- paste("https://", ds.test_env$server_ip_address, ":8443", sep="")
- ds.test_env$ping_config <- config(timeout=60, ssl_verifyhost=0, ssl_verifypeer=0)
+ if (! is.null(ds.test_env$server_url)) {
+ opal.url <- ds.test_env$server_url
+ } else {
+ opal.url <- "https://localhost:8443/"
+ }
- ds.test_env$ip_address_1 <- paste("https://", ds.test_env$server_ip_address, ":8443", sep="")
- ds.test_env$ip_address_2 <- paste("https://", ds.test_env$server_ip_address, ":8443", sep="")
- ds.test_env$ip_address_3 <- paste("https://", ds.test_env$server_ip_address, ":8443", sep="")
+ ds.test_env$ping_url <- opal.url
+ ds.test_env$ping_user <- getOption("opal.user", "administrator")
+ ds.test_env$ping_password <- getOption("opal.password", "datashield_test&")
+ ds.test_env$ping_options <- config(timeout=60, ssl_verifyhost=0, ssl_verifypeer=0)
+
+ ds.test_env$server_url_1 <- opal.url
+ ds.test_env$server_url_2 <- opal.url
+ ds.test_env$server_url_3 <- opal.url
ds.test_env$user_1 <- getOption("opal.user", "administrator")
ds.test_env$user_2 <- getOption("opal.user", "administrator")
@@ -43,20 +51,28 @@ if ((ds.test_env$driver == "DSLiteDriver") || (ds.test_env$driver == "OpalDriver
ds.test_env$secure_login_details <- TRUE
} else if (ds.test_env$driver == "ArmadilloDriver") {
- ds.test_env$ping_address <- paste("http://", ds.test_env$server_ip_address, ":8080", sep="")
- ds.test_env$ping_config <- config(timeout=60)
-
- ds.test_env$ip_address_1 <- paste("http://", ds.test_env$server_ip_address, ":8080", sep="")
- ds.test_env$ip_address_2 <- paste("http://", ds.test_env$server_ip_address, ":8080", sep="")
- ds.test_env$ip_address_3 <- paste("http://", ds.test_env$server_ip_address, ":8080", sep="")
-
- ds.test_env$user_1 <- getOption("opal.user", "admin")
- ds.test_env$user_2 <- getOption("opal.user", "admin")
- ds.test_env$user_3 <- getOption("opal.user", "admin")
-
- ds.test_env$password_1 <- getOption("opal.password", "admin")
- ds.test_env$password_2 <- getOption("opal.password", "admin")
- ds.test_env$password_3 <- getOption("opal.password", "admin")
+ if (! is.null(ds.test_env$server_url)) {
+ armadillo.url <- ds.test_env$server_url
+ } else {
+ armadillo.url <- "http://localhost:8080/"
+ }
+
+ ds.test_env$ping_url <- armadillo.url
+ ds.test_env$ping_user <- getOption("armadillo.user", "admin")
+ ds.test_env$ping_password <- getOption("armadillo.password", "admin")
+ ds.test_env$ping_options <- "list(timeout=60)"
+
+ ds.test_env$server_url_1 <- armadillo.url
+ ds.test_env$server_url_2 <- armadillo.url
+ ds.test_env$server_url_3 <- armadillo.url
+
+ ds.test_env$user_1 <- getOption("armadillo.user", "admin")
+ ds.test_env$user_2 <- getOption("armadillo.user", "admin")
+ ds.test_env$user_3 <- getOption("armadillo.user", "admin")
+
+ ds.test_env$password_1 <- getOption("armadillo.password", "admin")
+ ds.test_env$password_2 <- getOption("armadillo.password", "admin")
+ ds.test_env$password_3 <- getOption("armadillo.password", "admin")
ds.test_env$options_1 <- "list()"
ds.test_env$options_2 <- "list()"
diff --git a/tests/testthat/perf_files/armadillo_azure-pipeline_perf-profile.csv b/tests/testthat/perf_files/armadillo_azure-pipeline_perf-profile.csv
index ca8a229c..1fb2dce2 100644
--- a/tests/testthat/perf_files/armadillo_azure-pipeline_perf-profile.csv
+++ b/tests/testthat/perf_files/armadillo_azure-pipeline_perf-profile.csv
@@ -1,14 +1,29 @@
"refer_name","rate","lower_tolerance","upper_tolerance"
-"conndisconn::perf::simple0","0.1661","0.5","2"
-"ds.abs::perf::0","6.247","0.5","2"
-"ds.asInteger::perf:0","5.691","0.5","2"
-"ds.asList::perf:0","12.50","0.5","2"
-"ds.asNumeric::perf:0","5.723","0.5","2"
-"ds.assign::perf::0","10.52","0.5","2"
-"ds.class::perf::combine:0","13.73","0.5","2"
-"ds.colnames::perf:0","25.64","0.5","2"
-"ds.exists::perf::combine:0","25.73","0.5","2"
-"ds.length::perf::combine:0","25.44","0.5","2"
-"ds.mean::perf::combine:0","25.70","0.5","2"
-"ds.mean::perf::split:0","25.72","0.5","2"
-"void::perf::void::0","53016.0","0.5","2"
+"conndisconn::perf::simple0","0.1621","0.5","2"
+"ds.abs::perf::0","5.989","0.5","2"
+"ds.asCharacter::perf::0","5.413","0.5","2"
+"ds.asDataMatrix::perf::0","5.466","0.5","2"
+"ds.asInteger::perf:0","5.570","0.5","2"
+"ds.asList::perf:0","11.72","0.5","2"
+"ds.asLogical::perf::0","5.516","0.5","2"
+"ds.asMatrix::perf::0","5.507","0.5","2"
+"ds.asNumeric::perf:0","5.552","0.5","2"
+"ds.assign::perf::0","10.21","0.5","2"
+"ds.class::perf::combine:0","12.30","0.5","2"
+"ds.colnames::perf:0","24.39","0.5","2"
+"ds.completeCases::perf::combine:0","5.521","0.5","2"
+"ds.dim::perf::combine:0","24.63","0.5","2"
+"ds.exists::perf::combine:0","24.74","0.5","2"
+"ds.exp::perf::0","6.218","0.5","2"
+"ds.isNA::perf::combine:0","9.480","0.5","2"
+"ds.length::perf::combine:0","24.94","0.5","2"
+"ds.levels::perf::combine:0","9.551","0.5","2"
+"ds.log::perf::0","6.286","0.5","2"
+"ds.ls::perf::combine:0","25.05","0.5","2"
+"ds.mean::perf::combine:0","24.63","0.5","2"
+"ds.mean::perf::split:0","25.20","0.5","2"
+"ds.names::perf::combine:0","12.37","0.5","2"
+"ds.numNA::perf::combine:0","9.64","0.5","2"
+"ds.sqrt::perf::0","6.218","0.5","2"
+"ds.unique::perf::combine:0","10.20","0.5","2"
+"void::perf::void::0","51340.0","0.5","2"
diff --git a/tests/testthat/perf_files/armadillo_hp-laptop-quay_perf-profile.csv b/tests/testthat/perf_files/armadillo_hp-laptop-quay_perf-profile.csv
index 191cc308..fec9351f 100644
--- a/tests/testthat/perf_files/armadillo_hp-laptop-quay_perf-profile.csv
+++ b/tests/testthat/perf_files/armadillo_hp-laptop-quay_perf-profile.csv
@@ -1,15 +1,30 @@
"refer_name","rate","lower_tolerance","upper_tolerance"
-"conndisconn::perf::simple0","0.06790","0.5","2"
-"ds.abs::perf::0","1.998","0.5","2"
-"ds.asInteger::perf:0","2.111","0.5","2"
-"ds.asList::perf:0","4.550","0.5","2"
-"ds.asNumeric::perf:0","1.879","0.5","2"
-"ds.assign::perf::0","4.806","0.5","2"
-"ds.class::perf::combine:0","3.865","0.5","2"
-"ds.colnames::perf:0","9.577","0.5","2"
-"ds.exists::perf::combine:0","8.411","0.5","2"
-"ds.length::perf::combine:0","7.957","0.5","2"
-"ds.mean::perf::combine:0","9.049","0.5","2"
-"ds.mean::perf::split:0","9.429","0.5","2"
+"conndisconn::perf::simple0","0.07683","0.5","2"
+"ds.abs::perf::0","2.473","0.5","2"
+"ds.asCharacter::perf::0","2.295","0.5","2"
+"ds.asDataMatrix::perf::0","1.999","0.5","2"
+"ds.asInteger::perf:0","1.148","0.5","2"
+"ds.asList::perf:0","3.398","0.5","2"
+"ds.asLogical::perf::0","1.660","0.5","2"
+"ds.asMatrix::perf::0","1.835","0.5","2"
+"ds.asNumeric::perf:0","1.632","0.5","2"
+"ds.assign::perf::0","3.487","0.5","2"
+"ds.class::perf::combine:0","5.037","0.5","2"
+"ds.colnames::perf:0","8.219","0.5","2"
+"ds.completeCases::perf::combine:0","1.896","0.5","2"
+"ds.dim::perf::combine:0","8.337","0.5","2"
+"ds.exists::perf::combine:0","9.133","0.5","2"
+"ds.exp::perf::0","2.317","0.5","2"
+"ds.isNA::perf::combine:0","3.035","0.5","2"
+"ds.length::perf::combine:0","9.551","0.5","2"
+"ds.levels::perf::combine:0","3.275","0.5","2"
+"ds.log::perf::0","2.297","0.5","2"
+"ds.ls::perf::combine:0","8.168","0.5","2"
+"ds.mean::perf::combine:0","8.168","0.5","2"
+"ds.mean::perf::split:0","8.465","0.5","2"
+"ds.names::perf::combine:0","4.190","0.5","2"
+"ds.numNA::perf::combine:0","3.588","0.5","2"
+"ds.sqrt::perf::0","2.278","0.5","2"
"ds.standardiseDf:::perf::0","9.50","0.5","2"
-"void::perf::void::0","21400.0","0.5","2"
+"ds.unique::perf::combine:0","3.909","0.5","2"
+"void::perf::void::0","20280.0","0.5","2"
\ No newline at end of file
diff --git a/tests/testthat/perf_files/opal_default_perf-profile.csv b/tests/testthat/perf_files/opal_default_perf-profile.csv
deleted file mode 100644
index 58614204..00000000
--- a/tests/testthat/perf_files/opal_default_perf-profile.csv
+++ /dev/null
@@ -1,14 +0,0 @@
-"refer_name","rate","lower_tolerance","upper_tolerance"
-"conndisconn::perf::simple0","0.2725","0.5","2"
-"ds.abs::perf::0","2.677","0.5","2"
-"ds.asInteger::perf:0","2.294","0.5","2"
-"ds.asList::perf:0","4.587","0.5","2"
-"ds.asNumeric::perf:0","2.185","0.5","2"
-"ds.assign::perf::0","5.490","0.5","2"
-"ds.class::perf::combine:0","4.760","0.5","2"
-"ds.colnames::perf:0","9.079","0.5","2"
-"ds.exists::perf::combine:0","11.09","0.5","2"
-"ds.length::perf::combine:0","9.479","0.5","2"
-"ds.mean::perf::combine:0","9.650","0.5","2"
-"ds.mean::perf::split:0","11.26","0.5","2"
-"void::perf::void::0","46250.0","0.5","2"
diff --git a/tests/testthat/perf_files/opal_hp-laptop-quay_perf-profile.csv b/tests/testthat/perf_files/opal_hp-laptop-quay_perf-profile.csv
index 563b84ec..44c87949 100644
--- a/tests/testthat/perf_files/opal_hp-laptop-quay_perf-profile.csv
+++ b/tests/testthat/perf_files/opal_hp-laptop-quay_perf-profile.csv
@@ -1,14 +1,29 @@
"refer_name","rate","lower_tolerance","upper_tolerance"
-"conndisconn::perf::simple0","0.147643461923159","0.5","2"
-"ds.abs::perf::0","0.631818039001181","0.5","2"
-"ds.asInteger::perf:0","0.675696161933654","0.5","2"
-"ds.asList::perf:0","1.59078428438764","0.5","2"
-"ds.asNumeric::perf:0","0.692813012683229","0.5","2"
-"ds.assign::perf::0","1.89351857736982","0.5","2"
-"ds.class::perf::combine:0","1.62870246867488","0.5","2"
-"ds.colnames::perf:0","2.7125071","0.5","2"
-"ds.exists::perf::combine:0","3.45004426293124","0.5","2"
-"ds.length::perf::combine:0","2.78832377100152","0.5","2"
-"ds.mean::perf::combine:0","2.7801284055162","0.5","2"
-"ds.mean::perf::split:0","3.67443474363821","0.5","2"
-"void::perf::void::0","18974.1385397392","0.5","2"
+"conndisconn::perf::simple0","0.1267","0.5","2"
+"ds.abs::perf::0","0.7542","0.5","2"
+"ds.asCharacter::perf::0","0.8126","0.5","2"
+"ds.asDataMatrix::perf::0","0.8100","0.5","2"
+"ds.asInteger::perf:0","0.8600","0.5","2"
+"ds.asList::perf:0","","0.5","2"
+"ds.asLogical::perf::0","1.660","0.5","2"
+"ds.asMatrix::perf::0","0.8557","0.5","2"
+"ds.asNumeric::perf:0","0.7912","0.5","2"
+"ds.assign::perf::0","2.003","0.5","2"
+"ds.class::perf::combine:0","1.645","0.5","2"
+"ds.colnames::perf:0","3.392","0.5","2"
+"ds.completeCases::perf::combine:0","0.8218","0.5","2"
+"ds.dim::perf::combine:0","3.265","0.5","2"
+"ds.exists::perf::combine:0","4.042","0.5","2"
+"ds.exp::perf::0","0.8963","0.5","2"
+"ds.isNA::perf::combine:0","1.297","0.5","2"
+"ds.length::perf::combine:0","3.212","0.5","2"
+"ds.levels::perf::combine:0","1.326","0.5","2"
+"ds.log::perf::0","0.9260","0.5","2"
+"ds.ls::perf::combine:0","3.282","0.5","2"
+"ds.mean::perf::combine:0","3.281","0.5","2"
+"ds.mean::perf::split:0","4.029","0.5","2"
+"ds.names::perf::combine:0","1.713","0.5","2"
+"ds.numNA::perf::combine:0","1.274","0.5","2"
+"ds.sqrt::perf::0","0.9233","0.5","2"
+"ds.unique::perf::combine:0","1.628","0.5","2"
+"void::perf::void::0","23600","0.5","2"
diff --git a/tests/testthat/test-_-vm-test.R b/tests/testthat/test-_-vm-test.R
index 7b5af1f4..c0973b28 100644
--- a/tests/testthat/test-_-vm-test.R
+++ b/tests/testthat/test-_-vm-test.R
@@ -26,7 +26,7 @@ init.testing.datasets()
test_that("The virtual machine is loaded. ",
{
- response <- httr::HEAD(url=ds.test_env$ping_address, config=ds.test_env$ping_config)
+ response <- httr::HEAD(url=ds.test_env$ping_url, config=ds.test_env$ping_options, authenticate(ds.test_env$ping_user, ds.test_env$ping_password))
expect_true(http_status(response)$reason %in% c("OK", "Unauthorized"))
})
diff --git a/tests/testthat/test-perf-ds.asCharacter.R b/tests/testthat/test-perf-ds.asCharacter.R
new file mode 100644
index 00000000..e258851e
--- /dev/null
+++ b/tests/testthat/test-perf-ds.asCharacter.R
@@ -0,0 +1,58 @@
+#-------------------------------------------------------------------------------
+#
+# This program and the accompanying materials
+# are made available under the terms of the GNU Public License v3.0.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#-------------------------------------------------------------------------------
+
+#
+# Set up
+#
+
+# context("ds.asCharacter::perf::setup")
+connect.studies.dataset.cnsim(list("LAB_TSC", "LAB_TRIG"))
+
+#
+# Tests
+#
+
+# context("ds.asCharacter::perf:0")
+test_that("combine - performance", {
+ .durationSec <- perf.testduration(30)
+ .count <- 0
+ .start.time <- Sys.time()
+ .current.time <- .start.time
+
+ while (difftime(.current.time, .start.time, units = "secs")[[1]] < .durationSec) {
+ ds.asCharacter("D$LAB_TSC", newobj = "perf.newobj")
+
+ .count <- .count + 1
+ .current.time <- Sys.time()
+ }
+
+ .current.rate <- .count / (difftime(.current.time, .start.time, units = "secs")[[1]])
+ .reference.rate <- perf.reference.rate("ds.asCharacter::perf::0")
+ if (any(length(.reference.rate) == 0) || any(is.null(.reference.rate))) {
+ print(paste("ds.asCharacter::perf::0 ", .current.rate, 0.5, 2.0))
+ perf.reference.save("ds.asCharacter::perf::0", .current.rate, 0.5, 2.0)
+ } else {
+ print(paste("ds.asCharacter::perf::0 ", format(.current.rate, digits = 8), ", ", format(100.0 * .current.rate / .reference.rate, digits = 4), "%", sep = ''))
+ }
+
+ .reference.rate <- perf.reference.rate("ds.asCharacter::perf::0")
+ .reference.tolerance.lower <- perf.reference.tolerance.lower("ds.asCharacter::perf::0")
+ .reference.tolerance.upper <- perf.reference.tolerance.upper("ds.asCharacter::perf::0")
+
+ expect_gt(.current.rate, .reference.rate * .reference.tolerance.lower, label = "Observed rate", expected.label = "lower threshold on rate")
+ expect_lt(.current.rate, .reference.rate * .reference.tolerance.upper, label = "Observed rate", expected.label = "upper threshold on rate")
+})
+
+#
+# Done
+#
+
+# context("ds.asCharacter::perf::shutdown")
+disconnect.studies.dataset.cnsim()
+# context("ds.asCharacter::perf::done")
diff --git a/tests/testthat/test-perf-ds.asDataMatrix.R b/tests/testthat/test-perf-ds.asDataMatrix.R
new file mode 100644
index 00000000..87555038
--- /dev/null
+++ b/tests/testthat/test-perf-ds.asDataMatrix.R
@@ -0,0 +1,58 @@
+#-------------------------------------------------------------------------------
+#
+# This program and the accompanying materials
+# are made available under the terms of the GNU Public License v3.0.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#-------------------------------------------------------------------------------
+
+#
+# Set up
+#
+
+# context("ds.asDataMatrix::perf::setup")
+connect.studies.dataset.cnsim(list("LAB_TSC", "LAB_TRIG"))
+
+#
+# Tests
+#
+
+# context("ds.asDataMatrix::perf:0")
+test_that("combine - performance", {
+ .durationSec <- perf.testduration(30)
+ .count <- 0
+ .start.time <- Sys.time()
+ .current.time <- .start.time
+
+ while (difftime(.current.time, .start.time, units = "secs")[[1]] < .durationSec) {
+ ds.asDataMatrix(x.name = "D", newobj = "perf.newobj")
+
+ .count <- .count + 1
+ .current.time <- Sys.time()
+ }
+
+ .current.rate <- .count / (difftime(.current.time, .start.time, units = "secs")[[1]])
+ .reference.rate <- perf.reference.rate("ds.asDataMatrix::perf::0")
+ if (any(length(.reference.rate) == 0) || any(is.null(.reference.rate))) {
+ print(paste("ds.asDataMatrix::perf::0 ", .current.rate, 0.5, 2.0))
+ perf.reference.save("ds.asDataMatrix::perf::0", .current.rate, 0.5, 2.0)
+ } else {
+ print(paste("ds.asDataMatrix::perf::0 ", format(.current.rate, digits = 8), ", ", format(100.0 * .current.rate / .reference.rate, digits = 4), "%", sep = ''))
+ }
+
+ .reference.rate <- perf.reference.rate("ds.asDataMatrix::perf::0")
+ .reference.tolerance.lower <- perf.reference.tolerance.lower("ds.asDataMatrix::perf::0")
+ .reference.tolerance.upper <- perf.reference.tolerance.upper("ds.asDataMatrix::perf::0")
+
+ expect_gt(.current.rate, .reference.rate * .reference.tolerance.lower, label = "Observed rate", expected.label = "lower threshold on rate")
+ expect_lt(.current.rate, .reference.rate * .reference.tolerance.upper, label = "Observed rate", expected.label = "upper threshold on rate")
+})
+
+#
+# Done
+#
+
+# context("ds.asDataMatrix::perf::shutdown")
+disconnect.studies.dataset.cnsim()
+# context("ds.asDataMatrix::perf::done")
diff --git a/tests/testthat/test-perf-ds.asLogical.R b/tests/testthat/test-perf-ds.asLogical.R
new file mode 100644
index 00000000..edfb7997
--- /dev/null
+++ b/tests/testthat/test-perf-ds.asLogical.R
@@ -0,0 +1,58 @@
+#-------------------------------------------------------------------------------
+#
+# This program and the accompanying materials
+# are made available under the terms of the GNU Public License v3.0.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#-------------------------------------------------------------------------------
+
+#
+# Set up
+#
+
+# context("ds.asLogical::perf::setup")
+connect.studies.dataset.cnsim(list("LAB_TSC", "LAB_TRIG"))
+
+#
+# Tests
+#
+
+# context("ds.asLogical::perf:0")
+test_that("combine - performance", {
+ .durationSec <- perf.testduration(30)
+ .count <- 0
+ .start.time <- Sys.time()
+ .current.time <- .start.time
+
+ while (difftime(.current.time, .start.time, units = "secs")[[1]] < .durationSec) {
+ ds.asLogical("D$LAB_TSC", newobj = "perf.newobj")
+
+ .count <- .count + 1
+ .current.time <- Sys.time()
+ }
+
+ .current.rate <- .count / (difftime(.current.time, .start.time, units = "secs")[[1]])
+ .reference.rate <- perf.reference.rate("ds.asLogical::perf::0")
+ if (any(length(.reference.rate) == 0) || any(is.null(.reference.rate))) {
+ print(paste("ds.asLogical::perf::0 ", .current.rate, 0.5, 2.0))
+ perf.reference.save("ds.asLogical::perf::0", .current.rate, 0.5, 2.0)
+ } else {
+ print(paste("ds.asLogical::perf::0 ", format(.current.rate, digits = 8), ", ", format(100.0 * .current.rate / .reference.rate, digits = 4), "%", sep = ''))
+ }
+
+ .reference.rate <- perf.reference.rate("ds.asLogical::perf::0")
+ .reference.tolerance.lower <- perf.reference.tolerance.lower("ds.asLogical::perf::0")
+ .reference.tolerance.upper <- perf.reference.tolerance.upper("ds.asLogical::perf::0")
+
+ expect_gt(.current.rate, .reference.rate * .reference.tolerance.lower, label = "Observed rate", expected.label = "lower threshold on rate")
+ expect_lt(.current.rate, .reference.rate * .reference.tolerance.upper, label = "Observed rate", expected.label = "upper threshold on rate")
+})
+
+#
+# Done
+#
+
+# context("ds.asLogical::perf::shutdown")
+disconnect.studies.dataset.cnsim()
+# context("ds.asLogical::perf::done")
diff --git a/tests/testthat/test-perf-ds.asMatrix.R b/tests/testthat/test-perf-ds.asMatrix.R
new file mode 100644
index 00000000..68624a75
--- /dev/null
+++ b/tests/testthat/test-perf-ds.asMatrix.R
@@ -0,0 +1,58 @@
+#-------------------------------------------------------------------------------
+#
+# This program and the accompanying materials
+# are made available under the terms of the GNU Public License v3.0.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#-------------------------------------------------------------------------------
+
+#
+# Set up
+#
+
+# context("ds.asMatrix::perf::setup")
+connect.studies.dataset.cnsim(list("LAB_TSC", "LAB_TRIG"))
+
+#
+# Tests
+#
+
+# context("ds.asMatrix::perf:0")
+test_that("combine - performance", {
+ .durationSec <- perf.testduration(30)
+ .count <- 0
+ .start.time <- Sys.time()
+ .current.time <- .start.time
+
+ while (difftime(.current.time, .start.time, units = "secs")[[1]] < .durationSec) {
+ ds.asMatrix(x.name = "D$LAB_TSC", newobj = "perf.newobj")
+
+ .count <- .count + 1
+ .current.time <- Sys.time()
+ }
+
+ .current.rate <- .count / (difftime(.current.time, .start.time, units = "secs")[[1]])
+ .reference.rate <- perf.reference.rate("ds.asMatrix::perf::0")
+ if (any(length(.reference.rate) == 0) || any(is.null(.reference.rate))) {
+ print(paste("ds.asMatrix::perf::0 ", .current.rate, 0.5, 2.0))
+ perf.reference.save("ds.asMatrix::perf::0", .current.rate, 0.5, 2.0)
+ } else {
+ print(paste("ds.asMatrix::perf::0 ", format(.current.rate, digits = 8), ", ", format(100.0 * .current.rate / .reference.rate, digits = 4), "%", sep = ''))
+ }
+
+ .reference.rate <- perf.reference.rate("ds.asMatrix::perf::0")
+ .reference.tolerance.lower <- perf.reference.tolerance.lower("ds.asMatrix::perf::0")
+ .reference.tolerance.upper <- perf.reference.tolerance.upper("ds.asMatrix::perf::0")
+
+ expect_gt(.current.rate, .reference.rate * .reference.tolerance.lower, label = "Observed rate", expected.label = "lower threshold on rate")
+ expect_lt(.current.rate, .reference.rate * .reference.tolerance.upper, label = "Observed rate", expected.label = "upper threshold on rate")
+})
+
+#
+# Done
+#
+
+# context("ds.asMatrix::perf::shutdown")
+disconnect.studies.dataset.cnsim()
+# context("ds.asMatrix::perf::done")
diff --git a/tests/testthat/test-perf-ds.completeCases.R b/tests/testthat/test-perf-ds.completeCases.R
new file mode 100644
index 00000000..fcfc5ba2
--- /dev/null
+++ b/tests/testthat/test-perf-ds.completeCases.R
@@ -0,0 +1,59 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2024-2025 Arjuna Technologies, Newcastle upon Tyne. All rights reserved.
+#
+# This program and the accompanying materials
+# are made available under the terms of the GNU Public License v3.0.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#-------------------------------------------------------------------------------
+
+#
+# Set up
+#
+
+# context("ds.completeCases::perf::setup")
+connect.studies.dataset.cnsim(list("LAB_TSC", "LAB_TRIG"))
+
+#
+# Tests
+#
+
+# context("ds.completeCases::perf::combine:0")
+test_that("combine - performance", {
+ .durationSec <- perf.testduration(30)
+ .count <- 0
+ .start.time <- Sys.time()
+ .current.time <- .start.time
+
+ while (difftime(.current.time, .start.time, units = "secs")[[1]] < .durationSec) {
+ ds.completeCases("D", newobj="D_complete")
+
+ .count <- .count + 1
+ .current.time <- Sys.time()
+ }
+
+ .current.rate <- .count / (difftime(.current.time, .start.time, units = "secs")[[1]])
+ .reference.rate <- perf.reference.rate("ds.completeCases::perf::combine:0")
+ if (any(length(.reference.rate) == 0) || any(is.null(.reference.rate))) {
+ print(paste("ds.completeCases::perf::combine:0 ", .current.rate, 0.5, 2.0))
+ perf.reference.save("ds.completeCases::perf::combine:0", .current.rate, 0.5, 2.0)
+ } else {
+ print(paste("ds.completeCases::perf::combine:0 ", format(.current.rate, digits = 8), ", ", format(100.0 * .current.rate / .reference.rate, digits = 4), "%", sep = ''))
+ }
+
+ .reference.rate <- perf.reference.rate("ds.completeCases::perf::combine:0")
+ .reference.tolerance.lower <- perf.reference.tolerance.lower("ds.completeCases::perf::combine:0")
+ .reference.tolerance.upper <- perf.reference.tolerance.upper("ds.completeCases::perf::combine:0")
+
+ expect_gt(.current.rate, .reference.rate * .reference.tolerance.lower, label = "Observed rate", expected.label = "lower threshold on rate")
+ expect_lt(.current.rate, .reference.rate * .reference.tolerance.upper, label = "Observed rate", expected.label = "upper threshold on rate")
+})
+
+#
+# Done
+#
+
+# context("ds.completeCases::perf::shutdown")
+disconnect.studies.dataset.cnsim()
+# context("ds.completeCases::perf::done")
diff --git a/tests/testthat/test-perf-ds.dim.R b/tests/testthat/test-perf-ds.dim.R
new file mode 100644
index 00000000..917eb1a1
--- /dev/null
+++ b/tests/testthat/test-perf-ds.dim.R
@@ -0,0 +1,59 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2024-2025 Arjuna Technologies, Newcastle upon Tyne. All rights reserved.
+#
+# This program and the accompanying materials
+# are made available under the terms of the GNU Public License v3.0.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#-------------------------------------------------------------------------------
+
+#
+# Set up
+#
+
+# context("ds.dim::perf::setup")
+connect.studies.dataset.cnsim(list("LAB_TSC", "LAB_TRIG"))
+
+#
+# Tests
+#
+
+# context("ds.dim::perf::combine:0")
+test_that("combine - performance", {
+ .durationSec <- perf.testduration(30)
+ .count <- 0
+ .start.time <- Sys.time()
+ .current.time <- .start.time
+
+ while (difftime(.current.time, .start.time, units = "secs")[[1]] < .durationSec) {
+ ds.dim("D")
+
+ .count <- .count + 1
+ .current.time <- Sys.time()
+ }
+
+ .current.rate <- .count / (difftime(.current.time, .start.time, units = "secs")[[1]])
+ .reference.rate <- perf.reference.rate("ds.dim::perf::combine:0")
+ if (any(length(.reference.rate) == 0) || any(is.null(.reference.rate))) {
+ print(paste("ds.dim::perf::combine:0 ", .current.rate, 0.5, 2.0))
+ perf.reference.save("ds.dim::perf::combine:0", .current.rate, 0.5, 2.0)
+ } else {
+ print(paste("ds.dim::perf::combine:0 ", format(.current.rate, digits = 8), ", ", format(100.0 * .current.rate / .reference.rate, digits = 4), "%", sep = ''))
+ }
+
+ .reference.rate <- perf.reference.rate("ds.dim::perf::combine:0")
+ .reference.tolerance.lower <- perf.reference.tolerance.lower("ds.dim::perf::combine:0")
+ .reference.tolerance.upper <- perf.reference.tolerance.upper("ds.dim::perf::combine:0")
+
+ expect_gt(.current.rate, .reference.rate * .reference.tolerance.lower, label = "Observed rate", expected.label = "lower threshold on rate")
+ expect_lt(.current.rate, .reference.rate * .reference.tolerance.upper, label = "Observed rate", expected.label = "upper threshold on rate")
+})
+
+#
+# Done
+#
+
+# context("ds.dim::perf::shutdown")
+disconnect.studies.dataset.cnsim()
+# context("ds.dim::perf::done")
diff --git a/tests/testthat/test-perf-ds.exp.R b/tests/testthat/test-perf-ds.exp.R
new file mode 100644
index 00000000..293223b4
--- /dev/null
+++ b/tests/testthat/test-perf-ds.exp.R
@@ -0,0 +1,58 @@
+#-------------------------------------------------------------------------------
+#
+# This program and the accompanying materials
+# are made available under the terms of the GNU Public License v3.0.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#-------------------------------------------------------------------------------
+
+#
+# Set up
+#
+
+# context("ds.exp::perf::setup")
+connect.studies.dataset.cnsim(list("LAB_TSC", "LAB_TRIG"))
+
+#
+# Tests
+#
+
+# context("ds.exp::perf:0")
+test_that("combine - performance", {
+ .durationSec <- perf.testduration(30)
+ .count <- 0
+ .start.time <- Sys.time()
+ .current.time <- .start.time
+
+ while (difftime(.current.time, .start.time, units = "secs")[[1]] < .durationSec) {
+ ds.exp("D$LAB_TSC", newobj = "perf.newobj")
+
+ .count <- .count + 1
+ .current.time <- Sys.time()
+ }
+
+ .current.rate <- .count / (difftime(.current.time, .start.time, units = "secs")[[1]])
+ .reference.rate <- perf.reference.rate("ds.exp::perf::0")
+ if (any(length(.reference.rate) == 0) || any(is.null(.reference.rate))) {
+ print(paste("ds.exp::perf::0 ", .current.rate, 0.5, 2.0))
+ perf.reference.save("ds.exp::perf::0", .current.rate, 0.5, 2.0)
+ } else {
+ print(paste("ds.exp::perf::0 ", format(.current.rate, digits = 8), ", ", format(100.0 * .current.rate / .reference.rate, digits = 4), "%", sep = ''))
+ }
+
+ .reference.rate <- perf.reference.rate("ds.exp::perf::0")
+ .reference.tolerance.lower <- perf.reference.tolerance.lower("ds.exp::perf::0")
+ .reference.tolerance.upper <- perf.reference.tolerance.upper("ds.exp::perf::0")
+
+ expect_gt(.current.rate, .reference.rate * .reference.tolerance.lower, label = "Observed rate", expected.label = "lower threshold on rate")
+ expect_lt(.current.rate, .reference.rate * .reference.tolerance.upper, label = "Observed rate", expected.label = "upper threshold on rate")
+})
+
+#
+# Done
+#
+
+# context("ds.exp::perf::shutdown")
+disconnect.studies.dataset.cnsim()
+# context("ds.exp::perf::done")
diff --git a/tests/testthat/test-perf-ds.isNA.R b/tests/testthat/test-perf-ds.isNA.R
new file mode 100644
index 00000000..7cbb6201
--- /dev/null
+++ b/tests/testthat/test-perf-ds.isNA.R
@@ -0,0 +1,59 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2024-2025 Arjuna Technologies, Newcastle upon Tyne. All rights reserved.
+#
+# This program and the accompanying materials
+# are made available under the terms of the GNU Public License v3.0.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#-------------------------------------------------------------------------------
+
+#
+# Set up
+#
+
+# context("ds.isNA::perf::setup")
+connect.studies.dataset.cnsim(list("LAB_TSC", "LAB_TRIG"))
+
+#
+# Tests
+#
+
+# context("ds.isNA::perf::combine:0")
+test_that("combine - performance", {
+ .durationSec <- perf.testduration(30)
+ .count <- 0
+ .start.time <- Sys.time()
+ .current.time <- .start.time
+
+ while (difftime(.current.time, .start.time, units = "secs")[[1]] < .durationSec) {
+ ds.isNA("D$LAB_TSC")
+
+ .count <- .count + 1
+ .current.time <- Sys.time()
+ }
+
+ .current.rate <- .count / (difftime(.current.time, .start.time, units = "secs")[[1]])
+ .reference.rate <- perf.reference.rate("ds.isNA::perf::combine:0")
+ if (any(length(.reference.rate) == 0) || any(is.null(.reference.rate))) {
+ print(paste("ds.isNA::perf::combine:0 ", .current.rate, 0.5, 2.0))
+ perf.reference.save("ds.isNA::perf::combine:0", .current.rate, 0.5, 2.0)
+ } else {
+ print(paste("ds.isNA::perf::combine:0 ", format(.current.rate, digits = 8), ", ", format(100.0 * .current.rate / .reference.rate, digits = 4), "%", sep = ''))
+ }
+
+ .reference.rate <- perf.reference.rate("ds.isNA::perf::combine:0")
+ .reference.tolerance.lower <- perf.reference.tolerance.lower("ds.isNA::perf::combine:0")
+ .reference.tolerance.upper <- perf.reference.tolerance.upper("ds.isNA::perf::combine:0")
+
+ expect_gt(.current.rate, .reference.rate * .reference.tolerance.lower, label = "Observed rate", expected.label = "lower threshold on rate")
+ expect_lt(.current.rate, .reference.rate * .reference.tolerance.upper, label = "Observed rate", expected.label = "upper threshold on rate")
+})
+
+#
+# Done
+#
+
+# context("ds.isNA::perf::shutdown")
+disconnect.studies.dataset.cnsim()
+# context("ds.isNA::perf::done")
diff --git a/tests/testthat/test-perf-ds.levels.R b/tests/testthat/test-perf-ds.levels.R
new file mode 100644
index 00000000..688458d1
--- /dev/null
+++ b/tests/testthat/test-perf-ds.levels.R
@@ -0,0 +1,59 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2024-2025 Arjuna Technologies, Newcastle upon Tyne. All rights reserved.
+#
+# This program and the accompanying materials
+# are made available under the terms of the GNU Public License v3.0.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#-------------------------------------------------------------------------------
+
+#
+# Set up
+#
+
+# context("ds.levels::perf::setup")
+connect.studies.dataset.cnsim(list("LAB_TSC", "PM_BMI_CATEGORICAL"))
+
+#
+# Tests
+#
+
+# context("ds.levels::perf::combine:0")
+test_that("combine - performance", {
+ .durationSec <- perf.testduration(30)
+ .count <- 0
+ .start.time <- Sys.time()
+ .current.time <- .start.time
+
+ while (difftime(.current.time, .start.time, units = "secs")[[1]] < .durationSec) {
+ ds.levels("D$PM_BMI_CATEGORICAL")
+
+ .count <- .count + 1
+ .current.time <- Sys.time()
+ }
+
+ .current.rate <- .count / (difftime(.current.time, .start.time, units = "secs")[[1]])
+ .reference.rate <- perf.reference.rate("ds.levels::perf::combine:0")
+ if (any(length(.reference.rate) == 0) || any(is.null(.reference.rate))) {
+ print(paste("ds.levels::perf::combine:0 ", .current.rate, 0.5, 2.0))
+ perf.reference.save("ds.levels::perf::combine:0", .current.rate, 0.5, 2.0)
+ } else {
+ print(paste("ds.levels::perf::combine:0 ", format(.current.rate, digits = 8), ", ", format(100.0 * .current.rate / .reference.rate, digits = 4), "%", sep = ''))
+ }
+
+ .reference.rate <- perf.reference.rate("ds.levels::perf::combine:0")
+ .reference.tolerance.lower <- perf.reference.tolerance.lower("ds.levels::perf::combine:0")
+ .reference.tolerance.upper <- perf.reference.tolerance.upper("ds.levels::perf::combine:0")
+
+ expect_gt(.current.rate, .reference.rate * .reference.tolerance.lower, label = "Observed rate", expected.label = "lower threshold on rate")
+ expect_lt(.current.rate, .reference.rate * .reference.tolerance.upper, label = "Observed rate", expected.label = "upper threshold on rate")
+})
+
+#
+# Done
+#
+
+# context("ds.levels::perf::shutdown")
+disconnect.studies.dataset.cnsim()
+# context("ds.levels::perf::done")
diff --git a/tests/testthat/test-perf-ds.log.R b/tests/testthat/test-perf-ds.log.R
new file mode 100644
index 00000000..4f655960
--- /dev/null
+++ b/tests/testthat/test-perf-ds.log.R
@@ -0,0 +1,58 @@
+#-------------------------------------------------------------------------------
+#
+# This program and the accompanying materials
+# are made available under the terms of the GNU Public License v3.0.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#-------------------------------------------------------------------------------
+
+#
+# Set up
+#
+
+# context("ds.log::perf::setup")
+connect.studies.dataset.cnsim(list("LAB_TSC", "LAB_TRIG"))
+
+#
+# Tests
+#
+
+# context("ds.log::perf:0")
+test_that("combine - performance", {
+ .durationSec <- perf.testduration(30)
+ .count <- 0
+ .start.time <- Sys.time()
+ .current.time <- .start.time
+
+ while (difftime(.current.time, .start.time, units = "secs")[[1]] < .durationSec) {
+ ds.log("D$LAB_TSC", newobj = "perf.newobj")
+
+ .count <- .count + 1
+ .current.time <- Sys.time()
+ }
+
+ .current.rate <- .count / (difftime(.current.time, .start.time, units = "secs")[[1]])
+ .reference.rate <- perf.reference.rate("ds.log::perf::0")
+ if (any(length(.reference.rate) == 0) || any(is.null(.reference.rate))) {
+ print(paste("ds.log::perf::0 ", .current.rate, 0.5, 2.0))
+ perf.reference.save("ds.log::perf::0", .current.rate, 0.5, 2.0)
+ } else {
+ print(paste("ds.log::perf::0 ", format(.current.rate, digits = 8), ", ", format(100.0 * .current.rate / .reference.rate, digits = 4), "%", sep = ''))
+ }
+
+ .reference.rate <- perf.reference.rate("ds.log::perf::0")
+ .reference.tolerance.lower <- perf.reference.tolerance.lower("ds.log::perf::0")
+ .reference.tolerance.upper <- perf.reference.tolerance.upper("ds.log::perf::0")
+
+ expect_gt(.current.rate, .reference.rate * .reference.tolerance.lower, label = "Observed rate", expected.label = "lower threshold on rate")
+ expect_lt(.current.rate, .reference.rate * .reference.tolerance.upper, label = "Observed rate", expected.label = "upper threshold on rate")
+})
+
+#
+# Done
+#
+
+# context("ds.log::perf::shutdown")
+disconnect.studies.dataset.cnsim()
+# context("ds.log::perf::done")
diff --git a/tests/testthat/test-perf-ds.ls.R b/tests/testthat/test-perf-ds.ls.R
new file mode 100644
index 00000000..5e428cd6
--- /dev/null
+++ b/tests/testthat/test-perf-ds.ls.R
@@ -0,0 +1,59 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2024-2025 Arjuna Technologies, Newcastle upon Tyne. All rights reserved.
+#
+# This program and the accompanying materials
+# are made available under the terms of the GNU Public License v3.0.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#-------------------------------------------------------------------------------
+
+#
+# Set up
+#
+
+# context("ds.ls::perf::setup")
+connect.studies.dataset.cnsim(list("LAB_TSC", "LAB_TRIG"))
+
+#
+# Tests
+#
+
+# context("ds.ls::perf::combine:0")
+test_that("combine - performance", {
+ .durationSec <- perf.testduration(30)
+ .count <- 0
+ .start.time <- Sys.time()
+ .current.time <- .start.time
+
+ while (difftime(.current.time, .start.time, units = "secs")[[1]] < .durationSec) {
+ ds.ls()
+
+ .count <- .count + 1
+ .current.time <- Sys.time()
+ }
+
+ .current.rate <- .count / (difftime(.current.time, .start.time, units = "secs")[[1]])
+ .reference.rate <- perf.reference.rate("ds.ls::perf::combine:0")
+ if (any(length(.reference.rate) == 0) || any(is.null(.reference.rate))) {
+ print(paste("ds.ls::perf::combine:0 ", .current.rate, 0.5, 2.0))
+ perf.reference.save("ds.ls::perf::combine:0", .current.rate, 0.5, 2.0)
+ } else {
+ print(paste("ds.ls::perf::combine:0 ", format(.current.rate, digits = 8), ", ", format(100.0 * .current.rate / .reference.rate, digits = 4), "%", sep = ''))
+ }
+
+ .reference.rate <- perf.reference.rate("ds.ls::perf::combine:0")
+ .reference.tolerance.lower <- perf.reference.tolerance.lower("ds.ls::perf::combine:0")
+ .reference.tolerance.upper <- perf.reference.tolerance.upper("ds.ls::perf::combine:0")
+
+ expect_gt(.current.rate, .reference.rate * .reference.tolerance.lower, label = "Observed rate", expected.label = "lower threshold on rate")
+ expect_lt(.current.rate, .reference.rate * .reference.tolerance.upper, label = "Observed rate", expected.label = "upper threshold on rate")
+})
+
+#
+# Done
+#
+
+# context("ds.ls::perf::shutdown")
+disconnect.studies.dataset.cnsim()
+# context("ds.ls::perf::done")
diff --git a/tests/testthat/test-perf-ds.names.R b/tests/testthat/test-perf-ds.names.R
new file mode 100644
index 00000000..653497c1
--- /dev/null
+++ b/tests/testthat/test-perf-ds.names.R
@@ -0,0 +1,59 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2024-2025 Arjuna Technologies, Newcastle upon Tyne. All rights reserved.
+#
+# This program and the accompanying materials
+# are made available under the terms of the GNU Public License v3.0.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#-------------------------------------------------------------------------------
+
+#
+# Set up
+#
+
+# context("ds.names::perf::setup")
+connect.studies.dataset.cnsim(list("LAB_TSC", "LAB_TRIG"))
+
+#
+# Tests
+#
+
+# context("ds.names::perf::combine:0")
+test_that("combine - performance", {
+ .durationSec <- perf.testduration(30)
+ .count <- 0
+ .start.time <- Sys.time()
+ .current.time <- .start.time
+
+ while (difftime(.current.time, .start.time, units = "secs")[[1]] < .durationSec) {
+ ds.names("D")
+
+ .count <- .count + 1
+ .current.time <- Sys.time()
+ }
+
+ .current.rate <- .count / (difftime(.current.time, .start.time, units = "secs")[[1]])
+ .reference.rate <- perf.reference.rate("ds.names::perf::combine:0")
+ if (any(length(.reference.rate) == 0) || any(is.null(.reference.rate))) {
+ print(paste("ds.names::perf::combine:0 ", .current.rate, 0.5, 2.0))
+ perf.reference.save("ds.names::perf::combine:0", .current.rate, 0.5, 2.0)
+ } else {
+ print(paste("ds.names::perf::combine:0 ", format(.current.rate, digits = 8), ", ", format(100.0 * .current.rate / .reference.rate, digits = 4), "%", sep = ''))
+ }
+
+ .reference.rate <- perf.reference.rate("ds.names::perf::combine:0")
+ .reference.tolerance.lower <- perf.reference.tolerance.lower("ds.names::perf::combine:0")
+ .reference.tolerance.upper <- perf.reference.tolerance.upper("ds.names::perf::combine:0")
+
+ expect_gt(.current.rate, .reference.rate * .reference.tolerance.lower, label = "Observed rate", expected.label = "lower threshold on rate")
+ expect_lt(.current.rate, .reference.rate * .reference.tolerance.upper, label = "Observed rate", expected.label = "upper threshold on rate")
+})
+
+#
+# Done
+#
+
+# context("ds.names::perf::shutdown")
+disconnect.studies.dataset.cnsim()
+# context("ds.names::perf::done")
diff --git a/tests/testthat/test-perf-ds.numNA.R b/tests/testthat/test-perf-ds.numNA.R
new file mode 100644
index 00000000..2e6ae3e4
--- /dev/null
+++ b/tests/testthat/test-perf-ds.numNA.R
@@ -0,0 +1,59 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2024-2025 Arjuna Technologies, Newcastle upon Tyne. All rights reserved.
+#
+# This program and the accompanying materials
+# are made available under the terms of the GNU Public License v3.0.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#-------------------------------------------------------------------------------
+
+#
+# Set up
+#
+
+# context("ds.numNA::perf::setup")
+connect.studies.dataset.cnsim(list("LAB_TSC", "LAB_TRIG"))
+
+#
+# Tests
+#
+
+# context("ds.numNA::perf::combine:0")
+test_that("combine - performance", {
+ .durationSec <- perf.testduration(30)
+ .count <- 0
+ .start.time <- Sys.time()
+ .current.time <- .start.time
+
+ while (difftime(.current.time, .start.time, units = "secs")[[1]] < .durationSec) {
+ ds.numNA("D$LAB_TSC")
+
+ .count <- .count + 1
+ .current.time <- Sys.time()
+ }
+
+ .current.rate <- .count / (difftime(.current.time, .start.time, units = "secs")[[1]])
+ .reference.rate <- perf.reference.rate("ds.numNA::perf::combine:0")
+ if (any(length(.reference.rate) == 0) || any(is.null(.reference.rate))) {
+ print(paste("ds.numNA::perf::combine:0 ", .current.rate, 0.5, 2.0))
+ perf.reference.save("ds.numNA::perf::combine:0", .current.rate, 0.5, 2.0)
+ } else {
+ print(paste("ds.numNA::perf::combine:0 ", format(.current.rate, digits = 8), ", ", format(100.0 * .current.rate / .reference.rate, digits = 4), "%", sep = ''))
+ }
+
+ .reference.rate <- perf.reference.rate("ds.numNA::perf::combine:0")
+ .reference.tolerance.lower <- perf.reference.tolerance.lower("ds.numNA::perf::combine:0")
+ .reference.tolerance.upper <- perf.reference.tolerance.upper("ds.numNA::perf::combine:0")
+
+ expect_gt(.current.rate, .reference.rate * .reference.tolerance.lower, label = "Observed rate", expected.label = "lower threshold on rate")
+ expect_lt(.current.rate, .reference.rate * .reference.tolerance.upper, label = "Observed rate", expected.label = "upper threshold on rate")
+})
+
+#
+# Done
+#
+
+# context("ds.numNA::perf::shutdown")
+disconnect.studies.dataset.cnsim()
+# context("ds.numNA::perf::done")
diff --git a/tests/testthat/test-perf-ds.sqrt.R b/tests/testthat/test-perf-ds.sqrt.R
new file mode 100644
index 00000000..ae96dde7
--- /dev/null
+++ b/tests/testthat/test-perf-ds.sqrt.R
@@ -0,0 +1,58 @@
+#-------------------------------------------------------------------------------
+#
+# This program and the accompanying materials
+# are made available under the terms of the GNU Public License v3.0.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#-------------------------------------------------------------------------------
+
+#
+# Set up
+#
+
+# context("ds.sqrt::perf::setup")
+connect.studies.dataset.cnsim(list("LAB_TSC", "LAB_TRIG"))
+
+#
+# Tests
+#
+
+# context("ds.sqrt::perf:0")
+test_that("combine - performance", {
+ .durationSec <- perf.testduration(30)
+ .count <- 0
+ .start.time <- Sys.time()
+ .current.time <- .start.time
+
+ while (difftime(.current.time, .start.time, units = "secs")[[1]] < .durationSec) {
+ ds.sqrt("D$LAB_TSC", newobj = "perf.newobj")
+
+ .count <- .count + 1
+ .current.time <- Sys.time()
+ }
+
+ .current.rate <- .count / (difftime(.current.time, .start.time, units = "secs")[[1]])
+ .reference.rate <- perf.reference.rate("ds.sqrt::perf::0")
+ if (any(length(.reference.rate) == 0) || any(is.null(.reference.rate))) {
+ print(paste("ds.sqrt::perf::0 ", .current.rate, 0.5, 2.0))
+ perf.reference.save("ds.sqrt::perf::0", .current.rate, 0.5, 2.0)
+ } else {
+ print(paste("ds.sqrt::perf::0 ", format(.current.rate, digits = 8), ", ", format(100.0 * .current.rate / .reference.rate, digits = 4), "%", sep = ''))
+ }
+
+ .reference.rate <- perf.reference.rate("ds.sqrt::perf::0")
+ .reference.tolerance.lower <- perf.reference.tolerance.lower("ds.sqrt::perf::0")
+ .reference.tolerance.upper <- perf.reference.tolerance.upper("ds.sqrt::perf::0")
+
+ expect_gt(.current.rate, .reference.rate * .reference.tolerance.lower, label = "Observed rate", expected.label = "lower threshold on rate")
+ expect_lt(.current.rate, .reference.rate * .reference.tolerance.upper, label = "Observed rate", expected.label = "upper threshold on rate")
+})
+
+#
+# Done
+#
+
+# context("ds.sqrt::perf::shutdown")
+disconnect.studies.dataset.cnsim()
+# context("ds.sqrt::perf::done")
diff --git a/tests/testthat/test-perf-ds.unique.R b/tests/testthat/test-perf-ds.unique.R
new file mode 100644
index 00000000..093c5267
--- /dev/null
+++ b/tests/testthat/test-perf-ds.unique.R
@@ -0,0 +1,59 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2024-2025 Arjuna Technologies, Newcastle upon Tyne. All rights reserved.
+#
+# This program and the accompanying materials
+# are made available under the terms of the GNU Public License v3.0.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#-------------------------------------------------------------------------------
+
+#
+# Set up
+#
+
+# context("ds.unique::perf::setup")
+connect.studies.dataset.cnsim(list("LAB_TSC", "LAB_TRIG"))
+
+#
+# Tests
+#
+
+# context("ds.unique::perf::combine:0")
+test_that("combine - performance", {
+ .durationSec <- perf.testduration(30)
+ .count <- 0
+ .start.time <- Sys.time()
+ .current.time <- .start.time
+
+ while (difftime(.current.time, .start.time, units = "secs")[[1]] < .durationSec) {
+ ds.unique("D$LAB_TSC", newobj="unique_TSC")
+
+ .count <- .count + 1
+ .current.time <- Sys.time()
+ }
+
+ .current.rate <- .count / (difftime(.current.time, .start.time, units = "secs")[[1]])
+ .reference.rate <- perf.reference.rate("ds.unique::perf::combine:0")
+ if (any(length(.reference.rate) == 0) || any(is.null(.reference.rate))) {
+ print(paste("ds.unique::perf::combine:0 ", .current.rate, 0.5, 2.0))
+ perf.reference.save("ds.unique::perf::combine:0", .current.rate, 0.5, 2.0)
+ } else {
+ print(paste("ds.unique::perf::combine:0 ", format(.current.rate, digits = 8), ", ", format(100.0 * .current.rate / .reference.rate, digits = 4), "%", sep = ''))
+ }
+
+ .reference.rate <- perf.reference.rate("ds.unique::perf::combine:0")
+ .reference.tolerance.lower <- perf.reference.tolerance.lower("ds.unique::perf::combine:0")
+ .reference.tolerance.upper <- perf.reference.tolerance.upper("ds.unique::perf::combine:0")
+
+ expect_gt(.current.rate, .reference.rate * .reference.tolerance.lower, label = "Observed rate", expected.label = "lower threshold on rate")
+ expect_lt(.current.rate, .reference.rate * .reference.tolerance.upper, label = "Observed rate", expected.label = "upper threshold on rate")
+})
+
+#
+# Done
+#
+
+# context("ds.unique::perf::shutdown")
+disconnect.studies.dataset.cnsim()
+# context("ds.unique::perf::done")