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;
52 private BooleanArrayList
list;
55 protected void setUp() throws Exception {
56 list =
new BooleanArrayList();
60 assertSame(BooleanArrayList.emptyList(), BooleanArrayList.emptyList());
68 list.addBoolean(
true);
69 list.addBoolean(
false);
70 list.addBoolean(
true);
71 list.addBoolean(
true);
77 list.addAll(asList(
true,
false,
true,
false));
78 Iterator<Boolean> iterator =
list.iterator();
79 assertEquals(4,
list.size());
80 assertEquals(
true, (
boolean)
list.get(0));
81 assertEquals(
true, (
boolean) iterator.next());
83 assertEquals(
false, (
boolean) iterator.next());
89 }
catch (ConcurrentModificationException e) {
93 iterator =
list.iterator();
98 }
catch (ConcurrentModificationException e) {
111 }
catch (IndexOutOfBoundsException e) {
118 }
catch (IndexOutOfBoundsException e) {
131 }
catch (IndexOutOfBoundsException e) {
138 }
catch (IndexOutOfBoundsException e) {
144 assertEquals(0, BooleanArrayList.emptyList().size());
148 list.addBoolean(
true);
149 list.addBoolean(
false);
150 list.addBoolean(
false);
151 list.addBoolean(
false);
152 assertEquals(4,
list.size());
155 assertEquals(3,
list.size());
158 assertEquals(4,
list.size());
162 list.addBoolean(
false);
163 list.addBoolean(
false);
165 assertEquals(
false, (
boolean)
list.set(0,
true));
166 assertEquals(
true,
list.getBoolean(0));
168 assertEquals(
false, (
boolean)
list.set(1,
false));
169 assertEquals(
false,
list.getBoolean(1));
174 }
catch (IndexOutOfBoundsException e) {
181 }
catch (IndexOutOfBoundsException e) {
187 list.addBoolean(
true);
188 list.addBoolean(
true);
190 assertEquals(
true,
list.setBoolean(0,
false));
191 assertEquals(
false,
list.getBoolean(0));
193 assertEquals(
true,
list.setBoolean(1,
false));
194 assertEquals(
false,
list.getBoolean(1));
197 list.setBoolean(-1,
false);
199 }
catch (IndexOutOfBoundsException e) {
204 list.setBoolean(2,
false);
206 }
catch (IndexOutOfBoundsException e) {
212 assertEquals(0,
list.size());
214 assertTrue(
list.add(
false));
215 assertEquals(asList(
false),
list);
217 assertTrue(
list.add(
true));
219 assertEquals(asList(
false,
false,
true),
list);
224 for (
int i = 0;
i < 6;
i++) {
225 list.add(
i % 2 == 0);
228 asList(
false,
true,
false,
false,
true,
true,
false,
true,
false,
true,
false),
list);
232 }
catch (IndexOutOfBoundsException e) {
238 }
catch (IndexOutOfBoundsException e) {
244 assertEquals(0,
list.size());
246 list.addBoolean(
false);
247 assertEquals(asList(
false),
list);
249 list.addBoolean(
true);
250 assertEquals(asList(
false,
true),
list);
254 assertEquals(0,
list.size());
256 assertTrue(
list.addAll(Collections.singleton(
true)));
257 assertEquals(1,
list.size());
258 assertEquals(
true, (
boolean)
list.get(0));
259 assertEquals(
true,
list.getBoolean(0));
261 assertTrue(
list.addAll(asList(
false,
true,
false,
true,
false)));
262 assertEquals(asList(
true,
false,
true,
false,
true,
false),
list);
265 assertEquals(asList(
true,
false,
true,
false,
true,
false,
true,
false,
true),
list);
267 assertFalse(
list.addAll(Collections.<Boolean>emptyList()));
268 assertFalse(
list.addAll(BooleanArrayList.emptyList()));
272 BooleanArrayList list1 =
new BooleanArrayList();
273 BooleanArrayList list2 =
new BooleanArrayList();
275 assertEquals(list1, list2);
280 assertEquals(
true, (
boolean)
list.remove(0));
281 assertEquals(asList(
false,
true),
list);
283 assertTrue(
list.remove(Boolean.TRUE));
284 assertEquals(asList(
false),
list);
286 assertFalse(
list.remove(Boolean.TRUE));
287 assertEquals(asList(
false),
list);
289 assertEquals(
false, (
boolean)
list.remove(0));
290 assertEquals(asList(),
list);
295 }
catch (IndexOutOfBoundsException e) {
301 }
catch (IndexOutOfBoundsException e) {
310 assertEquals(0, toRemove.size());
318 assertEquals(1, toRemove.size());
319 assertEquals(
false, (
boolean) toRemove.get(0));
325 toRemove.subList(0, 1).clear();
326 assertEquals(0, toRemove.size());
334 }
catch (UnsupportedOperationException e) {
341 }
catch (UnsupportedOperationException e) {
346 list.addAll(Collections.<Boolean>emptyList());
348 }
catch (UnsupportedOperationException e) {
353 list.addAll(Collections.singletonList(
true));
355 }
catch (UnsupportedOperationException e) {
360 list.addAll(
new BooleanArrayList());
362 }
catch (UnsupportedOperationException e) {
369 }
catch (UnsupportedOperationException e) {
374 list.addAll(0, Collections.singleton(
true));
376 }
catch (UnsupportedOperationException e) {
383 }
catch (UnsupportedOperationException e) {
388 list.addAll(0, Collections.<Boolean>emptyList());
390 }
catch (UnsupportedOperationException e) {
395 list.addBoolean(
false);
397 }
catch (UnsupportedOperationException e) {
404 }
catch (UnsupportedOperationException e) {
411 }
catch (UnsupportedOperationException e) {
416 list.remove(
new Object());
418 }
catch (UnsupportedOperationException e) {
423 list.removeAll(Collections.<Boolean>emptyList());
425 }
catch (UnsupportedOperationException e) {
430 list.removeAll(Collections.singleton(Boolean.TRUE));
432 }
catch (UnsupportedOperationException e) {
439 }
catch (UnsupportedOperationException e) {
444 list.retainAll(Collections.<Boolean>emptyList());
446 }
catch (UnsupportedOperationException e) {
451 list.removeAll(Collections.singleton(Boolean.TRUE));
453 }
catch (UnsupportedOperationException e) {
460 }
catch (UnsupportedOperationException e) {
467 }
catch (UnsupportedOperationException e) {
472 list.setBoolean(0,
false);
474 }
catch (UnsupportedOperationException e) {
480 BooleanArrayList
list =
new BooleanArrayList();
481 for (
boolean element : elements) {
482 list.addBoolean(element);
484 list.makeImmutable();