Skip to content

Commit

Permalink
Remove usages of legacy boxing Block.copyPositions from tests
Browse files Browse the repository at this point in the history
  • Loading branch information
sopel39 committed Dec 8, 2017
1 parent 2435895 commit 75a5271
Show file tree
Hide file tree
Showing 13 changed files with 57 additions and 70 deletions.
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
import com.facebook.presto.spi.block.BlockEncoding; import com.facebook.presto.spi.block.BlockEncoding;
import com.facebook.presto.spi.block.DictionaryId; import com.facebook.presto.spi.block.DictionaryId;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.common.primitives.Ints;
import io.airlift.slice.DynamicSliceOutput; import io.airlift.slice.DynamicSliceOutput;
import io.airlift.slice.Slice; import io.airlift.slice.Slice;
import io.airlift.slice.SliceOutput; import io.airlift.slice.SliceOutput;
Expand Down Expand Up @@ -166,20 +165,20 @@ else if (type == MethodHandle.class) {
assertEquals(block.getRetainedSizeInBytes(), retainedSize); assertEquals(block.getRetainedSizeInBytes(), retainedSize);
} }


protected <T> void assertBlockFilteredPositions(T[] expectedValues, Block block, List<Integer> positions) protected <T> void assertBlockFilteredPositions(T[] expectedValues, Block block, int... positions)
{ {
Block filteredBlock = block.copyPositions(positions); Block filteredBlock = block.copyPositions(positions, 0, positions.length);
T[] filteredExpectedValues = filter(expectedValues, positions); T[] filteredExpectedValues = filter(expectedValues, positions);
assertEquals(filteredBlock.getPositionCount(), positions.size()); assertEquals(filteredBlock.getPositionCount(), positions.length);
assertBlock(filteredBlock, filteredExpectedValues); assertBlock(filteredBlock, filteredExpectedValues);
} }


private static <T> T[] filter(T[] expectedValues, List<Integer> positions) private static <T> T[] filter(T[] expectedValues, int[] positions)
{ {
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
T[] prunedExpectedValues = (T[]) Array.newInstance(expectedValues.getClass().getComponentType(), positions.size()); T[] prunedExpectedValues = (T[]) Array.newInstance(expectedValues.getClass().getComponentType(), positions.length);
for (int i = 0; i < prunedExpectedValues.length; i++) { for (int i = 0; i < prunedExpectedValues.length; i++) {
prunedExpectedValues[i] = expectedValues[positions.get(i)]; prunedExpectedValues[i] = expectedValues[positions[i]];
} }
return prunedExpectedValues; return prunedExpectedValues;
} }
Expand Down Expand Up @@ -236,7 +235,7 @@ protected <T> void assertBlockPosition(Block block, int position, T expectedValu
assertPositionValue(block.copyRegion(position, 1), 0, expectedValue); assertPositionValue(block.copyRegion(position, 1), 0, expectedValue);
assertPositionValue(block.copyRegion(0, position + 1), position, expectedValue); assertPositionValue(block.copyRegion(0, position + 1), position, expectedValue);
assertPositionValue(block.copyRegion(position, block.getPositionCount() - position), 0, expectedValue); assertPositionValue(block.copyRegion(position, block.getPositionCount() - position), 0, expectedValue);
assertPositionValue(block.copyPositions(Ints.asList(position)), 0, expectedValue); assertPositionValue(block.copyPositions(new int[] {position}, 0, 1), 0, expectedValue);
} }


