Skip to content

Commit

Permalink
Fix MemoryTracking...ArraysTests bulkSet errors (elastic#113934)
Browse files Browse the repository at this point in the history
Fixes elastic#113914 Fixes
elastic#113744

Some random numbers in the tests were leading to negative indexes in
some cases. Just refactored them a bit so no impossible values are
generated. And it's now a bit more _readable_...
  • Loading branch information
ivancea authored Oct 2, 2024
1 parent e9656d9 commit 091e242
Showing 1 changed file with 24 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -84,29 +84,29 @@ public void testIntResize() {
}

public void testIntBulkSet() {
int initialSize = randomIntBetween(10, 1000);
int sourceArraySize = randomIntBetween(0, initialSize);
int targetArraySize = randomIntBetween(10, 1000);
int sourceArraySize = randomIntBetween(0, 1000);

try (TDigestIntArray array = intArray(initialSize); TDigestIntArray source = intArray(sourceArraySize)) {
assertThat(array.size(), equalTo(initialSize));
try (TDigestIntArray target = intArray(targetArraySize); TDigestIntArray source = intArray(sourceArraySize)) {
assertThat(target.size(), equalTo(targetArraySize));
assertThat(source.size(), equalTo(sourceArraySize));

int value = randomInt();
for (int i = 0; i < sourceArraySize; i++) {
source.set(i, value);
}

int initialOffset = randomIntBetween(0, initialSize - sourceArraySize);
int sourceOffset = randomIntBetween(0, sourceArraySize - 1);
int elementsToCopy = randomIntBetween(1, sourceArraySize - sourceOffset);
int targetOffset = randomIntBetween(0, targetArraySize);
int sourceOffset = randomIntBetween(0, sourceArraySize);
int elementsToCopy = randomIntBetween(0, Math.min(sourceArraySize - sourceOffset, targetArraySize - targetOffset));

array.set(initialOffset, source, sourceOffset, elementsToCopy);
target.set(targetOffset, source, sourceOffset, elementsToCopy);

for (int i = 0; i < initialSize; i++) {
if (i < initialOffset || i >= initialOffset + elementsToCopy) {
assertThat(array.get(i), equalTo(0));
for (int i = 0; i < targetArraySize; i++) {
if (i < targetOffset || i >= targetOffset + elementsToCopy) {
assertThat(target.get(i), equalTo(0));
} else {
assertThat(array.get(i), equalTo(value));
assertThat(target.get(i), equalTo(value));
}
}
}
Expand Down Expand Up @@ -289,29 +289,29 @@ public void testDoubleAdd() {
}

public void testDoubleBulkSet() {
int initialSize = randomIntBetween(10, 1000);
int sourceArraySize = randomIntBetween(0, initialSize);
int targetArraySize = randomIntBetween(10, 1000);
int sourceArraySize = randomIntBetween(0, 1000);

try (TDigestDoubleArray array = doubleArray(initialSize); TDigestDoubleArray source = doubleArray(sourceArraySize)) {
assertThat(array.size(), equalTo(initialSize));
try (TDigestDoubleArray target = doubleArray(targetArraySize); TDigestDoubleArray source = doubleArray(sourceArraySize)) {
assertThat(target.size(), equalTo(targetArraySize));
assertThat(source.size(), equalTo(sourceArraySize));

double value = randomDoubleBetween(-Double.MAX_VALUE, Double.MAX_VALUE, true);
for (int i = 0; i < sourceArraySize; i++) {
source.set(i, value);
}

int initialOffset = randomIntBetween(0, initialSize - sourceArraySize);
int sourceOffset = randomIntBetween(0, sourceArraySize - 1);
int elementsToCopy = randomIntBetween(1, sourceArraySize - sourceOffset);
int targetOffset = randomIntBetween(0, targetArraySize);
int sourceOffset = randomIntBetween(0, sourceArraySize);
int elementsToCopy = randomIntBetween(0, Math.min(sourceArraySize - sourceOffset, targetArraySize - targetOffset));

array.set(initialOffset, source, sourceOffset, elementsToCopy);
target.set(targetOffset, source, sourceOffset, elementsToCopy);

for (int i = 0; i < initialSize; i++) {
if (i < initialOffset || i >= initialOffset + elementsToCopy) {
assertThat(array.get(i), equalTo(0.0));
for (int i = 0; i < targetArraySize; i++) {
if (i < targetOffset || i >= targetOffset + elementsToCopy) {
assertThat(target.get(i), equalTo(0.0));
} else {
assertThat(array.get(i), equalTo(value));
assertThat(target.get(i), equalTo(value));
}
}
}
Expand Down

0 comments on commit 091e242

Please sign in to comment.