1 /* 2 * Copyright (C) 2007 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.unit_tests; 18 19 import android.test.PerformanceTestBase; 20 import android.test.PerformanceTestCase; 21 22 import java.util.HashSet; 23 import java.util.Iterator; 24 25 /** 26 * Implements basic performance test functionality for HashSets 27 */ 28 29 public class HashSetTest extends PerformanceTestBase { 30 public static final int ITERATIONS = 1000; 31 public static HashSet<Integer> sSet; 32 33 @Override setUp()34 protected void setUp() throws Exception { 35 super.setUp(); 36 sSet = new HashSet<Integer>(); 37 for (int i = ITERATIONS - 1; i >= 0; i--) { 38 sSet.add(i); 39 } 40 } 41 42 @Override startPerformance(PerformanceTestCase.Intermediates intermediates)43 public int startPerformance(PerformanceTestCase.Intermediates intermediates) { 44 intermediates.setInternalIterations(ITERATIONS); 45 return 0; 46 } 47 48 /** 49 * 50 * Tests performance for the HashSet method Add(Object arg 0) 51 * 52 */ 53 54 @SuppressWarnings("unchecked") testHashSetAdd()55 public void testHashSetAdd() { 56 HashSet set = new HashSet(); 57 for (int i = ITERATIONS - 1; i >= 0; i--) { 58 set.add(i); 59 set.add(i); 60 set.add(i); 61 set.add(i); 62 set.add(i); 63 set.add(i); 64 set.add(i); 65 set.add(i); 66 set.add(i); 67 set.add(i); 68 } 69 70 } 71 72 /** 73 * 74 * Tests performance of HashSet method contains(Object arg 0) 75 * 76 */ 77 testHashSetContains()78 public void testHashSetContains() { 79 Integer index = new Integer(500); 80 boolean flag; 81 HashSet set = sSet; 82 for (int i = ITERATIONS - 1; i >= 0; i--) { 83 flag = set.contains(index); 84 flag = set.contains(index); 85 flag = set.contains(index); 86 flag = set.contains(index); 87 flag = set.contains(index); 88 flag = set.contains(index); 89 flag = set.contains(index); 90 flag = set.contains(index); 91 flag = set.contains(index); 92 } 93 } 94 95 /** 96 * 97 * Tests performance of HashSet method size() 98 * 99 */ 100 testHashSetSize()101 public void testHashSetSize() { 102 int num; 103 HashSet set = sSet; 104 for (int i = ITERATIONS - 1; i >= 0; i--) { 105 num = set.size(); 106 num = set.size(); 107 num = set.size(); 108 num = set.size(); 109 num = set.size(); 110 num = set.size(); 111 num = set.size(); 112 num = set.size(); 113 num = set.size(); 114 } 115 } 116 117 /** 118 * 119 * Tests performance of the HashSet method -iterator() 120 * 121 */ 122 testHashSetIterator()123 public void testHashSetIterator() { 124 Iterator iterator; 125 HashSet set = sSet; 126 for (int i = ITERATIONS - 1; i >= 0; i--) { 127 iterator = set.iterator(); 128 iterator = set.iterator(); 129 iterator = set.iterator(); 130 iterator = set.iterator(); 131 iterator = set.iterator(); 132 iterator = set.iterator(); 133 iterator = set.iterator(); 134 iterator = set.iterator(); 135 iterator = set.iterator(); 136 } 137 } 138 139 /** 140 * 141 * Tests performance for the HashSet method Remove(Object arg 0) 142 * 143 */ 144 145 @SuppressWarnings("unchecked") testHashSetRemove()146 public void testHashSetRemove() { 147 HashSet set = new HashSet(sSet); 148 for (int i = ITERATIONS - 1; i >= 0; i--) { 149 set.remove(i); 150 set.remove(i); 151 set.remove(i); 152 set.remove(i); 153 set.remove(i); 154 set.remove(i); 155 set.remove(i); 156 set.remove(i); 157 set.remove(i); 158 set.remove(i); 159 } 160 } 161 162 /** 163 * 164 * Tests performance for the HashSet method isEmpty(Object arg 0) 165 * 166 */ 167 testHashSetIsEmpty()168 public void testHashSetIsEmpty() { 169 HashSet set = sSet; 170 boolean flag; 171 for (int i = ITERATIONS - 1; i >= 0; i--) { 172 flag = set.isEmpty(); 173 flag = set.isEmpty(); 174 flag = set.isEmpty(); 175 flag = set.isEmpty(); 176 flag = set.isEmpty(); 177 flag = set.isEmpty(); 178 flag = set.isEmpty(); 179 flag = set.isEmpty(); 180 flag = set.isEmpty(); 181 flag = set.isEmpty(); 182 } 183 } 184 185 /** 186 * 187 * Tests performance for the HashSet method clone() 188 * 189 */ 190 testHashSetClone()191 public void testHashSetClone() { 192 HashSet hSet = sSet; 193 Object set; 194 for (int i = ITERATIONS - 1; i > 0; i--) { 195 set = hSet.clone(); 196 set = hSet.clone(); 197 set = hSet.clone(); 198 set = hSet.clone(); 199 set = hSet.clone(); 200 set = hSet.clone(); 201 set = hSet.clone(); 202 set = hSet.clone(); 203 set = hSet.clone(); 204 set = hSet.clone(); 205 } 206 } 207 } 208