protected <T> void assertPositionValue(Block block, int position, T expectedValue) protected <T> void assertPositionValue(Block block, int position, T expectedValue)
Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
import com.facebook.presto.spi.block.ArrayBlockBuilder; import com.facebook.presto.spi.block.ArrayBlockBuilder;
import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.block.BlockBuilder;
import com.facebook.presto.spi.block.BlockBuilderStatus; import com.facebook.presto.spi.block.BlockBuilderStatus;
import com.google.common.primitives.Ints;
import io.airlift.slice.Slice; import io.airlift.slice.Slice;
import io.airlift.slice.Slices; import io.airlift.slice.Slices;
import org.testng.annotations.Test; import org.testng.annotations.Test;
Expand Down Expand Up @@ -44,14 +43,14 @@ public void testWithFixedWidthBlock()
BlockBuilder blockBuilder = createBlockBuilderWithValues(expectedValues); BlockBuilder blockBuilder = createBlockBuilderWithValues(expectedValues);
assertBlock(blockBuilder, expectedValues); assertBlock(blockBuilder, expectedValues);
assertBlock(blockBuilder.build(), expectedValues); assertBlock(blockBuilder.build(), expectedValues);
assertBlockFilteredPositions(expectedValues, blockBuilder.build(), Ints.asList(0, 1, 3, 4, 7)); assertBlockFilteredPositions(expectedValues, blockBuilder.build(), 0, 1, 3, 4, 7);
assertBlockFilteredPositions(expectedValues, blockBuilder.build(), Ints.asList(2, 3, 5, 6)); assertBlockFilteredPositions(expectedValues, blockBuilder.build(), 2, 3, 5, 6);
long[][] expectedValuesWithNull = (long[][]) alternatingNullValues(expectedValues); long[][] expectedValuesWithNull = (long[][]) alternatingNullValues(expectedValues);
BlockBuilder blockBuilderWithNull = createBlockBuilderWithValues(expectedValuesWithNull); BlockBuilder blockBuilderWithNull = createBlockBuilderWithValues(expectedValuesWithNull);
assertBlock(blockBuilderWithNull, expectedValuesWithNull); assertBlock(blockBuilderWithNull, expectedValuesWithNull);
assertBlock(blockBuilderWithNull.build(), expectedValuesWithNull); assertBlock(blockBuilderWithNull.build(), expectedValuesWithNull);
assertBlockFilteredPositions(expectedValuesWithNull, blockBuilderWithNull.build(), Ints.asList(0, 1, 5, 6, 7, 10, 11, 12, 15)); assertBlockFilteredPositions(expectedValuesWithNull, blockBuilderWithNull.build(), 0, 1, 5, 6, 7, 10, 11, 12, 15);
assertBlockFilteredPositions(expectedValuesWithNull, blockBuilderWithNull.build(), Ints.asList(2, 3, 4, 9, 13, 14)); assertBlockFilteredPositions(expectedValuesWithNull, blockBuilderWithNull.build(), 2, 3, 4, 9, 13, 14);
} }


@Test @Test
Expand All @@ -67,14 +66,14 @@ public void testWithVariableWidthBlock()
BlockBuilder blockBuilder = createBlockBuilderWithValues(expectedValues); BlockBuilder blockBuilder = createBlockBuilderWithValues(expectedValues);
assertBlock(blockBuilder, expectedValues); assertBlock(blockBuilder, expectedValues);
assertBlock(blockBuilder.build(), expectedValues); assertBlock(blockBuilder.build(), expectedValues);
assertBlockFilteredPositions(expectedValues, blockBuilder.build(), Ints.asList(0, 1, 3, 4, 7)); assertBlockFilteredPositions(expectedValues, blockBuilder.build(), 0, 1, 3, 4, 7);
assertBlockFilteredPositions(expectedValues, blockBuilder.build(), Ints.asList(2, 3, 5, 6)); assertBlockFilteredPositions(expectedValues, blockBuilder.build(), 2, 3, 5, 6);
Slice[][] expectedValuesWithNull = (Slice[][]) alternatingNullValues(expectedValues); Slice[][] expectedValuesWithNull = (Slice[][]) alternatingNullValues(expectedValues);
BlockBuilder blockBuilderWithNull = createBlockBuilderWithValues(expectedValuesWithNull); BlockBuilder blockBuilderWithNull = createBlockBuilderWithValues(expectedValuesWithNull);
assertBlock(blockBuilderWithNull, expectedValuesWithNull); assertBlock(blockBuilderWithNull, expectedValuesWithNull);
assertBlock(blockBuilderWithNull.build(), expectedValuesWithNull); assertBlock(blockBuilderWithNull.build(), expectedValuesWithNull);
assertBlockFilteredPositions(expectedValuesWithNull, blockBuilderWithNull.build(), Ints.asList(0, 1, 5, 6, 7, 10, 11, 12, 15)); assertBlockFilteredPositions(expectedValuesWithNull, blockBuilderWithNull.build(), 0, 1, 5, 6, 7, 10, 11, 12, 15);
assertBlockFilteredPositions(expectedValuesWithNull, blockBuilderWithNull.build(), Ints.asList(2, 3, 4, 9, 13, 14)); assertBlockFilteredPositions(expectedValuesWithNull, blockBuilderWithNull.build(), 2, 3, 4, 9, 13, 14);
} }


