public void testUpdate() {
int size = 100, maxVal = Integer.MAX_VALUE;
for (int attempt = 0; attempt < 10; attempt++) {
long[] array = generateRandomLongArray(size, UNORDERED, maxVal).extractHostArray();
for (WritableLongList list: createWritableLongLists(array)) {
long[] values = Arrays.copyOf(array, array.length);
if (!(list instanceof AbstractWritableLongList)) return;
AbstractWritableLongList abstractList = (AbstractWritableLongList)list;
int index = myRand.nextInt(size);
abstractList.update(index, myRand.nextInt(), LongFunctions.NEG);
values[index] = -values[index];
CHECK.order(abstractList, values);
int count = myRand.nextInt(size);
long value = myRand.nextInt();
abstractList.update(size + count, value, LongFunctions.NEG);
assertEquals(size + count + 1, abstractList.size());
CHECK.order(abstractList.subList(0, size), values);
int newSize = abstractList.size() - 1;
CHECK.order(LongCollections.repeat(value, count), abstractList.subList(size, newSize));
assertEquals(abstractList.get(size + count), -value);
}
}
}