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
203984cdba314a0f7b0587000dec99ff26fd9bcbb5Narayan Kamathimport libcore.java.util.ForEachRemainingTester;
214c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamathimport libcore.java.util.SpliteratorTester;
22ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamathimport tests.support.Support_ListTest;
234c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath
244c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamathimport java.util.ArrayList;
25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Arrays;
26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Collection;
2760796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniakimport java.util.ConcurrentModificationException;
28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Enumeration;
29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.HashSet;
305c35c7ebda68cc39b6bdee20f678a150336ebd1dYi Kongimport java.util.Iterator;
31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.LinkedList;
32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.List;
3308e9e364940586cb242839c8f0e303b82438f58bTobias Thiererimport java.util.ListIterator;
34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.NoSuchElementException;
354c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamathimport java.util.Spliterator;
36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Vector;
37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
385c35c7ebda68cc39b6bdee20f678a150336ebd1dYi Kongimport static libcore.java.util.RemoveIfTester.*;
395c35c7ebda68cc39b6bdee20f678a150336ebd1dYi 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
85408e9e364940586cb242839c8f0e303b82438f58bTobias Thierer    // http://b/30974375
85508e9e364940586cb242839c8f0e303b82438f58bTobias Thierer    public void test_listIterator_addAndPrevious() {
85608e9e364940586cb242839c8f0e303b82438f58bTobias Thierer        ListIterator<String> it = new Vector<String>().listIterator();
85708e9e364940586cb242839c8f0e303b82438f58bTobias Thierer        assertFalse(it.hasNext());
85808e9e364940586cb242839c8f0e303b82438f58bTobias Thierer        it.add("value");
85908e9e364940586cb242839c8f0e303b82438f58bTobias Thierer        assertEquals("value", it.previous());
86008e9e364940586cb242839c8f0e303b82438f58bTobias Thierer        assertTrue(it.hasNext());
86108e9e364940586cb242839c8f0e303b82438f58bTobias Thierer    }
86208e9e364940586cb242839c8f0e303b82438f58bTobias 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
140560796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak    public void test_forEach() throws Exception {
140660796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak      Vector<Integer> vector = new Vector<Integer>();
140760796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak      vector.add(0);
140860796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak      vector.add(1);
140960796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak      vector.add(2);
141060796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak
141160796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak      Vector<Integer> output = new Vector<Integer>();
141260796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak      vector.forEach ( k -> output.add(k) );
141360796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak
141460796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak      assertEquals(vector, output);
141560796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak    }
141660796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak
141760796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak
141860796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak    public void test_forEach_NPE() throws Exception {
141960796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        Vector<Integer> vector = new Vector<>();
142060796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        try {
142160796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak            vector.forEach(null);
142260796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak            fail();
142360796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        } catch(NullPointerException expected) {}
142460796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak    }
142560796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak
142660796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak    public void test_forEach_CME() throws Exception {
142760796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        Vector<Integer> vector = new Vector<>();
142860796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        vector.add(1);
142960796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        vector.add(2);
143060796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        try {
143160796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak            vector.forEach(new java.util.function.Consumer<Integer>() {
143260796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak                    @Override
143360796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak                    public void accept(Integer t) {vector.add(t);}
143460796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak                });
143560796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak            fail();
143660796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        } catch(ConcurrentModificationException expected) {}
143760796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak    }
143860796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak
14393984cdba314a0f7b0587000dec99ff26fd9bcbb5Narayan Kamath    public void test_forEachRemaining_iterator() throws Exception {
14403984cdba314a0f7b0587000dec99ff26fd9bcbb5Narayan Kamath        ForEachRemainingTester.runTests(Vector.class, new String[] { "foo", "bar", "baz" });
14413984cdba314a0f7b0587000dec99ff26fd9bcbb5Narayan Kamath        ForEachRemainingTester.runTests(Vector.class, new String[] { "foo" });
14423984cdba314a0f7b0587000dec99ff26fd9bcbb5Narayan Kamath    }
14433984cdba314a0f7b0587000dec99ff26fd9bcbb5Narayan Kamath
14444c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath    public void test_spliterator() throws Exception {
14454c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath        ArrayList<Integer> testElements = new ArrayList<>(
14464c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath                Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16));
14474c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath        Vector<Integer> list = new Vector<>();
14484c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath        list.addAll(testElements);
14494c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath
14504c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath        SpliteratorTester.runBasicIterationTests(list.spliterator(), testElements);
14514c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath        SpliteratorTester.runBasicSplitTests(list, testElements);
14524c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath        SpliteratorTester.testSpliteratorNPE(list.spliterator());
14534c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath
14544c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath        assertTrue(list.spliterator().hasCharacteristics(
14554c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath                Spliterator.ORDERED | Spliterator.SIZED | Spliterator.SUBSIZED));
14564c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath
14574c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath        SpliteratorTester.runOrderedTests(list);
14584c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath        SpliteratorTester.runSizedTests(list, 16 /* expected size */);
14594c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath        SpliteratorTester.runSubSizedTests(list, 16 /* expected size */);
14604c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath    }
14614c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath
14624c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath    public void test_spliterator_CME() throws Exception {
14634c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath        Vector<Integer> list = new Vector<>();
14644c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath        list.add(52);
14654c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath
14664c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath        Spliterator<Integer> sp = list.spliterator();
14674c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath        try {
14684c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath            sp.tryAdvance(value -> list.add(value));
14694c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath            fail();
14704c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath        } catch (ConcurrentModificationException expected) {
14714c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath        }
14724c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath
14734c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath        try {
14744c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath            sp.forEachRemaining(value -> list.add(value));
14754c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath            fail();
14764c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath        } catch (ConcurrentModificationException expected) {
14774c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath        }
14784c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath    }
14794c89023ef86f29fa9add7db2574f2169fe842577Narayan Kamath
14805c35c7ebda68cc39b6bdee20f678a150336ebd1dYi Kong    public void test_removeIf() {
14815c35c7ebda68cc39b6bdee20f678a150336ebd1dYi Kong        runBasicRemoveIfTests(Vector<Integer>::new);
14825c35c7ebda68cc39b6bdee20f678a150336ebd1dYi Kong        runBasicRemoveIfTestsUnordered(Vector<Integer>::new);
14835c35c7ebda68cc39b6bdee20f678a150336ebd1dYi Kong        runRemoveIfOnEmpty(Vector<Integer>::new);
14845c35c7ebda68cc39b6bdee20f678a150336ebd1dYi Kong        testRemoveIfNPE(Vector<Integer>::new);
14855c35c7ebda68cc39b6bdee20f678a150336ebd1dYi Kong        testRemoveIfCME(Vector<Integer>::new);
14865c35c7ebda68cc39b6bdee20f678a150336ebd1dYi Kong    }
14875c35c7ebda68cc39b6bdee20f678a150336ebd1dYi Kong
1488887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath    // http://b/25867131 et al.
1489887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath    public void testIteratorAddAfterCompleteIteration() {
1490887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath        Vector<String> strings = new Vector<>();
1491887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath        strings.add("string1");
1492887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath        Iterator<String> it = strings.iterator();
1493887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath        assertTrue(it.hasNext());
1494887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath        assertEquals("string1", it.next());
1495887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath        assertFalse(it.hasNext());
1496887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath        strings.add("string2");
1497887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath        // The value of hasNext() must not flap between true and false. If we returned "true"
1498887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath        // here, we'd fail with a CME on the next call to next() anyway.
1499887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath        assertFalse(it.hasNext());
1500887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath    }
1501887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath
1502887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath    public void testHasNextAfterRemoval() {
1503887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath        Vector<String> strings = new Vector<>();
1504887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath        strings.add("string1");
1505887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath        Iterator<String> it = strings.iterator();
1506887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath        it.next();
1507887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath        it.remove();
1508887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath        assertFalse(it.hasNext());
1509887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath
1510887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath        strings = new Vector<>();
1511887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath        strings.add("string1");
1512887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath        strings.add("string2");
1513887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath        it = strings.iterator();
1514887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath        it.next();
1515887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath        it.remove();
1516887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath        assertTrue(it.hasNext());
1517887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath        assertEquals("string2", it.next());
1518887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath    }
1519887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath
1520887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath    // http://b/27430229
1521887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath    public void testRemoveAllDuringIteration() {
1522887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath        Vector<String> vector = new Vector<>();
1523887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath        vector.add("food");
1524887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath        Iterator<String> vectorIterator = vector.iterator();
1525887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath        vectorIterator.next();
1526887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath        vector.removeAllElements();
1527887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath        assertFalse(vectorIterator.hasNext());
1528887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath    }
1529887ab3fe607c582e10e33b3d631401d7a791aaedNarayan Kamath
1530adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
1531adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Sets up the fixture, for example, open a network connection. This method
1532adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * is called before a test is executed.
1533adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
1534adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    protected void setUp() {
1535adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < 100; i++) {
1536adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            tVector.addElement("Test " + i);
1537adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1538adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        objArray = new Object[100];
1539adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < 100; i++) {
1540adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            objArray[i] = "Test " + i;
1541adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1542adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
1543adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1544adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
1545adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Tears down the fixture, for example, close a network connection. This
1546adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * method is called after a test is executed.
1547adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
1548adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    protected void tearDown() {
1549adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
1550adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project}
1551