@Test @Test
Expand All @@ -95,14 +94,14 @@ public void testWithArrayBlock()
BlockBuilder blockBuilder = createBlockBuilderWithValues(expectedValues); BlockBuilder blockBuilder = createBlockBuilderWithValues(expectedValues);
assertBlock(blockBuilder, expectedValues); assertBlock(blockBuilder, expectedValues);
assertBlock(blockBuilder.build(), expectedValues); assertBlock(blockBuilder.build(), expectedValues);
assertBlockFilteredPositions(expectedValues, blockBuilder.build(), Ints.asList(0, 1, 3, 4, 7)); assertBlockFilteredPositions(expectedValues, blockBuilder.build(), 0, 1, 3, 4, 7);
assertBlockFilteredPositions(expectedValues, blockBuilder.build(), Ints.asList(2, 3, 5, 6)); assertBlockFilteredPositions(expectedValues, blockBuilder.build(), 2, 3, 5, 6);
long[][][] expectedValuesWithNull = (long[][][]) alternatingNullValues(expectedValues); long[][][] expectedValuesWithNull = (long[][][]) alternatingNullValues(expectedValues);
BlockBuilder blockBuilderWithNull = createBlockBuilderWithValues(expectedValuesWithNull); BlockBuilder blockBuilderWithNull = createBlockBuilderWithValues(expectedValuesWithNull);
assertBlock(blockBuilderWithNull, expectedValuesWithNull); assertBlock(blockBuilderWithNull, expectedValuesWithNull);
assertBlock(blockBuilderWithNull.build(), expectedValuesWithNull); assertBlock(blockBuilderWithNull.build(), expectedValuesWithNull);
assertBlockFilteredPositions(expectedValuesWithNull, blockBuilderWithNull.build(), Ints.asList(0, 1, 5, 6, 7, 10, 11, 12, 15)); assertBlockFilteredPositions(expectedValuesWithNull, blockBuilderWithNull.build(), 0, 1, 5, 6, 7, 10, 11, 12, 15);
assertBlockFilteredPositions(expectedValuesWithNull, blockBuilderWithNull.build(), Ints.asList(2, 3, 4, 9, 13, 14)); assertBlockFilteredPositions(expectedValuesWithNull, blockBuilderWithNull.build(), 2, 3, 4, 9, 13, 14);
} }


@Test @Test
Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.block.BlockBuilder;
import com.facebook.presto.spi.block.BlockBuilderStatus; import com.facebook.presto.spi.block.BlockBuilderStatus;
import com.facebook.presto.spi.block.ByteArrayBlockBuilder; import com.facebook.presto.spi.block.ByteArrayBlockBuilder;
import com.google.common.primitives.Ints;
import io.airlift.slice.Slice; import io.airlift.slice.Slice;
import io.airlift.slice.Slices; import io.airlift.slice.Slices;
import org.testng.annotations.Test; import org.testng.annotations.Test;
Expand All @@ -41,7 +40,7 @@ public void testCopyPositions()
{ {
Slice[] expectedValues = (Slice[]) alternatingNullValues(createTestValue(17)); Slice[] expectedValues = (Slice[]) alternatingNullValues(createTestValue(17));
BlockBuilder blockBuilder = createBlockBuilderWithValues(expectedValues); BlockBuilder blockBuilder = createBlockBuilderWithValues(expectedValues);
assertBlockFilteredPositions(expectedValues, blockBuilder.build(), Ints.asList(0, 2, 4, 6, 7, 9, 10, 16)); assertBlockFilteredPositions(expectedValues, blockBuilder.build(), 0, 2, 4, 6, 7, 9, 10, 16);
} }


@Test @Test
Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -18,12 +18,9 @@
import com.facebook.presto.spi.block.DictionaryId; import com.facebook.presto.spi.block.DictionaryId;
import com.facebook.presto.spi.block.SliceArrayBlock; import com.facebook.presto.spi.block.SliceArrayBlock;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.common.primitives.Ints;
import io.airlift.slice.Slice; import io.airlift.slice.Slice;
import org.testng.annotations.Test; import org.testng.annotations.Test;


import java.util.List;

