@BeforeMethod public void setup() { sliceBigArray = new SliceBigArray(); sliceBigArray.ensureCapacity(CAPACITY); }
@Override public void setParameters(Slice parameters) { parametersArray.set(groupId, parameters); }
@Override public Slice getParameters() { return parametersArray.get(groupId); }
@Test public void testNullSlicesRetainedSize() { // add null values sliceBigArray.set(0, null); assertEquals(sliceBigArray.sizeOf(), BIG_ARRAY_INSTANCE_SIZE); // replace null with a slice sliceBigArray.set(0, wrappedBuffer(secondBytes, 201, 1501)); assertEquals(sliceBigArray.sizeOf(), BIG_ARRAY_INSTANCE_SIZE + sizeOf(secondBytes) + SLICE_INSTANCE_SIZE); // add another slice sliceBigArray.set(1, wrappedBuffer(secondBytes, 201, 1501)); assertEquals(sliceBigArray.sizeOf(), BIG_ARRAY_INSTANCE_SIZE + sizeOf(secondBytes) + SLICE_INSTANCE_SIZE * 2); // replace slice with null sliceBigArray.set(1, null); assertEquals(sliceBigArray.sizeOf(), BIG_ARRAY_INSTANCE_SIZE + sizeOf(secondBytes) + SLICE_INSTANCE_SIZE); }
@Override public void ensureCapacity(long size) { labelsArray.ensureCapacity(size); featureVectorsArray.ensureCapacity(size); parametersArray.ensureCapacity(size); }
/** * Sets the element of this big array at specified index. * * @param index a position in this big array. */ public void set(long index, Slice value) { updateRetainedSize(index, value); array.set(index, value); }
@Test public void testNullSlicesRetainedSize() { // add null values sliceBigArray.set(0, null); assertEquals(sliceBigArray.sizeOf(), BIG_ARRAY_INSTANCE_SIZE); // replace null with a slice sliceBigArray.set(0, wrappedBuffer(secondBytes, 201, 1501)); assertEquals(sliceBigArray.sizeOf(), BIG_ARRAY_INSTANCE_SIZE + sizeOf(secondBytes) + SLICE_INSTANCE_SIZE); // add another slice sliceBigArray.set(1, wrappedBuffer(secondBytes, 201, 1501)); assertEquals(sliceBigArray.sizeOf(), BIG_ARRAY_INSTANCE_SIZE + sizeOf(secondBytes) + SLICE_INSTANCE_SIZE * 2); // replace slice with null sliceBigArray.set(1, null); assertEquals(sliceBigArray.sizeOf(), BIG_ARRAY_INSTANCE_SIZE + sizeOf(secondBytes) + SLICE_INSTANCE_SIZE); }
/** * Sets the element of this big array at specified index. * * @param index a position in this big array. */ public void set(long index, Slice value) { updateRetainedSize(index, value); array.set(index, value); }
@Test public void testSameSliceRetainedSize() { // same slice should be counted only once Slice slice = wrappedBuffer(secondBytes, 201, 1501); for (int i = 0; i < CAPACITY; i++) { sliceBigArray.set(i, slice); assertEquals(sliceBigArray.sizeOf(), BIG_ARRAY_INSTANCE_SIZE + sizeOf(secondBytes) + SLICE_INSTANCE_SIZE); } // adding a new slice will increase the size slice = wrappedBuffer(secondBytes, 201, 1501); sliceBigArray.set(3, slice); assertEquals(sliceBigArray.sizeOf(), BIG_ARRAY_INSTANCE_SIZE + sizeOf(secondBytes) + SLICE_INSTANCE_SIZE * 2); }
@BeforeMethod public void setup() { sliceBigArray = new SliceBigArray(); sliceBigArray.ensureCapacity(CAPACITY); }
@Test public void testSameSliceRetainedSize() { // same slice should be counted only once Slice slice = wrappedBuffer(secondBytes, 201, 1501); for (int i = 0; i < CAPACITY; i++) { sliceBigArray.set(i, slice); assertEquals(sliceBigArray.sizeOf(), BIG_ARRAY_INSTANCE_SIZE + sizeOf(secondBytes) + SLICE_INSTANCE_SIZE); } // adding a new slice will increase the size slice = wrappedBuffer(secondBytes, 201, 1501); sliceBigArray.set(3, slice); assertEquals(sliceBigArray.sizeOf(), BIG_ARRAY_INSTANCE_SIZE + sizeOf(secondBytes) + SLICE_INSTANCE_SIZE * 2); }
@Test public void testRetainedSize() { // add two elements sliceBigArray.set(0, wrappedBuffer(firstBytes, 0, 100)); sliceBigArray.set(1, wrappedBuffer(secondBytes, 0, 100)); assertEquals(sliceBigArray.sizeOf(), BIG_ARRAY_INSTANCE_SIZE + sizeOf(firstBytes) + sizeOf(secondBytes) + SLICE_INSTANCE_SIZE * 2); // add two more sliceBigArray.set(2, wrappedBuffer(firstBytes, 100, 200)); sliceBigArray.set(3, wrappedBuffer(secondBytes, 20, 150)); assertEquals(sliceBigArray.sizeOf(), BIG_ARRAY_INSTANCE_SIZE + sizeOf(firstBytes) + sizeOf(secondBytes) + SLICE_INSTANCE_SIZE * 4); // replace with different slices but the same base sliceBigArray.set(2, wrappedBuffer(firstBytes, 11, 1200)); sliceBigArray.set(3, wrappedBuffer(secondBytes, 201, 1501)); assertEquals(sliceBigArray.sizeOf(), BIG_ARRAY_INSTANCE_SIZE + sizeOf(firstBytes) + sizeOf(secondBytes) + SLICE_INSTANCE_SIZE * 4); // replace with a different slice with a different base sliceBigArray.set(0, wrappedBuffer(secondBytes, 11, 1200)); sliceBigArray.set(2, wrappedBuffer(secondBytes, 201, 1501)); assertEquals(sliceBigArray.sizeOf(), BIG_ARRAY_INSTANCE_SIZE + sizeOf(secondBytes) + SLICE_INSTANCE_SIZE * 4); } }
@Test public void testRetainedSize() { // add two elements sliceBigArray.set(0, wrappedBuffer(firstBytes, 0, 100)); sliceBigArray.set(1, wrappedBuffer(secondBytes, 0, 100)); assertEquals(sliceBigArray.sizeOf(), BIG_ARRAY_INSTANCE_SIZE + sizeOf(firstBytes) + sizeOf(secondBytes) + SLICE_INSTANCE_SIZE * 2); // add two more sliceBigArray.set(2, wrappedBuffer(firstBytes, 100, 200)); sliceBigArray.set(3, wrappedBuffer(secondBytes, 20, 150)); assertEquals(sliceBigArray.sizeOf(), BIG_ARRAY_INSTANCE_SIZE + sizeOf(firstBytes) + sizeOf(secondBytes) + SLICE_INSTANCE_SIZE * 4); // replace with different slices but the same base sliceBigArray.set(2, wrappedBuffer(firstBytes, 11, 1200)); sliceBigArray.set(3, wrappedBuffer(secondBytes, 201, 1501)); assertEquals(sliceBigArray.sizeOf(), BIG_ARRAY_INSTANCE_SIZE + sizeOf(firstBytes) + sizeOf(secondBytes) + SLICE_INSTANCE_SIZE * 4); // replace with a different slice with a different base sliceBigArray.set(0, wrappedBuffer(secondBytes, 11, 1200)); sliceBigArray.set(2, wrappedBuffer(secondBytes, 201, 1501)); assertEquals(sliceBigArray.sizeOf(), BIG_ARRAY_INSTANCE_SIZE + sizeOf(secondBytes) + SLICE_INSTANCE_SIZE * 4); } }