From 4ca210ae9341ca33b96152a754a0e1a4ebf16670 Mon Sep 17 00:00:00 2001 From: SymbolixAU Date: Sat, 29 Sep 2018 10:25:46 +1000 Subject: [PATCH] fix for #24 --- DESCRIPTION | 4 ++-- src/ColourValues.cpp | 14 +++++++++----- tests/testthat/test-colour_values.R | 27 +++++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 7 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 2f62552..d448e9d 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,8 +1,8 @@ Package: colourvalues Type: Package Title: Assigns Colours to Values -Version: 0.1.0 -Date: 2018-09-20 +Version: 0.1.1 +Date: 2018-09-29 Authors@R: c( person("David", "Cooley", ,"dcooley@symbolix.com.au", role = c("aut", "cre")) ) diff --git a/src/ColourValues.cpp b/src/ColourValues.cpp index fbca7ac..1ffda4d 100644 --- a/src/ColourValues.cpp +++ b/src/ColourValues.cpp @@ -15,7 +15,8 @@ Rcpp::StringVector rcpp_colour_num_value_string_palette_hex( std::string na_colour, Rcpp::NumericVector alpha, bool include_alpha ) { - return colourvalues::colours_hex::colour_value_hex( x, palette, na_colour, alpha, include_alpha ); + Rcpp::NumericVector x2 = Rcpp::clone(x); + return colourvalues::colours_hex::colour_value_hex( x2, palette, na_colour, alpha, include_alpha ); } // [[Rcpp::export]] @@ -24,7 +25,8 @@ Rcpp::StringVector rcpp_colour_num_value_rgb_palette_hex( Rcpp::NumericMatrix palette, std::string na_colour, bool include_alpha ) { - return colourvalues::colours_hex::colour_value_hex( x, palette, na_colour, include_alpha ); + Rcpp::NumericVector x2 = Rcpp::clone(x); + return colourvalues::colours_hex::colour_value_hex( x2, palette, na_colour, include_alpha ); } // [[Rcpp::export]] @@ -34,7 +36,7 @@ Rcpp::StringVector rcpp_colour_str_value_string_palette_hex( std::string na_colour, Rcpp::NumericVector alpha, bool include_alpha ) { - return colourvalues::colours_hex::colour_value_hex( x, palette, na_colour, alpha, include_alpha ); + return colourvalues::colours_hex::colour_value_hex( x, palette, na_colour, alpha, include_alpha ); } // [[Rcpp::export]] @@ -58,7 +60,8 @@ Rcpp::NumericMatrix rcpp_colour_num_value_string_palette_rgb( std::string na_colour, Rcpp::NumericVector alpha, bool include_alpha ) { - return colourvalues::colours_rgb::colour_value_rgb( x, palette, na_colour, alpha, include_alpha ); + Rcpp::NumericVector x2 = Rcpp::clone(x); + return colourvalues::colours_rgb::colour_value_rgb( x2, palette, na_colour, alpha, include_alpha ); } // [[Rcpp::export]] @@ -67,7 +70,8 @@ Rcpp::NumericMatrix rcpp_colour_num_value_rgb_palette_rgb( Rcpp::NumericMatrix palette, std::string na_colour, bool include_alpha ) { - return colourvalues::colours_rgb::colour_value_rgb( x, palette, na_colour, include_alpha ); + Rcpp::NumericVector x2 = Rcpp::clone(x); + return colourvalues::colours_rgb::colour_value_rgb( x2, palette, na_colour, include_alpha ); } // [[Rcpp::export]] diff --git a/tests/testthat/test-colour_values.R b/tests/testthat/test-colour_values.R index da44b8a..59320ed 100644 --- a/tests/testthat/test-colour_values.R +++ b/tests/testthat/test-colour_values.R @@ -214,3 +214,30 @@ test_that("alpha can be excluded from results", { }) +test_that("original vectors returned",{ + ## https://github.com/SymbolixAU/colourvalues/issues/24 + x <- 1L:10L + y <- 1L:10L + invisible( colour_values(x) ) + expect_true( all(x == y) ) + invisible( colour_values_rgb(x)) + expect_true( all(x == y)) + + set.seed(1) + x <- as.numeric( sample.int(100, 10)) + set.seed(1) + y <- as.numeric( sample.int(100, 10)) + expect_true( all( x == y )) + invisible( colour_values(x) ) + expect_true( all( x == y )) + + + set.seed(1) + x <- as.numeric( sample.int(100, 10)) + set.seed(1) + y <- as.numeric( sample.int(100, 10)) + expect_true( all( x == y )) + invisible( colour_values_rgb(x) ) + expect_true( all( x == y )) + +})