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 FloatArrayList
list;
54 protected void setUp() throws Exception {
55 list =
new FloatArrayList();
59 assertSame(FloatArrayList.emptyList(), FloatArrayList.emptyList());
77 Iterator<Float> iterator =
list.iterator();
78 assertEquals(4,
list.size());
79 assertEquals(1
F, (
float)
list.get(0), 0.0f);
80 assertEquals(1
F, (
float) iterator.next(), 0.0f);
82 assertEquals(2
F, (
float) iterator.next(), 0.0f);
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, FloatArrayList.emptyList().size());
151 assertEquals(4,
list.size());
154 assertEquals(3,
list.size());
157 assertEquals(4,
list.size());
164 assertEquals(2
F, (
float)
list.set(0, 3
F), 0.0f);
165 assertEquals(3
F,
list.getFloat(0), 0.0f);
167 assertEquals(4
F, (
float)
list.set(1, 0
F), 0.0f);
168 assertEquals(0
F,
list.getFloat(1), 0.0f);
173 }
catch (IndexOutOfBoundsException e) {
180 }
catch (IndexOutOfBoundsException e) {
189 assertEquals(1
F,
list.setFloat(0, 0), 0.0f);
190 assertEquals(0
F,
list.getFloat(0), 0.0f);
192 assertEquals(3
F,
list.setFloat(1, 0), 0.0f);
193 assertEquals(0
F,
list.getFloat(1), 0.0f);
196 list.setFloat(-1, 0);
198 }
catch (IndexOutOfBoundsException e) {
205 }
catch (IndexOutOfBoundsException e) {
211 assertEquals(0,
list.size());
213 assertTrue(
list.add(2
F));
214 assertEquals(asList(2
F),
list);
216 assertTrue(
list.add(3
F));
218 assertEquals(asList(4
F, 2
F, 3
F),
list);
223 for (
int i = 0;
i < 6;
i++) {
226 assertEquals(asList(0
F, 1
F, 4
F, 2
F, 3
F, 5
F, 6
F, 7
F, 8
F, 9
F, 10
F),
list);
230 }
catch (IndexOutOfBoundsException e) {
236 }
catch (IndexOutOfBoundsException e) {
242 assertEquals(0,
list.size());
245 assertEquals(asList(2
F),
list);
248 assertEquals(asList(2
F, 3
F),
list);
252 assertEquals(0,
list.size());
254 assertTrue(
list.addAll(Collections.singleton(1
F)));
255 assertEquals(1,
list.size());
256 assertEquals(1
F, (
float)
list.get(0), 0.0f);
257 assertEquals(1
F,
list.getFloat(0), 0.0f);
259 assertTrue(
list.addAll(asList(2
F, 3
F, 4
F, 5
F, 6
F)));
260 assertEquals(asList(1
F, 2
F, 3
F, 4
F, 5
F, 6
F),
list);
263 assertEquals(asList(1
F, 2
F, 3
F, 4
F, 5
F, 6
F, 1
F, 2
F, 3
F),
list);
265 assertFalse(
list.addAll(Collections.<
Float>emptyList()));
266 assertFalse(
list.addAll(FloatArrayList.emptyList()));
270 FloatArrayList list1 =
new FloatArrayList();
271 FloatArrayList list2 =
new FloatArrayList();
273 list1.addFloat(
Float.intBitsToFloat(0xff800001));
274 list2.addFloat(
Float.intBitsToFloat(0xff800002));
275 assertEquals(list1, list2);
280 assertEquals(1
F, (
float)
list.remove(0), 0.0f);
281 assertEquals(asList(2
F, 3
F),
list);
283 assertTrue(
list.remove(
Float.valueOf(3)));
284 assertEquals(asList(2
F),
list);
286 assertFalse(
list.remove(
Float.valueOf(3)));
287 assertEquals(asList(2
F),
list);
289 assertEquals(2
F, (
float)
list.remove(0), 0.0f);
290 assertEquals(asList(),
list);
295 }
catch (IndexOutOfBoundsException e) {
301 }
catch (IndexOutOfBoundsException e) {
310 assertEquals(0, toRemove.size());
318 assertEquals(1, toRemove.size());
319 assertEquals(4
F, (
float) toRemove.get(0));
325 toRemove.subList(0, 1).clear();
326 assertEquals(0, toRemove.size());
330 if (
list.contains(1
F)) {
331 throw new RuntimeException(
"Cannot test the immutability of lists that contain 1.");
337 }
catch (UnsupportedOperationException e) {
344 }
catch (UnsupportedOperationException e) {
349 list.addAll(Collections.<
Float>emptyList());
351 }
catch (UnsupportedOperationException e) {
356 list.addAll(Collections.singletonList(1
F));
358 }
catch (UnsupportedOperationException e) {
363 list.addAll(
new FloatArrayList());
365 }
catch (UnsupportedOperationException e) {
372 }
catch (UnsupportedOperationException e) {
377 list.addAll(0, Collections.singleton(1
F));
379 }
catch (UnsupportedOperationException e) {
386 }
catch (UnsupportedOperationException e) {
391 list.addAll(0, Collections.<
Float>emptyList());
393 }
catch (UnsupportedOperationException e) {
400 }
catch (UnsupportedOperationException e) {
407 }
catch (UnsupportedOperationException e) {
414 }
catch (UnsupportedOperationException e) {
419 list.remove(
new Object());
421 }
catch (UnsupportedOperationException e) {
426 list.removeAll(Collections.<
Float>emptyList());
428 }
catch (UnsupportedOperationException e) {
433 list.removeAll(Collections.singleton(1
F));
435 }
catch (UnsupportedOperationException e) {
442 }
catch (UnsupportedOperationException e) {
447 list.retainAll(Collections.<
Float>emptyList());
449 }
catch (UnsupportedOperationException e) {
454 list.retainAll(Collections.singleton(1
F));
456 }
catch (UnsupportedOperationException e) {
463 }
catch (UnsupportedOperationException e) {
470 }
catch (UnsupportedOperationException e) {
477 }
catch (UnsupportedOperationException e) {
483 FloatArrayList
list =
new FloatArrayList();
484 for (
float element : elements) {
485 list.addFloat(element);
487 list.makeImmutable();