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  }