BUG-7464: Update pom.xml
[yangtools.git] / third-party / triemap / src / test / java / org / opendaylight / yangtools / triemap / TestMapIterator.java
1 package org.opendaylight.yangtools.triemap;
2
3 import java.util.HashSet;
4 import java.util.Iterator;
5 import java.util.Map;
6 import java.util.Map.Entry;
7 import java.util.Random;
8 import java.util.Set;
9
10 import org.junit.Test;
11
12 public class TestMapIterator {
13     @Test
14     public void testMapIterator () {
15         for (int i = 0; i < 60 * 1000; i+= 400 + new Random ().nextInt (400)) {
16             System.out.println (i);
17             final Map<Integer, Integer> bt = new TrieMap <Integer, Integer> ();
18             for (int j = 0; j < i; j++) {
19                 TestHelper.assertEquals (null, bt.put (Integer.valueOf (j), Integer.valueOf (j)));
20             }
21             int count = 0;
22             final Set<Integer> set = new HashSet<Integer> ();
23             for (final Map.Entry<Integer, Integer> e : bt.entrySet ()) {
24                 set.add (e.getKey ());
25                 count++;
26             }
27             for (final Integer j : set) {
28                 TestHelper.assertTrue (bt.containsKey (j));
29             }
30             for (final Integer j : bt.keySet ()) {
31                 TestHelper.assertTrue (set.contains (j));
32             }
33
34             TestHelper.assertEquals (i, count);
35             TestHelper.assertEquals (i, bt.size ());
36             
37             for (final Iterator<Map.Entry<Integer, Integer>> iter = bt.entrySet ().iterator (); iter.hasNext ();) {
38                 final Entry<Integer, Integer> e = iter.next ();
39                 TestHelper.assertTrue (e.getValue () == bt.get (e.getKey ()));
40                 e.setValue (e.getValue () + 1);
41                 TestHelper.assertTrue (e.getValue () == e.getKey () + 1);
42                 TestHelper.assertTrue (e.getValue () == bt.get (e.getKey ()));
43                 e.setValue (e.getValue () - 1);
44             }
45
46             for (final Iterator<Integer> iter = bt.keySet ().iterator (); iter.hasNext ();) {
47                 final Integer k = iter.next ();
48                 TestHelper.assertTrue (bt.containsKey (k));
49                 iter.remove ();
50                 TestHelper.assertFalse (bt.containsKey (k));
51             }
52             
53             TestHelper.assertEquals (0, bt.size ());
54             TestHelper.assertTrue (bt.isEmpty ());
55         }
56     }
57 }