KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > tests > sosnoski > util > hashset > IntHashSetTest


1 /*
2  * Copyright (c) 2000-2001 Sosnoski Software Solutions, Inc.
3  *
4  * Permission is hereby granted, free of charge, to any person obtaining a copy
5  * of this software and associated documentation files (the "Software"), to deal
6  * in the Software without restriction, including without limitation the rights
7  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8  * copies of the Software, and to permit persons to whom the Software is
9  * furnished to do so, subject to the following conditions:
10  *
11  * The above copyright notice and this permission notice shall be included in
12  * all copies or substantial portions of the Software.
13  *
14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
20  * IN THE SOFTWARE.
21  */

22
23 package tests.sosnoski.util.hashset;
24
25 import com.sosnoski.util.hashset.IntHashSet;
26
27 import junit.framework.*;
28
29 public class IntHashSetTest extends TestCase
30 {
31     private static final int TEST_ITEMS = 10;
32     
33     private IntHashSet m_hashset;
34     
35     public IntHashSetTest(String JavaDoc name) {
36         super(name);
37     }
38     
39     public void setUp() {
40         m_hashset = new IntHashSet();
41     }
42     
43     public void tearDown() {
44         m_hashset.clear();
45     }
46     
47     private int gen(int index) {
48         return index;
49     }
50     
51     private void fillSequential(int count) {
52         for (int i = 0; i < count; i++) {
53             m_hashset.add(gen(i));
54         }
55     }
56     
57     public void testAdd() {
58         fillSequential(TEST_ITEMS);
59         assert(m_hashset.size() == TEST_ITEMS);
60         for (int i = 0; i < TEST_ITEMS; i++) {
61             assert(m_hashset.contains(gen(i)));
62         }
63         assert(!m_hashset.add(gen(1)));
64         assert(m_hashset.add(gen(-1)));
65     }
66     
67     public void testClear() {
68         fillSequential(TEST_ITEMS);
69         m_hashset.clear();
70         assert(m_hashset.size() == 0);
71     }
72     
73     public void testContains() {
74         fillSequential(TEST_ITEMS);
75         assert(m_hashset.size() == TEST_ITEMS);
76         for (int i = 0; i < TEST_ITEMS; i++) {
77             assert(m_hashset.contains(gen(i)));
78         }
79         for (int i = TEST_ITEMS; i < 200; i++) {
80             assert(!m_hashset.contains(gen(i)));
81         }
82     }
83     
84     public void testRemove() {
85         fillSequential(TEST_ITEMS);
86         assert(m_hashset.remove(gen(TEST_ITEMS/2)));
87         assert(m_hashset.size() == TEST_ITEMS-1);
88         assert(!m_hashset.remove(gen(TEST_ITEMS/2)));
89         for (int i = 0; i < TEST_ITEMS/2; i++) {
90             assert(m_hashset.contains(gen(i)));
91         }
92         assert(!m_hashset.contains(gen(TEST_ITEMS/2)));
93         for (int i = TEST_ITEMS/2+1; i < TEST_ITEMS; i++) {
94             assert(m_hashset.contains(gen(i)));
95         }
96         assert(!m_hashset.remove(gen(-1)));
97         assert(m_hashset.size() == TEST_ITEMS-1);
98     }
99     
100     public void testClone() {
101         fillSequential(TEST_ITEMS);
102         IntHashSet clone = (IntHashSet)m_hashset.clone();
103         assert(clone.size() == TEST_ITEMS);
104         for (int i = 0; i < TEST_ITEMS; i++) {
105             assert(clone.contains(gen(i)));
106         }
107     }
108     
109     public static Test suite() {
110         return new TestSuite(IntHashSetTest.class);
111     }
112     
113     public static void main(String JavaDoc[] args) {
114         String JavaDoc[] names = { IntHashSetTest.class.getName() };
115         junit.textui.TestRunner.main(names);
116     }
117 }
118
Popular Tags