public static byte[] padRight(byte[] bytes, int start, int length, int maxCharacterLength) { final byte[] resultBytes; final int characterLength = StringExpr.characterCount(bytes, start, length); final int blankPadLength = Math.max(maxCharacterLength - characterLength, 0); final int resultLength = length + blankPadLength; resultBytes = new byte[resultLength]; final int resultStart = 0; System.arraycopy(bytes, start, resultBytes, resultStart, length); final int padEnd = resultStart + resultLength; for (int p = resultStart + length; p < padEnd; p++) { resultBytes[p] = ' '; } return resultBytes; }
private int vectorCharacterCount(BytesColumnVector vector, int i) { return StringExpr.characterCount(vector.vector[i], vector.start[i], vector.length[i]); }
public static void padRight(BytesColumnVector outV, int i, byte[] bytes, int start, int length, int maxCharacterLength) { final int characterLength = StringExpr.characterCount(bytes, start, length); final int blankPadLength = Math.max(maxCharacterLength - characterLength, 0); final int resultLength = length + blankPadLength; outV.ensureValPreallocated(resultLength); byte[] resultBytes = outV.getValPreallocatedBytes(); final int resultStart = outV.getValPreallocatedStart(); System.arraycopy(bytes, start, resultBytes, resultStart, length); final int padEnd = resultStart + resultLength; for (int p = resultStart + length; p < padEnd; p++) { resultBytes[p] = ' '; } outV.setValPreallocated(i, resultLength); }
Assert.assertTrue(StringExpr.characterCount(blue, 0, blue.length) == 4); resultLen = StringExpr.truncate(blue, 0, blue.length, largeMaxLength); Assert.assertTrue(resultLen == blue.length); Assert.assertTrue(StringExpr.characterCount(blue, 0, resultLen) == 4); Assert.assertTrue(StringExpr.characterCount(redgreen, 0, redgreen.length) == 8); resultLen = StringExpr.truncate(redgreen, 0, redgreen.length, largeMaxLength); Assert.assertTrue(resultLen == redgreen.length); Assert.assertTrue(StringExpr.characterCount(ascii_sentence, 0, ascii_sentence.length) == 31); resultLen = StringExpr.truncate(ascii_sentence, 0, ascii_sentence.length, largeMaxLength); Assert.assertTrue(resultLen == ascii_sentence.length); Assert.assertTrue(StringExpr.characterCount(blanksLeft, 0, blanksLeft.length) == 5); resultLen = StringExpr.truncate(blanksLeft, 0, blanksLeft.length, largeMaxLength); Assert.assertTrue(resultLen == blanksLeft.length); Assert.assertTrue(StringExpr.characterCount(blue, 0, blue.length) == 4); resultLen = StringExpr.truncate(blue, 0, blue.length, 4); Assert.assertTrue(resultLen == blue.length); Assert.assertTrue(StringExpr.characterCount(blue, 0, resultLen) == 4); Assert.assertTrue(StringExpr.characterCount(redgreen, 0, redgreen.length) == 8); resultLen = StringExpr.truncate(redgreen, 0, redgreen.length, 8); Assert.assertTrue(resultLen == redgreen.length); Assert.assertTrue(StringExpr.characterCount(ascii_sentence, 0, ascii_sentence.length) == 31); resultLen = StringExpr.truncate(ascii_sentence, 0, ascii_sentence.length, 31); Assert.assertTrue(resultLen == ascii_sentence.length);
Assert.assertTrue(StringExpr.characterCount(blue, 0, blue.length) == 4); resultLen = StringExpr.rightTrim(blue, 0, blue.length); Assert.assertTrue(resultLen == blue.length); Assert.assertTrue(StringExpr.characterCount(blue, 0, resultLen) == 4); Assert.assertTrue(StringExpr.characterCount(redgreen, 0, redgreen.length) == 8); resultLen = StringExpr.rightTrim(redgreen, 0, redgreen.length); Assert.assertTrue(resultLen == redgreen.length); Assert.assertTrue(StringExpr.characterCount(ascii_sentence, 0, ascii_sentence.length) == 31); resultLen = StringExpr.rightTrim(ascii_sentence, 0, ascii_sentence.length); Assert.assertTrue(resultLen == ascii_sentence.length); Assert.assertTrue(StringExpr.characterCount(blanksLeft, 0, blanksLeft.length) == 5); resultLen = StringExpr.rightTrim(blanksLeft, 0, blanksLeft.length); Assert.assertTrue(resultLen == blanksLeft.length); Assert.assertTrue(StringExpr.characterCount(blanksRight, 0, blanksRight.length) == 5); resultLen = StringExpr.rightTrim(blanksRight, 0, blanksRight.length); Assert.assertTrue(resultLen == 3); Assert.assertTrue(StringExpr.characterCount(blanksRight, 0, resultLen) == 3); Assert.assertTrue(StringExpr.characterCount(blanksBoth, 0, blanksBoth.length) == 7); resultLen = StringExpr.rightTrim(blanksBoth, 0, blanksBoth.length); Assert.assertTrue(resultLen == 5); Assert.assertTrue(StringExpr.characterCount(blanksBoth, 0, resultLen) == 5); Assert.assertTrue(StringExpr.characterCount(blankString, 0, blankString.length) == 2); resultLen = StringExpr.rightTrim(blankString, 0, blankString.length);
Assert.assertTrue(StringExpr.characterCount(blue) == 4); result = StringExpr.truncateScalar(blue, largeMaxLength); Assert.assertTrue(Arrays.equals(blue, result)); Assert.assertTrue(StringExpr.characterCount(redgreen) == 8); result = StringExpr.truncateScalar(redgreen, largeMaxLength); Assert.assertTrue(Arrays.equals(redgreen, result)); Assert.assertTrue(StringExpr.characterCount(ascii_sentence) == 31); result = StringExpr.truncateScalar(ascii_sentence, largeMaxLength); Assert.assertTrue(Arrays.equals(ascii_sentence, result)); Assert.assertTrue(StringExpr.characterCount(blanksLeft) == 5); result = StringExpr.truncateScalar(blanksLeft, largeMaxLength); Assert.assertTrue(Arrays.equals(blanksLeft, result)); Assert.assertTrue(StringExpr.characterCount(blue) == 4); result = StringExpr.truncateScalar(blue, blue.length); Assert.assertTrue(Arrays.equals(blue, result)); Assert.assertTrue(StringExpr.characterCount(redgreen) == 8); result = StringExpr.truncateScalar(redgreen, redgreen.length); Assert.assertTrue(Arrays.equals(redgreen, result)); Assert.assertTrue(StringExpr.characterCount(ascii_sentence) == 31); result = StringExpr.truncateScalar(ascii_sentence, ascii_sentence.length); Assert.assertTrue(Arrays.equals(ascii_sentence, result)); Assert.assertTrue(StringExpr.characterCount(blanksLeft) == 5);
Assert.assertTrue(StringExpr.characterCount(blue) == 4); result = StringExpr.rightTrimAndTruncateScalar(blue, largeMaxLength); Assert.assertTrue(Arrays.equals(blue, result)); Assert.assertTrue(StringExpr.characterCount(redgreen) == 8); result = StringExpr.rightTrimAndTruncateScalar(redgreen, largeMaxLength); Assert.assertTrue(Arrays.equals(redgreen, result)); Assert.assertTrue(StringExpr.characterCount(ascii_sentence) == 31); result = StringExpr.rightTrimAndTruncateScalar(ascii_sentence, largeMaxLength); Assert.assertTrue(Arrays.equals(ascii_sentence, result)); Assert.assertTrue(StringExpr.characterCount(blanksLeft) == 5); result = StringExpr.rightTrimAndTruncateScalar(blanksLeft, largeMaxLength); Assert.assertTrue(Arrays.equals(blanksLeft, result)); Assert.assertTrue(StringExpr.characterCount(blue) == 4); result = StringExpr.rightTrimAndTruncateScalar(blue, blue.length); Assert.assertTrue(Arrays.equals(blue, result)); Assert.assertTrue(StringExpr.characterCount(redgreen) == 8); result = StringExpr.rightTrimAndTruncateScalar(redgreen, redgreen.length); Assert.assertTrue(Arrays.equals(redgreen, result)); Assert.assertTrue(StringExpr.characterCount(ascii_sentence) == 31); result = StringExpr.rightTrimAndTruncateScalar(ascii_sentence, ascii_sentence.length); Assert.assertTrue(Arrays.equals(ascii_sentence, result)); Assert.assertTrue(StringExpr.characterCount(blanksLeft) == 5);
Assert.assertTrue(StringExpr.characterCount(blue, 0, blue.length) == 4); StringExpr.assign(outV, i, blue, 0, blue.length); expectedResultLen = blue.length; Assert.assertTrue(vectorEqual(outV, i, blue, 0, expectedResultLen)); i++; Assert.assertTrue(StringExpr.characterCount(redgreen, 0, redgreen.length) == 8); StringExpr.assign(outV, i, redgreen, 0, redgreen.length); expectedResultLen = redgreen.length; Assert.assertTrue(vectorEqual(outV, i, redgreen, 0, expectedResultLen)); i++; Assert.assertTrue(StringExpr.characterCount(ascii_sentence, 0, ascii_sentence.length) == 31); StringExpr.assign(outV, i, ascii_sentence, 0, ascii_sentence.length); expectedResultLen = ascii_sentence.length; Assert.assertTrue(vectorEqual(outV, i, ascii_sentence, 0, expectedResultLen)); i++; Assert.assertTrue(StringExpr.characterCount(blanksLeft, 0, blanksLeft.length) == 5); StringExpr.assign(outV, i, blanksLeft, 0, blanksLeft.length); expectedResultLen = blanksLeft.length; Assert.assertTrue(StringExpr.characterCount(sentenceBlankRanges, 0, sentenceBlankRangesLen) == 17); StringExpr.assign(outV, i, sentenceBlankRanges, 0, sentenceBlankRangesLen); expectedResultLen = sentenceBlankRangesLen; Assert.assertTrue(vectorEqual(outV, i, sentenceBlankRanges, 0, expectedResultLen)); i++; Assert.assertTrue(StringExpr.characterCount(sentenceBlankRanges, 0, sentenceBlankRangesLen - 3) == 16); StringExpr.assign(outV, i, sentenceBlankRanges, 0, sentenceBlankRangesLen - 3); expectedResultLen = sentenceBlankRangesLen - 3; Assert.assertTrue(StringExpr.characterCount(sentenceBlankRanges, 4, sentenceBlankRangesLen - 4) == 16);
Assert.assertTrue(StringExpr.characterCount(blue, 0, blue.length) == 4); resultLen = StringExpr.rightTrimAndTruncate(blue, 0, blue.length, largeMaxLength); Assert.assertTrue(resultLen == blue.length); Assert.assertTrue(StringExpr.characterCount(blue, 0, resultLen) == 4); Assert.assertTrue(StringExpr.characterCount(redgreen, 0, redgreen.length) == 8); resultLen = StringExpr.rightTrimAndTruncate(redgreen, 0, redgreen.length, largeMaxLength); Assert.assertTrue(resultLen == redgreen.length); Assert.assertTrue(StringExpr.characterCount(ascii_sentence, 0, ascii_sentence.length) == 31); resultLen = StringExpr.rightTrimAndTruncate(ascii_sentence, 0, ascii_sentence.length, largeMaxLength); Assert.assertTrue(resultLen == ascii_sentence.length); Assert.assertTrue(StringExpr.characterCount(blanksLeft, 0, blanksLeft.length) == 5); resultLen = StringExpr.rightTrimAndTruncate(blanksLeft, 0, blanksLeft.length, largeMaxLength); Assert.assertTrue(resultLen == blanksLeft.length); Assert.assertTrue(StringExpr.characterCount(blanksRight, 0, blanksRight.length) == 5); resultLen = StringExpr.rightTrimAndTruncate(blanksRight, 0, blanksRight.length, largeMaxLength); Assert.assertTrue(resultLen == 3); Assert.assertTrue(StringExpr.characterCount(blanksRight, 0, resultLen) == 3); Assert.assertTrue(StringExpr.characterCount(blanksBoth, 0, blanksBoth.length) == 7); resultLen = StringExpr.rightTrimAndTruncate(blanksBoth, 0, blanksBoth.length, largeMaxLength); Assert.assertTrue(resultLen == 5); Assert.assertTrue(StringExpr.characterCount(blanksBoth, 0, resultLen) == 5); Assert.assertTrue(StringExpr.characterCount(blankString, 0, blankString.length) == 2); resultLen = StringExpr.rightTrimAndTruncate(blankString, 0, blankString.length, largeMaxLength);
Assert.assertTrue(StringExpr.characterCount(blue, 0, blue.length) == 4); StringExpr.rightTrim(outV, i, blue, 0, blue.length); expectedResultLen = blue.length; Assert.assertTrue(vectorCharacterCount(outV, i) == 4); i++; Assert.assertTrue(StringExpr.characterCount(redgreen, 0, redgreen.length) == 8); StringExpr.rightTrim(outV, i, redgreen, 0, redgreen.length); expectedResultLen = redgreen.length; Assert.assertTrue(vectorEqual(outV, i, redgreen, 0, expectedResultLen)); i++; Assert.assertTrue(StringExpr.characterCount(ascii_sentence, 0, ascii_sentence.length) == 31); StringExpr.rightTrim(outV, i, ascii_sentence, 0, ascii_sentence.length); expectedResultLen = ascii_sentence.length; Assert.assertTrue(vectorEqual(outV, i, ascii_sentence, 0, expectedResultLen)); i++; Assert.assertTrue(StringExpr.characterCount(blanksLeft, 0, blanksLeft.length) == 5); StringExpr.rightTrim(outV, i, blanksLeft, 0, blanksLeft.length); expectedResultLen = blanksLeft.length; Assert.assertTrue(StringExpr.characterCount(blanksRight, 0, blanksRight.length) == 5); StringExpr.rightTrim(outV, i, blanksRight, 0, blanksRight.length); expectedResultLen = 3; Assert.assertTrue(vectorCharacterCount(outV, i) == 3); i++; Assert.assertTrue(StringExpr.characterCount(blanksBoth, 0, blanksBoth.length) == 7); StringExpr.rightTrim(outV, i, blanksBoth, 0, blanksBoth.length); expectedResultLen = 5;
Assert.assertTrue(StringExpr.characterCount(blue, 0, blue.length) == 4); StringExpr.truncate(outV, i, blue, 0, blue.length, largeMaxLength); expectedResultLen = blue.length; Assert.assertTrue(vectorCharacterCount(outV, i) == 4); i++; Assert.assertTrue(StringExpr.characterCount(redgreen, 0, redgreen.length) == 8); StringExpr.truncate(outV, i, redgreen, 0, redgreen.length, largeMaxLength); expectedResultLen = redgreen.length; Assert.assertTrue(vectorEqual(outV, i, redgreen, 0, expectedResultLen)); i++; Assert.assertTrue(StringExpr.characterCount(ascii_sentence, 0, ascii_sentence.length) == 31); StringExpr.truncate(outV, i, ascii_sentence, 0, ascii_sentence.length, largeMaxLength); expectedResultLen = ascii_sentence.length; Assert.assertTrue(vectorEqual(outV, i, ascii_sentence, 0, expectedResultLen)); i++; Assert.assertTrue(StringExpr.characterCount(blanksLeft, 0, blanksLeft.length) == 5); StringExpr.truncate(outV, i, blanksLeft, 0, blanksLeft.length, largeMaxLength); expectedResultLen = blanksLeft.length; Assert.assertTrue(StringExpr.characterCount(blue, 0, blue.length) == 4); StringExpr.truncate(outV, i, blue, 0, blue.length, 4); expectedResultLen = blue.length; Assert.assertTrue(vectorCharacterCount(outV, i) == 4); i++; Assert.assertTrue(StringExpr.characterCount(redgreen, 0, redgreen.length) == 8); StringExpr.truncate(outV, i, redgreen, 0, redgreen.length, 8); expectedResultLen = redgreen.length;
Assert.assertTrue(StringExpr.characterCount(blue, 0, blue.length) == 4); StringExpr.rightTrimAndTruncate(outV, i, blue, 0, blue.length, largeMaxLength); expectedResultLen = blue.length; Assert.assertTrue(vectorEqual(outV, i, blue, 0, expectedResultLen)); i++; Assert.assertTrue(StringExpr.characterCount(redgreen, 0, redgreen.length) == 8); StringExpr.rightTrimAndTruncate(outV, i, redgreen, 0, redgreen.length, largeMaxLength); expectedResultLen = redgreen.length; Assert.assertTrue(vectorEqual(outV, i, redgreen, 0, expectedResultLen)); i++; Assert.assertTrue(StringExpr.characterCount(ascii_sentence, 0, ascii_sentence.length) == 31); StringExpr.rightTrimAndTruncate(outV, i, ascii_sentence, 0, ascii_sentence.length, largeMaxLength); expectedResultLen = ascii_sentence.length; Assert.assertTrue(vectorEqual(outV, i, ascii_sentence, 0, expectedResultLen)); i++; Assert.assertTrue(StringExpr.characterCount(blanksLeft, 0, blanksLeft.length) == 5); StringExpr.rightTrimAndTruncate(outV, i, blanksLeft, 0, blanksLeft.length, largeMaxLength); expectedResultLen = blanksLeft.length; Assert.assertTrue(StringExpr.characterCount(blanksRight, 0, blanksRight.length) == 5); StringExpr.rightTrimAndTruncate(outV, i, blanksRight, 0, blanksRight.length, largeMaxLength); expectedResultLen = 3; Assert.assertTrue(vectorCharacterCount(outV, i) == 3); i++; Assert.assertTrue(StringExpr.characterCount(blanksBoth, 0, blanksBoth.length) == 7); StringExpr.rightTrimAndTruncate(outV, i, blanksBoth, 0, blanksBoth.length, largeMaxLength); expectedResultLen = 5;