31 package com.google.protobuf;
33 import static java.util.Arrays.asList;
36 import java.util.Collections;
37 import java.util.ConcurrentModificationException;
38 import java.util.Iterator;
39 import junit.framework.TestCase;
51 private LongArrayList
list;
54 protected void setUp() throws Exception {
55 list =
new LongArrayList();
59 assertSame(LongArrayList.emptyList(), LongArrayList.emptyList());
76 list.addAll(asList(1L, 2L, 3L, 4L));
77 Iterator<Long> iterator =
list.iterator();
78 assertEquals(4,
list.size());
79 assertEquals(1L, (
long)
list.get(0));
80 assertEquals(1L, (
long) iterator.next());
82 assertEquals(2L, (
long) iterator.next());
88 }
catch (ConcurrentModificationException e) {
92 iterator =
list.iterator();
97 }
catch (ConcurrentModificationException e) {
110 }
catch (IndexOutOfBoundsException e) {
117 }
catch (IndexOutOfBoundsException e) {
130 }
catch (IndexOutOfBoundsException e) {
137 }
catch (IndexOutOfBoundsException e) {
143 assertEquals(0, LongArrayList.emptyList().size());
151 assertEquals(4,
list.size());
154 assertEquals(3,
list.size());
157 assertEquals(4,
list.size());
164 assertEquals(2L, (
long)
list.set(0, 3L));
165 assertEquals(3L,
list.getLong(0));
167 assertEquals(4L, (
long)
list.set(1, 0L));
168 assertEquals(0L,
list.getLong(1));
173 }
catch (IndexOutOfBoundsException e) {
180 }
catch (IndexOutOfBoundsException e) {
189 assertEquals(1L,
list.setLong(0, 0));
190 assertEquals(0L,
list.getLong(0));
192 assertEquals(3L,
list.setLong(1, 0));
193 assertEquals(0L,
list.getLong(1));
198 }
catch (IndexOutOfBoundsException e) {
205 }
catch (IndexOutOfBoundsException e) {
211 assertEquals(0,
list.size());
213 assertTrue(
list.add(2L));
214 assertEquals(asList(2L),
list);
216 assertTrue(
list.add(3L));
218 assertEquals(asList(4L, 2L, 3L),
list);
223 for (
int i = 0;
i < 6;
i++) {
224 list.add(Long.valueOf(5 +
i));
226 assertEquals(asList(0L, 1L, 4L, 2L, 3L, 5L, 6L, 7L, 8L, 9L, 10L),
list);
230 }
catch (IndexOutOfBoundsException e) {
236 }
catch (IndexOutOfBoundsException e) {
242 assertEquals(0,
list.size());
245 assertEquals(asList(2L),
list);
248 assertEquals(asList(2L, 3L),
list);
252 assertEquals(0,
list.size());
254 assertTrue(
list.addAll(Collections.singleton(1L)));
255 assertEquals(1,
list.size());
256 assertEquals(1L, (
long)
list.get(0));
257 assertEquals(1L,
list.getLong(0));
259 assertTrue(
list.addAll(asList(2L, 3L, 4L, 5L, 6L)));
260 assertEquals(asList(1L, 2L, 3L, 4L, 5L, 6L),
list);
263 assertEquals(asList(1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L),
list);
265 assertFalse(
list.addAll(Collections.<Long>emptyList()));
266 assertFalse(
list.addAll(LongArrayList.emptyList()));
270 LongArrayList list1 =
new LongArrayList();
271 LongArrayList list2 =
new LongArrayList();
273 assertEquals(list1, list2);
278 assertEquals(1L, (
long)
list.remove(0));
279 assertEquals(asList(2L, 3L),
list);
281 assertTrue(
list.remove(Long.valueOf(3)));
282 assertEquals(asList(2L),
list);
284 assertFalse(
list.remove(Long.valueOf(3)));
285 assertEquals(asList(2L),
list);
287 assertEquals(2L, (
long)
list.remove(0));
288 assertEquals(asList(),
list);
293 }
catch (IndexOutOfBoundsException e) {
299 }
catch (IndexOutOfBoundsException e) {
308 assertEquals(0, toRemove.size());
316 assertEquals(1, toRemove.size());
317 assertEquals(4L, (
long) toRemove.get(0));
323 toRemove.subList(0, 1).clear();
324 assertEquals(0, toRemove.size());
328 if (
list.contains(1L)) {
329 throw new RuntimeException(
"Cannot test the immutability of lists that contain 1.");
335 }
catch (UnsupportedOperationException e) {
342 }
catch (UnsupportedOperationException e) {
347 list.addAll(Collections.<Long>emptyList());
349 }
catch (UnsupportedOperationException e) {
354 list.addAll(Collections.singletonList(1L));
356 }
catch (UnsupportedOperationException e) {
361 list.addAll(
new LongArrayList());
363 }
catch (UnsupportedOperationException e) {
370 }
catch (UnsupportedOperationException e) {
375 list.addAll(0, Collections.singleton(1L));
377 }
catch (UnsupportedOperationException e) {
384 }
catch (UnsupportedOperationException e) {
389 list.addAll(0, Collections.<Long>emptyList());
391 }
catch (UnsupportedOperationException e) {
398 }
catch (UnsupportedOperationException e) {
405 }
catch (UnsupportedOperationException e) {
412 }
catch (UnsupportedOperationException e) {
417 list.remove(
new Object());
419 }
catch (UnsupportedOperationException e) {
424 list.removeAll(Collections.<Long>emptyList());
426 }
catch (UnsupportedOperationException e) {
431 list.removeAll(Collections.singleton(1L));
433 }
catch (UnsupportedOperationException e) {
440 }
catch (UnsupportedOperationException e) {
445 list.retainAll(Collections.<Long>emptyList());
447 }
catch (UnsupportedOperationException e) {
452 list.retainAll(Collections.singleton(1L));
454 }
catch (UnsupportedOperationException e) {
461 }
catch (UnsupportedOperationException e) {
468 }
catch (UnsupportedOperationException e) {
475 }
catch (UnsupportedOperationException e) {
481 LongArrayList
list =
new LongArrayList();
482 for (
long element : elements) {
483 list.addLong(element);
485 list.makeImmutable();