AuD
Lecture 'Algorithmen und Datenstrukturen' (code examples)
aud.test.BinarySearchTreeTest Class Reference

Public Member Functions

void testBinarySearchTree ()
 

Static Public Member Functions

static void main (String args[])
 

Detailed Description

Definition at line 9 of file BinarySearchTreeTest.java.

Member Function Documentation

◆ main()

static void aud.test.BinarySearchTreeTest.main ( String  args[])
static

Definition at line 88 of file BinarySearchTreeTest.java.

88 {
89 org.junit.runner.JUnitCore.main("aud.test.BinarySearchTreeTest");
90 }

◆ testBinarySearchTree()

void aud.test.BinarySearchTreeTest.testBinarySearchTree ( )

Definition at line 12 of file BinarySearchTreeTest.java.

12 {
13 String[] keys={"a","b","c","d","e","f"};
14 int n=keys.length;
15
16 /* Includes most general case for removal:
17
18 remove b of
19
20 b
21 / \
22 a e
23 /
24 c
25 \
26 d
27
28 More entries are possible. However note that we are
29 going to check *all* permutatiations for insertions,
30 and for each one *all* permutatiations for removal!
31 This yields O(n!*n!) iterations each of cost O(n*log n)!
32 */
33
34 BinarySearchTree<String,String> tree=new BinarySearchTree<String,String>();
35
36 for (int[] p : new Permutations(n)) {
37 for (int[] q : new Permutations(n)) {
38 for (int i : p) {
39 String k=tree.find(keys[i]);
40 assertEquals(k,null);
41 tree.insert(keys[i],keys[i]);
42 k=tree.find(keys[i]);
43 assertTrue(k!=null);
44 assertTrue(k.compareTo(keys[i])==0);
45 tree.checkConsistency();
46 }
47
48 assertTrue(tree.getMinimum().getValue().compareTo(keys[0])==0);
49 assertTrue(tree.getMaximum().getValue().compareTo(keys[n-1])==0);
50
51 {
52 int i=0;
53 for (BinarySearchTree<String,String>.Cursor c : tree) {
54 assertTrue(c.getKey().compareTo(keys[i])==0);
55 assertTrue(c.getValue().compareTo(keys[i])==0);
56 ++i;
57 }
58 i=0;
59 for (BinarySearchTree<String,String>.Cursor c : tree.range(null,null)) {
60 assertTrue(c.getKey().compareTo(keys[i])==0);
61 assertTrue(c.getValue().compareTo(keys[i])==0);
62 ++i;
63 }
64 i=1;
65 for (BinarySearchTree<String,String>.Cursor c :
66 tree.range(keys[1],keys[4])) {
67 assertTrue(c.getKey().compareTo(keys[i])==0);
68 assertTrue(c.getValue().compareTo(keys[i])==0);
69 ++i;
70 }
71 assertSame(i,4);
72 }
73
74 for (int i : q) {
75 String k=tree.find(keys[i]);
76 assertTrue(k!=null);
77 assertTrue(k.compareTo(keys[i])==0);
78 tree.remove(keys[i]);
79 k=tree.find(keys[i]);
80 assertEquals(k,null);
81 tree.checkConsistency();
82 }
83 }
84 assertTrue(tree.isEmpty());
85 }
86 }

The documentation for this class was generated from the following file: