4 package net
.kezvh
.collections
.Map2
;
6 import java
.util
.Collection
;
7 import java
.util
.Iterator
;
10 import junit
.framework
.Assert
;
11 import junit
.framework
.TestCase
;
13 import org
.junit
.Test
;
18 public abstract class Map2Test
extends TestCase
{
25 protected abstract <K1
, K2
, V
> Map2
<K1
, K2
, V
> createMap2();
31 public void testCreate() {
32 final Map2
<Integer
, Integer
, Integer
> it
= this.createMap2();
33 Assert
.assertNotNull(it
);
40 public void testPut() {
41 final Map2
<Integer
, Integer
, Integer
> it
= this.createMap2();
42 final Integer previous
= it
.put(1, 2, 3);
43 Assert
.assertNull(previous
);
50 public void testReput() {
51 final Map2
<Integer
, Integer
, Integer
> it
= this.createMap2();
53 final int previous
= it
.put(1, 2, 4);
54 Assert
.assertEquals(3, previous
);
55 final int current
= it
.get(1, 2);
56 Assert
.assertEquals(4, current
);
63 public void testRemove() {
64 final Map2
<Integer
, Integer
, Integer
> it
= this.createMap2();
66 final int previous
= it
.remove(1, 2);
67 Assert
.assertEquals(3, previous
);
74 public void testSize() {
75 final Map2
<Integer
, Integer
, Integer
> it
= this.createMap2();
76 for (int i
= 0; i
< 10; i
++)
77 for (int j
= 0; j
< 10; j
++)
78 for (int k
= 0; k
< 4; k
++) {
80 Assert
.assertEquals(i
* 10 + j
+ 1, it
.size());
83 for (int i
= 0; i
< 10; i
++)
84 for (int j
= 0; j
< 10; j
++)
85 for (int k
= 0; k
< 4; k
++) {
87 Assert
.assertEquals(99 - (i
* 10 + j
), it
.size());
95 public void test1WayMapSize() {
96 final Map2
<Integer
, Integer
, Integer
> it
= this.createMap2();
97 for (int i
= 0; i
< 10; i
++)
98 for (int j
= 0; j
< 10; j
++)
99 for (int k
= 0; k
< 4; k
++)
102 for (int i
= 0; i
< 10; i
++) {
103 final Map
<Integer
, Integer
> map
= it
.entryMapOnKey1(i
);
104 Assert
.assertEquals(10, map
.size());
112 public void test1WayMapContents() {
113 final Map2
<Integer
, Integer
, Integer
> it
= this.createMap2();
114 for (int i
= 0; i
< 10; i
++)
115 for (int j
= 0; j
< 10; j
++)
116 for (int k
= 0; k
< 4; k
++)
119 for (int i
= 0; i
< 10; i
++) {
120 final Map
<Integer
, Integer
> map
= it
.entryMapOnKey1(i
);
121 for (int j
= 0; j
< 10; j
++) {
122 final int three
= map
.get(j
);
123 Assert
.assertEquals(3, three
);
132 public void test1WayMapModifications() {
133 final Map2
<Integer
, Integer
, Integer
> it
= this.createMap2();
134 for (int i
= 0; i
< 10; i
++)
135 for (int j
= 0; j
< 10; j
++)
136 for (int k
= 0; k
< 4; k
++)
139 for (int i
= 0; i
< 10; i
++) {
140 final Map
<Integer
, Integer
> map
= it
.entryMapOnKey1(i
);
141 for (int j
= 0; j
< 10; j
++)
142 for (int k
= 2; k
>= 0; k
--) {
143 final int previous
= map
.put(j
, k
);
144 Assert
.assertEquals(k
+ 1, previous
);
153 public void testRemove0() {
154 final Map2
<Integer
, Integer
, Integer
> it
= this.createMap2();
155 for (int i
= 0; i
< 10; i
++)
156 for (int j
= 0; j
< 10; j
++)
157 it
.put(i
, j
, 10 * i
+ j
);
159 final int value
= it
.remove(1, 1);
160 Assert
.assertEquals(11, value
);
161 Assert
.assertEquals(99, it
.size());
162 Assert
.assertEquals(9, it
.get1(1).size());
163 Assert
.assertEquals(9, it
.get2(1).size());
164 Assert
.assertEquals(10, it
.get1(0).size());
165 Assert
.assertEquals(10, it
.get2(0).size());
166 Assert
.assertEquals(10, it
.get1(2).size());
167 Assert
.assertEquals(10, it
.get2(2).size());
174 public void testRemove1() {
175 final Map2
<Integer
, Integer
, Integer
> it
= this.createMap2();
176 for (int i
= 0; i
< 10; i
++)
177 for (int j
= 0; j
< 10; j
++)
178 it
.put(i
, j
, 10 * i
+ j
);
180 Assert
.assertEquals(100, it
.size());
181 for (int i
= 0; i
< 10; i
++)
182 System
.out
.println(it
.get1(i
).size());
183 final Collection
<Map
.Entry
<Integer
, Integer
>> firstRow
= it
.remove1(1);
184 Assert
.assertEquals(10, firstRow
.size());
185 Assert
.assertEquals(90, it
.size());
186 Assert
.assertEquals(9, it
.get2(1).size());
187 final Iterator
<Map
.Entry
<Integer
, Integer
>> iterator
= firstRow
.iterator();
188 for (int i
= 0; i
< 10; i
++) {
189 final Map
.Entry
<Integer
, Integer
> next
= iterator
.next();
190 Assert
.assertEquals(i
, (int) next
.getKey());
191 Assert
.assertEquals(i
+ 10, (int) next
.getValue());
199 public void testRemove2() {
200 final Map2
<Integer
, Integer
, Integer
> it
= this.createMap2();
201 for (int i
= 0; i
< 10; i
++)
202 for (int j
= 0; j
< 10; j
++)
203 it
.put(j
, i
, 10 * i
+ j
);
205 final Collection
<Map
.Entry
<Integer
, Integer
>> firstRow
= it
.remove2(1);
206 Assert
.assertEquals(10, firstRow
.size());
207 final Iterator
<Map
.Entry
<Integer
, Integer
>> iterator
= firstRow
.iterator();
208 for (int i
= 0; i
< 10; i
++) {
209 final Map
.Entry
<Integer
, Integer
> next
= iterator
.next();
210 Assert
.assertEquals(i
, (int) next
.getKey());
211 Assert
.assertEquals(i
+ 10, (int) next
.getValue());