1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/* 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * this work for additional information regarding copyright ownership. 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * (the "License"); you may not use this file except in compliance with 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the License. You may obtain a copy of the License at 8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See the License for the specific language governing permissions and 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * limitations under the License. 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 18ab762bb740405d0fefcccf4a0899a234f995be13Narayan Kamathpackage org.apache.harmony.tests.java.util; 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 20e633814ad4dc6c7dc0c34080292c2c9622cbd5a3Narayan Kamathimport libcore.java.util.ForEachRemainingTester; 218b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamathimport libcore.java.util.SpliteratorTester; 22ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamathimport tests.support.Support_ListTest; 238b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamath 248b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamathimport java.util.ArrayList; 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Arrays; 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Collection; 27c3a9db83a352d92d5a6e0098f22bde07e34a1d3bPrzemyslaw Szczepaniakimport java.util.ConcurrentModificationException; 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Enumeration; 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.HashSet; 30d41ca4a76ea570f9dd89a7ae56410cc75cc0a856Yi Kongimport java.util.Iterator; 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.LinkedList; 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.List; 33c13c9eddc3f7eeb760fcd9032b85ef2767cc82baTobias Thiererimport java.util.ListIterator; 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.NoSuchElementException; 358b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamathimport java.util.Spliterator; 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Vector; 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 38d41ca4a76ea570f9dd89a7ae56410cc75cc0a856Yi Kongimport static libcore.java.util.RemoveIfTester.*; 39d41ca4a76ea570f9dd89a7ae56410cc75cc0a856Yi Kong 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class VectorTest extends junit.framework.TestCase { 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private Vector tVector = new Vector(); 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Object[] objArray; 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private String vString = "[Test 0, Test 1, Test 2, Test 3, Test 4, Test 5, Test 6, Test 7, Test 8, Test 9, Test 10, Test 11, Test 12, Test 13, Test 14, Test 15, Test 16, Test 17, Test 18, Test 19, Test 20, Test 21, Test 22, Test 23, Test 24, Test 25, Test 26, Test 27, Test 28, Test 29, Test 30, Test 31, Test 32, Test 33, Test 34, Test 35, Test 36, Test 37, Test 38, Test 39, Test 40, Test 41, Test 42, Test 43, Test 44, Test 45, Test 46, Test 47, Test 48, Test 49, Test 50, Test 51, Test 52, Test 53, Test 54, Test 55, Test 56, Test 57, Test 58, Test 59, Test 60, Test 61, Test 62, Test 63, Test 64, Test 65, Test 66, Test 67, Test 68, Test 69, Test 70, Test 71, Test 72, Test 73, Test 74, Test 75, Test 76, Test 77, Test 78, Test 79, Test 80, Test 81, Test 82, Test 83, Test 84, Test 85, Test 86, Test 87, Test 88, Test 89, Test 90, Test 91, Test 92, Test 93, Test 94, Test 95, Test 96, Test 97, Test 98, Test 99]"; 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 49229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#Vector() 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_Constructor() { 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.util.Vector() 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Vector tv = new Vector(100); 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < 100; i++) 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tv.addElement(new Integer(i)); 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Support_ListTest("", tv).runTest(); 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tv = new Vector(200); 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = -50; i < 150; i++) 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tv.addElement(new Integer(i)); 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Support_ListTest("", tv.subList(50, 150)).runTest(); 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Vector v = new Vector(); 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Vector creation failed", 0, v.size()); 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong capacity", 10, v.capacity()); 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 70229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#Vector(int) 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_ConstructorI() { 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.util.Vector(int) 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Vector v = new Vector(100); 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Vector creation failed", 0, v.size()); 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong capacity", 100, v.capacity()); 78f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Vector(-1); 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected"); 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 88229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#Vector(int, int) 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_ConstructorII() { 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.util.Vector(int, int) 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Vector v = new Vector(2, 10); 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.addElement(new Object()); 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.addElement(new Object()); 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.addElement(new Object()); 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Failed to inc capacity by proper amount", 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 12, v.capacity()); 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Vector grow = new Vector(3, -1); 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project grow.addElement("one"); 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project grow.addElement("two"); 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project grow.addElement("three"); 105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project grow.addElement("four"); 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong size", 4, grow.size()); 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong capacity", 6, grow.capacity()); 108f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 109ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath Vector emptyVector = new Vector(0, 0); 110ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath emptyVector.addElement("one"); 111ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertEquals("Wrong size", 1, emptyVector.size()); 112ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath emptyVector.addElement("two"); 113ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath emptyVector.addElement("three"); 114ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertEquals("Wrong size", 3, emptyVector.size()); 115ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 117ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath Vector negativeVector = new Vector(-1, 0); 118ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath fail("Should throw IllegalArgumentException"); 119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 120ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath // Excepted 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 125229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#Vector(java.util.Collection) 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_ConstructorLjava_util_Collection() { 128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.util.Vector(java.util.Collection) 129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collection l = new LinkedList(); 130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < 100; i++) 131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project l.add("Test " + i); 132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Vector myVector = new Vector(l); 133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Vector is not correct size", 134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project myVector.size() == objArray.length); 135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int counter = 0; counter < objArray.length; counter++) 136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Vector does not contain correct elements", myVector 137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .contains(((List) l).get(counter))); 138f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Vector(null); 141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 148229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#add(int, java.lang.Object) 149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_addILjava_lang_Object() { 151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method void java.util.Vector.add(int, java.lang.Object) 152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Object o = new Object(); 153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Object prev = tVector.get(45); 154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.add(45, o); 155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Failed to add Object", tVector.get(45) == o); 156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Failed to fix-up existing indices", tVector.get(46) == prev); 157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong size after add", 101, tVector.size()); 158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project prev = tVector.get(50); 160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.add(50, null); 161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull("Failed to add null", tVector.get(50)); 162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Failed to fix-up existing indices after adding null", 163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.get(51) == prev); 164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong size after add", 102, tVector.size()); 165f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.add(-5, null); 168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("ArrayIndexOutOfBoundsException expected"); 169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch(ArrayIndexOutOfBoundsException e) { 170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 172f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.add(tVector.size() + 1, null); 175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("ArrayIndexOutOfBoundsException expected"); 176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch(ArrayIndexOutOfBoundsException e) { 177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 182229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#add(java.lang.Object) 183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_addLjava_lang_Object() { 185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method boolean java.util.Vector.add(java.lang.Object) 186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Object o = new Object(); 187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.add(o); 188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Failed to add Object", tVector.lastElement() == o); 189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong size after add", 101, tVector.size()); 190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.add(null); 192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull("Failed to add null", tVector.lastElement()); 193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong size after add", 102, tVector.size()); 194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 197229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#addAll(int, java.util.Collection) 198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_addAllILjava_util_Collection() { 200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method boolean java.util.Vector.addAll(int, 201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Collection) 202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collection l = new LinkedList(); 203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < 100; i++) 204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project l.add("Test " + i); 205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Vector v = new Vector(); 206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.addAll(50, l); 207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 50; i < 100; i++) 208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Failed to add all elements", 209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.get(i) == ((List) l).get(i - 50)); 210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v = new Vector(); 211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.add("one"); 212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int r = 0; 213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.addAll(3, Arrays.asList(new String[] { "two", "three" })); 215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (ArrayIndexOutOfBoundsException e) { 216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project r = 1; 217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException e) { 218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project r = 2; 219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Invalid add: " + r, r == 1); 221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project l = new LinkedList(); 222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project l.add(null); 223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project l.add("gah"); 224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project l.add(null); 225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.addAll(50, l); 226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull("Wrong element at position 50--wanted null", 227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.get(50)); 228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong element at position 51--wanted 'gah'", "gah", tVector 229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .get(51)); 230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull("Wrong element at position 52--wanted null", 231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.get(52)); 232f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.addAll(-5, Arrays.asList(new String[] { "two", "three" })); 235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("ArrayIndexOutOfBoundsException expected"); 236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch(ArrayIndexOutOfBoundsException e) { 237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 239f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.addAll(tVector.size() + 1, Arrays.asList(new String[] { "two", "three" })); 242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("ArrayIndexOutOfBoundsException expected"); 243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch(ArrayIndexOutOfBoundsException e) { 244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 246f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.addAll(tVector.size() / 2, null); 249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch(NullPointerException e) { 251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 256229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#addAll(java.util.Collection) 257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_addAllLjava_util_Collection() { 259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method boolean java.util.Vector.addAll(java.util.Collection) 260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Vector v = new Vector(); 261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collection l = new LinkedList(); 262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < 100; i++) 263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project l.add("Test " + i); 264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.addAll(l); 265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Failed to add all elements", tVector.equals(v)); 266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.addAll(l); 268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int vSize = tVector.size(); 269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int counter = vSize - 1; counter >= 0; counter--) 270adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Failed to add elements correctly", v.get(counter) == v 271adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .get(counter + vSize)); 272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project l = new LinkedList(); 274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project l.add(null); 275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project l.add("gah"); 276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project l.add(null); 277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.addAll(l); 278adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull("Wrong element at 3rd last position--wanted null", tVector 279adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .get(vSize)); 280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong element at 2nd last position--wanted 'gah'", "gah", tVector 281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .get(vSize + 1)); 282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull("Wrong element at last position--wanted null", tVector 283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .get(vSize + 2)); 284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.addAll(tVector.size() / 2, null); 287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 288adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch(NullPointerException e) { 289adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 290adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 291adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 292adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 293adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 294229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#addElement(java.lang.Object) 295adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 296adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_addElementLjava_lang_Object() { 297adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method void java.util.Vector.addElement(java.lang.Object) 298adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Vector v = vectorClone(tVector); 299adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.addElement("Added Element"); 300adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Failed to add element", v.contains("Added Element")); 301adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Added Element to wrong slot", "Added Element", ((String) v.elementAt(100)) 302ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath ); 303adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.addElement(null); 304adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Failed to add null", v.contains(null)); 305adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull("Added null to wrong slot", v.elementAt(101)); 306adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 307adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 308adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 309229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#addElement(java.lang.Object) 310adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 311adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_addElementLjava_lang_Object_subtest0() { 312adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method void java.util.Vector.addElement(java.lang.Object) 313adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Vector v = vectorClone(tVector); 314adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.addElement("Added Element"); 315adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Failed to add element", v.contains("Added Element")); 316adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Added Element to wrong slot", "Added Element", ((String) v.elementAt(100)) 317ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath ); 318adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.addElement(null); 319adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Failed to add null", v.contains(null)); 320adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull("Added null to wrong slot", v.elementAt(101)); 321adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 322adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 323adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 324229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#capacity() 325adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 326adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_capacity() { 327adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method int java.util.Vector.capacity() 328adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 329adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Vector v = new Vector(9); 330adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Incorrect capacity returned", 9, v.capacity()); 331adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 332adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 333adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 334229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#clear() 335adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 336adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_clear() { 337adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method void java.util.Vector.clear() 338adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Vector orgVector = vectorClone(tVector); 339adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.clear(); 340adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("a) Cleared Vector has non-zero size", 0, tVector.size()); 341adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Enumeration e = orgVector.elements(); 342adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while (e.hasMoreElements()) 343adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("a) Cleared vector contained elements", !tVector 344adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .contains(e.nextElement())); 345adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 346adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.add(null); 347adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.clear(); 348adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("b) Cleared Vector has non-zero size", 0, tVector.size()); 349adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project e = orgVector.elements(); 350adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while (e.hasMoreElements()) 351adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("b) Cleared vector contained elements", !tVector 352adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .contains(e.nextElement())); 353adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 354adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 355adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 356229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#clone() 357adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 358adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_clone() { 359adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.lang.Object java.util.Vector.clone() 360adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.add(25, null); 361adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.add(75, null); 362adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Vector v = (Vector) tVector.clone(); 363adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Enumeration orgNum = tVector.elements(); 364adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Enumeration cnum = v.elements(); 365adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 366adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while (orgNum.hasMoreElements()) { 367adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Not enough elements copied", cnum.hasMoreElements()); 368adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Vector cloned improperly, elements do not match", 369adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project orgNum.nextElement() == cnum.nextElement()); 370adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 371adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Not enough elements copied", !cnum.hasMoreElements()); 372adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 373adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 374adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 375adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 376229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#contains(java.lang.Object) 377adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 378adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_containsLjava_lang_Object() { 379adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method boolean java.util.Vector.contains(java.lang.Object) 380adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Did not find element", tVector.contains("Test 42")); 381adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Found bogus element", !tVector.contains("Hello")); 382adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue( 383adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "Returned true looking for null in vector without null element", 384adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project !tVector.contains(null)); 385adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.insertElementAt(null, 20); 386adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue( 387adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "Returned false looking for null in vector with null element", 388adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.contains(null)); 389adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 390adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 391adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 392229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#containsAll(java.util.Collection) 393adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 394adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_containsAllLjava_util_Collection() { 395adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method boolean 396adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Vector.containsAll(java.util.Collection) 397adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collection s = new HashSet(); 398adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < 100; i++) 399adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project s.add("Test " + i); 400adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 401adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned false for valid collection", tVector 402adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .containsAll(s)); 403adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project s.add(null); 404adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned true for invlaid collection containing null", 405adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project !tVector.containsAll(s)); 406adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.add(25, null); 407adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned false for valid collection containing null", 408adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.containsAll(s)); 409adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project s = new HashSet(); 410adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project s.add(new Object()); 411adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned true for invalid collection", !tVector 412adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .containsAll(s)); 413f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 414adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 415adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.containsAll(null); 416adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 417adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 418adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 419adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 420adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 421adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 422adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 423229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#copyInto(java.lang.Object[]) 424adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 425adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_copyInto$Ljava_lang_Object() { 426adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method void java.util.Vector.copyInto(java.lang.Object []) 427adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 428adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Object[] a = new Object[100]; 429adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.setElementAt(null, 20); 430adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.copyInto(a); 431adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 432adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < 100; i++) 433adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("copyInto failed", a[i] == tVector.elementAt(i)); 434f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 435adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 436adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.copyInto(null); 437adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 438adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 439adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 440adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 441adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 442adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 443adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 444229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#elementAt(int) 445adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 446adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_elementAtI() { 447adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.lang.Object java.util.Vector.elementAt(int) 448adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Incorrect element returned", "Test 18", ((String) tVector 449adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .elementAt(18))); 450adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.setElementAt(null, 20); 451adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull("Incorrect element returned--wanted null", tVector 452adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .elementAt(20)); 453f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 454adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 455adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.elementAt(-5); 456adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("ArrayIndexOutOfBoundsException expected"); 457adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch(ArrayIndexOutOfBoundsException e) { 458adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 459adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 460f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 461adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 462adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.elementAt(tVector.size() + 1); 463adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("ArrayIndexOutOfBoundsException expected"); 464adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch(ArrayIndexOutOfBoundsException e) { 465adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 466adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 467adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 468adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 469adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 470229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#elements() 471adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 472adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_elements() { 473adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.util.Enumeration java.util.Vector.elements() 474adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.insertElementAt(null, 20); 475adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Enumeration e = tVector.elements(); 476adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int i = 0; 477adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while (e.hasMoreElements()) { 478adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Enumeration returned incorrect element at pos: " + i, e 479adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .nextElement() == tVector.elementAt(i)); 480adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project i++; 481adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 482adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Invalid enumeration", i == tVector.size()); 483adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 484adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 485adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 486229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#elements() 487adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 488adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_elements_subtest0() { 489adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project final int iterations = 10000; 490adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project final Vector v = new Vector(); 491adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Thread t1 = new Thread() { 492adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void run() { 493adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < iterations; i++) { 494adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project synchronized (v) { 495adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.addElement(String.valueOf(i)); 496adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.removeElementAt(0); 497adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 498adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 499adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 500adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project }; 501adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project t1.start(); 502adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < iterations; i++) { 503adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Enumeration en = v.elements(); 504adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 505adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while (true) { 506adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Object result = en.nextElement(); 507adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (result == null) { 508adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Null result: " + i); 509adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 510adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 511adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NoSuchElementException e) { 512adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 513adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 514adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 515adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 516adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 517229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#ensureCapacity(int) 518adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 519adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_ensureCapacityI() { 520adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method void java.util.Vector.ensureCapacity(int) 521adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 522adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Vector v = new Vector(9); 523adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.ensureCapacity(20); 524adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("ensureCapacity failed to set correct capacity", 20, v 525adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .capacity()); 526adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v = new Vector(100); 527adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("ensureCapacity reduced capacity", 100, v.capacity()); 528ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 529ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath v.ensureCapacity(150); 530ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertEquals( 531ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath "ensuieCapacity failed to set to be twice the old capacity", 532ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 200, v.capacity()); 533ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 534ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath v = new Vector(9, -1); 535ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath v.ensureCapacity(20); 536ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertEquals("ensureCapacity failed to set to be minCapacity", 20, v 537ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath .capacity()); 538ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath v.ensureCapacity(15); 539ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertEquals("ensureCapacity reduced capacity", 20, v.capacity()); 540ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath v.ensureCapacity(35); 541ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertEquals( 542ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath "ensuieCapacity failed to set to be twice the old capacity", 543ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 40, v.capacity()); 544ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 545ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath v = new Vector(9, 4); 546ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath v.ensureCapacity(11); 547ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertEquals("ensureCapacity failed to set correct capacity", 13, v 548ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath .capacity()); 549ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath v.ensureCapacity(5); 550ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertEquals("ensureCapacity reduced capacity", 13, v.capacity()); 551ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath v.ensureCapacity(20); 552ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertEquals( 553ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath "ensureCapacity failed to set to be twice the old capacity", 554ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 20, v.capacity()); 555adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 556adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 557adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 558229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#equals(java.lang.Object) 559adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 560adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_equalsLjava_lang_Object() { 561adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method boolean java.util.Vector.equals(java.lang.Object) 562adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Vector v = new Vector(); 563adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < 100; i++) 564adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.addElement("Test " + i); 565adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("a) Equal vectors returned false", tVector.equals(v)); 566adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.addElement(null); 567adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("b) UnEqual vectors returned true", !tVector.equals(v)); 568adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.addElement(null); 569adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("c) Equal vectors returned false", tVector.equals(v)); 570adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.removeElementAt(22); 571adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("d) UnEqual vectors returned true", !tVector.equals(v)); 572ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertTrue("e) Equal vectors returned false", tVector.equals(tVector)); 573ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertFalse("f) UnEqual vectors returned true", tVector 574ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath .equals(new Object())); 575ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertFalse("g) Unequal vectors returned true", tVector.equals(null)); 576adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 577adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 578adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 579229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#firstElement() 580adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 581adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_firstElement() { 582adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.lang.Object java.util.Vector.firstElement() 583adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Returned incorrect firstElement", "Test 0", tVector.firstElement() 584ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath ); 585adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.insertElementAt(null, 0); 586adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull("Returned incorrect firstElement--wanted null", tVector 587adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .firstElement()); 588f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 589ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath Vector v = new Vector(10); 590adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 591ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath v.firstElement(); 592ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath fail("Should throw NoSuchElementException"); 593adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NoSuchElementException e) { 594ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath // Excepted 595adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 596adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 597adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 598adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 599229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#get(int) 600adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 601adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getI() { 602adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.lang.Object java.util.Vector.get(int) 603f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Get returned incorrect object", 604adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "Test 80", tVector.get(80)); 605adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.add(25, null); 606adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull("Returned incorrect element--wanted null", 607adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.get(25)); 608f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 609adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 610adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.get(-5); 611adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("ArrayIndexOutOfBoundsException expected"); 612adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch(ArrayIndexOutOfBoundsException e) { 613adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 614adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 615f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 616adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 617adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.get(tVector.size() + 1); 618adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("ArrayIndexOutOfBoundsException expected"); 619adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch(ArrayIndexOutOfBoundsException e) { 620adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 621adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 622adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 623adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 624adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 625229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#hashCode() 626adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 627adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_hashCode() { 628adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method int java.util.Vector.hashCode() 629adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int hashCode = 1; // one 630adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.insertElementAt(null, 20); 631adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < tVector.size(); i++) { 632adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Object obj = tVector.elementAt(i); 633adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hashCode = 31 * hashCode + (obj == null ? 0 : obj.hashCode()); 634adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 635adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Incorrect hashCode returned. Wanted: " + hashCode 636adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + " got: " + tVector.hashCode(), tVector.hashCode() == hashCode); 637adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 638adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 639adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 640229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#indexOf(java.lang.Object) 641adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 642adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_indexOfLjava_lang_Object() { 643adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method int java.util.Vector.indexOf(java.lang.Object) 644adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Incorrect index returned", 10, tVector.indexOf("Test 10")); 645adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Index returned for invalid Object", -1, tVector 646adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .indexOf("XXXXXXXXXXX")); 647adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.setElementAt(null, 20); 648adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.setElementAt(null, 40); 649adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Incorrect indexOf returned for null: " 650adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + tVector.indexOf(null), tVector.indexOf(null) == 20); 651adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 652adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 653adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 654229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#indexOf(java.lang.Object, int) 655adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 656adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_indexOfLjava_lang_ObjectI() { 657adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method int java.util.Vector.indexOf(java.lang.Object, int) 658ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertEquals("Failed to find correct index", tVector.indexOf("Test 98", 659ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 50), 98); 660adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Found index of bogus element", (tVector.indexOf( 661adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "Test 1001", 50) == -1)); 662adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.setElementAt(null, 20); 663adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.setElementAt(null, 40); 664adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.setElementAt(null, 60); 665adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("a) Incorrect indexOf returned for null: " 666adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + tVector.indexOf(null, 25), tVector.indexOf(null, 25) == 40); 667adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("b) Incorrect indexOf returned for null: " 668adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + tVector.indexOf(null, 20), tVector.indexOf(null, 20) == 20); 669ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath try { 670ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath tVector.indexOf("Test 98", -1); 671ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath fail("should throw ArrayIndexOutOfBoundsException"); 672ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } catch (ArrayIndexOutOfBoundsException e) { 673f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 674ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } 675ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertEquals(-1, tVector.indexOf("Test 98", 1000)); 676ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertEquals(-1, tVector.indexOf("Test 98", Integer.MAX_VALUE)); 677ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertEquals(-1, tVector.indexOf("Test 98", tVector.size())); 678ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertEquals(98, tVector.indexOf("Test 98", 0)); 679adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 680ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath tVector.indexOf("Test 98", Integer.MIN_VALUE); 681ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath fail("should throw ArrayIndexOutOfBoundsException"); 682ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } catch (ArrayIndexOutOfBoundsException e) { 683ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 684adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 685adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 686adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 687adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 688229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#insertElementAt(java.lang.Object, int) 689adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 690adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_insertElementAtLjava_lang_ObjectI() { 691adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method void 692adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Vector.insertElementAt(java.lang.Object, int) 693adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Vector v = vectorClone(tVector); 694adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String prevElement = (String) v.elementAt(99); 695adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.insertElementAt("Inserted Element", 99); 696adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Element not inserted", "Inserted Element", ((String) v.elementAt(99)) 697ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath ); 698adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Elements shifted incorrectly", ((String) v.elementAt(100)) 699adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .equals(prevElement)); 700adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.insertElementAt(null, 20); 701adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull("null not inserted", v.elementAt(20)); 702f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 703adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 704ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath tVector.insertElementAt("Inserted Element", -1); 705ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath fail("Should throw ArrayIndexOutOfBoundsException"); 706ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } catch (ArrayIndexOutOfBoundsException e) { 707ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath // Excepted 708ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } 709ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 710ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath try { 711ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath tVector.insertElementAt(null, -1); 712ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath fail("Should throw ArrayIndexOutOfBoundsException"); 713ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } catch (ArrayIndexOutOfBoundsException e) { 714ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath // Excepted 715ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } 716ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 717ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath try { 718ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath tVector.insertElementAt("Inserted Element", tVector.size() + 1); 719ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath fail("Should throw ArrayIndexOutOfBoundsException"); 720ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } catch (ArrayIndexOutOfBoundsException e) { 721ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath // Excepted 722adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 723f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 724adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 725adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.insertElementAt(null, tVector.size() + 1); 726ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath fail("Should throw ArrayIndexOutOfBoundsException"); 727ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } catch (ArrayIndexOutOfBoundsException e) { 728ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath // Excepted 729adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 730adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 731adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 732adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 733229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#isEmpty() 734adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 735adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_isEmpty() { 736adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method boolean java.util.Vector.isEmpty()Vector 737adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Vector v = new java.util.Vector(); 738adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Empty vector returned false", v.isEmpty()); 739adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.addElement(new Object()); 740adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("non-Empty vector returned true", !v.isEmpty()); 741adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 742adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 743adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 744229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#isEmpty() 745adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 746adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_isEmpty_subtest0() { 747adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project final Vector v = new Vector(); 748adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.addElement("initial"); 749adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Thread t1 = new Thread() { 750adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void run() { 751adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while (!v.isEmpty()) 752adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ; 753adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.addElement("final"); 754adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 755adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project }; 756adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project t1.start(); 757adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < 10000; i++) { 758adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project synchronized (v) { 759adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.removeElementAt(0); 760adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.addElement(String.valueOf(i)); 761adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 762adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int size; 763adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if ((size = v.size()) != 1) { 764adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String result = "Size is not 1: " + size + " " + v; 765adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // terminate the thread 766adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.removeAllElements(); 767adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail(result); 768adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 769adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 770adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // terminate the thread 771adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.removeElementAt(0); 772adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 773adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 774adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 775229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#lastElement() 776adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 777adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_lastElement() { 778adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.lang.Object java.util.Vector.lastElement() 779adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Incorrect last element returned", "Test 99", tVector.lastElement() 780ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath ); 781adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.addElement(null); 782adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull("Incorrect last element returned--wanted null", tVector 783adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .lastElement()); 784f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 785ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath Vector vector = new Vector(); 786adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 787ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath vector.lastElement(); 788ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath fail("Should throw NoSuchElementException"); 789adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NoSuchElementException e) { 790ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath // Excepted 791adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 792adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 793adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 794adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 795229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#lastIndexOf(java.lang.Object) 796adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 797adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_lastIndexOfLjava_lang_Object() { 798adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method int java.util.Vector.lastIndexOf(java.lang.Object) 799adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Vector v = new Vector(9); 800adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < 9; i++) 801adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.addElement("Test"); 802adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.addElement("z"); 803adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Failed to return correct index", 8, v.lastIndexOf("Test")); 804adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.setElementAt(null, 20); 805adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.setElementAt(null, 40); 806adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Incorrect lastIndexOf returned for null: " 807adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + tVector.lastIndexOf(null), tVector.lastIndexOf(null) == 40); 808adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 809adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 810adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 811229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#lastIndexOf(java.lang.Object, int) 812adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 813adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_lastIndexOfLjava_lang_ObjectI() { 814adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method int java.util.Vector.lastIndexOf(java.lang.Object, 815adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // int) 816adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Failed to find object", 817adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 0, tVector.lastIndexOf("Test 0", 0)); 818adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Found Object outside of index", (tVector.lastIndexOf( 819adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "Test 0", 10) > -1)); 820adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.setElementAt(null, 20); 821adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.setElementAt(null, 40); 822adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.setElementAt(null, 60); 823adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Incorrect lastIndexOf returned for null: " 824adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + tVector.lastIndexOf(null, 15), 825adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.lastIndexOf(null, 15) == -1); 826adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Incorrect lastIndexOf returned for null: " 827adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + tVector.lastIndexOf(null, 45), 828adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.lastIndexOf(null, 45) == 40); 829f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 830ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertEquals(-1, tVector.lastIndexOf("Test 98", -1)); 831ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertEquals(-1, tVector.lastIndexOf("Test 98", 0)); 832adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 833ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertEquals(-1, tVector.lastIndexOf("Test 98", 1000)); 834ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath fail("should throw IndexOutOfBoundsException"); 835adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException e) { 836ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } 837ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath try { 838ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertEquals(-1, tVector.lastIndexOf("Test 98", Integer.MAX_VALUE)); 839ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath fail("should throw IndexOutOfBoundsException"); 840ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } catch (IndexOutOfBoundsException e) { 841ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } 842ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath try { 843ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath tVector.lastIndexOf("Test 98", tVector.size()); 844ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath fail("should throw IndexOutOfBoundsException"); 845ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } catch (IndexOutOfBoundsException e) { 846ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } 847ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath try { 848ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath tVector.indexOf("Test 98", Integer.MIN_VALUE); 849ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath fail("should throw ArrayIndexOutOfBoundsException"); 850ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } catch (ArrayIndexOutOfBoundsException e) { 851adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 852adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 853adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 854c13c9eddc3f7eeb760fcd9032b85ef2767cc82baTobias Thierer // http://b/30974375 855c13c9eddc3f7eeb760fcd9032b85ef2767cc82baTobias Thierer public void test_listIterator_addAndPrevious() { 856c13c9eddc3f7eeb760fcd9032b85ef2767cc82baTobias Thierer ListIterator<String> it = new Vector<String>().listIterator(); 857c13c9eddc3f7eeb760fcd9032b85ef2767cc82baTobias Thierer assertFalse(it.hasNext()); 858c13c9eddc3f7eeb760fcd9032b85ef2767cc82baTobias Thierer it.add("value"); 859c13c9eddc3f7eeb760fcd9032b85ef2767cc82baTobias Thierer assertEquals("value", it.previous()); 860c13c9eddc3f7eeb760fcd9032b85ef2767cc82baTobias Thierer assertTrue(it.hasNext()); 861c13c9eddc3f7eeb760fcd9032b85ef2767cc82baTobias Thierer } 862c13c9eddc3f7eeb760fcd9032b85ef2767cc82baTobias Thierer 863adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 864229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#remove(int) 865adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 866adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_removeI() { 867adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.lang.Object java.util.Vector.remove(int) 868ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath Object removeElement = tVector.get(36); 869ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath Object result = tVector.remove(36); 870ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertFalse("Contained element after remove", tVector 871adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .contains("Test 36")); 872ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertEquals("Should return the element that was removed", 873ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath removeElement, result); 874adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Failed to decrement size after remove", 875adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 99, tVector.size()); 876adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.add(20, null); 877ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath removeElement = tVector.get(19); 878ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath result = tVector.remove(19); 879adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull("Didn't move null element over", tVector.get(19)); 880ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertEquals("Should return the element that was removed", 881ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath removeElement, result); 882ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath removeElement = tVector.get(19); 883ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath result = tVector.remove(19); 884adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull("Didn't remove null element", tVector.get(19)); 885ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertEquals("Should return the element that was removed", 886ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath removeElement, result); 887adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Failed to decrement size after removing null", 98, tVector 888adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .size()); 889f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 890adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 891ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath tVector.remove(-1); 892ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath fail("Should throw ArrayIndexOutOfBoundsException"); 893ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } catch (ArrayIndexOutOfBoundsException e) { 894ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath // Excepted 895adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 896f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 897adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 898ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath tVector.remove(tVector.size()); 899ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath fail("Should throw ArrayIndexOutOfBoundsException"); 900ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } catch (ArrayIndexOutOfBoundsException e) { 901ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath // Excepted 902adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 903adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 904adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 905adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 906229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#remove(java.lang.Object) 907adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 908adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_removeLjava_lang_Object() { 909adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method boolean java.util.Vector.remove(java.lang.Object) 910adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.remove("Test 0"); 911adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Contained element after remove", !tVector 912adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .contains("Test 0")); 913adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Failed to decrement size after remove", 914adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 99, tVector.size()); 915adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.add(null); 916adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.remove(null); 917adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Contained null after remove", !tVector.contains(null)); 918adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Failed to decrement size after removing null", 99, tVector 919adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .size()); 920adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 921adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 922adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 923229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#removeAll(java.util.Collection) 924adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 925adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_removeAllLjava_util_Collection() { 926adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method boolean 927adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Vector.removeAll(java.util.Collection) 928adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Vector v = new Vector(); 929adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collection l = new LinkedList(); 930adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < 5; i++) 931adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project l.add("Test " + i); 932adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.addElement(l); 933adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 934adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collection s = new HashSet(); 935adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Object o; 936adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project s.add(o = v.firstElement()); 937adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.removeAll(s); 938adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Failed to remove items in collection", !v.contains(o)); 939adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.removeAll(l); 940adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Failed to remove all elements", v.isEmpty()); 941adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 942adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.add(null); 943adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.add(null); 944adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.add("Boom"); 945adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.removeAll(s); 946adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Should not have removed any elements", 3, v.size()); 947adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project l = new LinkedList(); 948adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project l.add(null); 949adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.removeAll(l); 950adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Should only have one element", 1, v.size()); 951adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Element should be 'Boom'", "Boom", v.firstElement()); 952f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 953adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 954adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.removeAll(null); 955adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 956adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 957adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 958adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 959adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 960adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 961adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 962229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#removeAllElements() 963adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 964adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_removeAllElements() { 965adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method void java.util.Vector.removeAllElements() 966adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Vector v = vectorClone(tVector); 967adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.removeAllElements(); 968adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Failed to remove all elements", 0, v.size()); 969adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 970adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 971adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 972229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#removeElement(java.lang.Object) 973adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 974adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_removeElementLjava_lang_Object() { 975adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method boolean 976adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Vector.removeElement(java.lang.Object) 977adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Vector v = vectorClone(tVector); 978adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.removeElement("Test 98"); 979adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Element not removed", "Test 99", ((String) v.elementAt(98)) 980ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath ); 981adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Vector is wrong size after removal: " + v.size(), 982adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.size() == 99); 983adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.addElement(null); 984adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.removeElement(null); 985adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Vector is wrong size after removing null: " + v.size(), v 986adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .size() == 99); 987adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 988adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 989adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 990229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#removeElementAt(int) 991adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 992adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_removeElementAtI() { 993adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method void java.util.Vector.removeElementAt(int) 994adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Vector v = vectorClone(tVector); 995ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath int size = v.size(); 996adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.removeElementAt(50); 997adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Failed to remove element", -1, v.indexOf("Test 50", 0)); 998ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertEquals("Test 51", v.get(50)); 999ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertEquals(size - 1, v.size()); 1000ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 1001adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.insertElementAt(null, 60); 1002ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertNull(tVector.get(60)); 1003ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath size = tVector.size(); 1004adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.removeElementAt(60); 1005adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull("Element at 60 should not be null after removal", tVector 1006adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .elementAt(60)); 1007ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertEquals(size - 1, tVector.size()); 1008f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1009adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1010ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath tVector.removeElementAt(-1); 1011ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath fail("Should throw ArrayIndexOutOfBoundsException"); 1012ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } catch (ArrayIndexOutOfBoundsException e) { 1013ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath // Excepted 1014adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1015f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1016adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1017ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath tVector.removeElementAt(tVector.size()); 1018ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath fail("Should throw ArrayIndexOutOfBoundsException"); 1019ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } catch (ArrayIndexOutOfBoundsException e) { 1020ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath // Excepted 1021ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } 1022ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } 1023ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 1024ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath /** 1025ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath * {@link java.util.Vector#removeRange(int, int)} 1026ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath */ 1027ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath public void test_removeRange() { 1028ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath MockVector myVector = new MockVector(); 1029ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath myVector.removeRange(0, 0); 1030ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 1031ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath try { 1032ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath myVector.removeRange(0, 1); 1033ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath fail("Should throw IndexOutOfBoundsException"); 1034ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } catch (IndexOutOfBoundsException e) { 1035ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath // Excepted 1036ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } 1037ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 1038ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath int[] data = { 1, 2, 3, 4 }; 1039ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath for (int i = 0; i < data.length; i++) { 1040ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath myVector.add(i, data[i]); 1041ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } 1042ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 1043ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath myVector.removeRange(0, 2); 1044ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertEquals(data[2], myVector.get(0)); 1045ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertEquals(data[3], myVector.get(1)); 1046ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 1047ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath try { 1048ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath myVector.removeRange(-1, 1); 1049ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath fail("Should throw IndexOutOfBoundsException"); 1050ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } catch (IndexOutOfBoundsException e) { 1051ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath // Excepted 1052ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } 1053ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 1054ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath try { 1055ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath myVector.removeRange(0, -1); 1056ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath fail("Should throw IndexOutOfBoundsException"); 1057ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } catch (IndexOutOfBoundsException e) { 1058ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath // Excepted 1059ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } 1060ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 1061ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath try { 1062ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath myVector.removeRange(1, 0); 1063ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath fail("Should throw IndexOutOfBoundsException"); 1064ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } catch (IndexOutOfBoundsException e) { 1065ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath // Excepted 1066ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } 1067ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 1068ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath try { 1069ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath myVector.removeRange(2, 1); 1070ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath fail("Should throw IndexOutOfBoundsException"); 1071ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } catch (IndexOutOfBoundsException e) { 1072ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath // Excepted 1073adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1074adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1075adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1076adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 1077229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#retainAll(java.util.Collection) 1078adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1079adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_retainAllLjava_util_Collection() { 1080adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method boolean 1081adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Vector.retainAll(java.util.Collection) 1082adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Object o = tVector.firstElement(); 1083adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.add(null); 1084adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collection s = new HashSet(); 1085adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project s.add(o); 1086adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project s.add(null); 1087adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.retainAll(s); 1088adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Retained items other than specified", tVector.size() == 2 1089adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project && tVector.contains(o) && tVector.contains(null)); 1090adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1091adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1092adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 1093229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#set(int, java.lang.Object) 1094adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1095adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_setILjava_lang_Object() { 1096adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.lang.Object java.util.Vector.set(int, 1097adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.lang.Object) 1098adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Object o = new Object(); 1099ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath Object previous = tVector.get(23); 1100ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath Object result = tVector.set(23, o); 1101ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertEquals( 1102ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath "Should return the element previously at the specified position", 1103ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath previous, result); 1104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Failed to set Object", tVector.get(23) == o); 1105f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1106ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath previous = tVector.get(0); 1107ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath result = tVector.set(0, null); 1108ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertEquals( 1109ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath "Should return the element previously at the specified position", 1110ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath previous, result); 1111ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertNull("Failed to set Object", tVector.get(0)); 1112ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 1113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1114ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath tVector.set(-1, o); 1115ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath fail("Should throw ArrayIndexOutOfBoundsException"); 1116ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } catch (ArrayIndexOutOfBoundsException e) { 1117ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath // Excepted 1118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1119f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1121ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath tVector.set(-1, null); 1122ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath fail("Should throw ArrayIndexOutOfBoundsException"); 1123ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } catch (ArrayIndexOutOfBoundsException e) { 1124ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath // Excepted 1125ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } 1126ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 1127ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath try { 1128ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath tVector.set(tVector.size(), o); 1129ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath fail("Should throw ArrayIndexOutOfBoundsException"); 1130ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } catch (ArrayIndexOutOfBoundsException e) { 1131ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath // Excepted 1132ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } 1133ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 1134ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath try { 1135ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath tVector.set(tVector.size(), null); 1136ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath fail("Should throw ArrayIndexOutOfBoundsException"); 1137ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } catch (ArrayIndexOutOfBoundsException e) { 1138ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath // Excepted 1139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 1143229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#setElementAt(java.lang.Object, int) 1144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_setElementAtLjava_lang_ObjectI() { 1146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method void java.util.Vector.setElementAt(java.lang.Object, 1147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // int) 1148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Vector v = vectorClone(tVector); 1149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.setElementAt("Inserted Element", 99); 1150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Element not set", "Inserted Element", ((String) v.elementAt(99)) 1151ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath ); 1152ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 1153ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath v.setElementAt(null, 0); 1154ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertNull("Null element not set", v.elementAt(0)); 1155f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1157ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath v.setElementAt("Inserted Element", -1); 1158ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath fail("Should throw ArrayIndexOutOfBoundsException"); 1159ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } catch (ArrayIndexOutOfBoundsException e) { 1160ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath // Excepted 1161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1162f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1164ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath v.setElementAt(null, -1); 1165ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath fail("Should throw ArrayIndexOutOfBoundsException"); 1166ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } catch (ArrayIndexOutOfBoundsException e) { 1167ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath // Excepted 1168ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } 1169ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 1170ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath try { 1171ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath v.setElementAt("Inserted Element", v.size()); 1172ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath fail("Should throw ArrayIndexOutOfBoundsException"); 1173ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } catch (ArrayIndexOutOfBoundsException e) { 1174ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath // Excepted 1175ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } 1176ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 1177ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath try { 1178ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath v.setElementAt(null, v.size()); 1179ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath fail("Should throw ArrayIndexOutOfBoundsException"); 1180ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } catch (ArrayIndexOutOfBoundsException e) { 1181ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath // Excepted 1182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 1186229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#setSize(int) 1187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_setSizeI() { 1189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method void java.util.Vector.setSize(int) 1190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Vector v = vectorClone(tVector); 1191ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath int oldSize = v.size(); 1192ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath Object preElement = v.get(10); 1193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.setSize(10); 1194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Failed to set size", 10, v.size()); 1195ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertEquals( 1196ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath "All components at index newSize and greater should be discarded", 1197ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath -1, v.indexOf(preElement)); 1198ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath try { 1199ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath v.get(oldSize - 1); 1200ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } catch (ArrayIndexOutOfBoundsException e) { 1201ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath // Excepted; 1202ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } 1203ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 1204ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath oldSize = v.size(); 1205ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath v.setSize(20); 1206ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertEquals("Failed to set size", 20, v.size()); 1207ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath for (int i = oldSize; i < v.size(); i++) { 1208ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertNull(v.get(i)); 1209ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } 1210f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1212ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath v.setSize(-1); 1213ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath fail("Should throw ArrayIndexOutOfBoundsException"); 1214ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } catch (ArrayIndexOutOfBoundsException e) { 1215ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath // Excepted 1216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 1220229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#size() 1221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_size() { 1223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method int java.util.Vector.size() 1224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Returned incorrect size", 100, tVector.size()); 1225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project final Vector v = new Vector(); 1227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.addElement("initial"); 1228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Thread t1 = new Thread() { 1229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void run() { 1230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while (v.size() > 0) 1231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ; 1232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.addElement("final"); 1233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project }; 1235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project t1.start(); 1236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < 10000; i++) { 1237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project synchronized (v) { 1238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.removeElementAt(0); 1239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.addElement(String.valueOf(i)); 1240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int size; 1242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if ((size = v.size()) != 1) { 1243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String result = "Size is not 1: " + size + " " + v; 1244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // terminate the thread 1245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.removeAllElements(); 1246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail(result); 1247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // terminate the thread 1250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.removeElementAt(0); 1251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 1254229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#subList(int, int) 1255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_subListII() { 1257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.util.List java.util.Vector.subList(int, int) 1258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project List sl = tVector.subList(10, 25); 1259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Returned sublist of incorrect size", 15, sl.size()); 1260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 10; i < 25; i++) 1261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned incorrect sublist", sl 1262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .contains(tVector.get(i))); 1263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Not synchronized random access", "java.util.Collections$SynchronizedRandomAccessList", sl.getClass().getName() 1265ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath ); 1266f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 1270229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#toArray() 1271adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_toArray() { 1273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.lang.Object [] java.util.Vector.toArray() 1274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned incorrect array", Arrays.equals(objArray, tVector 1275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .toArray())); 1276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1278adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 1279229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#toArray(java.lang.Object[]) 1280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_toArray$Ljava_lang_Object() { 1282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.lang.Object [] 1283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Vector.toArray(java.lang.Object []) 1284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Object[] o = new Object[1000]; 1285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Object f = new Object(); 1286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < o.length; i++) 1287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project o[i] = f; 1288adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.toArray(o); 1289adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull("Failed to set slot to null", o[100]); 1290adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < tVector.size(); i++) 1291adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned incorrect array", tVector.elementAt(i) == o[i]); 1292ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } 1293f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1294ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 1295ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath class SubVector<E> extends Vector<E> { 1296ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 1297ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath private static final long serialVersionUID = 1L; 1298ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 1299ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath public SubVector() { 1300ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath super(); 1301adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1302ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 1303ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath public synchronized boolean add(E obj) { 1304ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath super.addElement(obj); 1305ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath return true; 1306ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } 1307ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 1308ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath public synchronized void addElement(E obj) { 1309ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath super.add(obj); 1310adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1311ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 1312ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath /** 1313ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath * java.util.Vector#add(Object) 1314ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath */ 1315ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath @SuppressWarnings("nls") 1316ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath public void test_add() { 1317ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath SubVector<String> subvector = new SubVector<String>(); 1318ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath subvector.add("foo"); 1319ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath subvector.addElement("bar"); 1320ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertEquals("Expected two elements in vector", 2, subvector.size()); 1321ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } 1322ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 1323adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1324adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1325adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 1326229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#toString() 1327adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1328adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_toString() { 1329ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath // Ensure toString works with self-referencing elements. 1330ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath Vector<Object> vec = new Vector<Object>(3); 1331ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath vec.add(null); 1332ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath vec.add(new Object()); 1333ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath vec.add(vec); 1334ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertNotNull(vec.toString()); 1335ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 1336adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.lang.String java.util.Vector.toString() 1337adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Incorrect String returned", tVector.toString().equals( 1338adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project vString)); 1339adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1340adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Vector v = new Vector(); 1341adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.addElement("one"); 1342adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.addElement(v); 1343adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.addElement("3"); 1344adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // test last element 1345adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.addElement(v); 1346adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String result = v.toString(); 1347adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("should contain self ref", result.indexOf("(this") > -1); 1348adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1349adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1350ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath public void test_override_size() throws Exception { 1351ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath Vector v = new Vector(); 1352ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath Vector testv = new MockVector(); 1353ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath // though size is overriden, it should passed without exception 1354ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath testv.add(1); 1355ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath testv.add(2); 1356ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath testv.clear(); 1357ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 1358ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath testv.add(1); 1359ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath testv.add(2); 1360ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath v.add(1); 1361ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath v.add(2); 1362ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath // RI's bug here 1363ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath assertTrue(testv.equals(v)); 1364ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } 1365ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 1366adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 1367229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Vector#trimToSize() 1368adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1369adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_trimToSize() { 1370adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method void java.util.Vector.trimToSize() 1371adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Vector v = new Vector(10); 1372adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.addElement(new Object()); 1373adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project v.trimToSize(); 1374adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Failed to trim capacity", 1, v.capacity()); 1375adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1376f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1377adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_removeRangeII() { 1378ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath MockVector mv = new MockVector(); 1379adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mv.add("First"); 1380adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mv.add("Second"); 1381adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mv.add("One more"); 1382adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mv.add("Last"); 1383adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mv.removeRange(1, 3); 1384adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(mv.contains("First")); 1385adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(mv.contains("Second")); 1386adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(mv.contains("One more")); 1387adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(mv.contains("Last")); 1388adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1389adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1390adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected Vector vectorClone(Vector s) { 1391adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return (Vector) s.clone(); 1392adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1393adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1394ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath public class MockVector extends Vector { 1395ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath @Override 1396ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath public synchronized int size() { 1397ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath return 0; 1398ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } 1399ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 1400ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath public void removeRange(int start, int end) { 1401ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath super.removeRange(start, end); 1402ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } 1403ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath } 1404ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath 1405c3a9db83a352d92d5a6e0098f22bde07e34a1d3bPrzemyslaw Szczepaniak public void test_forEach() throws Exception { 1406c3a9db83a352d92d5a6e0098f22bde07e34a1d3bPrzemyslaw Szczepaniak Vector<Integer> vector = new Vector<Integer>(); 1407c3a9db83a352d92d5a6e0098f22bde07e34a1d3bPrzemyslaw Szczepaniak vector.add(0); 1408c3a9db83a352d92d5a6e0098f22bde07e34a1d3bPrzemyslaw Szczepaniak vector.add(1); 1409c3a9db83a352d92d5a6e0098f22bde07e34a1d3bPrzemyslaw Szczepaniak vector.add(2); 1410c3a9db83a352d92d5a6e0098f22bde07e34a1d3bPrzemyslaw Szczepaniak 1411c3a9db83a352d92d5a6e0098f22bde07e34a1d3bPrzemyslaw Szczepaniak Vector<Integer> output = new Vector<Integer>(); 1412c3a9db83a352d92d5a6e0098f22bde07e34a1d3bPrzemyslaw Szczepaniak vector.forEach ( k -> output.add(k) ); 1413c3a9db83a352d92d5a6e0098f22bde07e34a1d3bPrzemyslaw Szczepaniak 1414c3a9db83a352d92d5a6e0098f22bde07e34a1d3bPrzemyslaw Szczepaniak assertEquals(vector, output); 1415c3a9db83a352d92d5a6e0098f22bde07e34a1d3bPrzemyslaw Szczepaniak } 1416c3a9db83a352d92d5a6e0098f22bde07e34a1d3bPrzemyslaw Szczepaniak 1417c3a9db83a352d92d5a6e0098f22bde07e34a1d3bPrzemyslaw Szczepaniak 1418c3a9db83a352d92d5a6e0098f22bde07e34a1d3bPrzemyslaw Szczepaniak public void test_forEach_NPE() throws Exception { 1419c3a9db83a352d92d5a6e0098f22bde07e34a1d3bPrzemyslaw Szczepaniak Vector<Integer> vector = new Vector<>(); 1420c3a9db83a352d92d5a6e0098f22bde07e34a1d3bPrzemyslaw Szczepaniak try { 1421c3a9db83a352d92d5a6e0098f22bde07e34a1d3bPrzemyslaw Szczepaniak vector.forEach(null); 1422c3a9db83a352d92d5a6e0098f22bde07e34a1d3bPrzemyslaw Szczepaniak fail(); 1423c3a9db83a352d92d5a6e0098f22bde07e34a1d3bPrzemyslaw Szczepaniak } catch(NullPointerException expected) {} 1424c3a9db83a352d92d5a6e0098f22bde07e34a1d3bPrzemyslaw Szczepaniak } 1425c3a9db83a352d92d5a6e0098f22bde07e34a1d3bPrzemyslaw Szczepaniak 1426c3a9db83a352d92d5a6e0098f22bde07e34a1d3bPrzemyslaw Szczepaniak public void test_forEach_CME() throws Exception { 1427c3a9db83a352d92d5a6e0098f22bde07e34a1d3bPrzemyslaw Szczepaniak Vector<Integer> vector = new Vector<>(); 1428c3a9db83a352d92d5a6e0098f22bde07e34a1d3bPrzemyslaw Szczepaniak vector.add(1); 1429c3a9db83a352d92d5a6e0098f22bde07e34a1d3bPrzemyslaw Szczepaniak vector.add(2); 1430c3a9db83a352d92d5a6e0098f22bde07e34a1d3bPrzemyslaw Szczepaniak try { 1431c3a9db83a352d92d5a6e0098f22bde07e34a1d3bPrzemyslaw Szczepaniak vector.forEach(new java.util.function.Consumer<Integer>() { 1432c3a9db83a352d92d5a6e0098f22bde07e34a1d3bPrzemyslaw Szczepaniak @Override 1433c3a9db83a352d92d5a6e0098f22bde07e34a1d3bPrzemyslaw Szczepaniak public void accept(Integer t) {vector.add(t);} 1434c3a9db83a352d92d5a6e0098f22bde07e34a1d3bPrzemyslaw Szczepaniak }); 1435c3a9db83a352d92d5a6e0098f22bde07e34a1d3bPrzemyslaw Szczepaniak fail(); 1436c3a9db83a352d92d5a6e0098f22bde07e34a1d3bPrzemyslaw Szczepaniak } catch(ConcurrentModificationException expected) {} 1437c3a9db83a352d92d5a6e0098f22bde07e34a1d3bPrzemyslaw Szczepaniak } 1438c3a9db83a352d92d5a6e0098f22bde07e34a1d3bPrzemyslaw Szczepaniak 1439e633814ad4dc6c7dc0c34080292c2c9622cbd5a3Narayan Kamath public void test_forEachRemaining_iterator() throws Exception { 1440e633814ad4dc6c7dc0c34080292c2c9622cbd5a3Narayan Kamath ForEachRemainingTester.runTests(Vector.class, new String[] { "foo", "bar", "baz" }); 1441e633814ad4dc6c7dc0c34080292c2c9622cbd5a3Narayan Kamath ForEachRemainingTester.runTests(Vector.class, new String[] { "foo" }); 1442e633814ad4dc6c7dc0c34080292c2c9622cbd5a3Narayan Kamath } 1443e633814ad4dc6c7dc0c34080292c2c9622cbd5a3Narayan Kamath 14448b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamath public void test_spliterator() throws Exception { 14458b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamath ArrayList<Integer> testElements = new ArrayList<>( 14468b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamath Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)); 14478b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamath Vector<Integer> list = new Vector<>(); 14488b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamath list.addAll(testElements); 14498b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamath 14508b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamath SpliteratorTester.runBasicIterationTests(list.spliterator(), testElements); 14518b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamath SpliteratorTester.runBasicSplitTests(list, testElements); 14528b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamath SpliteratorTester.testSpliteratorNPE(list.spliterator()); 14538b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamath 14548b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamath assertTrue(list.spliterator().hasCharacteristics( 14558b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamath Spliterator.ORDERED | Spliterator.SIZED | Spliterator.SUBSIZED)); 14568b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamath 14578b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamath SpliteratorTester.runOrderedTests(list); 14588b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamath SpliteratorTester.runSizedTests(list, 16 /* expected size */); 14598b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamath SpliteratorTester.runSubSizedTests(list, 16 /* expected size */); 1460508f0abe4f8686d29466b2c364cb4f60bf0484b5Tobias Thierer SpliteratorTester.assertSupportsTrySplit(list); 14618b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamath } 14628b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamath 14638b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamath public void test_spliterator_CME() throws Exception { 14648b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamath Vector<Integer> list = new Vector<>(); 14658b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamath list.add(52); 14668b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamath 14678b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamath Spliterator<Integer> sp = list.spliterator(); 14688b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamath try { 14698b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamath sp.tryAdvance(value -> list.add(value)); 14708b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamath fail(); 14718b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamath } catch (ConcurrentModificationException expected) { 14728b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamath } 14738b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamath 14748b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamath try { 14758b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamath sp.forEachRemaining(value -> list.add(value)); 14768b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamath fail(); 14778b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamath } catch (ConcurrentModificationException expected) { 14788b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamath } 14798b056f0b15bc1e45da8d4c504353b05e681ac013Narayan Kamath } 1480c3a9db83a352d92d5a6e0098f22bde07e34a1d3bPrzemyslaw Szczepaniak 1481d41ca4a76ea570f9dd89a7ae56410cc75cc0a856Yi Kong public void test_removeIf() { 1482d41ca4a76ea570f9dd89a7ae56410cc75cc0a856Yi Kong runBasicRemoveIfTests(Vector<Integer>::new); 1483d41ca4a76ea570f9dd89a7ae56410cc75cc0a856Yi Kong runBasicRemoveIfTestsUnordered(Vector<Integer>::new); 1484d41ca4a76ea570f9dd89a7ae56410cc75cc0a856Yi Kong runRemoveIfOnEmpty(Vector<Integer>::new); 1485d41ca4a76ea570f9dd89a7ae56410cc75cc0a856Yi Kong testRemoveIfNPE(Vector<Integer>::new); 1486d41ca4a76ea570f9dd89a7ae56410cc75cc0a856Yi Kong testRemoveIfCME(Vector<Integer>::new); 1487d41ca4a76ea570f9dd89a7ae56410cc75cc0a856Yi Kong } 1488d41ca4a76ea570f9dd89a7ae56410cc75cc0a856Yi Kong 14896e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath // http://b/25867131 et al. 14906e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath public void testIteratorAddAfterCompleteIteration() { 14916e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath Vector<String> strings = new Vector<>(); 14926e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath strings.add("string1"); 14936e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath Iterator<String> it = strings.iterator(); 14946e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath assertTrue(it.hasNext()); 14956e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath assertEquals("string1", it.next()); 14966e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath assertFalse(it.hasNext()); 14976e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath strings.add("string2"); 14986e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath // The value of hasNext() must not flap between true and false. If we returned "true" 14996e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath // here, we'd fail with a CME on the next call to next() anyway. 15006e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath assertFalse(it.hasNext()); 15016e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath } 15026e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath 15036e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath public void testHasNextAfterRemoval() { 15046e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath Vector<String> strings = new Vector<>(); 15056e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath strings.add("string1"); 15066e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath Iterator<String> it = strings.iterator(); 15076e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath it.next(); 15086e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath it.remove(); 15096e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath assertFalse(it.hasNext()); 15106e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath 15116e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath strings = new Vector<>(); 15126e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath strings.add("string1"); 15136e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath strings.add("string2"); 15146e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath it = strings.iterator(); 15156e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath it.next(); 15166e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath it.remove(); 15176e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath assertTrue(it.hasNext()); 15186e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath assertEquals("string2", it.next()); 15196e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath } 15206e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath 15216e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath // http://b/27430229 15226e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath public void testRemoveAllDuringIteration() { 15236e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath Vector<String> vector = new Vector<>(); 15246e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath vector.add("food"); 15256e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath Iterator<String> vectorIterator = vector.iterator(); 15266e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath vectorIterator.next(); 15276e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath vector.removeAllElements(); 15286e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath assertFalse(vectorIterator.hasNext()); 15296e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath } 15306e5b758a4438d2c154dd11a5c04d14a5d2fc907cNarayan Kamath 1531adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 1532adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Sets up the fixture, for example, open a network connection. This method 1533adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * is called before a test is executed. 1534adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1535adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void setUp() { 1536adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < 100; i++) { 1537adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tVector.addElement("Test " + i); 1538adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1539adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project objArray = new Object[100]; 1540adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < 100; i++) { 1541adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project objArray[i] = "Test " + i; 1542adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1543adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1544adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1545adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 1546adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Tears down the fixture, for example, close a network connection. This 1547adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * method is called after a test is executed. 1548adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1549adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void tearDown() { 1550adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1551adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 1552