• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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