GlueGen v2.6.0-rc-20250712
GlueGen, Native Binding Generator for Java™ (public API).
TestStringUtil.java
Go to the documentation of this file.
1/**
2 * Copyright 2012 JogAmp Community. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without modification, are
5 * permitted provided that the following conditions are met:
6 *
7 * 1. Redistributions of source code must retain the above copyright notice, this list of
8 * conditions and the following disclaimer.
9 *
10 * 2. Redistributions in binary form must reproduce the above copyright notice, this list
11 * of conditions and the following disclaimer in the documentation and/or other materials
12 * provided with the distribution.
13 *
14 * THIS SOFTWARE IS PROVIDED BY JogAmp Community ``AS IS'' AND ANY EXPRESS OR IMPLIED
15 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
16 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JogAmp Community OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
19 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
20 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
21 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
22 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23 *
24 * The views and conclusions contained in the software and documentation are those of the
25 * authors and should not be interpreted as representing official policies, either expressed
26 * or implied, of JogAmp Community.
27 */
28
29package com.jogamp.common.util;
30
31import org.junit.Assert;
32
33import org.junit.Test;
34
35import static com.jogamp.common.util.ValueConv.*;
36
37/**
38 * Testing ValueConv's value conversion of primitive types
39 */
40import org.junit.FixMethodOrder;
41import org.junit.runners.MethodSorters;
42
43@FixMethodOrder(MethodSorters.NAME_ASCENDING)
44public class TestStringUtil {
45
46 @Test
47 public void test01IndexOf() {
48 Assert.assertEquals(-1, StringUtil.indexOf(null, '\n', 0));
49 Assert.assertEquals(-1, StringUtil.indexOf("", '\n', 0));
50 Assert.assertEquals(-1, StringUtil.indexOf("Hello", '\n', 0));
51 Assert.assertEquals( 5, StringUtil.indexOf("Hello\nJogAmp\n", '\n', 0));
52 Assert.assertEquals(12, StringUtil.indexOf("Hello\nJogAmp\n", '\n', 6));
53
54 Assert.assertEquals(-1, StringUtil.indexOf((CharSequence)null, '\n', 0));
55 Assert.assertEquals(-1, StringUtil.indexOf((CharSequence)"", '\n', 0));
56 Assert.assertEquals(-1, StringUtil.indexOf((CharSequence)"Hello", '\n', 0));
57 Assert.assertEquals( 5, StringUtil.indexOf((CharSequence)"Hello\nJogAmp\n", '\n', 0));
58 Assert.assertEquals(12, StringUtil.indexOf((CharSequence)"Hello\nJogAmp\n", '\n', 6));
59 }
60
61 @Test
62 public void test02LineCount() {
63 Assert.assertEquals(0, StringUtil.getLineCount(null));
64 Assert.assertEquals(0, StringUtil.getLineCount(""));
65 Assert.assertEquals(1, StringUtil.getLineCount("Hello"));
66 Assert.assertEquals(2, StringUtil.getLineCount("Hello\nJogAmp"));
67 Assert.assertEquals(2, StringUtil.getLineCount("Hello\nJogAmp\n"));
68 Assert.assertEquals(3, StringUtil.getLineCount("Hello\nJogAmp\nYeah."));
69 }
70
71 @Test
72 public void test03Trim() {
73 {
74 Assert.assertEquals("", StringUtil.trim(null, null, null));
75 Assert.assertEquals("", StringUtil.trim("", null, null));
76 Assert.assertEquals("Hello", StringUtil.trim("Hello", null, null));
77 Assert.assertEquals("Hello JogAmp", StringUtil.trim("Hello JogAmp", null, null));
78 Assert.assertEquals("Hello JogAmp", StringUtil.trim(" Hello JogAmp ", null, null));
79 Assert.assertEquals("Hello JogAmp", StringUtil.trim("Hello JogAmp", null, null));
80 Assert.assertEquals("Hello JogAmp", StringUtil.trim(" Hello JogAmp ", null, null));
81
82 final String seperators = " \t\n\r";
83 Assert.assertEquals("", StringUtil.trim(null, seperators, null));
84 Assert.assertEquals("", StringUtil.trim("", seperators, null));
85 Assert.assertEquals("Hello", StringUtil.trim("Hello", seperators, null));
86 Assert.assertEquals("Hello JogAmp", StringUtil.trim("Hello JogAmp", seperators, null));
87 Assert.assertEquals("Hello JogAmp", StringUtil.trim(" Hello JogAmp ", seperators, null));
88 Assert.assertEquals("Hello JogAmp", StringUtil.trim("Hello JogAmp", seperators, null));
89 Assert.assertEquals("Hello JogAmp", StringUtil.trim(" Hello JogAmp ", seperators, null));
90
91 Assert.assertEquals("Hello JogAmp", StringUtil.trim("\tHello JogAmp\n", seperators, null));
92 Assert.assertEquals("Hello\tJogAmp", StringUtil.trim("Hello\t\tJogAmp", seperators, null));
93 Assert.assertEquals("Hello JogAmp", StringUtil.trim("Hello \tJogAmp", seperators, null));
94 Assert.assertEquals("Hello\nJogAmp", StringUtil.trim("\t Hello\n\tJogAmp \n", seperators, null));
95 }
96 {
97 final String replacement = "Z";
98 Assert.assertEquals("", StringUtil.trim(null, null, replacement));
99 Assert.assertEquals("", StringUtil.trim("", null, replacement));
100 Assert.assertEquals("Hello", StringUtil.trim("Hello", null, replacement));
101 Assert.assertEquals("HelloZJogAmp", StringUtil.trim("Hello JogAmp", null, replacement));
102 Assert.assertEquals("HelloZJogAmp", StringUtil.trim(" Hello JogAmp ", null, replacement));
103 Assert.assertEquals("HelloZJogAmp", StringUtil.trim("Hello JogAmp", null, replacement));
104 Assert.assertEquals("HelloZJogAmp", StringUtil.trim(" Hello JogAmp ", null, replacement));
105
106 final String IDIOSPC = String.valueOf(Character.toChars(0x3000));
107 final String seperators = StringUtil.WHITESPACE;
108 Assert.assertEquals("", StringUtil.trim(null, seperators, replacement));
109 Assert.assertEquals("", StringUtil.trim("", seperators, replacement));
110 Assert.assertEquals("Hello", StringUtil.trim("Hello", seperators, replacement));
111 Assert.assertEquals("HelloZJogAmp", StringUtil.trim("Hello JogAmp", seperators, replacement));
112 Assert.assertEquals("HelloZJogAmp", StringUtil.trim(" Hello"+IDIOSPC+"JogAmp ", seperators, replacement));
113 Assert.assertEquals("HelloZJogAmp", StringUtil.trim("Hello JogAmp", seperators, replacement));
114 Assert.assertEquals("HelloZJogAmp", StringUtil.trim(" Hello JogAmp ", seperators, replacement));
115
116 Assert.assertEquals("HelloZJogAmp", StringUtil.trim("\tHello JogAmp\n", seperators, replacement));
117 Assert.assertEquals("HelloZJogAmp", StringUtil.trim("Hello\t\tJogAmp", seperators, replacement));
118 Assert.assertEquals("HelloZJogAmp", StringUtil.trim("Hello \tJogAmp", seperators, replacement));
119 Assert.assertEquals("HelloZJogAmp", StringUtil.trim("\t Hello\n\tJogAmp \n", seperators, replacement));
120 }
121 }
122
123 @Test
124 public void test04Split() {
125 {
126 /**
127 * I like to ride my bicycle
128 * I like to ride
129 * my bicycle
130 *
131 * I like to ride my bicycle if its without any batteries
132 * I like to ride my
133 * bicycle if its without
134 * any batteries
135 */
136 final String orig = "I like to ride my bicycle if its without any batteries";
137 Assert.assertEquals(orig, StringUtil.split(orig, 1, null, "ZZ"));
138 Assert.assertEquals("I like to ride my bicycleZZif its without any batteries", StringUtil.split(orig, 2, null, "ZZ"));
139 Assert.assertEquals("I like to ride myZZbicycle if its withoutZZany batteries", StringUtil.split(orig, 3, null, "ZZ"));
140 Assert.assertEquals("I like to ride myZZbicycle if its withoutZZany batteries", StringUtil.split(orig, 3, null, "ZZ"));
141 }
142 {
143 /**
144 * I like to ride my bicycle
145 * I like to ride
146 * my bicycle
147 *
148 * I like to ride my bicycle if its without any batteries
149 * I like to ride my
150 * bicycle if its without
151 * any batteries
152 */
153 final String IDIOSPC = String.valueOf(Character.toChars(0x3000));
154 final String orig = "I like to ride my"+IDIOSPC+"bicycle\tif its without"+IDIOSPC+"any batteries";
155 Assert.assertEquals(orig, StringUtil.split(orig, 1, null, "ZZ"));
156 Assert.assertEquals("I like to ride my"+IDIOSPC+"bicycleZZif its without"+IDIOSPC+"any batteries", StringUtil.split(orig, 2, StringUtil.WHITESPACE, "ZZ"));
157 Assert.assertEquals("I like to ride myZZbicycle\tif its withoutZZany batteries", StringUtil.split(orig, 3, StringUtil.WHITESPACE, "ZZ"));
158 Assert.assertEquals("I like to ride myZZbicycle\tif its withoutZZany batteries", StringUtil.split(orig, 3, StringUtil.WHITESPACE, "ZZ"));
159 }
160 {
161 final String orig = "您好,我来自英国政府,给您带来了一个好消息。";
162 Assert.assertTrue(StringUtil.isFullwidth(orig.codePointAt(2)));
163 Assert.assertTrue(StringUtil.hasSpace(orig.codePointAt(2)));
164
165 Assert.assertEquals(orig, StringUtil.split(orig, 1, null, "ZZ"));
166 Assert.assertEquals("您好,我来自英国政府,给您带来了一个好消息。", StringUtil.split(orig, 2, null, "ZZ"));
167 Assert.assertEquals("您好,我来自英国政府ZZ给您带来了一个好消息。", StringUtil.split(orig, 2, "\t ,", "ZZ")); // included fullwidth char
168 final String orig2 = orig.replace(",", ", ");
169 Assert.assertEquals("您好, 我来自英国政府,ZZ给您带来了一个好消息。", StringUtil.split(orig2, 2, null, "ZZ"));
170 }
171 }
172
173 public static void main(final String args[]) {
174 org.junit.runner.JUnitCore.main(TestStringUtil.class.getName());
175 }
176
177}
Basic utility functions for String and CharSequence in general.
Definition: StringUtil.java:34
static boolean hasSpace(final int cp)
Returns true if given codepoint is either isFullwidth(int), isHalfwidth(int) or isWhitespace(int).
Definition: StringUtil.java:97
static List< String > split(final String text, final int lineCount, final String separators)
Returns an array of split text at separators or whitespace.
static int getLineCount(final CharSequence s)
Returns number of lines, i.e.
static final String WHITESPACE
List of ASCII & Unicode space separator, aka Whitespace.
Definition: StringUtil.java:50
static String trim(final String text, final String separators, final String replacement)
Remove all leading, trailing and duplicate-within separators unicode character from the text.
static boolean isFullwidth(final int cp)
Returns true if given codepoint is a fullwidth unicode character.
Definition: StringUtil.java:85
static int indexOf(final String hay, final int needle, final int start)
Calls String#indexOf(int, int).
static void main(final String args[])