blob: d625aa646c93d1eb6173ca9da5c45cf293b5437f [file] [log] [blame]
/*
* Copyright (c) 2010-2020 BSI Business Systems Integration AG.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* BSI Business Systems Integration AG - initial API and implementation
*/
package org.eclipse.scout.sdk.core.util;
import static org.eclipse.scout.sdk.core.util.Chars.indexOf;
import static org.eclipse.scout.sdk.core.util.Chars.lastIndexOf;
import static org.eclipse.scout.sdk.core.util.Chars.nextLineEnd;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import java.nio.CharBuffer;
import org.junit.jupiter.api.Test;
public class CharsTest {
@Test
public void testEqualsCharArray() {
char[] a = "".toCharArray();
char[] b = "xx".toCharArray();
char[] c = "xx".toCharArray();
char[] d = "yy".toCharArray();
char[] e = "xxx".toCharArray();
assertTrue(Chars.equals(a, a));
assertTrue(Chars.equals(c, b));
assertFalse(Chars.equals(null, b));
assertFalse(Chars.equals(a, null));
assertFalse(Chars.equals(c, d));
assertFalse(Chars.equals(c, e));
assertTrue(Chars.equals(null, (char[]) null));
}
@Test
public void testEqualsCharArrayIgnoreCase() {
char[] a = "".toCharArray();
char[] b = "xx".toCharArray();
char[] c = "xx".toCharArray();
char[] d = "yy".toCharArray();
char[] e = "xxx".toCharArray();
char[] f = "xXx".toCharArray();
assertTrue(Chars.equals(a, a, true));
assertTrue(Chars.equals(c, b, true));
assertFalse(Chars.equals(null, b, true));
assertFalse(Chars.equals(a, null, true));
assertFalse(Chars.equals(c, d, true));
assertFalse(Chars.equals(c, e, true));
assertTrue(Chars.equals(null, (char[]) null, true));
assertTrue(Chars.equals(a, a, false));
assertTrue(Chars.equals(c, b, false));
assertFalse(Chars.equals(null, b, false));
assertFalse(Chars.equals(a, null, false));
assertFalse(Chars.equals(c, d, false));
assertFalse(Chars.equals(c, e, false));
assertTrue(Chars.equals(null, (char[]) null, false));
assertTrue(Chars.equals(e, f, false));
}
@Test
public void testEqualsCharSequence() {
CharSequence a = "";
CharSequence b = CharBuffer.wrap("xx".toCharArray());
CharSequence c = "xx";
CharSequence d = "yy";
CharSequence e = "xxx";
assertTrue(Chars.equals(a, a));
assertTrue(Chars.equals(c, b));
assertFalse(Chars.equals(null, b));
assertFalse(Chars.equals(a, null));
assertFalse(Chars.equals(c, d));
assertFalse(Chars.equals(c, e));
assertTrue(Chars.equals(null, (CharSequence) null));
}
@Test
public void testEqualsCharSequenceIgnoreCase() {
CharSequence a = "";
CharSequence b = CharBuffer.wrap("xx".toCharArray());
CharSequence c = "xx";
CharSequence d = "yy";
CharSequence e = "xxx";
CharSequence f = "xXx";
assertTrue(Chars.equals(a, a, true));
assertTrue(Chars.equals(c, b, true));
assertFalse(Chars.equals(null, b, true));
assertFalse(Chars.equals(a, null, true));
assertFalse(Chars.equals(c, d, true));
assertFalse(Chars.equals(c, e, true));
assertTrue(Chars.equals(null, (CharSequence) null, true));
assertTrue(Chars.equals(a, a, false));
assertTrue(Chars.equals(c, b, false));
assertFalse(Chars.equals(null, b, false));
assertFalse(Chars.equals(a, null, false));
assertFalse(Chars.equals(c, d, false));
assertFalse(Chars.equals(c, e, false));
assertTrue(Chars.equals(null, (CharSequence) null, false));
assertTrue(Chars.equals(e, f, false));
}
@Test
public void testIndexOfCharArray() {
assertEquals(3, indexOf('d', "abcdraqrd".toCharArray(), 0, 4));
assertEquals(-1, indexOf('d', "abcdgaerd".toCharArray(), 0, 3));
assertEquals(3, indexOf('d', "abcdw4easd".toCharArray(), 0, 100));
assertEquals(-1, indexOf('x', "abcd".toCharArray(), 0, 100));
assertEquals(-1, indexOf('a', "abcdrgtd".toCharArray(), 1));
assertEquals(-1, indexOf('d', "abcd".toCharArray(), 1, 3));
assertEquals(-1, indexOf('x', "abcd".toCharArray()));
assertEquals(3, indexOf('d', "abcdasdfd".toCharArray()));
}
@Test
public void testIndexOfCharSequence() {
assertEquals(3, indexOf('d', "abcdraqrd", 0, 4));
assertEquals(-1, indexOf('d', "abcdgaerd", 0, 3));
assertEquals(3, indexOf('d', "abcdw4easd", 0, 100));
assertEquals(-1, indexOf('x', "abcd", 0, 100));
assertEquals(-1, indexOf('a', "abcdrgtd", 1));
assertEquals(-1, indexOf('d', "abcd", 1, 3));
assertEquals(-1, indexOf('x', "abcd"));
assertEquals(3, indexOf('d', "abcdasdfd"));
}
@Test
public void testIndexOfCharsInChars() {
assertEquals(-1, indexOf("abcdd".toCharArray(), "abc".toCharArray()));
assertEquals(-1, indexOf("abcdd".toCharArray(), "abc".toCharArray(), -1));
assertEquals(-1, indexOf("abcdd".toCharArray(), "abc".toCharArray(), -1, 3));
assertEquals(-1, indexOf("x".toCharArray(), "abc".toCharArray(), -1));
assertEquals(0, indexOf("".toCharArray(), "abcdd".toCharArray()));
assertEquals(-1, indexOf("abc".toCharArray(), "xxabcxx".toCharArray(), 0, 3));
assertEquals(-1, indexOf("abc".toCharArray(), "xxabcxx".toCharArray(), 3, 6));
assertEquals(2, indexOf("abc".toCharArray(), "xxabcxx".toCharArray(), 0, 5));
assertEquals(0, indexOf("abc".toCharArray(), "abc".toCharArray()));
assertEquals(-1, indexOf("abx".toCharArray(), "abc".toCharArray()));
assertEquals(-1, indexOf("abx".toCharArray(), "abcddd".toCharArray()));
assertEquals(-1, indexOf("abc".toCharArray(), "xxabcxx".toCharArray(), 0, 3, false));
assertEquals(-1, indexOf("abc".toCharArray(), "xxabcxx".toCharArray(), 3, 6, false));
assertEquals(2, indexOf("abc".toCharArray(), "xxabcxx".toCharArray(), 0, 5, false));
assertEquals(0, indexOf("abc".toCharArray(), "abc".toCharArray(), 0, 3, false));
assertEquals(-1, indexOf("abx".toCharArray(), "abc".toCharArray(), 0, 3, false));
assertEquals(-1, indexOf("abx".toCharArray(), "abcddd".toCharArray(), 0, 6, false));
assertEquals(-1, indexOf("abc".toCharArray(), "abc".toCharArray(), 3, 3, false));
}
@Test
public void testIndexOfCharsInChars2() {
char[] array = new char[]{'a', 'b', 'c'};
char[] array2 = new char[]{'a', 'b', 'c', 'a', 'a'};
assertTrue(indexOf(array, array2, -1, array2.length, true) < 0);
}
@Test
public void testIndexOfCharsInChars3() {
char[] array = new char[]{'a', 'b', 'c'};
char[] array2 = new char[]{'a', 'b', 'c', 'a', 'a'};
assertTrue(indexOf(array, array2, -1, array2.length, false) < 0);
}
@Test
public void testNextLineEnd() {
assertEquals(3, nextLineEnd("abc".toCharArray(), 0));
assertEquals(5, nextLineEnd("first\nsecond\nthird".toCharArray(), 0));
assertEquals(12, nextLineEnd("first\nsecond\nthird".toCharArray(), 6));
assertEquals(12, nextLineEnd("first\nsecond\r\nthird".toCharArray(), 6));
assertEquals(19, nextLineEnd("first\nsecond\r\nthird".toCharArray(), 14));
assertEquals(19, nextLineEnd("first\nsecond\r\nthird".toCharArray(), 100));
assertEquals(3, nextLineEnd("abc\n".toCharArray(), 0));
assertEquals(3, nextLineEnd("abc\r\n".toCharArray(), 0));
assertEquals(3, nextLineEnd("abc\r\n".toCharArray(), 3));
assertEquals(3, nextLineEnd("abc\r\n".toCharArray(), 4));
assertEquals(0, nextLineEnd("\nsecond".toCharArray(), 0));
}
@Test
public void testLastIndexOf() {
assertEquals(-1, lastIndexOf('x', "abc"));
assertEquals(1, lastIndexOf('x', "axc"));
assertEquals(3, lastIndexOf('x', "axcxd"));
assertEquals(-1, lastIndexOf('x', "abcxd", 0, 3));
assertEquals(1, lastIndexOf('x', "axcxd", 0, 3));
assertEquals(3, lastIndexOf('x', "axcxd", 0, 4));
assertEquals(5, lastIndexOf('x', "axcbbxd", 2));
assertEquals(-1, lastIndexOf('x', "axcbbxd", 2, 4));
}
}