2 * (C) Copyright 2016 Pantheon Technologies, s.r.o. and others.
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
16 package org.opendaylight.yangtools.triemap;
18 import static org.junit.Assert.assertEquals;
19 import static org.junit.Assert.assertFalse;
20 import static org.junit.Assert.assertNull;
21 import static org.junit.Assert.assertSame;
22 import static org.junit.Assert.assertTrue;
24 import java.util.HashSet;
25 import java.util.Iterator;
27 import java.util.Map.Entry;
28 import java.util.Random;
30 import org.junit.Test;
32 public class TestMapIterator {
34 public void testMapIterator () {
35 final Random random = new Random();
37 for (int i = 0; i < 60 * 1000; i+= 400 + random.nextInt(400)) {
38 final Map<Integer, Integer> bt = new TrieMap <>();
39 for (int j = 0; j < i; j++) {
40 assertNull(bt.put(Integer.valueOf(j), Integer.valueOf(j)));
43 final Set<Integer> set = new HashSet<>();
44 for (final Entry<Integer, Integer> e : bt.entrySet()) {
48 for (final Integer j : set) {
49 assertTrue(bt.containsKey(j));
51 for (final Integer j : bt.keySet()) {
52 assertTrue(set.contains(j));
55 assertEquals(i, count);
56 assertEquals(i, bt.size());
58 for (Entry<Integer, Integer> e : bt.entrySet()) {
59 assertSame(e.getValue(), bt.get(e.getKey()));
60 e.setValue(e.getValue() + 1);
61 assertEquals((Object)e.getValue(), e.getKey () + 1);
62 assertEquals(e.getValue(), bt.get(e.getKey()));
63 e.setValue(e.getValue() - 1);
66 final Iterator<Integer> it = bt.keySet().iterator();
68 final Integer k = it.next ();
69 assertTrue(bt.containsKey(k));
71 assertFalse(bt.containsKey(k));
74 assertEquals(0, bt.size ());
75 assertTrue(bt.isEmpty ());