/** * Copyright (c) 2005-2011 by Appcelerator, Inc. All Rights Reserved. * Licensed under the terms of the Eclipse Public License (EPL). * Please see the license.txt included with this distribution for details. * Any modifications to this file must keep this entire header intact. */ package org.python.pydev.core.structure; import java.util.Arrays; import java.util.Iterator; import java.util.List; import junit.framework.TestCase; /** * @author Fabio * */ public class LowMemoryArrayListTest extends TestCase { @SuppressWarnings("unchecked") public void testArrayList() throws Exception { List array = new LowMemoryArrayList(); assertEquals(0, array.size()); assertTrue(array.isEmpty()); array.add(new Integer(0)); array.add(0, new Integer(1)); array.add(1, new Integer(2)); array.add(new Integer(3)); array.add(new Integer(1)); assertEquals(5, array.size()); assertFalse(array.isEmpty()); assertEquals(1, ((Integer) array.get(0)).intValue()); assertEquals(2, ((Integer) array.get(1)).intValue()); assertEquals(0, ((Integer) array.get(2)).intValue()); assertEquals(3, ((Integer) array.get(3)).intValue()); assertEquals(1, ((Integer) array.get(4)).intValue()); assertFalse(array.contains(null)); assertTrue(array.contains(new Integer(2))); assertEquals(0, array.indexOf(new Integer(1))); assertEquals(4, array.lastIndexOf(new Integer(1))); assertTrue(array.indexOf(new Integer(5)) < 0); assertTrue(array.lastIndexOf(new Integer(5)) < 0); array.remove(1); array.remove(1); assertEquals(3, array.size()); assertFalse(array.isEmpty()); assertEquals(1, ((Integer) array.get(0)).intValue()); assertEquals(3, ((Integer) array.get(1)).intValue()); assertEquals(1, ((Integer) array.get(2)).intValue()); assertFalse(array.contains(null)); assertFalse(array.contains(new Integer(2))); assertEquals(0, array.indexOf(new Integer(1))); assertEquals(2, array.lastIndexOf(new Integer(1))); assertTrue(array.indexOf(new Integer(5)) < 0); assertTrue(array.lastIndexOf(new Integer(5)) < 0); array.clear(); assertEquals(0, array.size()); assertTrue(array.isEmpty()); assertTrue(array.indexOf(new Integer(5)) < 0); assertTrue(array.lastIndexOf(new Integer(5)) < 0); List al = new LowMemoryArrayList(); assertFalse(al.remove(null)); assertFalse(al.remove("string")); al.add("string"); al.add(null); assertTrue(al.remove(null)); assertTrue(al.remove("string")); List<Integer> asList = Arrays.asList(1, 2); al = new LowMemoryArrayList(); Iterator iterator = al.iterator(); assertTrue(!iterator.hasNext()); al.addAll(asList); al.addAll(asList); assertEquals(1, al.get(0)); assertEquals(2, al.get(1)); assertEquals(1, al.get(2)); assertEquals(2, al.get(3)); iterator = al.iterator(); assertTrue(iterator.hasNext()); assertEquals(1, iterator.next()); assertTrue(iterator.hasNext()); assertEquals(2, iterator.next()); assertTrue(iterator.hasNext()); assertEquals(1, iterator.next()); assertTrue(iterator.hasNext()); assertEquals(2, iterator.next()); assertTrue(!iterator.hasNext()); } }