import static io.airlift.slice.SizeOf.SIZE_OF_INT; import static io.airlift.slice.SizeOf.SIZE_OF_INT;
import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertFalse;
Expand Down Expand Up @@ -62,11 +59,11 @@ public void testCopyPositionsWithCompaction()
Slice firstExpectedValue = expectedValues[0]; Slice firstExpectedValue = expectedValues[0];
DictionaryBlock dictionaryBlock = createDictionaryBlock(expectedValues, 100); DictionaryBlock dictionaryBlock = createDictionaryBlock(expectedValues, 100);


List<Integer> positionsToCopy = Ints.asList(0, 10, 20, 30, 40); int[] positionsToCopy = new int[] {0, 10, 20, 30, 40};
DictionaryBlock copiedBlock = (DictionaryBlock) dictionaryBlock.copyPositions(positionsToCopy); DictionaryBlock copiedBlock = (DictionaryBlock) dictionaryBlock.copyPositions(positionsToCopy, 0, positionsToCopy.length);


assertEquals(copiedBlock.getDictionary().getPositionCount(), 1); assertEquals(copiedBlock.getDictionary().getPositionCount(), 1);
assertEquals(copiedBlock.getPositionCount(), positionsToCopy.size()); assertEquals(copiedBlock.getPositionCount(), positionsToCopy.length);
assertBlock(copiedBlock.getDictionary(), new Slice[] {firstExpectedValue}); assertBlock(copiedBlock.getDictionary(), new Slice[] {firstExpectedValue});
assertBlock(copiedBlock, new Slice[] {firstExpectedValue, firstExpectedValue, firstExpectedValue, firstExpectedValue, firstExpectedValue}); assertBlock(copiedBlock, new Slice[] {firstExpectedValue, firstExpectedValue, firstExpectedValue, firstExpectedValue, firstExpectedValue});
} }
Expand All @@ -77,12 +74,12 @@ public void testCopyPositionsWithCompactionsAndReorder()
{ {
Slice[] expectedValues = createExpectedValues(10); Slice[] expectedValues = createExpectedValues(10);
DictionaryBlock dictionaryBlock = createDictionaryBlock(expectedValues, 100); DictionaryBlock dictionaryBlock = createDictionaryBlock(expectedValues, 100);
List<Integer> positionsToCopy = Ints.asList(50, 55, 40, 45, 60); int[] positionsToCopy = new int[] {50, 55, 40, 45, 60};


DictionaryBlock copiedBlock = (DictionaryBlock) dictionaryBlock.copyPositions(positionsToCopy); DictionaryBlock copiedBlock = (DictionaryBlock) dictionaryBlock.copyPositions(positionsToCopy, 0, positionsToCopy.length);


assertEquals(copiedBlock.getDictionary().getPositionCount(), 2); assertEquals(copiedBlock.getDictionary().getPositionCount(), 2);
assertEquals(copiedBlock.getPositionCount(), positionsToCopy.size()); assertEquals(copiedBlock.getPositionCount(), positionsToCopy.length);


assertBlock(copiedBlock.getDictionary(), new Slice[] {expectedValues[0], expectedValues[5]}); assertBlock(copiedBlock.getDictionary(), new Slice[] {expectedValues[0], expectedValues[5]});
assertDictionaryIds(copiedBlock, 0, 1, 0, 1, 0); assertDictionaryIds(copiedBlock, 0, 1, 0, 1, 0);
Expand All @@ -94,12 +91,12 @@ public void testCopyPositionsSamePosition()
{ {
Slice[] expectedValues = createExpectedValues(10); Slice[] expectedValues = createExpectedValues(10);
DictionaryBlock dictionaryBlock = createDictionaryBlock(expectedValues, 100); DictionaryBlock dictionaryBlock = createDictionaryBlock(expectedValues, 100);
List<Integer> positionsToCopy = Ints.asList(52, 52, 52); int[] positionsToCopy = new int[] {52, 52, 52};


DictionaryBlock copiedBlock = (DictionaryBlock) dictionaryBlock.copyPositions(positionsToCopy); DictionaryBlock copiedBlock = (DictionaryBlock) dictionaryBlock.copyPositions(positionsToCopy, 0, positionsToCopy.length);


assertEquals(copiedBlock.getDictionary().getPositionCount(), 1); assertEquals(copiedBlock.getDictionary().getPositionCount(), 1);
assertEquals(copiedBlock.getPositionCount(), positionsToCopy.size()); assertEquals(copiedBlock.getPositionCount(), positionsToCopy.length);


assertBlock(copiedBlock.getDictionary(), new Slice[] {expectedValues[2]}); assertBlock(copiedBlock.getDictionary(), new Slice[] {expectedValues[2]});
assertDictionaryIds(copiedBlock, 0, 0, 0); assertDictionaryIds(copiedBlock, 0, 0, 0);
Expand All @@ -112,10 +109,10 @@ public void testCopyPositionsNoCompaction()
Slice[] expectedValues = createExpectedValues(1); Slice[] expectedValues = createExpectedValues(1);
DictionaryBlock dictionaryBlock = createDictionaryBlock(expectedValues, 100); DictionaryBlock dictionaryBlock = createDictionaryBlock(expectedValues, 100);


List<Integer> positionsToCopy = Ints.asList(0, 2, 4, 5); int[] positionsToCopy = new int[] {0, 2, 4, 5};
DictionaryBlock copiedBlock = (DictionaryBlock) dictionaryBlock.copyPositions(positionsToCopy); DictionaryBlock copiedBlock = (DictionaryBlock) dictionaryBlock.copyPositions(positionsToCopy, 0, positionsToCopy.length);


assertEquals(copiedBlock.getPositionCount(), positionsToCopy.size()); assertEquals(copiedBlock.getPositionCount(), positionsToCopy.length);
assertBlock(copiedBlock.getDictionary(), expectedValues); assertBlock(copiedBlock.getDictionary(), expectedValues);
} }


Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.block.BlockBuilder;
import com.facebook.presto.spi.block.BlockBuilderStatus; import com.facebook.presto.spi.block.BlockBuilderStatus;
import com.facebook.presto.spi.block.FixedWidthBlockBuilder; import com.facebook.presto.spi.block.FixedWidthBlockBuilder;
import com.google.common.primitives.Ints;
import io.airlift.slice.Slice; import io.airlift.slice.Slice;
import org.testng.annotations.Test; import org.testng.annotations.Test;


Expand All @@ -43,7 +42,7 @@ public void testCopyPositions()
for (int fixedSize = 0; fixedSize < 20; fixedSize++) { for (int fixedSize = 0; fixedSize < 20; fixedSize++) {
Slice[] expectedValues = (Slice[]) alternatingNullValues(createExpectedValues(17, fixedSize)); Slice[] expectedValues = (Slice[]) alternatingNullValues(createExpectedValues(17, fixedSize));
BlockBuilder blockBuilder = createBlockBuilderWithValues(expectedValues, fixedSize); BlockBuilder blockBuilder = createBlockBuilderWithValues(expectedValues, fixedSize);
assertBlockFilteredPositions(expectedValues, blockBuilder.build(), Ints.asList(0, 2, 4, 6, 7, 9, 10, 16)); assertBlockFilteredPositions(expectedValues, blockBuilder.build(), 0, 2, 4, 6, 7, 9, 10, 16);
} }
} }


Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.block.BlockBuilder;
import com.facebook.presto.spi.block.BlockBuilderStatus; import com.facebook.presto.spi.block.BlockBuilderStatus;
import com.facebook.presto.spi.block.IntArrayBlockBuilder; import com.facebook.presto.spi.block.IntArrayBlockBuilder;
import com.google.common.primitives.Ints;
import io.airlift.slice.Slice; import io.airlift.slice.Slice;
import org.testng.annotations.Test; import org.testng.annotations.Test;


