[ARVADOS] updated: 1.1.2-116-gdefe89e

Git user git at public.curoverse.com
Fri Jan 12 10:27:00 EST 2018


Summary of changes:
 sdk/R/R/CollectionTree.R                           |  6 ++--
 sdk/R/R/util.R                                     | 15 ++++++++
 .../R/tests/testthat/test-Subcollection.R          |  0
 sdk/R/tests/testthat/test-util.R                   | 41 ++++++++++++++++++++++
 4 files changed, 59 insertions(+), 3 deletions(-)
 create mode 100644 sdk/R/R/util.R
 copy tools/crunchstat-summary/tests/__init__.py => sdk/R/tests/testthat/test-Subcollection.R (100%)
 create mode 100644 sdk/R/tests/testthat/test-util.R

       via  defe89ef5c3e8995b275120f060cf85296f6396b (commit)
      from  b5c2d27b55ff8490818548bc077975fbf37b3a1f (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit defe89ef5c3e8995b275120f060cf85296f6396b
Author: Fuad Muhic <fmuhic at capeannenterprises.com>
Date:   Fri Jan 12 16:25:51 2018 +0100

    Added two utility functions and created unit test for them.
    
    Arvados-DCO-1.1-Signed-off-by: Fuad Muhic <fmuhic at capeannenterprises.com>

diff --git a/sdk/R/R/CollectionTree.R b/sdk/R/R/CollectionTree.R
index b95b797..40cedef 100644
--- a/sdk/R/R/CollectionTree.R
+++ b/sdk/R/R/CollectionTree.R
@@ -1,6 +1,6 @@
 source("./R/Subcollection.R")
-
 source("./R/ArvadosFile.R")
+source("./R/util.R")
 
 #' Arvados Collection Object
 #'
@@ -37,8 +37,8 @@ CollectionTree <- R6::R6Class(
 
         getElement = function(relativePath)
         {
-            if(startsWith(relativePath, "./"))
-                relativePath <- substr(relativePath, 3, nchar(relativePath))
+            relativePath <- trimFromStart(relativePath, "./")
+            relativePath <- trimFromEnd(relativePath, "/")
 
             if(endsWith(relativePath, "/"))
                 relativePath <- substr(relativePath, 0, nchar(relativePath) - 1)
diff --git a/sdk/R/R/util.R b/sdk/R/R/util.R
new file mode 100644
index 0000000..8d4bcc0
--- /dev/null
+++ b/sdk/R/R/util.R
@@ -0,0 +1,15 @@
+trimFromStart <- function(sample, trimCharacters)
+{
+    if(startsWith(sample, trimCharacters))
+        sample <- substr(sample, nchar(trimCharacters) + 1, nchar(sample))
+
+    sample
+}
+
+trimFromEnd <- function(sample, trimCharacters)
+{
+    if(endsWith(sample, trimCharacters))
+        sample <- substr(sample, 0, nchar(sample) - nchar(trimCharacters))
+
+    sample
+}
diff --git a/sdk/R/tests/testthat/test-Subcollection.R b/sdk/R/tests/testthat/test-Subcollection.R
new file mode 100644
index 0000000..e69de29
diff --git a/sdk/R/tests/testthat/test-util.R b/sdk/R/tests/testthat/test-util.R
new file mode 100644
index 0000000..a897860
--- /dev/null
+++ b/sdk/R/tests/testthat/test-util.R
@@ -0,0 +1,41 @@
+context("Utility function")
+
+test_that("trimFromStart trims string correctly if string starts with trimCharacters", {
+
+    sample <- "./something/random"
+    trimCharacters <- "./something/"
+
+    result <- trimFromStart(sample, trimCharacters)
+
+    expect_that(result, equals("random"))
+}) 
+
+test_that("trimFromStart returns original string if string doesn't starts with trimCharacters", {
+
+    sample <- "./something/random"
+    trimCharacters <- "./nothing/"
+
+    result <- trimFromStart(sample, trimCharacters)
+
+    expect_that(result, equals("./something/random"))
+}) 
+
+test_that("trimFromEnd trims string correctly if string ends with trimCharacters", {
+
+    sample <- "./something/random"
+    trimCharacters <- "/random"
+
+    result <- trimFromEnd(sample, trimCharacters)
+
+    expect_that(result, equals("./something"))
+}) 
+
+test_that("trimFromEnd returns original string if string doesn't end with trimCharacters", {
+
+    sample <- "./something/random"
+    trimCharacters <- "specific"
+
+    result <- trimFromStart(sample, trimCharacters)
+
+    expect_that(result, equals("./something/random"))
+}) 

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list