File: runit.String.R

package info (click to toggle)
rcpp 1.0.0-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 12,344 kB
  • sloc: ansic: 43,817; cpp: 39,947; sh: 51; makefile: 2
file content (101 lines) | stat: -rw-r--r-- 3,178 bytes parent folder | download
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())
    }

}