1561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/* 2561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Licensed to the Apache Software Foundation (ASF) under one or more 3561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * contributor license agreements. See the NOTICE file distributed with 4561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * this work for additional information regarding copyright ownership. 5561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0 6561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * (the "License"); you may not use this file except in compliance with 7561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * the License. You may obtain a copy of the License at 8561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * http://www.apache.org/licenses/LICENSE-2.0 10561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Unless required by applicable law or agreed to in writing, software 12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * distributed under the License is distributed on an "AS IS" BASIS, 13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * See the License for the specific language governing permissions and 15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * limitations under the License. 16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.luni.tests.java.util; 19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Arrays; 21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Comparator; 22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.HashSet; 23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Iterator; 24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Set; 25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.SortedSet; 26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.TreeSet; 27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class TreeSetTest extends junit.framework.TestCase { 29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public static class ReversedIntegerComparator implements Comparator { 31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public int compare(Object o1, Object o2) { 32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return -(((Integer) o1).compareTo((Integer) o2)); 33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public boolean equals(Object o1, Object o2) { 36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return ((Integer) o1).compareTo((Integer) o2) == 0; 37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TreeSet ts; 41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Object objArray[] = new Object[1000]; 43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.TreeSet#TreeSet() 46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_Constructor() { 48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.util.TreeSet() 49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Did not construct correct TreeSet", new TreeSet().isEmpty()); 50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.TreeSet#TreeSet(java.util.Collection) 54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_ConstructorLjava_util_Collection() { 56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.util.TreeSet(java.util.Collection) 57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TreeSet myTreeSet = new TreeSet(Arrays.asList(objArray)); 58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("TreeSet incorrect size", 59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes myTreeSet.size() == objArray.length); 60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int counter = 0; counter < objArray.length; counter++) 61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("TreeSet does not contain correct elements", myTreeSet 62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .contains(objArray[counter])); 63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.TreeSet#TreeSet(java.util.Comparator) 67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_ConstructorLjava_util_Comparator() { 69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.util.TreeSet(java.util.Comparator) 70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TreeSet myTreeSet = new TreeSet(new ReversedIntegerComparator()); 71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Did not construct correct TreeSet", myTreeSet.isEmpty()); 72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes myTreeSet.add(new Integer(1)); 73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes myTreeSet.add(new Integer(2)); 74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue( 75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Answered incorrect first element--did not use custom comparator ", 76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes myTreeSet.first().equals(new Integer(2))); 77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue( 78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Answered incorrect last element--did not use custom comparator ", 79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes myTreeSet.last().equals(new Integer(1))); 80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.TreeSet#TreeSet(java.util.SortedSet) 84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_ConstructorLjava_util_SortedSet() { 86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.util.TreeSet(java.util.SortedSet) 87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ReversedIntegerComparator comp = new ReversedIntegerComparator(); 88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TreeSet myTreeSet = new TreeSet(comp); 89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < objArray.length; i++) 90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes myTreeSet.add(objArray[i]); 91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TreeSet anotherTreeSet = new TreeSet(myTreeSet); 92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("TreeSet is not correct size", 93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes anotherTreeSet.size() == objArray.length); 94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int counter = 0; counter < objArray.length; counter++) 95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("TreeSet does not contain correct elements", 96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes anotherTreeSet.contains(objArray[counter])); 97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("TreeSet does not answer correct comparator", anotherTreeSet 98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .comparator() == comp); 99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("TreeSet does not use comparator", 100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes anotherTreeSet.first() == objArray[objArray.length - 1]); 101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.TreeSet#add(java.lang.Object) 105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_addLjava_lang_Object() { 107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method boolean java.util.TreeSet.add(java.lang.Object) 108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ts.add(new Integer(-8)); 109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Failed to add Object", ts.contains(new Integer(-8))); 110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ts.add(objArray[0]); 111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Added existing element", ts.size() == objArray.length + 1); 112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.TreeSet#addAll(java.util.Collection) 117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_addAllLjava_util_Collection() { 119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method boolean 120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.util.TreeSet.addAll(java.util.Collection) 121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TreeSet s = new TreeSet(); 122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes s.addAll(ts); 123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Incorrect size after add", s.size() == ts.size()); 124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Iterator i = ts.iterator(); 125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes while (i.hasNext()) 126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned incorrect set", s.contains(i.next())); 127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.TreeSet#clear() 132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_clear() { 134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method void java.util.TreeSet.clear() 135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ts.clear(); 136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned non-zero size after clear", 0, ts.size()); 137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Found element in cleared set", !ts.contains(objArray[0])); 138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.TreeSet#clone() 142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_clone() { 144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.lang.Object java.util.TreeSet.clone() 145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TreeSet s = (TreeSet) ts.clone(); 146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Iterator i = ts.iterator(); 147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes while (i.hasNext()) 148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Clone failed to copy all elements", s 149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .contains(i.next())); 150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.TreeSet#comparator() 154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_comparator() { 156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.util.Comparator java.util.TreeSet.comparator() 157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ReversedIntegerComparator comp = new ReversedIntegerComparator(); 158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TreeSet myTreeSet = new TreeSet(comp); 159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Answered incorrect comparator", 160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes myTreeSet.comparator() == comp); 161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.TreeSet#contains(java.lang.Object) 165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_containsLjava_lang_Object() { 167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method boolean java.util.TreeSet.contains(java.lang.Object) 168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned false for valid Object", ts 169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .contains(objArray[objArray.length / 2])); 170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned true for invalid Object", !ts 171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .contains(new Integer(-9))); 172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ts.contains(new Object()); 174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ClassCastException e) { 175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Correct 176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Failed to throw exception when passed invalid element"); 179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.TreeSet#first() 184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_first() { 186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.lang.Object java.util.TreeSet.first() 187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned incorrect first element", 188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ts.first() == objArray[0]); 189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.TreeSet#headSet(java.lang.Object) 193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_headSetLjava_lang_Object() { 195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.util.SortedSet 196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.util.TreeSet.headSet(java.lang.Object) 197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Set s = ts.headSet(new Integer(100)); 198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned set of incorrect size", 100, s.size()); 199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < 100; i++) 200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned incorrect set", s.contains(objArray[i])); 201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.TreeSet#isEmpty() 205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_isEmpty() { 207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method boolean java.util.TreeSet.isEmpty() 208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Empty set returned false", new TreeSet().isEmpty()); 209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Non-Empty returned true", !ts.isEmpty()); 210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.TreeSet#iterator() 214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_iterator() { 216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.util.Iterator java.util.TreeSet.iterator() 217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TreeSet s = new TreeSet(); 218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes s.addAll(ts); 219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Iterator i = ts.iterator(); 220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Set as = new HashSet(Arrays.asList(objArray)); 221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes while (i.hasNext()) 222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes as.remove(i.next()); 223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect iterator", 0, as.size()); 224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.TreeSet#last() 229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_last() { 231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.lang.Object java.util.TreeSet.last() 232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned incorrect last element", 233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ts.last() == objArray[objArray.length - 1]); 234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.TreeSet#remove(java.lang.Object) 238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_removeLjava_lang_Object() { 240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method boolean java.util.TreeSet.remove(java.lang.Object) 241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ts.remove(objArray[0]); 242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Failed to remove object", !ts.contains(objArray[0])); 243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Failed to change size after remove", 244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ts.size() == objArray.length - 1); 245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ts.remove(new Object()); 247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ClassCastException e) { 248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Correct 249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Failed to throw exception when past uncomparable value"); 252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.TreeSet#size() 256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_size() { 258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method int java.util.TreeSet.size() 259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned incorrect size", ts.size() == objArray.length); 260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.TreeSet#subSet(java.lang.Object, java.lang.Object) 264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_subSetLjava_lang_ObjectLjava_lang_Object() { 266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.util.SortedSet 267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.util.TreeSet.subSet(java.lang.Object, java.lang.Object) 268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes final int startPos = objArray.length / 4; 269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes final int endPos = 3 * objArray.length / 4; 270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SortedSet aSubSet = ts.subSet(objArray[startPos], objArray[endPos]); 271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Subset has wrong number of elements", 272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes aSubSet.size() == (endPos - startPos)); 273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int counter = startPos; counter < endPos; counter++) 274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Subset does not contain all the elements it should", 275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes aSubSet.contains(objArray[counter])); 276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int result; 278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ts.subSet(objArray[3], objArray[0]); 280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes result = 0; 281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes result = 1; 283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("end less than start should throw", 1, result); 285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.TreeSet#tailSet(java.lang.Object) 289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_tailSetLjava_lang_Object() { 291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.util.SortedSet 292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.util.TreeSet.tailSet(java.lang.Object) 293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Set s = ts.tailSet(new Integer(900)); 294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned set of incorrect size", 100, s.size()); 295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 900; i < objArray.length; i++) 296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned incorrect set", s.contains(objArray[i])); 297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests equals() method. 301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests that no ClassCastException will be thrown in all cases. 302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Regression test for HARMONY-1639. 303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_equals() throws Exception { 305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // comparing TreeSets with different object types 306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Set s1 = new TreeSet(); 307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Set s2 = new TreeSet(); 308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes s1.add("key1"); 309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes s1.add("key2"); 310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes s2.add(new Integer(1)); 311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes s2.add(new Integer(2)); 312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("Sets should not be equal 1", s1.equals(s2)); 313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("Sets should not be equal 2", s2.equals(s1)); 314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // comparing TreeSet with HashSet 316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes s1 = new TreeSet(); 317561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes s2 = new HashSet(); 318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes s1.add("key"); 319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes s2.add(new Object()); 320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("Sets should not be equal 3", s1.equals(s2)); 321561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("Sets should not be equal 4", s2.equals(s1)); 322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // comparing TreeSets with not-comparable objects inside 324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes s1 = new TreeSet(); 325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes s2 = new TreeSet(); 326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes s1.add(new Object()); 327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes s2.add(new Object()); 328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("Sets should not be equal 5", s1.equals(s2)); 329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("Sets should not be equal 6", s2.equals(s1)); 330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 333561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Sets up the fixture, for example, open a network connection. This method 334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * is called before a test is executed. 335561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 336561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected void setUp() { 337561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ts = new TreeSet(); 338561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < objArray.length; i++) { 339561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Object x = objArray[i] = new Integer(i); 340561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ts.add(x); 341561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 342561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 343561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 344561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 345561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tears down the fixture, for example, close a network connection. This 346561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * method is called after a test is executed. 347561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected void tearDown() { 349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 350561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes} 351