4 package net
.kezvh
.collections
.DualMap
;
6 import java
.util
.Collection
;
9 import junit
.framework
.Assert
;
10 import junit
.framework
.TestCase
;
12 import org
.junit
.Test
;
17 public abstract class DualMapTest
extends TestCase
{
24 protected abstract <K1
, K2
, V
> DualMap
<K1
, K2
, V
> createMap2();
30 public void testCreate() {
31 final DualMap
<Integer
, Integer
, Integer
> it
= this.createMap2();
32 Assert
.assertNotNull(it
);
39 public void testPut() {
40 final DualMap
<Integer
, Integer
, Integer
> it
= this.createMap2();
41 final Integer previous
= it
.put(1, 2, 3);
42 Assert
.assertNull(previous
);
49 public void testReput() {
50 final DualMap
<Integer
, Integer
, Integer
> it
= this.createMap2();
52 final int previous
= it
.put(1, 2, 4);
53 Assert
.assertEquals(3, previous
);
54 final int current
= it
.get(1, 2);
55 Assert
.assertEquals(4, current
);
62 public void testRemove() {
63 final DualMap
<Integer
, Integer
, Integer
> it
= this.createMap2();
65 final int previous
= it
.remove(1, 2);
66 Assert
.assertEquals(3, previous
);
73 public void testSize() {
74 final DualMap
<Integer
, Integer
, Integer
> it
= this.createMap2();
75 for (int i
= 0; i
< 10; i
++)
76 for (int j
= 0; j
< 10; j
++)
77 for (int k
= 0; k
< 4; k
++) {
79 Assert
.assertEquals(i
* 10 + j
+ 1, it
.size());
82 for (int i
= 0; i
< 10; i
++)
83 for (int j
= 0; j
< 10; j
++)
84 for (int k
= 0; k
< 4; k
++) {
86 Assert
.assertEquals(99 - (i
* 10 + j
), it
.size());
94 public void test1WayMapSize() {
95 final DualMap
<Integer
, Integer
, Integer
> it
= this.createMap2();
96 for (int i
= 0; i
< 10; i
++)
97 for (int j
= 0; j
< 10; j
++)
98 for (int k
= 0; k
< 4; k
++)
101 for (int i
= 0; i
< 10; i
++) {
102 final Map
<Integer
, Integer
> map
= it
.entryMapOnKey1(i
);
103 Assert
.assertEquals(10, map
.size());
111 public void test1WayMapContents() {
112 final DualMap
<Integer
, Integer
, Integer
> it
= this.createMap2();
113 for (int i
= 0; i
< 10; i
++)
114 for (int j
= 0; j
< 10; j
++)
115 for (int k
= 0; k
< 4; k
++)
118 for (int i
= 0; i
< 10; i
++) {
119 final Map
<Integer
, Integer
> map
= it
.entryMapOnKey1(i
);
120 for (int j
= 0; j
< 10; j
++) {
121 final int three
= map
.get(j
);
122 Assert
.assertEquals(3, three
);
131 public void test1WayMapModifications() {
132 final DualMap
<Integer
, Integer
, Integer
> it
= this.createMap2();
133 for (int i
= 0; i
< 10; i
++)
134 for (int j
= 0; j
< 10; j
++)
135 for (int k
= 0; k
< 4; k
++)
138 for (int i
= 0; i
< 10; i
++) {
139 final Map
<Integer
, Integer
> map
= it
.entryMapOnKey1(i
);
140 for (int j
= 0; j
< 10; j
++)
141 for (int k
= 2; k
>= 0; k
--) {
142 final int previous
= map
.put(j
, k
);
143 Assert
.assertEquals(k
+ 1, previous
);
152 public void testRemove0() {
153 final DualMap
<Integer
, Integer
, Integer
> it
= this.createMap2();
154 for (int i
= 0; i
< 10; i
++)
155 for (int j
= 0; j
< 10; j
++)
156 it
.put(i
, j
, 10 * i
+ j
);
158 final int value
= it
.remove(1, 1);
159 Assert
.assertEquals(11, value
);
160 Assert
.assertEquals(99, it
.size());
161 Assert
.assertEquals(9, it
.get1(1).size());
162 Assert
.assertEquals(9, it
.get2(1).size());
163 Assert
.assertEquals(10, it
.get1(0).size());
164 Assert
.assertEquals(10, it
.get2(0).size());
165 Assert
.assertEquals(10, it
.get1(2).size());
166 Assert
.assertEquals(10, it
.get2(2).size());
173 public void testRemove1() {
174 final DualMap
<Integer
, Integer
, Integer
> it
= this.createMap2();
175 for (int i
= 0; i
< 10; i
++)
176 for (int j
= 0; j
< 10; j
++)
177 it
.put(i
, j
, 10 * i
+ j
);
179 Assert
.assertEquals(100, it
.size());
180 final Collection
<Map
.Entry
<Integer
, Integer
>> firstRow
= it
.remove1(1);
181 for (int i
= 0; i
< 10; i
++)
183 Assert
.assertNull("" + i
, it
.get1(i
));
185 Assert
.assertEquals("" + i
, 10, it
.get1(i
).size());
186 Assert
.assertEquals(10, firstRow
.size());
187 Assert
.assertEquals(90, it
.size());
188 Assert
.assertEquals(9, it
.get2(1).size());
195 public void testRemove2() {
196 final DualMap
<Integer
, Integer
, Integer
> it
= this.createMap2();
197 for (int i
= 0; i
< 10; i
++)
198 for (int j
= 0; j
< 10; j
++)
199 it
.put(j
, i
, 10 * i
+ j
);
201 Assert
.assertEquals(100, it
.size());
202 final Collection
<Map
.Entry
<Integer
, Integer
>> firstRow
= it
.remove2(1);
203 for (int i
= 0; i
< 10; i
++)
205 Assert
.assertNull("" + i
, it
.get2(i
));
207 Assert
.assertEquals("" + i
, 10, it
.get2(i
).size());
208 Assert
.assertEquals(10, firstRow
.size());
209 Assert
.assertEquals(90, it
.size());
210 Assert
.assertEquals(9, it
.get1(1).size());