@Test public void binaryLengthAsUTF8Test() { for (String string : TEST_STRINGS) { Assert.assertEquals(StringUtils.toUtf8(string).length, StringUtils.estimatedBinaryLengthAsUTF8(string)); } }
@Test public void binaryLengthAsUTF8InvalidTest() { // we can fix this but looks trivial case, imho String invalid = "\uD841"; // high only Assert.assertEquals(1, StringUtils.toUtf8(invalid).length); Assert.assertEquals(4, StringUtils.estimatedBinaryLengthAsUTF8(invalid)); invalid = "\uD841\uD841"; // high + high Assert.assertEquals(2, StringUtils.toUtf8(invalid).length); Assert.assertEquals(4, StringUtils.estimatedBinaryLengthAsUTF8(invalid)); invalid = "\uD841\u0050"; // high + char Assert.assertEquals(2, StringUtils.toUtf8(invalid).length); Assert.assertEquals(4, StringUtils.estimatedBinaryLengthAsUTF8(invalid)); invalid = "\uDEE2\uD841"; // low + high Assert.assertEquals(2, StringUtils.toUtf8(invalid).length); Assert.assertEquals(4, StringUtils.estimatedBinaryLengthAsUTF8(invalid)); }
@Override public Long accumulate(Long accumulated, Cursor cursor) { DimensionSelector selector = cursor .getColumnSelectorFactory() .makeDimensionSelector(new DefaultDimensionSpec(columnName, columnName)); if (selector == null) { return accumulated; } long current = accumulated; while (!cursor.isDone()) { final IndexedInts row = selector.getRow(); for (int i = 0, rowSize = row.size(); i < rowSize; ++i) { final String dimVal = selector.lookupName(row.get(i)); if (dimVal != null && !dimVal.isEmpty()) { current += StringUtils.estimatedBinaryLengthAsUTF8(dimVal); } } cursor.advance(); } return current; } }
String value = bitmapIndex.getValue(i); if (value != null) { size += StringUtils.estimatedBinaryLengthAsUTF8(value) * bitmapIndex.getBitmap(bitmapIndex.getIndex(value)).size();
@Override public Long accumulate(Long accumulated, Cursor cursor) { DimensionSelector selector = cursor .getColumnSelectorFactory() .makeDimensionSelector(new DefaultDimensionSpec(columnName, columnName)); if (selector == null) { return accumulated; } long current = accumulated; while (!cursor.isDone()) { final IndexedInts row = selector.getRow(); for (int i = 0, rowSize = row.size(); i < rowSize; ++i) { final String dimVal = selector.lookupName(row.get(i)); if (dimVal != null && !dimVal.isEmpty()) { current += StringUtils.estimatedBinaryLengthAsUTF8(dimVal); } } cursor.advance(); } return current; } }
String value = bitmapIndex.getValue(i); if (value != null) { size += StringUtils.estimatedBinaryLengthAsUTF8(value) * bitmapIndex.getBitmap(bitmapIndex.getIndex(value)).size();