Skip to content
This repository has been archived by the owner on Oct 12, 2023. It is now read-only.

Commit

Permalink
Tests/r (#275)
Browse files Browse the repository at this point in the history
* Added install R

* Added devtools build

* devtools build and test

* Clean up rscript

* Added line breaks

* Added devtools('.')

* Added testthat package

* Added roxygen

* Replaced rscript

* Test live

* Added environment variables to test

* Fixed test

* Removed

* Fixed tests

* makeClusters to makeCluster

* Error handling to stop exit

* Added params to setup function

* Removed pool names

* Get / Get Cluster List

* Added utility R source

* Fixed tests

* Fixed remove error handling with combine test

* Forgot \ lines
  • Loading branch information
brnleehng authored May 17, 2018
1 parent 008b0ad commit 4983fb1
Show file tree
Hide file tree
Showing 13 changed files with 178 additions and 123 deletions.
Empty file added R/test-utility.R
Empty file.
23 changes: 23 additions & 0 deletions tests/test_scripts/test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#!/bin/bash
sudo echo "deb http://cran.rstudio.com/bin/linux/ubuntu trusty/" | sudo tee -a /etc/apt/sources.list

gpg --keyserver keyserver.ubuntu.com --recv-key E084DAB9
gpg -a --export E084DAB9 | sudo apt-key add -

sudo apt-get update
sudo apt-get install -y r-base r-base-dev libcurl4-openssl-dev
sudo apt-get install -y libssl-dev libxml2-dev libgdal-dev libproj-dev libgsl-dev

sudo R \
-e "Sys.setenv(BATCH_ACCOUNT_NAME = '$BATCH_ACCOUNT_NAME')" \
-e "Sys.setenv(BATCH_ACCOUNT_KEY = '$BATCH_ACCOUNT_KEY')" \
-e "Sys.setenv(BATCH_ACCOUNT_URL = '$BATCH_ACCOUNT_URL')" \
-e "Sys.setenv(STORAGE_ACCOUNT_NAME = '$STORAGE_ACCOUNT_NAME')" \
-e "Sys.setenv(STORAGE_ACCOUNT_KEY = '$STORAGE_ACCOUNT_KEY')" \
-e "getwd();" \
-e "install.packages(c('devtools', 'remotes', 'testthat', 'roxygen2'));" \
-e "devtools::install();" \
-e "devtools::build();" \
-e "res <- devtools::test(reporter='summary');" \
-e "df <- as.data.frame(res);" \
-e "if(sum(df[['failed']]) > 0 || any(df[['error']])) { q(status=1) }"
39 changes: 14 additions & 25 deletions tests/testthat/test-async-cluster.R
Original file line number Diff line number Diff line change
@@ -1,38 +1,27 @@
# Run this test for users to make sure the async cluster creation features
# of doAzureParallel are still working
context("async cluster scenario test")
test_that("Async cluster scenario test", {
testthat::skip("Live test")
context("Cluster Management Test")
test_that("Get Cluster List / Get Cluster test", {
testthat::skip_on_travis()
credentialsFileName <- "credentials.json"
clusterFileName <- "cluster.json"
source("utility.R")

doAzureParallel::generateCredentialsConfig(credentialsFileName)
doAzureParallel::generateClusterConfig(clusterFileName)
settings <- getSettings()

# set your credentials
doAzureParallel::setCredentials(credentialsFileName)
doAzureParallel::setCredentials(settings$credentials)

cluster <-
doAzureParallel::makeCluster(clusterSetting = clusterFileName, wait = FALSE)
doAzureParallel::makeCluster(settings$clusterConfig, wait = FALSE)

cluster <- getCluster(cluster$poolId)
getClusterList()
filter <- filter <- list()
clusterList <- getClusterList()
filter <- list()
filter$state <- c("active", "deleting")
getClusterList(filter)
doAzureParallel::registerDoAzureParallel(cluster)

'%dopar%' <- foreach::'%dopar%'
res <-
foreach::foreach(i = 1:4) %dopar% {
mean(1:3)
}
testthat::expect_true('test-pool' %in% clusterList$Id)

res
clusterList <- getClusterList(filter)

testthat::expect_equal(length(res), 4)
testthat::expect_equal(res, list(2, 2, 2, 2))

stopCluster(cluster)
for (i in 1:length(clusterList$State)) {
testthat::expect_true(clusterList$State[i] == 'active' ||
clusterList$State[i] == 'deleting')
}
})
67 changes: 30 additions & 37 deletions tests/testthat/test-error-handling.R
Original file line number Diff line number Diff line change
@@ -1,16 +1,13 @@
context("error handling test")
test_that("Remove error handling with combine test", {
testthat::skip("Live test")
testthat::skip_on_travis()
credentialsFileName <- "credentials.json"
clusterFileName <- "cluster.json"

doAzureParallel::generateCredentialsConfig(credentialsFileName)
doAzureParallel::generateClusterConfig(clusterFileName)
source("utility.R")
settings <- getSettings()

# set your credentials
doAzureParallel::setCredentials(credentialsFileName)
cluster <- doAzureParallel::makeCluster(clusterFileName)
doAzureParallel::setCredentials(settings$credentials)

cluster <- doAzureParallel::makeCluster(settings$clusterConfig)
doAzureParallel::registerDoAzureParallel(cluster)

'%dopar%' <- foreach::'%dopar%'
Expand All @@ -23,52 +20,49 @@ test_that("Remove error handling with combine test", {
sqrt(i)
}

res
res <- unname(res)

testthat::expect_equal(length(res), 2)
testthat::expect_equal(length(res), 3)
testthat::expect_equal(res, c(sqrt(1), sqrt(2), sqrt(5)))
})

test_that("Remove error handling test", {
testthat::skip("Live test")
testthat::skip_on_travis()
credentialsFileName <- "credentials.json"
clusterFileName <- "cluster.json"

doAzureParallel::generateCredentialsConfig(credentialsFileName)
doAzureParallel::generateClusterConfig(clusterFileName)
source("utility.R")
settings <- getSettings()

# set your credentials
doAzureParallel::setCredentials(credentialsFileName)
cluster <- doAzureParallel::makeCluster(clusterFileName)
doAzureParallel::setCredentials(settings$credentials)

settings$clusterConfig$poolId <- "error-handling-test"
cluster <- doAzureParallel::makeCluster(settings$clusterConfig)
doAzureParallel::registerDoAzureParallel(cluster)

'%dopar%' <- foreach::'%dopar%'
res <-
foreach::foreach(i = 1:4, .errorhandling = "remove") %dopar% {
foreach::foreach(i = 1:5, .errorhandling = "remove") %dopar% {
if (i == 3 || i == 4) {
randomObject
}

i
}

res
res <- unname(res)

testthat::expect_equal(length(res), 2)
testthat::expect_equal(res, list(1, 2, 5))
})

test_that("Pass error handling test", {
testthat::skip("Live test")
testthat::skip_on_travis()
credentialsFileName <- "credentials.json"
clusterFileName <- "cluster.json"

doAzureParallel::generateCredentialsConfig(credentialsFileName)
doAzureParallel::generateClusterConfig(clusterFileName)
source("utility.R")
settings <- getSettings()

# set your credentials
doAzureParallel::setCredentials(credentialsFileName)
cluster <- doAzureParallel::makeCluster(clusterFileName)
doAzureParallel::setCredentials(settings$credentials)

settings$clusterConfig$poolId <- "error-handling-test"
cluster <- doAzureParallel::makeCluster(settings$clusterConfig)
doAzureParallel::registerDoAzureParallel(cluster)

'%dopar%' <- foreach::'%dopar%'
Expand All @@ -88,17 +82,16 @@ test_that("Pass error handling test", {
})

test_that("Stop error handling test", {
testthat::skip("Live test")
testthat::skip("Manual Test")
testthat::skip_on_travis()
credentialsFileName <- "credentials.json"
clusterFileName <- "cluster.json"

doAzureParallel::generateCredentialsConfig(credentialsFileName)
doAzureParallel::generateClusterConfig(clusterFileName)
source("utility.R")
settings <- getSettings()

# set your credentials
doAzureParallel::setCredentials(credentialsFileName)
cluster <- doAzureParallel::makeCluster(clusterFileName)
doAzureParallel::setCredentials(settings$credentials)

settings$clusterConfig$poolId <- "error-handling-test"
cluster <- doAzureParallel::makeCluster(settings$clusterConfig)
doAzureParallel::registerDoAzureParallel(cluster)

'%dopar%' <- foreach::'%dopar%'
Expand Down
41 changes: 41 additions & 0 deletions tests/testthat/test-foreach-options.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
context("foreach options test")
test_that("chunksize", {
testthat::skip_on_travis()
source("utility.R")
settings <- getSettings()

# set your credentials
doAzureParallel::setCredentials(settings$credentials)

cluster <- doAzureParallel::makeCluster(settings$clusterConfig)
doAzureParallel::registerDoAzureParallel(cluster)

'%dopar%' <- foreach::'%dopar%'
res <-
foreach::foreach(i = 1:10,
.options.azure = list(chunkSize = 3)) %dopar% {
i
}

testthat::expect_equal(length(res),
10)

for (index in 1:10) {
testthat::expect_equal(res[[index]],
index)
}

res <-
foreach::foreach(i = 1:2,
.options.azure = list(chunkSize = 2)) %dopar% {
i
}

testthat::expect_equal(length(res),
2)

for (index in 1:2) {
testthat::expect_equal(res[[index]],
index)
}
})
51 changes: 10 additions & 41 deletions tests/testthat/test-live.R
Original file line number Diff line number Diff line change
@@ -1,18 +1,16 @@
context("Integration Test")

# Run this test for users to make sure the core features
# of doAzureParallel are still working
context("live scenario test")
test_that("Basic scenario test", {
testthat::skip("Live test")
test_that("simple foreach 1 to 4", {
testthat::skip_on_travis()
credentialsFileName <- "credentials.json"
clusterFileName <- "cluster.json"

doAzureParallel::generateCredentialsConfig(credentialsFileName)
doAzureParallel::generateClusterConfig(clusterFileName)
source("utility.R")
settings <- getSettings()

# set your credentials
doAzureParallel::setCredentials(credentialsFileName)
cluster <- doAzureParallel::makeCluster(clusterFileName)
doAzureParallel::setCredentials(settings$credentials)

cluster <- doAzureParallel::makeCluster(settings$clusterConfig)
doAzureParallel::registerDoAzureParallel(cluster)

'%dopar%' <- foreach::'%dopar%'
Expand All @@ -21,37 +19,8 @@ test_that("Basic scenario test", {
i
}

res
res <- unname(res)

testthat::expect_equal(length(res), 4)
testthat::expect_equal(res, list(2, 2, 2, 2))
})

test_that("Chunksize Test", {
testthat::skip("Live test")
testthat::skip_on_travis()
credentialsFileName <- "credentials.json"
clusterFileName <- "cluster.json"

doAzureParallel::generateCredentialsConfig(credentialsFileName)
doAzureParallel::generateClusterConfig(clusterFileName)

doAzureParallel::setCredentials(credentialsFileName)
cluster <- doAzureParallel::makeCluster(clusterFileName)
doAzureParallel::registerDoAzureParallel(cluster)

'%dopar%' <- foreach::'%dopar%'
res <-
foreach::foreach(i = 1:10,
.options.azure = list(chunkSize = 3)) %dopar% {
i
}

testthat::expect_equal(length(res),
10)

for (i in 1:10) {
testthat::expect_equal(res[[i]],
i)
}
testthat::expect_equal(res, list(1, 2, 3, 4))
})
16 changes: 7 additions & 9 deletions tests/testthat/test-local-merge.R
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,16 @@
# of doAzureParallel are still working
context("merge job result locally test")
test_that("merge job result locally test", {
testthat::skip("merge job result locally test")
testthat::skip_on_travis()
credentialsFileName <- "credentials.json"
clusterFileName <- "cluster.json"
testthat::skip("Skipping merge job locally")
source("utility.R")
settings <- gettingSettings()
settings <- getSettings()

doAzureParallel::generateCredentialsConfig(credentialsFileName)
doAzureParallel::generateClusterConfig(clusterFileName)
# set your credentials
doAzureParallel::setCredentials(settings$credentials)

doAzureParallel::setCredentials(credentialsFileName)
cluster <- doAzureParallel::makeCluster(clusterFileName)
cluster <- doAzureParallel::makeCluster(settings$clusterConfig)
doAzureParallel::registerDoAzureParallel(cluster)

setChunkSize(2)
Expand All @@ -37,6 +37,4 @@ test_that("merge job result locally test", {
testthat::expect_equal(res[[i]],
i)
}

stopCluster(cluster)
})
1 change: 0 additions & 1 deletion tests/testthat/test-long-running-job.R
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@ test_that("Long Running Job Test", {

# get job result
jobResult <- doAzureParallel::getJobResult(jobId)
doAzureParallel::stopCluster(cluster)

# verify the job result is correct
testthat::expect_equal(length(jobResult),
Expand Down
2 changes: 0 additions & 2 deletions tests/testthat/test-package-installation-bioc.R
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,4 @@ test_that("pool multiple bioconductor package install Test", {
list(
c(TRUE, TRUE, TRUE),
c(TRUE, TRUE, TRUE)))

doAzureParallel::stopCluster(cluster)
})
2 changes: 0 additions & 2 deletions tests/testthat/test-package-installation-github.R
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,4 @@ test_that("pool multiple github package install Test", {
list(c(TRUE, TRUE, TRUE),
c(TRUE, TRUE, TRUE),
c(TRUE, TRUE, TRUE)))

doAzureParallel::stopCluster(cluster)
})
2 changes: 1 addition & 1 deletion tests/testthat/test-package-installation.R
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
context("package installation")
context("Package Command Line Tests")
test_that("successfully create cran job package command line", {
jobInstallation <-
getJobPackageInstallationCommand("cran", c("hts", "lubridate", "tidyr", "dplyr"))
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
context("Unit Tests")
if (requireNamespace("nycflights13", quietly = TRUE)) {
context("hasDataSet function")

test_that("Arguments contains data set", {
test_that("hasDataSet Test - Contains Data", {
byCarrierList <- split(nycflights13::flights, nycflights13::flights$carrier)
it <- iterators::iter(byCarrierList)
argsList <- as.list(it)
Expand All @@ -11,7 +10,7 @@ if (requireNamespace("nycflights13", quietly = TRUE)) {
expect_equal(hasDataSet, TRUE)
})

test_that("Arguments does not contain data set", {
test_that("hasDataSet Test - Contains no Data Set", {
args <- seq(1:10)
it <- iterators::iter(args)
argsList <- as.list(it)
Expand All @@ -20,5 +19,4 @@ if (requireNamespace("nycflights13", quietly = TRUE)) {

expect_equal(hasDataSet, FALSE)
})

}
Loading

0 comments on commit 4983fb1

Please sign in to comment.