public void testClone() {
int size = 100000;
Random r = new Random();
float[] floats = new float[size];
ArrayListOfFloats list1 = new ArrayListOfFloats();
for (int i = 0; i < size; i++) {
float k = r.nextFloat();
list1.add(k);
floats[i] = k;
}
ArrayListOfFloats list2 = list1.clone();
assertEquals(size, list1.size());
assertEquals(size, list2.size());
for (int i = 0; i < size; i++) {
list2.set(i, floats[i] + 1);
}
// values in old list should not have changed
assertEquals(size, list1.size());
for (int i = 0; i < size; i++) {
assertEquals(floats[i], list1.get(i), 10e-5);
}
// however, values in new list should have changed
assertEquals(size, list1.size());
for (int i = 0; i < size; i++) {
assertEquals(floats[i] + 1, list2.get(i), 10e-5);
}
}