Search in sources :

Example 1 with ByteArray

use of org.elasticsearch.common.util.ByteArray in project elasticsearch by elastic.

the class AbstractBytesReferenceTestCase method testSliceEquals.

public void testSliceEquals() {
    int length = randomIntBetween(100, PAGE_SIZE * randomIntBetween(2, 5));
    ByteArray ba1 = bigarrays.newByteArray(length, false);
    BytesReference pbr = new PagedBytesReference(bigarrays, ba1, length);
    // test equality of slices
    int sliceFrom = randomIntBetween(0, pbr.length());
    int sliceLength = randomIntBetween(0, pbr.length() - sliceFrom);
    BytesReference slice1 = pbr.slice(sliceFrom, sliceLength);
    BytesReference slice2 = pbr.slice(sliceFrom, sliceLength);
    assertArrayEquals(BytesReference.toBytes(slice1), BytesReference.toBytes(slice2));
    // unless randomized testing gave us a 0-length slice.
    if (sliceLength > 0) {
        BytesReference slice3 = pbr.slice(sliceFrom, sliceLength / 2);
        assertFalse(Arrays.equals(BytesReference.toBytes(slice1), BytesReference.toBytes(slice3)));
    }
}
Also used : ByteArray(org.elasticsearch.common.util.ByteArray)

Example 2 with ByteArray

use of org.elasticsearch.common.util.ByteArray in project crate by crate.

the class ReleasableBytesStreamOutput method ensureCapacity.

@Override
void ensureCapacity(long offset) {
    final ByteArray prevBytes = this.bytes;
    super.ensureCapacity(offset);
    if (prevBytes != this.bytes) {
        // re-create the releasable with the new reference
        releasable = Releasables.releaseOnce(this.bytes);
    }
}
Also used : ByteArray(org.elasticsearch.common.util.ByteArray)

Example 3 with ByteArray

use of org.elasticsearch.common.util.ByteArray in project crate by crate.

the class ReleasableBytesStreamOutput method reset.

@Override
public void reset() {
    final ByteArray prevBytes = this.bytes;
    super.reset();
    if (prevBytes != this.bytes) {
        // re-create the releasable with the new reference
        releasable = Releasables.releaseOnce(this.bytes);
    }
}
Also used : ByteArray(org.elasticsearch.common.util.ByteArray)

Example 4 with ByteArray

use of org.elasticsearch.common.util.ByteArray in project crate by crate.

the class AbstractBytesReferenceTestCase method testSliceEquals.

public void testSliceEquals() {
    int length = randomIntBetween(100, PAGE_SIZE * randomIntBetween(2, 5));
    ByteArray ba1 = bigarrays.newByteArray(length, false);
    BytesReference pbr = new PagedBytesReference(ba1, length);
    // test equality of slices
    int sliceFrom = randomIntBetween(0, pbr.length());
    int sliceLength = randomIntBetween(0, pbr.length() - sliceFrom);
    BytesReference slice1 = pbr.slice(sliceFrom, sliceLength);
    BytesReference slice2 = pbr.slice(sliceFrom, sliceLength);
    assertArrayEquals(BytesReference.toBytes(slice1), BytesReference.toBytes(slice2));
    // unless randomized testing gave us a 0-length slice.
    if (sliceLength > 0) {
        BytesReference slice3 = pbr.slice(sliceFrom, sliceLength / 2);
        assertFalse(Arrays.equals(BytesReference.toBytes(slice1), BytesReference.toBytes(slice3)));
    }
}
Also used : ByteArray(org.elasticsearch.common.util.ByteArray)

Example 5 with ByteArray

use of org.elasticsearch.common.util.ByteArray in project elasticsearch by elastic.

the class PagedBytesReferenceTests method testEquals.

public void testEquals() {
    int length = randomIntBetween(100, PAGE_SIZE * randomIntBetween(2, 5));
    ByteArray ba1 = bigarrays.newByteArray(length, false);
    ByteArray ba2 = bigarrays.newByteArray(length, false);
    // copy contents
    for (long i = 0; i < length; i++) {
        ba2.set(i, ba1.get(i));
    }
    // get refs & compare
    BytesReference pbr = new PagedBytesReference(bigarrays, ba1, length);
    BytesReference pbr2 = new PagedBytesReference(bigarrays, ba2, length);
    assertEquals(pbr, pbr2);
    int offsetToFlip = randomIntBetween(0, length - 1);
    int value = ~Byte.toUnsignedInt(ba1.get(offsetToFlip));
    ba2.set(offsetToFlip, (byte) value);
    assertNotEquals(pbr, pbr2);
}
Also used : ByteArray(org.elasticsearch.common.util.ByteArray)

Aggregations

ByteArray (org.elasticsearch.common.util.ByteArray)6 ArrayList (java.util.ArrayList)1 List (java.util.List)1 BytesStreamOutput (org.elasticsearch.common.io.stream.BytesStreamOutput)1 ReleasableBytesStreamOutput (org.elasticsearch.common.io.stream.ReleasableBytesStreamOutput)1