12 {
13 String[] keys={"a","b","c","d","e","f","g","h","i"};
14 int n=keys.length;
15 int maxHeight=0;
16
17 { int k=n; while (k>0) { k>>=1; ++maxHeight; } }
18 maxHeight=2*maxHeight+2;
19
20 for (int[] p : new Permutations(n)) {
21
22 AVLTree<String,String> tree=new AVLTree<String,String>();
23
24 for (int i : p) {
25 String k=tree.find(keys[i]);
26 assertEquals(k,null);
27 tree.insert(keys[i],keys[i]);
28 k=tree.find(keys[i]);
29 assertTrue(k!=null);
30 assertTrue(k.compareTo(keys[i])==0);
31 tree.checkConsistency();
32 }
33 assertTrue(tree.getHeight()<=maxHeight);
34 }
35 }