Expand All @@ -41,7 +40,7 @@ public void testCopyPositions()
{ {
Slice[] expectedValues = (Slice[]) alternatingNullValues(createTestValue(17)); Slice[] expectedValues = (Slice[]) alternatingNullValues(createTestValue(17));
BlockBuilder blockBuilder = createBlockBuilderWithValues(expectedValues); BlockBuilder blockBuilder = createBlockBuilderWithValues(expectedValues);
assertBlockFilteredPositions(expectedValues, blockBuilder.build(), Ints.asList(0, 2, 4, 6, 7, 9, 10, 16)); assertBlockFilteredPositions(expectedValues, blockBuilder.build(), 0, 2, 4, 6, 7, 9, 10, 16);
} }


@Test @Test
Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
import com.facebook.presto.spi.block.BlockBuilderStatus; import com.facebook.presto.spi.block.BlockBuilderStatus;
import com.facebook.presto.spi.block.LongArrayBlockBuilder; import com.facebook.presto.spi.block.LongArrayBlockBuilder;
import com.facebook.presto.spi.block.VariableWidthBlockBuilder; import com.facebook.presto.spi.block.VariableWidthBlockBuilder;
import com.google.common.primitives.Ints;
import io.airlift.slice.Slice; import io.airlift.slice.Slice;
import org.testng.annotations.Test; import org.testng.annotations.Test;


