1cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath/*
2cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Licensed to the Apache Software Foundation (ASF) under one or more
3cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * contributor license agreements.  See the NOTICE file distributed with
4cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * this work for additional information regarding copyright ownership.
5cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * The ASF licenses this file to You under the Apache License, Version 2.0
6cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * (the "License"); you may not use this file except in compliance with
7cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * the License.  You may obtain a copy of the License at
860796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak *
9cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * http://www.apache.org/licenses/LICENSE-2.0
1060796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak *
11cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Unless required by applicable law or agreed to in writing, software
12cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * License for the specific language governing permissions and limitations under
15cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * the License.
16cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */
17cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
18ab762bb740405d0fefcccf4a0899a234f995be13Narayan Kamathpackage org.apache.harmony.tests.java.util;
19cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
209aab36ec35b4591cb9ba9ae0e4586cb642c39587Narayan Kamathimport junit.framework.TestCase;
219aab36ec35b4591cb9ba9ae0e4586cb642c39587Narayan Kamathimport org.apache.harmony.testframework.serialization.SerializationTest;
229aab36ec35b4591cb9ba9ae0e4586cb642c39587Narayan Kamathimport org.apache.harmony.testframework.serialization.SerializationTest.SerializableAssert;
239aab36ec35b4591cb9ba9ae0e4586cb642c39587Narayan Kamathimport tests.util.SerializationTester;
24cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.Serializable;
2560796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniakimport java.util.ArrayDeque;
26cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.ArrayList;
27cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.Arrays;
28cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.Collection;
29cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.Collections;
30cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.Comparator;
3160796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniakimport java.util.Deque;
32cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.HashMap;
33cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.HashSet;
34cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.LinkedList;
35cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.List;
36cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.Map;
3760796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniakimport java.util.Queue;
38cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.RandomAccess;
39cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.Set;
40cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.SortedMap;
41cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.SortedSet;
42cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.TreeMap;
43cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.TreeSet;
44cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.Vector;
45cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
46cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathpublic class Collections2Test extends TestCase {
47cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
48cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    private static final SerializableAssert comparator = new SerializableAssert() {
49cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        public void assertDeserialized(Serializable reference, Serializable test) {
50cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            assertSame(reference, test);
51cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
52cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    };
53cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
54cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
55cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.util.Collections#binarySearch(java.util.List,
56cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     *java.lang.Object, java.util.Comparator)
57cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
58cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_binarySearchLjava_util_ListLjava_lang_ObjectLjava_util_Comparator() {
59cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        // Regression for HARMONY-94
60cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        LinkedList<Integer> lst = new LinkedList<Integer>();
61cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        lst.add(new Integer(30));
62cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Collections.sort(lst, null);
63cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        int index = Collections.binarySearch(lst, new Integer(2), null);
64cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(-1, index);
65cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
66cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
67cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
68cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.util.Collections#binarySearch(java.util.List,
69cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     *java.lang.Object)
70cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
71cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    @SuppressWarnings("unchecked")
72cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_binarySearchLjava_util_ListLjava_lang_Object() {
73cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        // regression for Harmony-1367
74cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        List localList = new LinkedList();
75cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(-1, Collections.binarySearch(localList, new Object()));
76cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        localList.add(new Object());
77cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
78cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            Collections.binarySearch(localList, new Integer(1));
79cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("Should throw ClassCastException");
80cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (ClassCastException e) {
81cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // expected
82cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
83cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
84cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
85cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
86cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.util.Collections#rotate(java.util.List, int)
87cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
88cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_rotateLjava_util_ListI() {
89cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        // Regression for HARMONY-19 Rotate an *empty* list
90cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Collections.rotate(new ArrayList<Object>(), 25);
91cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
92cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        // Regression for HARMONY-20
93cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        List<String> list = new ArrayList<String>();
94cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        list.add(0, "zero");
95cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        list.add(1, "one");
96cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        list.add(2, "two");
97cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        list.add(3, "three");
98cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        list.add(4, "four");
99cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
100cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Collections.rotate(list, Integer.MIN_VALUE);
101cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("Rotated incorrectly at position 0, ", "three",
102cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                list.get(0));
103cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("Rotated incorrectly at position 1, ", "four",
104cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                list.get(1));
105cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("Rotated incorrectly at position 2, ", "zero",
106cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                list.get(2));
107cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("Rotated incorrectly at position 3, ", "one",
108cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                list.get(3));
109cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("Rotated incorrectly at position 4, ", "two",
110cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                list.get(4));
111cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
112cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
113cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
114cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.util.Collections#synchronizedCollection(java.util.Collection)
115cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
116cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_synchronizedCollectionLjava_util_Collection() {
117cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
118cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Regression for HARMONY-93
119cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            Collections.synchronizedCollection(null);
120cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("Assert 0: synchronizedCollection(null) must throw NPE");
121cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (NullPointerException e) {
122cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // expected
123cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
124cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
125cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
126cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
127cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.util.Collections#synchronizedSortedMap(java.util.SortedMap)
128cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
129cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_synchronizedSortedMapLjava_util_SortedMap() {
130cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
131cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Regression for HARMONY-93
132cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            Collections.synchronizedSortedMap(null);
133cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("Assert 0: synchronizedSortedMap(null) must throw NPE");
134cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (NullPointerException e) {
135cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // expected
136cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
137cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
138cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
139cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
140cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.util.Collections#synchronizedMap(java.util.Map)
141cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
142cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_synchronizedMapLjava_util_Map() {
143cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
144cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Regression for HARMONY-93
145cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            Collections.synchronizedMap(null);
146cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("Assert 0: synchronizedMap(map) must throw NPE");
147cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (NullPointerException e) {
148cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // expected
149cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
150cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
151cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
152cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
153cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.util.Collections#synchronizedSet(java.util.Set)
154cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
155cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_synchronizedSetLjava_util_Set() {
156cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
157cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Regression for HARMONY-93
158cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            Collections.synchronizedSet(null);
159cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("Assert 0: synchronizedSet(set) must throw NPE");
160cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (NullPointerException e) {
161cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // expected
162cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
163cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
164cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
165cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
166cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.util.Collections#synchronizedSortedSet(java.util.SortedSet)
167cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
168cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_synchronizedSortedSetLjava_util_SortedSet() {
169cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
170cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Regression for HARMONY-93
171cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            Collections.synchronizedSortedSet(null);
172cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("Assert 0: synchronizedSortedSet(null) must throw NPE");
173cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (NullPointerException e) {
174cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // expected
175cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
176cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
177cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
178cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
179cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.util.Collections#unmodifiableCollection(java.util.Collection)
180cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
181cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_unmodifiableCollectionLjava_util_Collection() {
182cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
183cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Regression for HARMONY-93
184cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            Collections.unmodifiableCollection(null);
185cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("Assert 0: unmodifiableCollection(null) must throw NPE");
186cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (NullPointerException e) {
187cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // expected
188cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
189cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
190cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
191cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
192cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.util.Collections#unmodifiableMap(java.util.Map)
193cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
194cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_unmodifiableMapLjava_util_Map() {
195cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
196cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Regression for HARMONY-93
197cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            Collections.unmodifiableMap(null);
198cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("Assert 0: unmodifiableMap(null) must throw NPE");
199cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (NullPointerException e) {
200cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // expected
201cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
202cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
203cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
204cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
205cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.util.Collections#unmodifiableSet(java.util.Set)
206cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
207cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_unmodifiableSetLjava_util_Set() {
208cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
209cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Regression for HARMONY-93
210cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            Collections.unmodifiableSet(null);
211cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("Assert 0: unmodifiableSet(null) must throw NPE");
212cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (NullPointerException e) {
213cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // expected
214cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
215cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
216cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
217cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
218cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.util.Collections#unmodifiableSortedMap(java.util.SortedMap)
219cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
220cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_unmodifiableSortedMapLjava_util_SortedMap() {
221cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
222cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Regression for HARMONY-93
223cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            Collections.unmodifiableSortedMap(null);
224cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("Assert 0: unmodifiableSortedMap(null) must throw NPE");
225cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (NullPointerException e) {
226cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // expected
227cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
228cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
229cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
230cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
231cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.util.Collections#unmodifiableSortedSet(java.util.SortedSet)
232cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
233cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_unmodifiableSortedSetLjava_util_SortedSet() {
234cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
235cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Regression for HARMONY-93
236cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            Collections.unmodifiableSortedSet(null);
237cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("Assert 0: unmodifiableSortedSet(null) must throw NPE");
238cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (NullPointerException e) {
239cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // expected
240cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
241cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
242cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
243cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
244cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.util.Collections#frequency(java.util.Collection, Object)
245cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
246cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_frequencyLjava_util_CollectionLint() {
247cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
248cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            Collections.frequency(null, null);
249cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("Assert 0: frequency(null,<any>) must throw NPE");
250cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (NullPointerException e) {
251cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
252cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
253cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        List<String> strings = Arrays.asList(new String[] { "1", "2", "3", "1", "1" });
254cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
255cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("Assert 1: did not find three \"1\" strings", 3,
256cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                Collections.frequency(strings, "1"));
257cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
258cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("Assert 2: did not find one \"2\" strings", 1, Collections
259cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                .frequency(strings, "2"));
260cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
261cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("Assert 3: did not find three \"3\" strings", 1,
262cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                Collections.frequency(strings, "3"));
263cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
264cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("Assert 4: matched on null when there are none", 0,
265cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                Collections.frequency(strings, null));
266cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
267cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        List<Object> objects = Arrays.asList(new Object[] { new Integer(1), null, null,
268cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                new Long(1) });
269cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
270cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("Assert 5: did not find one Integer(1)", 1, Collections
271cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                .frequency(objects, new Integer(1)));
272cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
273cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("Assert 6: did not find one Long(1)", 1, Collections
274cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                .frequency(objects, new Long(1)));
275cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
276cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("Assert 7: did not find two null references", 2,
277cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                Collections.frequency(objects, null));
278cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
279cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
280cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
281cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.util.Collections#reverseOrder()
282cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
283cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_reverseOrder() {
284cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Comparator<String> roc = Collections.reverseOrder();
285cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertNotNull("Assert 0: comparator must not be null", roc);
286cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
287cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("Assert 1: comparator must implement Serializable",
288cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                roc instanceof Serializable);
289cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
290cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        String[] fixtureDesc = new String[] { "2", "1", "0" };
291cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        String[] numbers = new String[] { "0", "1", "2" };
292cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Arrays.sort(numbers, roc);
293cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("Assert 2: the arrays are not equal, the sort failed",
294cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                Arrays.equals(fixtureDesc, numbers));
295cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
296cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
297cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
298cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.util.Collections#reverseOrder(java.util.Comparator)
299cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
300cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_reverseOrderLjava_util_Comparator() {
301cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Comparator<String> roc = Collections
302cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                .reverseOrder(String.CASE_INSENSITIVE_ORDER);
303cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertNotNull("Assert 0: comparator must not be null", roc);
304cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
305cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("Assert 1: comparator must implement Serializable",
306cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                roc instanceof Serializable);
307cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
308cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        String[] fixtureDesc = new String[] { "2", "1", "0" };
309cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        String[] numbers = new String[] { "0", "1", "2" };
310cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Arrays.sort(numbers, roc);
311cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("Assert 2: the arrays are not equal, the sort failed",
312cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                Arrays.equals(fixtureDesc, numbers));
313cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
314cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        roc = Collections.reverseOrder(null);
315cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertNotNull("Assert 3: comparator must not be null", roc);
316cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
317cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("Assert 4: comparator must implement Serializable",
318cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                roc instanceof Serializable);
319cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
320cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        numbers = new String[] { "0", "1", "2" };
321cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Arrays.sort(numbers, roc);
322cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("Assert 5: the arrays are not equal, the sort failed",
323cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                Arrays.equals(fixtureDesc, numbers));
324cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
325cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
326cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_AddAll() {
327cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        List<Object> l = new ArrayList<Object>();
328cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertFalse(Collections.addAll(l, new Object[] { }));
329cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue(l.isEmpty());
330cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue(Collections.addAll(l, new Object[] { new Integer(1),
331cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                new Integer(2), new Integer(3) }));
332cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertFalse(l.isEmpty());
333cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue(l.equals(Arrays.asList(new Object[] { new Integer(1),
334cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                new Integer(2), new Integer(3) })));
335cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
336cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
337cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_Disjoint() {
338cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Object[] arr1 = new Object[10];
339cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        for (int i = 0; i < arr1.length; i++) {
340cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            arr1[i] = new Integer(i);
341cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
342cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Object[] arr2 = new Object[20];
343cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        for (int i = 0; i < arr2.length; i++) {
344cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            arr2[i] = new Integer(100 + i);
345cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
346cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Collection<Object> c1 = new ArrayList<Object>();
347cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Collection<Object> c2 = new ArrayList<Object>();
348cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Collections.addAll(c1, arr1);
349cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Collections.addAll(c2, arr2);
350cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue(Collections.disjoint(c1, c2));
351cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        c1.add(arr2[10]);
352cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertFalse(Collections.disjoint(c1, c2));
353cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
354cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        c1 = new LinkedList<Object>();
355cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        c2 = new LinkedList<Object>();
356cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Collections.addAll(c1, arr1);
357cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Collections.addAll(c2, arr2);
358cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue(Collections.disjoint(c1, c2));
359cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        c1.add(arr2[10]);
360cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertFalse(Collections.disjoint(c1, c2));
361cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
362cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        c1 = new TreeSet<Object>();
363cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        c2 = new TreeSet<Object>();
364cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Collections.addAll(c1, arr1);
365cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Collections.addAll(c2, arr2);
366cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue(Collections.disjoint(c1, c2));
367cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        c1.add(arr2[10]);
368cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertFalse(Collections.disjoint(c1, c2));
369cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
370cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        c1 = new HashSet<Object>();
371cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        c2 = new HashSet<Object>();
372cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Collections.addAll(c1, arr1);
373cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Collections.addAll(c2, arr2);
374cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue(Collections.disjoint(c1, c2));
375cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        c1.add(arr2[10]);
376cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertFalse(Collections.disjoint(c1, c2));
377cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
378cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        c1 = new LinkedList<Object>();
379cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        c2 = new TreeSet<Object>();
380cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Collections.addAll(c1, arr1);
381cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Collections.addAll(c2, arr2);
382cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue(Collections.disjoint(c1, c2));
383cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        c1.add(arr2[10]);
384cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertFalse(Collections.disjoint(c1, c2));
385cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
386cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        c1 = new Vector<Object>();
387cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        c2 = new HashSet<Object>();
388cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Collections.addAll(c1, arr1);
389cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Collections.addAll(c2, arr2);
390cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue(Collections.disjoint(c1, c2));
391cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        c1.add(arr2[10]);
392cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertFalse(Collections.disjoint(c1, c2));
393cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
394cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
395cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
396cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
397cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.util.Collections.EmptyList#readResolve()
398cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
399cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_EmptyList_readResolve() throws Exception {
400cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        SerializationTest.verifySelf(Collections.EMPTY_LIST, comparator);
401cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
402cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
403cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
404cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.util.Collections.EmptyMap#readResolve()
405cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
406cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_EmptyMap_readResolve() throws Exception {
407cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        SerializationTest.verifySelf(Collections.EMPTY_MAP, comparator);
408cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
409cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
410cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
411cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.util.Collections.EmptySet#readResolve()
412cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
413cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_EmptySet_readResolve() throws Exception {
414cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        SerializationTest.verifySelf(Collections.EMPTY_SET, comparator);
415cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
416cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
417cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_checkedCollectionSerializationCompatability() throws Exception {
418cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Collection<String> c = Collections.emptySet();
419cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        c = Collections.checkedCollection(c, String.class);
420ab762bb740405d0fefcccf4a0899a234f995be13Narayan Kamath        SerializationTester.assertCompabilityEquals(c, "serialization/org/apache/harmony/tests/java/util/Collections_CheckedCollection.golden.ser");
421cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
422cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
423cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_checkedListRandomAccessSerializationCompatability() throws Exception {
424cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        List<String> c = new ArrayList<String>();
425cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue(c instanceof RandomAccess);
426cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        c = Collections.checkedList(c, String.class);
427ab762bb740405d0fefcccf4a0899a234f995be13Narayan Kamath        SerializationTester.assertCompabilityEquals(c, "serialization/org/apache/harmony/tests/java/util/Collections_CheckedListRandomAccess.golden.ser");
428cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
429cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
430cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_checkedListSerializationCompatability() throws Exception {
431cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        List<String> c = new LinkedList<String>();
432cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertFalse(c instanceof RandomAccess);
433cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        c = Collections.checkedList(c, String.class);
434ab762bb740405d0fefcccf4a0899a234f995be13Narayan Kamath        SerializationTester.assertCompabilityEquals(c, "serialization/org/apache/harmony/tests/java/util/Collections_CheckedList.golden.ser");
435cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
436cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
437cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_checkedSetSerializationCompatability() throws Exception {
438cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Set<String> c = new HashSet<String>();
439cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertFalse(c instanceof SortedSet);
440cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        c = Collections.checkedSet(c, String.class);
441ab762bb740405d0fefcccf4a0899a234f995be13Narayan Kamath        SerializationTester.assertCompabilityEquals(c, "serialization/org/apache/harmony/tests/java/util/Collections_CheckedSet.golden.ser");
442cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
443cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
444cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_checkedMapSerializationCompatability() throws Exception {
445cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Map<String, String> c = new HashMap<String, String>();
446cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertFalse(c instanceof SortedMap);
447cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        c = Collections.checkedMap(c, String.class, String.class);
448ab762bb740405d0fefcccf4a0899a234f995be13Narayan Kamath        SerializationTester.assertCompabilityEquals(c, "serialization/org/apache/harmony/tests/java/util/Collections_CheckedMap.golden.ser");
449cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
450cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
451cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_checkedSortedSetSerializationCompatability() throws Exception {
452cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        SortedSet<String> c = new TreeSet<String>();
453cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        c = Collections.checkedSortedSet(c, String.class);
454ab762bb740405d0fefcccf4a0899a234f995be13Narayan Kamath        SerializationTester.assertCompabilityEquals(c, "serialization/org/apache/harmony/tests/java/util/Collections_CheckedSortedSet.golden.ser");
455cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
456cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
457cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_checkedSortedMapSerializationCompatability() throws Exception {
458cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        SortedMap<String, String> c = new TreeMap<String, String>();
459cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        c = Collections.checkedSortedMap(c, String.class, String.class);
460ab762bb740405d0fefcccf4a0899a234f995be13Narayan Kamath        SerializationTester.assertCompabilityEquals(c, "serialization/org/apache/harmony/tests/java/util/Collections_CheckedSortedMap.golden.ser");
461cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
462cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
463cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_emptyList() {
464cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        List<Object> emptyList = Collections.emptyList();
465cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(0, emptyList.size());
466cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue(emptyList instanceof RandomAccess);
467cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
468cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
469cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    // Regression test for http://issues.apache.org/jira/browse/HARMONY-6122
470cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_Collections_swap_IndexOutOfBoundsException() {
471cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
472cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            Collections.swap(new ArrayList<Object>(), -1, 3);
473cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("IOOBE expected");
474cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
475cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
476cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
477cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        List<Object> list = new ArrayList<Object>();
478cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        list.add("0");
479cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
480cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            Collections.swap(list, 0, -1);
481cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("IOOBE expected");
482cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
483cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
484cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
485cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
486cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            Collections.swap(list, 0, 3);
487cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("IOOBE expected");
488cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
489cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
490cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
491cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
492cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            Collections.swap(new ArrayList<Object>(), 3, 3);
493cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("IOOBE expected");
494cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
495cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
496cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
497cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
49860796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak    void testCollectionForEach(Collection<Integer> collection) {
49960796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        ArrayList<Integer> output = new ArrayList<Integer>();
50060796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        collection.forEach(k -> output.add(k));
50160796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak
50260796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        assertEquals(new ArrayList<>(collection), output);
50360796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak    }
50460796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak
50560796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak    public void test_Collection_forEach() {
50660796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        ArrayList<Integer> list = new ArrayList<Integer>();
50760796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        list.add(0);
50860796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        list.add(1);
50960796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        list.add(2);
51060796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        testCollectionForEach(Collections.unmodifiableCollection(list));
51160796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        testCollectionForEach(Collections.synchronizedCollection(list));
51260796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        testCollectionForEach(Collections.checkedCollection(list, Integer.class));
51360796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        testCollectionForEach(Collections.singletonList(new Integer(0)));
51460796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak    }
51560796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak
51660796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak    void testMapForEach(Map<String,String> map) {
51760796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        HashMap<String, String> output = new HashMap<String, String>();
51860796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        map.forEach((k, v) -> output.put(k, v));
51960796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        assertEquals(map, output);
52060796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak
52160796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        output.clear();
52260796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        map.entrySet().forEach(entry -> output.put(entry.getKey(), entry.getValue()));
52360796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        assertEquals(map, output);
52460796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak
52560796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        HashSet<String> setOutput = new HashSet<>();
52660796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        map.values().forEach(value -> setOutput.add(value));
52760796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        assertEquals(new HashSet<>(map.values()), setOutput);
52860796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak
52960796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        setOutput.clear();
53060796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        map.keySet().forEach((k) -> setOutput.add(k));
53160796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        assertEquals(map.keySet(), setOutput);
53260796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak    }
53360796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak
53460796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak    public void test_Map_forEach() {
53560796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        HashMap<String, String> map = new HashMap<String, String>();
53660796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        map.put("one", "1");
53760796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        map.put("two", "2");
53860796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        map.put("three", "3");
53960796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        testMapForEach(Collections.unmodifiableMap(map));
54060796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        testMapForEach(Collections.synchronizedMap(map));
54160796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        testMapForEach(Collections.checkedMap(map, String.class, String.class));
54260796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        testMapForEach(Collections.singletonMap("one", "1"));
54360796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak    }
54460796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak
54560796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak    void testSetForEach(Set<Integer> set) {
54660796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        HashSet<Integer> output = new HashSet<Integer>();
54760796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        set.forEach(k -> output.add(k));
54860796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak
54960796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        assertEquals(set.size(), output.size());
55060796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        for (Integer key : set) {
55160796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak            assertTrue(output.contains(key));
55260796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        }
55360796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak    }
55460796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak
55560796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak    public void test_Set_forEach() {
55660796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        HashSet<Integer> set = new HashSet<Integer>();
55760796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        set.add(1);
55860796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        set.add(2);
55960796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        set.add(3);
56060796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        testSetForEach(Collections.unmodifiableSet(set));
56160796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        testSetForEach(Collections.synchronizedSet(set));
56260796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        testSetForEach(Collections.checkedSet(set, Integer.class));
56360796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        testSetForEach(Collections.singleton(1));
56460796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak
56560796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        Set<Integer> fromMap = Collections.newSetFromMap(new HashMap<Integer, Boolean>());
56660796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        fromMap.add(1);
56760796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        fromMap.add(2);
56860796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        fromMap.add(3);
56960796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        testSetForEach(fromMap);
57060796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak    }
57160796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak
57260796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak
57360796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak    public void test_Queue_forEach() {
57460796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        Deque<Integer> deque = new ArrayDeque<Integer>();
57560796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        deque.addFirst(2);
57660796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        deque.addFirst(1);
57760796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        deque.addFirst(0);
57860796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak
57960796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        Queue<Integer> queue = Collections.asLifoQueue(deque);
58060796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        ArrayList<Integer> output = new ArrayList<Integer>();
58160796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        queue.forEach(v -> output.add(v));
58260796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak
58360796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        assertEquals(3, output.size());
58460796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        assertEquals(0, (int)output.get(0));
58560796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        assertEquals(1, (int)output.get(1));
58660796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak        assertEquals(2, (int)output.get(2));
58760796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak    }
58860796efea3a74e02aea384b8eb56103ea21b880bPrzemyslaw Szczepaniak
589cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath}
590