/* * Copyright (C) 2007 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.unit_tests; import android.test.PerformanceTestBase; import android.test.PerformanceTestCase; import java.util.HashSet; import java.util.Iterator; /** * Implements basic performance test functionality for HashSets */ public class HashSetTest extends PerformanceTestBase { public static final int ITERATIONS = 1000; public static HashSet<Integer> sSet; @Override protected void setUp() throws Exception { super.setUp(); sSet = new HashSet<Integer>(); for (int i = ITERATIONS - 1; i >= 0; i--) { sSet.add(i); } } @Override public int startPerformance(PerformanceTestCase.Intermediates intermediates) { intermediates.setInternalIterations(ITERATIONS); return 0; } /** * * Tests performance for the HashSet method Add(Object arg 0) * */ @SuppressWarnings("unchecked") public void testHashSetAdd() { HashSet set = new HashSet(); for (int i = ITERATIONS - 1; i >= 0; i--) { set.add(i); set.add(i); set.add(i); set.add(i); set.add(i); set.add(i); set.add(i); set.add(i); set.add(i); set.add(i); } } /** * * Tests performance of HashSet method contains(Object arg 0) * */ public void testHashSetContains() { Integer index = new Integer(500); boolean flag; HashSet set = sSet; for (int i = ITERATIONS - 1; i >= 0; i--) { flag = set.contains(index); flag = set.contains(index); flag = set.contains(index); flag = set.contains(index); flag = set.contains(index); flag = set.contains(index); flag = set.contains(index); flag = set.contains(index); flag = set.contains(index); } } /** * * Tests performance of HashSet method size() * */ public void testHashSetSize() { int num; HashSet set = sSet; for (int i = ITERATIONS - 1; i >= 0; i--) { num = set.size(); num = set.size(); num = set.size(); num = set.size(); num = set.size(); num = set.size(); num = set.size(); num = set.size(); num = set.size(); } } /** * * Tests performance of the HashSet method -iterator() * */ public void testHashSetIterator() { Iterator iterator; HashSet set = sSet; for (int i = ITERATIONS - 1; i >= 0; i--) { iterator = set.iterator(); iterator = set.iterator(); iterator = set.iterator(); iterator = set.iterator(); iterator = set.iterator(); iterator = set.iterator(); iterator = set.iterator(); iterator = set.iterator(); iterator = set.iterator(); } } /** * * Tests performance for the HashSet method Remove(Object arg 0) * */ @SuppressWarnings("unchecked") public void testHashSetRemove() { HashSet set = new HashSet(sSet); for (int i = ITERATIONS - 1; i >= 0; i--) { set.remove(i); set.remove(i); set.remove(i); set.remove(i); set.remove(i); set.remove(i); set.remove(i); set.remove(i); set.remove(i); set.remove(i); } } /** * * Tests performance for the HashSet method isEmpty(Object arg 0) * */ public void testHashSetIsEmpty() { HashSet set = sSet; boolean flag; for (int i = ITERATIONS - 1; i >= 0; i--) { flag = set.isEmpty(); flag = set.isEmpty(); flag = set.isEmpty(); flag = set.isEmpty(); flag = set.isEmpty(); flag = set.isEmpty(); flag = set.isEmpty(); flag = set.isEmpty(); flag = set.isEmpty(); flag = set.isEmpty(); } } /** * * Tests performance for the HashSet method clone() * */ public void testHashSetClone() { HashSet hSet = sSet; Object set; for (int i = ITERATIONS - 1; i > 0; i--) { set = hSet.clone(); set = hSet.clone(); set = hSet.clone(); set = hSet.clone(); set = hSet.clone(); set = hSet.clone(); set = hSet.clone(); set = hSet.clone(); set = hSet.clone(); set = hSet.clone(); } } }