| /******************************************************************************* |
| * Copyright (c) 2005, 2015 Oracle. All rights reserved. |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Public License 2.0, which accompanies this distribution |
| * and is available at https://www.eclipse.org/legal/epl-2.0/. |
| * |
| * Contributors: |
| * Oracle - initial API and implementation |
| ******************************************************************************/ |
| package org.eclipse.jpt.common.utility.tests.internal; |
| |
| import java.nio.charset.Charset; |
| import org.eclipse.jpt.common.utility.internal.ArrayTools; |
| import org.eclipse.jpt.common.utility.internal.CharArrayTools; |
| import org.eclipse.jpt.common.utility.internal.StringTools; |
| import org.eclipse.jpt.common.utility.internal.iterable.IterableTools; |
| import org.eclipse.jpt.common.utility.predicate.Predicate; |
| import org.eclipse.jpt.common.utility.transformer.Transformer; |
| import org.junit.Assert; |
| |
| @SuppressWarnings("nls") |
| public class CharArrayToolsTests |
| extends AbstractStringToolsTests |
| { |
| public CharArrayToolsTests(String name) { |
| super(name); |
| } |
| |
| @Override |
| protected String CR() { |
| return String.valueOf(CharArrayTools.CR); |
| } |
| |
| @Override |
| protected void verifyReverse(String expected, String string) { |
| TestTools.assertEquals(expected, CharArrayTools.reverse(string.toCharArray())); |
| } |
| |
| @Override |
| protected void verifyLast(char expected, String string) { |
| assertEquals(expected, CharArrayTools.last(string.toCharArray())); |
| } |
| |
| @Override |
| protected void verifyConcatenate(String expected, String[] array) { |
| TestTools.assertEquals(expected, CharArrayTools.concatenate(this.convert(array))); |
| Iterable<char[]> iterable = IterableTools.transform(IterableTools.iterable(array), StringTools.CHAR_ARRAY_TRANSFORMER); |
| TestTools.assertEquals(expected, CharArrayTools.concatenate(iterable)); |
| TestTools.assertEquals(expected, CharArrayTools.concatenate(iterable.iterator())); |
| } |
| |
| private char[][] convert(String[] stringArray) { |
| char[][] array = new char[stringArray.length][]; |
| for (int i = 0; i < array.length; i++) { |
| array[i] = stringArray[i].toCharArray(); |
| } |
| return array; |
| } |
| |
| @Override |
| protected void verifyConcatenate(String expected, String[] array, String delim) { |
| TestTools.assertEquals(expected, CharArrayTools.concatenate(this.convert(array), delim.toCharArray())); |
| Iterable<char[]> iterable = IterableTools.transform(IterableTools.iterable(array), StringTools.CHAR_ARRAY_TRANSFORMER); |
| TestTools.assertEquals(expected, CharArrayTools.concatenate(iterable, delim.toCharArray())); |
| TestTools.assertEquals(expected, CharArrayTools.concatenate(iterable.iterator(), delim.toCharArray())); |
| } |
| |
| @Override |
| protected void verifyCenter(String expected, String string, int len) { |
| TestTools.assertEquals(expected, CharArrayTools.center(string.toCharArray(), len)); |
| } |
| |
| @Override |
| protected void verifyPad(String expected, String string, int len) { |
| TestTools.assertEquals(expected, CharArrayTools.pad(string.toCharArray(), len)); |
| } |
| |
| @Override |
| protected void verifyFit(String expected, String string, int len) { |
| TestTools.assertEquals(expected, CharArrayTools.fit(string.toCharArray(), len)); |
| } |
| |
| @Override |
| protected void verifyZeroPad(String expected, String string, int len) { |
| TestTools.assertEquals(expected, CharArrayTools.zeroPad(string.toCharArray(), len)); |
| } |
| |
| @Override |
| protected void verifyZeroFit(String expected, String string, int len) { |
| TestTools.assertEquals(expected, CharArrayTools.zeroFit(string.toCharArray(), len)); |
| } |
| |
| @Override |
| protected void verifyRepeat(String expected, String string, int length) { |
| TestTools.assertEquals(expected, CharArrayTools.repeat(string.toCharArray(), length)); |
| } |
| |
| @Override |
| protected void verifySeparate(String expected, String string, char separator, int segmentLength) { |
| TestTools.assertEquals(expected, CharArrayTools.separate(string.toCharArray(), separator, segmentLength)); |
| } |
| |
| @Override |
| protected void verifyQuote(String expected, String string) { |
| TestTools.assertEquals(expected, CharArrayTools.quote(string.toCharArray())); |
| } |
| |
| @Override |
| protected void verifyCharDelimiter(String expected, String string, char delimiter) { |
| Transformer<char[], char[]> transformer = this.buildCharDelimiter(delimiter); |
| TestTools.assertEquals(expected, transformer.transform(string.toCharArray())); |
| } |
| |
| @Override |
| protected Transformer<char[], char[]> buildCharDelimiter(char delimiter) { |
| return new CharArrayTools.CharDelimiter(delimiter); |
| } |
| |
| @Override |
| protected void verifyDelimit(String expected, String string, String delimiter) { |
| TestTools.assertEquals(expected, CharArrayTools.delimit(string.toCharArray(), delimiter.toCharArray())); |
| } |
| |
| @Override |
| protected void verifyStringDelimiter(String expected, String string, String delimiter) { |
| Transformer<char[], char[]> transformer = this.buildStringDelimiter(delimiter); |
| TestTools.assertEquals(expected, transformer.transform(string.toCharArray())); |
| } |
| |
| @Override |
| protected Transformer<char[], char[]> buildStringDelimiter(String delimiter) { |
| return new CharArrayTools.CharArrayDelimiter(delimiter.toCharArray()); |
| } |
| |
| @Override |
| protected void verifyRemoveFirstOccurrence(String expected, String string, char charToRemove) { |
| TestTools.assertEquals(expected, CharArrayTools.removeFirstOccurrence(string.toCharArray(), charToRemove)); |
| } |
| |
| @Override |
| protected void verifyRemoveAllOccurrences(String expected, String string, char charToRemove) { |
| TestTools.assertEquals(expected, CharArrayTools.removeAllOccurrences(string.toCharArray(), charToRemove)); |
| } |
| |
| @Override |
| protected void verifyRemoveAllSpaces(String expected, String string) { |
| TestTools.assertEquals(expected, CharArrayTools.removeAllSpaces(string.toCharArray())); |
| } |
| |
| @Override |
| protected void verifyRemoveAllWhitespace(String expected, String string) { |
| TestTools.assertEquals(expected, CharArrayTools.removeAllWhitespace(string.toCharArray())); |
| } |
| |
| @Override |
| protected void verifyCompressWhitespace(String expected, String string) { |
| TestTools.assertEquals(expected, CharArrayTools.compressWhitespace(string.toCharArray())); |
| } |
| |
| @Override |
| protected void verifyCommonPrefixLength(int expected, String string1, String string2) { |
| assertEquals(expected, CharArrayTools.commonPrefixLength(string1.toCharArray(), string2.toCharArray())); |
| } |
| |
| @Override |
| protected void verifyCommonPrefixLengthMax(int expected, String string1, String string2, int max) { |
| assertEquals(expected, CharArrayTools.commonPrefixLength(string1.toCharArray(), string2.toCharArray(), max)); |
| } |
| |
| @Override |
| protected void verifyCapitalize(String expected, String string) { |
| TestTools.assertEquals(expected, CharArrayTools.capitalize(string.toCharArray())); |
| TestTools.assertEquals(expected, CharArrayTools.CAPITALIZER.transform(string.toCharArray())); |
| } |
| |
| @Override |
| protected Object getCapitalizer() { |
| return CharArrayTools.CAPITALIZER; |
| } |
| |
| @Override |
| protected void verifyUncapitalize(String expected, String string) { |
| TestTools.assertEquals(expected, CharArrayTools.uncapitalize(string.toCharArray())); |
| TestTools.assertEquals(expected, CharArrayTools.UNCAPITALIZER.transform(string.toCharArray())); |
| } |
| |
| @Override |
| protected Object getUncapitalizer() { |
| return CharArrayTools.UNCAPITALIZER; |
| } |
| |
| @Override |
| protected void verifyIsBlank(boolean expected, String string) { |
| assertEquals(expected, CharArrayTools.isBlank(this.convert(string))); |
| assertEquals(expected, CharArrayTools.IS_BLANK.evaluate(this.convert(string))); |
| } |
| |
| @Override |
| protected Object getIsBlankPredicate() { |
| return CharArrayTools.IS_BLANK; |
| } |
| |
| @Override |
| protected void verifyIsNotBlank(boolean expected, String string) { |
| assertEquals(expected, CharArrayTools.isNotBlank(this.convert(string))); |
| assertEquals(expected, CharArrayTools.IS_NOT_BLANK.evaluate(this.convert(string))); |
| } |
| |
| @Override |
| protected Object getIsNotBlankPredicate() { |
| return CharArrayTools.IS_NOT_BLANK; |
| } |
| |
| @Override |
| protected void verifyEqualsIgnoreCase(boolean expected, String string1, String string2) { |
| assertEquals(expected, CharArrayTools.equalsIgnoreCase(this.convert(string1), this.convert(string2))); |
| } |
| |
| /** |
| * add <code>null</code> check |
| */ |
| private char[] convert(String string) { |
| return (string == null) ? null : string.toCharArray(); |
| } |
| |
| @Override |
| protected void verifyStartsWithIgnoreCase(boolean expected, String string, String prefix) { |
| assertEquals(expected, CharArrayTools.startsWithIgnoreCase(string.toCharArray(), prefix.toCharArray())); |
| Predicate<char[]> predicate = new CharArrayTools.StartsWithIgnoreCase(prefix.toCharArray()); |
| assertEquals(expected, predicate.evaluate(string.toCharArray())); |
| } |
| |
| @Override |
| protected void verifyIsUppercase(String string) { |
| assertTrue(CharArrayTools.isUppercase(string.toCharArray())); |
| } |
| |
| @Override |
| protected void denyIsUppercase(String string) { |
| assertFalse(CharArrayTools.isUppercase(string.toCharArray())); |
| } |
| |
| @Override |
| protected void verifyIsLowercase(String string) { |
| assertTrue(CharArrayTools.isLowercase(string.toCharArray())); |
| } |
| |
| @Override |
| protected void denyIsLowercase(String string) { |
| assertFalse(CharArrayTools.isLowercase(string.toCharArray())); |
| } |
| |
| @Override |
| protected byte[] convertHexStringToByteArray(String string) { |
| return CharArrayTools.convertHexStringToByteArray(string.toCharArray()); |
| } |
| |
| @Override |
| protected void verifyConvertCamelCaseToAllCaps(String expected, String string) { |
| TestTools.assertEquals(expected, CharArrayTools.convertCamelCaseToAllCaps(string.toCharArray())); |
| } |
| |
| @Override |
| protected void verifyConvertCamelCaseToAllCapsMaxLength(String expected, String string, int max) { |
| TestTools.assertEquals(expected, CharArrayTools.convertCamelCaseToAllCaps(string.toCharArray(), max)); |
| } |
| |
| @Override |
| protected void verifyConvertAllCapsToCamelCase(String expected, String string) { |
| TestTools.assertEquals(expected, CharArrayTools.convertAllCapsToCamelCase(string.toCharArray())); |
| } |
| |
| @Override |
| protected void verifyConvertAllCapsToCamelCase(String expected, String string, boolean capFirst) { |
| TestTools.assertEquals(expected, CharArrayTools.convertAllCapsToCamelCase(string.toCharArray(), capFirst)); |
| } |
| |
| @Override |
| protected void verifyIsQuoted(String string) { |
| assertTrue(CharArrayTools.isQuoted(string.toCharArray())); |
| } |
| |
| @Override |
| protected void denyIsQuoted(String string) { |
| assertFalse(CharArrayTools.isQuoted(string.toCharArray())); |
| } |
| |
| @Override |
| protected void verifyIsParenthetical(String string) { |
| assertTrue(CharArrayTools.isParenthetical(string.toCharArray())); |
| } |
| |
| @Override |
| protected void denyIsParenthetical(String string) { |
| assertFalse(CharArrayTools.isParenthetical(string.toCharArray())); |
| } |
| |
| @Override |
| protected void verifyIsBracketed(String string) { |
| assertTrue(CharArrayTools.isBracketed(string.toCharArray())); |
| } |
| |
| @Override |
| protected void denyIsBracketed(String string) { |
| assertFalse(CharArrayTools.isBracketed(string.toCharArray())); |
| } |
| |
| @Override |
| protected void verifyIsBraced(String string) { |
| assertTrue(CharArrayTools.isBraced(string.toCharArray())); |
| } |
| |
| @Override |
| protected void denyIsBraced(String string) { |
| assertFalse(CharArrayTools.isBraced(string.toCharArray())); |
| } |
| |
| @Override |
| protected void verifyIsChevroned(String string) { |
| assertTrue(CharArrayTools.isChevroned(string.toCharArray())); |
| } |
| |
| @Override |
| protected void denyIsChevroned(String string) { |
| assertFalse(CharArrayTools.isChevroned(string.toCharArray())); |
| } |
| |
| @Override |
| protected void verifyIsDelimited(String string, char c) { |
| assertTrue(CharArrayTools.isDelimited(string.toCharArray(), c)); |
| } |
| |
| @Override |
| protected void denyIsDelimited(String string, char c) { |
| assertFalse(CharArrayTools.isDelimited(string.toCharArray(), c)); |
| } |
| |
| @Override |
| protected void verifyIsDelimited2(String string, char start, char end) { |
| assertTrue(CharArrayTools.isDelimited(string.toCharArray(), start, end)); |
| } |
| |
| @Override |
| protected void denyIsDelimited2(String string, char start, char end) { |
| assertFalse(CharArrayTools.isDelimited(string.toCharArray(), start, end)); |
| } |
| |
| @Override |
| protected void verifyUndelimit(String expected, String string) { |
| TestTools.assertEquals(expected, CharArrayTools.undelimit(string.toCharArray())); |
| } |
| |
| @Override |
| protected void verifyUndelimitInt(String expected, String string, int count) { |
| TestTools.assertEquals(expected, CharArrayTools.undelimit(string.toCharArray(), count)); |
| } |
| |
| @Override |
| protected void verifyConvertToJavaStringLiteral(String expected, String string) { |
| TestTools.assertEquals(expected, CharArrayTools.convertToJavaStringLiteral(string.toCharArray())); |
| TestTools.assertEquals(expected, CharArrayTools.JAVA_STRING_LITERAL_TRANSFORMER.transform(string.toCharArray())); |
| } |
| |
| @Override |
| protected Object getJavaStringLiteralTransformer() { |
| return CharArrayTools.JAVA_STRING_LITERAL_TRANSFORMER; |
| } |
| |
| @Override |
| protected void verifyConvertToJavaStringLiteralContent(String expected, String string) { |
| TestTools.assertEquals(expected, CharArrayTools.convertToJavaStringLiteralContent(string.toCharArray())); |
| TestTools.assertEquals(expected, CharArrayTools.JAVA_STRING_LITERAL_CONTENT_TRANSFORMER.transform(string.toCharArray())); |
| } |
| |
| @Override |
| protected Object getJavaStringLiteralContentTransformer() { |
| return CharArrayTools.JAVA_STRING_LITERAL_CONTENT_TRANSFORMER; |
| } |
| |
| @Override |
| protected void verifyConvertToXmlAttributeValue(String expected, String string) { |
| TestTools.assertEquals(expected, CharArrayTools.convertToXmlAttributeValue(string.toCharArray())); |
| TestTools.assertEquals(expected, CharArrayTools.XML_ATTRIBUTE_VALUE_TRANSFORMER.transform(string.toCharArray())); |
| } |
| |
| @Override |
| protected Object getXmlAttributeValueTransformer() { |
| return CharArrayTools.XML_ATTRIBUTE_VALUE_TRANSFORMER; |
| } |
| |
| @Override |
| protected void verifyConvertToDoubleQuotedXmlAttributeValue(String expected, String string) { |
| TestTools.assertEquals(expected, CharArrayTools.convertToDoubleQuotedXmlAttributeValue(string.toCharArray())); |
| TestTools.assertEquals(expected, CharArrayTools.DOUBLE_QUOTED_XML_ATTRIBUTE_VALUE_TRANSFORMER.transform(string.toCharArray())); |
| } |
| |
| @Override |
| protected Object getDoubleQuotedXmlAttributeValueTransformer() { |
| return CharArrayTools.DOUBLE_QUOTED_XML_ATTRIBUTE_VALUE_TRANSFORMER; |
| } |
| |
| @Override |
| protected void verifyConvertToDoubleQuotedXmlAttributeValueContent(String expected, String string) { |
| TestTools.assertEquals(expected, CharArrayTools.convertToDoubleQuotedXmlAttributeValueContent(string.toCharArray())); |
| TestTools.assertEquals(expected, CharArrayTools.DOUBLE_QUOTED_XML_ATTRIBUTE_VALUE_CONTENT_TRANSFORMER.transform(string.toCharArray())); |
| } |
| |
| @Override |
| protected Object getDoubleQuotedXmlAttributeValueContentTransformer() { |
| return CharArrayTools.DOUBLE_QUOTED_XML_ATTRIBUTE_VALUE_CONTENT_TRANSFORMER; |
| } |
| |
| @Override |
| protected void verifyConvertToSingleQuotedXmlAttributeValue(String expected, String string) { |
| TestTools.assertEquals(expected, CharArrayTools.convertToSingleQuotedXmlAttributeValue(string.toCharArray())); |
| TestTools.assertEquals(expected, CharArrayTools.SINGLE_QUOTED_XML_ATTRIBUTE_VALUE_TRANSFORMER.transform(string.toCharArray())); |
| } |
| |
| @Override |
| protected Object getSingleQuotedXmlAttributeValueTransformer() { |
| return CharArrayTools.SINGLE_QUOTED_XML_ATTRIBUTE_VALUE_TRANSFORMER; |
| } |
| |
| @Override |
| protected void verifyConvertToSingleQuotedXmlAttributeValueContent(String expected, String string) { |
| TestTools.assertEquals(expected, CharArrayTools.convertToSingleQuotedXmlAttributeValueContent(string.toCharArray())); |
| TestTools.assertEquals(expected, CharArrayTools.SINGLE_QUOTED_XML_ATTRIBUTE_VALUE_CONTENT_TRANSFORMER.transform(string.toCharArray())); |
| } |
| |
| @Override |
| protected Object getSingleQuotedXmlAttributeValueContentTransformer() { |
| return CharArrayTools.SINGLE_QUOTED_XML_ATTRIBUTE_VALUE_CONTENT_TRANSFORMER; |
| } |
| |
| @Override |
| protected void verifyConvertToXmlElementText(String expected, String string) { |
| TestTools.assertEquals(expected, CharArrayTools.convertToXmlElementText(string.toCharArray())); |
| TestTools.assertEquals(expected, CharArrayTools.XML_ELEMENT_TEXT_TRANSFORMER.transform(string.toCharArray())); |
| } |
| |
| @Override |
| protected Object getXmlElementTextTransformer() { |
| return CharArrayTools.XML_ELEMENT_TEXT_TRANSFORMER; |
| } |
| |
| @Override |
| protected void verifyConvertToXmlElementCDATA(String expected, String string) { |
| TestTools.assertEquals(expected, CharArrayTools.convertToXmlElementCDATA(string.toCharArray())); |
| TestTools.assertEquals(expected, CharArrayTools.XML_ELEMENT_CDATA_TRANSFORMER.transform(string.toCharArray())); |
| } |
| |
| @Override |
| protected Object getXmlElementCDATATransformer() { |
| return CharArrayTools.XML_ELEMENT_CDATA_TRANSFORMER; |
| } |
| |
| @Override |
| protected void verifyConvertToXmlElementCDATAContent(String expected, String string) { |
| TestTools.assertEquals(expected, CharArrayTools.convertToXmlElementCDATAContent(string.toCharArray())); |
| TestTools.assertEquals(expected, CharArrayTools.XML_ELEMENT_CDATA_CONTENT_TRANSFORMER.transform(string.toCharArray())); |
| } |
| |
| @Override |
| protected Object getXmlElementCDATAContentTransformer() { |
| return CharArrayTools.XML_ELEMENT_CDATA_CONTENT_TRANSFORMER; |
| } |
| |
| @Override |
| protected Class<?> getToolsClass() { |
| return CharArrayTools.class; |
| } |
| |
| // ********** CharArrayTools-specific ********** |
| |
| public void testStringTransformer() throws Exception { |
| Transformer<char[], String> transformer = CharArrayTools.STRING_TRANSFORMER; |
| assertEquals("foo", transformer.transform("foo".toCharArray())); |
| assertEquals("StringTransformer", transformer.toString()); |
| assertSame(transformer, TestTools.serialize(transformer)); |
| } |
| |
| // ********** String methods ********** |
| |
| public void testCodePointAtInt() { |
| this.verifyCodePointAtInt("foo-bar-baz", 7); |
| this.verifyCodePointAtInt("caf\u00E9", 3); |
| } |
| |
| private void verifyCodePointAtInt(String s, int index) { |
| assertEquals(s.codePointAt(index), CharArrayTools.codePointAt(s.toCharArray(), index)); |
| } |
| |
| public void testCodePointBeforeInt() { |
| this.verifyCodePointBeforeInt("foo-bar-baz", 7); |
| this.verifyCodePointBeforeInt("caf\u00E9", 4); |
| } |
| |
| private void verifyCodePointBeforeInt(String s, int index) { |
| assertEquals(s.codePointBefore(index), CharArrayTools.codePointBefore(s.toCharArray(), index)); |
| } |
| |
| public void testCodePointCountIntInt() { |
| this.verifyCodePointCountIntInt("foo-bar-baz"); |
| this.verifyCodePointCountIntInt("caf\u00E9"); |
| } |
| |
| private void verifyCodePointCountIntInt(String s) { |
| assertEquals(s.codePointCount(0, s.length()), CharArrayTools.codePointCount(s.toCharArray(), 0, s.length())); |
| } |
| |
| public void testCompareTo() { |
| this.verifyCompareTo("foo", "bar"); |
| this.verifyCompareTo("foo", "foo"); |
| this.verifyCompareTo("foo", "zoo"); |
| } |
| |
| private void verifyCompareTo(String s1, String s2) { |
| assertEquals(s1.compareTo(s2), CharArrayTools.compareTo(s1.toCharArray(), s2.toCharArray())); |
| } |
| |
| public void testCompareToIgnoreCase() { |
| this.verifyCompareToIgnoreCase("foo", "bar"); |
| this.verifyCompareToIgnoreCase("foo", "BAR"); |
| this.verifyCompareToIgnoreCase("foo", "foo"); |
| this.verifyCompareToIgnoreCase("foo", "FOO"); |
| this.verifyCompareToIgnoreCase("foo", "zoo"); |
| this.verifyCompareToIgnoreCase("foo", "ZOO"); |
| this.verifyCompareToIgnoreCase("foo", "fooo"); |
| this.verifyCompareToIgnoreCase("fooo", "foo"); |
| } |
| |
| private void verifyCompareToIgnoreCase(String s1, String s2) { |
| assertEquals(s1.compareToIgnoreCase(s2), CharArrayTools.compareToIgnoreCase(s1.toCharArray(), s2.toCharArray())); |
| } |
| |
| public void testConcat() { |
| this.verifyConcat("foo", "bar"); |
| this.verifyConcat("foo", "foo"); |
| this.verifyConcat("foo", "zoo"); |
| this.verifyConcat("foo", ""); |
| this.verifyConcat("", "zoo"); |
| } |
| |
| private void verifyConcat(String s1, String s2) { |
| TestTools.assertEquals(s1.concat(s2), CharArrayTools.concat(s1.toCharArray(), s2.toCharArray())); |
| } |
| |
| public void testContainsCharSequence() { |
| this.verifyContainsCharSequence("foo", "bar"); |
| this.verifyContainsCharSequence("foo", "foo"); |
| this.verifyContainsCharSequence("foo", "zoo"); |
| this.verifyContainsCharSequence("foo", ""); |
| this.verifyContainsCharSequence("", "zoo"); |
| this.verifyContainsCharSequence("foo", "f"); |
| this.verifyContainsCharSequence("foo", "o"); |
| this.verifyContainsCharSequence("foo", "z"); |
| this.verifyContainsCharSequence("foo", "oo"); |
| } |
| |
| private void verifyContainsCharSequence(String s1, String s2) { |
| StringBuilder sb = new StringBuilder(s2); |
| assertEquals(s1.contains(sb), CharArrayTools.contains(s1.toCharArray(), sb)); |
| } |
| |
| public void testContainsCharArray() { |
| this.verifyContainsCharArray("foo", "bar"); |
| this.verifyContainsCharArray("foo", "foo"); |
| this.verifyContainsCharArray("foo", "zoo"); |
| this.verifyContainsCharArray("foo", ""); |
| this.verifyContainsCharArray("", "zoo"); |
| this.verifyContainsCharArray("foo", "f"); |
| this.verifyContainsCharArray("foo", "o"); |
| this.verifyContainsCharArray("foo", "z"); |
| this.verifyContainsCharArray("foo", "oo"); |
| } |
| |
| private void verifyContainsCharArray(String s1, String s2) { |
| StringBuilder sb = new StringBuilder(s2); |
| assertEquals(s1.contains(sb), CharArrayTools.contains(s1.toCharArray(), s2.toCharArray())); |
| } |
| |
| public void testContentEqualsCharSequence() { |
| this.verifyContentEqualsCharSequence("foo", "bar"); |
| this.verifyContentEqualsCharSequence("foo", "foo"); |
| this.verifyContentEqualsCharSequence("foo", "zoo"); |
| this.verifyContentEqualsCharSequence("foo", ""); |
| this.verifyContentEqualsCharSequence("", "zoo"); |
| this.verifyContentEqualsCharSequence("foo", "f"); |
| this.verifyContentEqualsCharSequence("foo", "o"); |
| this.verifyContentEqualsCharSequence("foo", "z"); |
| this.verifyContentEqualsCharSequence("foo", "oo"); |
| } |
| |
| private void verifyContentEqualsCharSequence(String s1, String s2) { |
| StringBuilder sb = new StringBuilder(s2); |
| assertEquals(s1.contentEquals(sb), CharArrayTools.contentEquals(s1.toCharArray(), sb)); |
| } |
| |
| public void testContentEqualsStringBuffer() { |
| this.verifyContentEqualsStringBuffer("foo", "bar"); |
| this.verifyContentEqualsStringBuffer("foo", "foo"); |
| this.verifyContentEqualsStringBuffer("foo", "zoo"); |
| this.verifyContentEqualsStringBuffer("foo", ""); |
| this.verifyContentEqualsStringBuffer("", "zoo"); |
| this.verifyContentEqualsStringBuffer("foo", "f"); |
| this.verifyContentEqualsStringBuffer("foo", "o"); |
| this.verifyContentEqualsStringBuffer("foo", "z"); |
| this.verifyContentEqualsStringBuffer("foo", "oo"); |
| } |
| |
| private void verifyContentEqualsStringBuffer(String s1, String s2) { |
| StringBuffer sb = new StringBuffer(s2); |
| assertEquals(s1.contentEquals(sb), CharArrayTools.contentEquals(s1.toCharArray(), sb)); |
| } |
| |
| public void testEndsWith() { |
| this.verifyEndsWith("foo", "bar"); |
| this.verifyEndsWith("foo", "foo"); |
| this.verifyEndsWith("foo", "zoo"); |
| this.verifyEndsWith("foo", ""); |
| this.verifyEndsWith("", "zoo"); |
| this.verifyEndsWith("foo", "f"); |
| this.verifyEndsWith("foo", "o"); |
| this.verifyEndsWith("foo", "z"); |
| this.verifyEndsWith("foo", "oo"); |
| } |
| |
| private void verifyEndsWith(String s1, String s2) { |
| assertEquals(s1.endsWith(s2), CharArrayTools.endsWith(s1.toCharArray(), s2.toCharArray())); |
| } |
| |
| public void testGetBytes() { |
| this.verifyGetBytes("foo"); |
| } |
| |
| private void verifyGetBytes(String string) { |
| Assert.assertArrayEquals(string.getBytes(), CharArrayTools.getBytes(string.toCharArray())); |
| } |
| |
| public void testGetBytesCharSet() throws Exception { |
| this.verifyGetBytesCharSet("foo"); |
| } |
| |
| private void verifyGetBytesCharSet(String string) throws Exception { |
| String charset = Charset.defaultCharset().name(); |
| Assert.assertArrayEquals(string.getBytes(charset), CharArrayTools.getBytes(string.toCharArray(), charset)); |
| } |
| |
| public void testGetChars() { |
| this.verifyGetChars("foo-bar-baz", 0, 11, 0); |
| this.verifyGetChars("foo-bar-baz", 11, 11, 11); |
| this.verifyGetChars("foo-bar-baz", 4, 5, 0); |
| this.verifyGetChars("foo-bar-baz", 4, 11, 0); |
| } |
| |
| private void verifyGetChars(String s, int srcBegin, int srcEnd, int destBegin) { |
| char[] a1 = ArrayTools.fill(new char[42], 'x'); |
| s.getChars(srcBegin, srcEnd, a1, destBegin); |
| char[] a2 = ArrayTools.fill(new char[42], 'x'); |
| CharArrayTools.getChars(s.toCharArray(), srcBegin, srcEnd, a2, destBegin); |
| Assert.assertArrayEquals(a1, a2); |
| } |
| |
| public void testIndexOfChar() { |
| this.verifyIndexOfChar("foo-bar-baz", ' '); |
| this.verifyIndexOfChar("foo-bar-baz", 'f'); |
| this.verifyIndexOfChar("foo-bar-baz", 'b'); |
| this.verifyIndexOfChar("foo-bar-baz", 'z'); |
| |
| this.verifyIndexOfChar("", ' '); |
| this.verifyIndexOfChar("", 'f'); |
| this.verifyIndexOfChar("", 'b'); |
| this.verifyIndexOfChar("", 'z'); |
| } |
| |
| private void verifyIndexOfChar(String string, char c) { |
| assertEquals(string.indexOf(c), CharArrayTools.indexOf(string.toCharArray(), c)); |
| } |
| |
| public void testIndexOfCharIndex() { |
| this.verifyIndexOfCharIndex("foo-bar-baz", ' '); |
| this.verifyIndexOfCharIndex("foo-bar-baz", 'f'); |
| this.verifyIndexOfCharIndex("foo-bar-baz", 'b'); |
| this.verifyIndexOfCharIndex("foo-bar-baz", 'z'); |
| |
| this.verifyIndexOfCharIndex("", ' '); |
| this.verifyIndexOfCharIndex("", 'f'); |
| this.verifyIndexOfCharIndex("", 'b'); |
| this.verifyIndexOfCharIndex("", 'z'); |
| } |
| |
| private void verifyIndexOfCharIndex(String string, char c) { |
| assertEquals(string.indexOf(c, 3), CharArrayTools.indexOf(string.toCharArray(), c, 3)); |
| } |
| |
| public void testIndexOfCharSequence() { |
| this.verifyIndexOfCharSequence("foo-bar-baz", ""); |
| this.verifyIndexOfCharSequence("foo-bar-baz", "foo-bar-baz"); |
| this.verifyIndexOfCharSequence("foo-bar-baz", "bar"); |
| this.verifyIndexOfCharSequence("foo-bar-baz", "bbb"); |
| |
| this.verifyIndexOfCharSequence("", ""); |
| this.verifyIndexOfCharSequence("", "foo-bar-baz"); |
| this.verifyIndexOfCharSequence("", "bar"); |
| this.verifyIndexOfCharSequence("", "bbb"); |
| } |
| |
| private void verifyIndexOfCharSequence(String s1, String s2) { |
| assertEquals(s1.indexOf(s2), CharArrayTools.indexOf(s1.toCharArray(), s2)); |
| assertEquals(s1.indexOf(s2), CharArrayTools.indexOf(s1.toCharArray(), s2, -3)); |
| } |
| |
| public void testIndexOfCharArray() { |
| this.verifyIndexOfCharArray("foo-bar-baz", ""); |
| this.verifyIndexOfCharArray("foo-bar-baz", "foo-bar-baz"); |
| this.verifyIndexOfCharArray("foo-bar-baz", "bar"); |
| this.verifyIndexOfCharArray("foo-bar-baz", "bbb"); |
| |
| this.verifyIndexOfCharArray("", ""); |
| this.verifyIndexOfCharArray("", "foo-bar-baz"); |
| this.verifyIndexOfCharArray("", "bar"); |
| this.verifyIndexOfCharArray("", "bbb"); |
| } |
| |
| private void verifyIndexOfCharArray(String s1, String s2) { |
| assertEquals(s1.indexOf(s2), CharArrayTools.indexOf(s1.toCharArray(), s2.toCharArray())); |
| assertEquals(s1.indexOf(s2), CharArrayTools.indexOf(s1.toCharArray(), s2.toCharArray(), -3)); |
| } |
| |
| public void testLastIndexOf() { |
| this.verifyLastIndexOf("foo-bar-baz", ""); |
| this.verifyLastIndexOf("foo-bar-baz", "foo-bar-baz"); |
| this.verifyLastIndexOf("foo-bar-baz", "bar"); |
| this.verifyLastIndexOf("foo-bar-baz", "bbb"); |
| |
| this.verifyLastIndexOf("", ""); |
| this.verifyLastIndexOf("", "foo-bar-baz"); |
| this.verifyLastIndexOf("", "bar"); |
| this.verifyLastIndexOf("", "bbb"); |
| } |
| |
| private void verifyLastIndexOf(String s1, String s2) { |
| assertEquals(s1.lastIndexOf(s2), CharArrayTools.lastIndexOf(s1.toCharArray(), s2.toCharArray())); |
| assertEquals(-1, CharArrayTools.lastIndexOf(s1.toCharArray(), s2.toCharArray(), -3)); |
| } |
| |
| public void testLastIndexOfChar() { |
| this.verifyLastIndexOfChar("foo-bar-baz", ' '); |
| this.verifyLastIndexOfChar("foo-bar-baz", 'f'); |
| this.verifyLastIndexOfChar("foo-bar-baz", 'v'); |
| this.verifyLastIndexOfChar("foo-bar-baz", 'z'); |
| |
| this.verifyLastIndexOfChar("", ' '); |
| this.verifyLastIndexOfChar("", 'f'); |
| this.verifyLastIndexOfChar("", 'b'); |
| this.verifyLastIndexOfChar("", 'z'); |
| } |
| |
| private void verifyLastIndexOfChar(String string, char c) { |
| assertEquals(string.lastIndexOf(c), CharArrayTools.lastIndexOf(string.toCharArray(), c)); |
| assertEquals(-1, CharArrayTools.lastIndexOf(string.toCharArray(), c, -3)); |
| } |
| |
| public void testOffsetByCodePoints() { |
| this.verifyOffsetByCodePoints("foo-bar-baz", 3, 3); |
| this.verifyOffsetByCodePoints("aaaaab", 3, 3); |
| } |
| |
| private void verifyOffsetByCodePoints(String string, int index, int codePointOffset) { |
| assertEquals(string.offsetByCodePoints(index, codePointOffset), CharArrayTools.offsetByCodePoints(string.toCharArray(), index, codePointOffset)); |
| } |
| |
| public void testMatches() { |
| this.verifyMatches("foo-bar-baz", ""); |
| this.verifyMatches("aaaaab", "a*b"); |
| } |
| |
| private void verifyMatches(String s1, String s2) { |
| assertEquals(s1.matches(s2), CharArrayTools.matches(s1.toCharArray(), s2.toCharArray())); |
| } |
| |
| public void testRegionMatchesIgnoreCase() { |
| this.verifyRegionMatchesBoolean("foo-bar-baz", "", true, 0, 0, 5); |
| this.verifyRegionMatchesBoolean("foo-bar-baz", "foo", true, 0, 0, 3); |
| this.verifyRegionMatchesBoolean("foo-bar-baz", "FOO", true, 0, 0, 3); |
| this.verifyRegionMatchesBoolean("foo-bar-baz", "XXX", true, 0, 0, 3); |
| } |
| |
| public void testRegionMatchesCaseSensitive() { |
| this.verifyRegionMatchesBoolean("foo-bar-baz", "", false, 0, 0, 5); |
| this.verifyRegionMatchesBoolean("foo-bar-baz", "foo", false, 0, 0, 3); |
| this.verifyRegionMatchesBoolean("foo-bar-baz", "xxx", false, 0, 0, 3); |
| } |
| |
| private void verifyRegionMatchesBoolean(String s1, String s2, boolean ignoreCase, int offset1, int offset2, int len) { |
| assertEquals(s1.regionMatches(ignoreCase, offset1, s2, offset2, len), CharArrayTools.regionMatches(s1.toCharArray(), ignoreCase, offset1, s2.toCharArray(), offset2, len)); |
| } |
| |
| public void testRegionMatches() { |
| this.verifyRegionMatches("foo-bar-baz", "", 0, 0, 5); |
| this.verifyRegionMatches("foo-bar-baz", "foo", 0, 0, 3); |
| this.verifyRegionMatches("foo-bar-baz", "xxx", 0, 0, 3); |
| } |
| |
| private void verifyRegionMatches(String s1, String s2, int offset1, int offset2, int len) { |
| assertEquals(s1.regionMatches(offset1, s2, offset2, len), CharArrayTools.regionMatches(s1.toCharArray(), offset1, s2.toCharArray(), offset2, len)); |
| } |
| |
| public void testReplace() { |
| this.verifyReplace("foo-bar-baz", 'b', 'x'); |
| this.verifyReplace("foo-bar-baz", 'X', 'T'); |
| this.verifyReplace("foo-bar-baz", 'X', 'X'); |
| } |
| |
| private void verifyReplace(String string, char oldChar, char newChar) { |
| char[] array = CharArrayTools.replace(string.toCharArray(), oldChar, newChar); |
| TestTools.assertEquals(string.replace(oldChar, newChar), array); |
| } |
| |
| public void testStartsWith() { |
| this.verifyStartsWith("foo-bar-baz", "foo"); |
| this.verifyStartsWith("foo-bar-baz", "FOO"); |
| this.verifyStartsWith("foo-bar-baz", "bar"); |
| } |
| |
| private void verifyStartsWith(String s1, String s2) { |
| assertEquals(s1.startsWith(s2), CharArrayTools.startsWith(s1.toCharArray(), s2.toCharArray())); |
| } |
| |
| public void testStartsWithOffset() { |
| this.verifyStartsWithOffset("foo-bar-baz", "foo", 0); |
| this.verifyStartsWithOffset("foo-bar-baz", "foo", 4); |
| this.verifyStartsWithOffset("foo-bar-baz", "bar", 0); |
| this.verifyStartsWithOffset("foo-bar-baz", "bar", 4); |
| this.verifyStartsWithOffset("foo-bar-baz", "bar", 22); |
| this.verifyStartsWithOffset("foo-bar-baz", "bar", -3); |
| } |
| |
| private void verifyStartsWithOffset(String s1, String s2, int offset) { |
| assertEquals(s1.startsWith(s2, offset), CharArrayTools.startsWith(s1.toCharArray(), s2.toCharArray(), offset)); |
| } |
| |
| public void testSubSequence() { |
| this.verifySubSequence("foo-bar-baz", 0, 11); |
| this.verifySubSequence("foo-bar-baz", 0, 3); |
| this.verifySubSequence("foo-bar-baz", 0, 0); |
| this.verifySubSequence("foo-bar-baz", 2, 11); |
| this.verifySubSequence("foo-bar-baz", 2, 3); |
| this.verifySubSequence("foo-bar-baz", 2, 2); |
| } |
| |
| private void verifySubSequence(String string, int beginIndex, int endIndex) { |
| char[] array = CharArrayTools.subSequence(string.toCharArray(), beginIndex, endIndex); |
| TestTools.assertEquals(string.subSequence(beginIndex, endIndex), array); |
| } |
| |
| public void testTrim() { |
| this.verifyTrim("foo-bar-baz"); |
| this.verifyTrim(" foo-bar-baz "); |
| this.verifyTrim(" foo-bar-baz "); |
| } |
| |
| private void verifyTrim(String string) { |
| TestTools.assertEquals(string.trim(), CharArrayTools.trim(string.toCharArray())); |
| } |
| } |