1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
|
#!/usr/bin/env r
# -*- mode: R; tab-width: 4; -*-
#
# Copyright (C) 2012 - 2014 Dirk Eddelbuettel and Romain Francois
#
# This file is part of Rcpp.
#
# Rcpp is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# Rcpp is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Rcpp. If not, see <http://www.gnu.org/licenses/>.
.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
if (.runThisTest) {
.setUp <- Rcpp:::unitTestSetup("String.cpp")
test.replace_all <- function(){
checkEquals( String_replace_all("abcdbacdab", "ab", "AB"), "ABcdbacdAB")
}
test.replace_first <- function(){
checkEquals( String_replace_first("abcdbacdab", "ab", "AB"), "ABcdbacdab")
}
test.replace_last <- function(){
checkEquals( String_replace_last("abcdbacdab", "ab", "AB"), "abcdbacdAB")
}
test.String.sapply <- function(){
res <- test_sapply_string( "foobar", c("o", "a" ), c("*", "!" ) )
checkEquals( res, "f**b!r" )
}
test.compare.Strings <- function(){
res <- test_compare_Strings( "aaa", "aab" )
target <- list(
"a < b" = TRUE,
"a > b" = FALSE,
"a == b" = FALSE,
"a == a" = TRUE
)
checkEquals( res, target )
}
test.compare.String.string_proxy <- function(){
v <- c("aab")
res <- test_compare_String_string_proxy( "aaa", v )
target <- list(
"a == b" = FALSE,
"a != b" = TRUE,
"b == a" = FALSE,
"b != a" = TRUE
)
checkEquals( res, target )
}
test.compare.String.const_string_proxy <- function(){
v <- c("aab")
res <- test_compare_String_const_string_proxy( "aaa", v )
target <- list(
"a == b" = FALSE,
"a != b" = TRUE,
"b == a" = FALSE,
"b != a" = TRUE
)
checkEquals( res, target )
}
test.String.ctor <- function() {
res <- test_ctor("abc")
checkIdentical(res, "abc")
}
test.push.front <- function() {
res <- test_push_front("def")
checkIdentical(res, "abcdef")
}
test.String.encoding <- function() {
a <- b <- "å"
Encoding(a) <- "unknown"
Encoding(b) <- "UTF-8"
checkEquals(test_String_encoding(a), 0)
checkEquals(test_String_encoding(b), 1)
checkEquals(Encoding(test_String_set_encoding(a)), "UTF-8")
checkEquals(Encoding(test_String_ctor_encoding(a)), "UTF-8")
checkEquals(Encoding(test_String_ctor_encoding2()), "UTF-8")
}
test.String.embeddedNul <- function() {
checkException(test_String_embeddedNul())
}
}
|