Expand All @@ -42,7 +41,7 @@ public void testCopyPositions()
{ {
Slice[] expectedValues = (Slice[]) alternatingNullValues(createTestValue(17)); Slice[] expectedValues = (Slice[]) alternatingNullValues(createTestValue(17));
BlockBuilder blockBuilder = createBlockBuilderWithValues(expectedValues); BlockBuilder blockBuilder = createBlockBuilderWithValues(expectedValues);
assertBlockFilteredPositions(expectedValues, blockBuilder.build(), Ints.asList(0, 2, 4, 6, 7, 9, 10, 16)); assertBlockFilteredPositions(expectedValues, blockBuilder.build(), 0, 2, 4, 6, 7, 9, 10, 16);
} }


@Test @Test
Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
import com.facebook.presto.spi.block.BlockBuilderStatus; import com.facebook.presto.spi.block.BlockBuilderStatus;
import com.facebook.presto.spi.block.SingleMapBlock; import com.facebook.presto.spi.block.SingleMapBlock;
import com.facebook.presto.spi.type.MapType; import com.facebook.presto.spi.type.MapType;
import com.google.common.primitives.Ints;
import org.testng.annotations.Test; import org.testng.annotations.Test;


import java.util.ArrayList; import java.util.ArrayList;
Expand Down Expand Up @@ -68,32 +67,32 @@ private void testWith(Map<String, Long>[] expectedValues)


assertBlock(blockBuilder, expectedValues); assertBlock(blockBuilder, expectedValues);
assertBlock(blockBuilder.build(), expectedValues); assertBlock(blockBuilder.build(), expectedValues);
assertBlockFilteredPositions(expectedValues, blockBuilder, Ints.asList(0, 1, 3, 4, 7)); assertBlockFilteredPositions(expectedValues, blockBuilder, 0, 1, 3, 4, 7);
assertBlockFilteredPositions(expectedValues, blockBuilder.build(), Ints.asList(0, 1, 3, 4, 7)); assertBlockFilteredPositions(expectedValues, blockBuilder.build(), 0, 1, 3, 4, 7);
assertBlockFilteredPositions(expectedValues, blockBuilder, Ints.asList(2, 3, 5, 6)); assertBlockFilteredPositions(expectedValues, blockBuilder, 2, 3, 5, 6);
assertBlockFilteredPositions(expectedValues, blockBuilder.build(), Ints.asList(2, 3, 5, 6)); assertBlockFilteredPositions(expectedValues, blockBuilder.build(), 2, 3, 5, 6);


Block block = createBlockWithValuesFromKeyValueBlock(expectedValues); Block block = createBlockWithValuesFromKeyValueBlock(expectedValues);


assertBlock(block, expectedValues); assertBlock(block, expectedValues);
assertBlockFilteredPositions(expectedValues, block, Ints.asList(0, 1, 3, 4, 7)); assertBlockFilteredPositions(expectedValues, block, 0, 1, 3, 4, 7);
assertBlockFilteredPositions(expectedValues, block, Ints.asList(2, 3, 5, 6)); assertBlockFilteredPositions(expectedValues, block, 2, 3, 5, 6);


Map<String, Long>[] expectedValuesWithNull = (Map<String, Long>[]) alternatingNullValues(expectedValues); Map<String, Long>[] expectedValuesWithNull = (Map<String, Long>[]) alternatingNullValues(expectedValues);
BlockBuilder blockBuilderWithNull = createBlockBuilderWithValues(expectedValuesWithNull); BlockBuilder blockBuilderWithNull = createBlockBuilderWithValues(expectedValuesWithNull);


