KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > ubermq > kernel > chooser > ChooserTestCase


1 package com.ubermq.kernel.chooser;
2
3 import com.ubermq.kernel.*;
4 import junit.framework.*;
5 import java.util.*;
6
7 /**
8  * A JUnit test case that exercises chooser algorithms.
9  */

10 public class ChooserTestCase
11     extends TestCase
12 {
13     public static TestSuite suite() {
14         return new TestSuite(ChooserTestCase.class);
15     }
16
17     public ChooserTestCase(String JavaDoc sz) {
18         super(sz);
19     }
20
21     public void testChoosers()
22         throws Exception JavaDoc
23     {
24         final int N=15;
25
26         // make a list
27
List l = new ArrayList();
28         Set s = new HashSet();
29         for (int i = 0; i < N; i++)
30         {
31             l.add(new Integer JavaDoc(i));
32             s.add(new Integer JavaDoc(i));
33         }
34
35         // random.
36
Chooser c = new RandomChooser();
37         int randomBucket[] = new int[N];
38         for (int i = 0; i < 10 * N; i++)
39         {
40             Integer JavaDoc chosen = (Integer JavaDoc)c.choose(l);
41             randomBucket[chosen.intValue()]++;
42
43             chosen = (Integer JavaDoc)c.choose(s);
44             randomBucket[chosen.intValue()]++;
45         }
46         for (int i = 0; i < N; i++)
47         {
48             Assert.assertTrue(randomBucket[i] > 0);
49         }
50
51         // SequentialChooser
52
c = new SequentialChooser();
53         for (int i = 0; i < N; i++)
54         {
55             Assert.assertEquals(i, ((Integer JavaDoc)c.choose(l)).intValue());
56         }
57         Assert.assertNull(c.choose(l));
58         try {
59             c.choose(s);
60             Assert.assertTrue(false);
61         } catch(IllegalArgumentException JavaDoc iae) {
62             Assert.assertTrue(true);
63         } catch(RuntimeException JavaDoc re) {
64             Assert.assertTrue(false);
65         }
66
67         try {
68             c.choose(new ArrayList());
69             Assert.assertTrue(false);
70         } catch(IllegalStateException JavaDoc iae) {
71             Assert.assertTrue(true);
72         } catch(RuntimeException JavaDoc re) {
73             Assert.assertTrue(false);
74         }
75
76         c.reset();
77         Assert.assertNull(c.choose(new ArrayList()));
78
79         // round robin
80
c = new RoundRobinChooser();
81         for (int i = 0; i < 10 * N; i++)
82         {
83             Assert.assertEquals(i % N, ((Integer JavaDoc)c.choose(l)).intValue());
84         }
85     }
86
87 }
88
Popular Tags