|
@@ -52,7 +52,8 @@ public class BooleanBlockEqualityTests extends ESTestCase {
|
|
|
blockFactory.newConstantBooleanBlockWith(randomBoolean(), 0),
|
|
|
blockFactory.newBooleanBlockBuilder(0).build(),
|
|
|
blockFactory.newBooleanBlockBuilder(0).appendBoolean(randomBoolean()).build().filter(),
|
|
|
- blockFactory.newBooleanBlockBuilder(0).appendNull().build().filter()
|
|
|
+ blockFactory.newBooleanBlockBuilder(0).appendNull().build().filter(),
|
|
|
+ (ConstantNullBlock) blockFactory.newConstantNullBlock(0)
|
|
|
);
|
|
|
assertAllEquals(blocks);
|
|
|
}
|
|
@@ -252,6 +253,28 @@ public class BooleanBlockEqualityTests extends ESTestCase {
|
|
|
assertAllNotEquals(notEqualBlocks);
|
|
|
}
|
|
|
|
|
|
+ public void testSimpleBlockWithManyNulls() {
|
|
|
+ int positions = randomIntBetween(1, 256);
|
|
|
+ boolean grow = randomBoolean();
|
|
|
+ BooleanBlock.Builder builder1 = blockFactory.newBooleanBlockBuilder(grow ? 0 : positions);
|
|
|
+ BooleanBlock.Builder builder2 = blockFactory.newBooleanBlockBuilder(grow ? 0 : positions);
|
|
|
+ ConstantNullBlock.Builder builder3 = new ConstantNullBlock.Builder(blockFactory);
|
|
|
+ for (int p = 0; p < positions; p++) {
|
|
|
+ builder1.appendNull();
|
|
|
+ builder2.appendNull();
|
|
|
+ builder3.appendNull();
|
|
|
+ }
|
|
|
+ BooleanBlock block1 = builder1.build();
|
|
|
+ BooleanBlock block2 = builder2.build();
|
|
|
+ Block block3 = builder3.build();
|
|
|
+ assertEquals(positions, block1.getPositionCount());
|
|
|
+ assertTrue(block1.mayHaveNulls());
|
|
|
+ assertTrue(block1.isNull(0));
|
|
|
+
|
|
|
+ List<Block> blocks = List.of(block1, block2, block3);
|
|
|
+ assertAllEquals(blocks);
|
|
|
+ }
|
|
|
+
|
|
|
static void assertAllEquals(List<?> objs) {
|
|
|
for (Object obj1 : objs) {
|
|
|
for (Object obj2 : objs) {
|