assertBlock(blockBuilderWithNull, expectedValuesWithNull); assertBlock(blockBuilderWithNull, expectedValuesWithNull);
assertBlock(blockBuilderWithNull.build(), expectedValuesWithNull); assertBlock(blockBuilderWithNull.build(), expectedValuesWithNull);
assertBlockFilteredPositions(expectedValuesWithNull, blockBuilderWithNull, Ints.asList(0, 1, 5, 6, 7, 10, 11, 12, 15)); assertBlockFilteredPositions(expectedValuesWithNull, blockBuilderWithNull, 0, 1, 5, 6, 7, 10, 11, 12, 15);
assertBlockFilteredPositions(expectedValuesWithNull, blockBuilderWithNull.build(), Ints.asList(0, 1, 5, 6, 7, 10, 11, 12, 15)); assertBlockFilteredPositions(expectedValuesWithNull, blockBuilderWithNull.build(), 0, 1, 5, 6, 7, 10, 11, 12, 15);
assertBlockFilteredPositions(expectedValuesWithNull, blockBuilderWithNull, Ints.asList(2, 3, 4, 9, 13, 14)); assertBlockFilteredPositions(expectedValuesWithNull, blockBuilderWithNull, 2, 3, 4, 9, 13, 14);
assertBlockFilteredPositions(expectedValuesWithNull, blockBuilderWithNull.build(), Ints.asList(2, 3, 4, 9, 13, 14)); assertBlockFilteredPositions(expectedValuesWithNull, blockBuilderWithNull.build(), 2, 3, 4, 9, 13, 14);


Block blockWithNull = createBlockWithValuesFromKeyValueBlock(expectedValuesWithNull); Block blockWithNull = createBlockWithValuesFromKeyValueBlock(expectedValuesWithNull);


assertBlock(blockWithNull, expectedValuesWithNull); assertBlock(blockWithNull, expectedValuesWithNull);
assertBlockFilteredPositions(expectedValuesWithNull, blockWithNull, Ints.asList(0, 1, 5, 6, 7, 10, 11, 12, 15)); assertBlockFilteredPositions(expectedValuesWithNull, blockWithNull, 0, 1, 5, 6, 7, 10, 11, 12, 15);
assertBlockFilteredPositions(expectedValuesWithNull, blockWithNull, Ints.asList(2, 3, 4, 9, 13, 14)); assertBlockFilteredPositions(expectedValuesWithNull, blockWithNull, 2, 3, 4, 9, 13, 14);
} }


private BlockBuilder createBlockBuilderWithValues(Map<String, Long>[] maps) private BlockBuilder createBlockBuilderWithValues(Map<String, Long>[] maps)
Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import com.facebook.presto.spi.block.SingleRowBlock; import com.facebook.presto.spi.block.SingleRowBlock;
import com.facebook.presto.spi.type.Type; import com.facebook.presto.spi.type.Type;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import it.unimi.dsi.fastutil.ints.IntArrayList;
import org.testng.annotations.Test; import org.testng.annotations.Test;


import java.util.ArrayList; import java.util.ArrayList;
Expand Down Expand Up @@ -56,9 +57,9 @@ private void testWith(List<Type> fieldTypes, List<Object>[] expectedValues)
assertBlock(blockBuilder, expectedValues); assertBlock(blockBuilder, expectedValues);
assertBlock(blockBuilder.build(), expectedValues); assertBlock(blockBuilder.build(), expectedValues);


List<Integer> positionList = generatePositionList(expectedValues.length, expectedValues.length / 2); IntArrayList positionList = generatePositionList(expectedValues.length, expectedValues.length / 2);
assertBlockFilteredPositions(expectedValues, blockBuilder, positionList); assertBlockFilteredPositions(expectedValues, blockBuilder, positionList.toIntArray());
assertBlockFilteredPositions(expectedValues, blockBuilder.build(), positionList); assertBlockFilteredPositions(expectedValues, blockBuilder.build(), positionList.toIntArray());
} }


private BlockBuilder createBlockBuilderWithValues(List<Type> fieldTypes, List<Object>[] rows) private BlockBuilder createBlockBuilderWithValues(List<Type> fieldTypes, List<Object>[] rows)
Expand Down Expand Up @@ -158,9 +159,9 @@ else if (fieldTypes.get(j) == VARCHAR) {
return testRows; return testRows;
} }


private List<Integer> generatePositionList(int numRows, int numPositions) private IntArrayList generatePositionList(int numRows, int numPositions)
{ {
List<Integer> positions = new ArrayList<>(numPositions); IntArrayList positions = new IntArrayList(numPositions);
for (int i = 0; i < numPositions; i++) { for (int i = 0; i < numPositions; i++) {
positions.add((7 * i + 3) % numRows); positions.add((7 * i + 3) % numRows);
} }
Expand Down
Loading

0 comments on commit 75a5271

Please sign in to comment.