1 /* TestArrComparator.java */
2
3 package org.quilt.reg;
4
5 import java.util.*;
6 import junit.framework.*;
7
8 public class TestArrComparator extends TestCase {
9
10 private Registry reg = new Registry();
11 private Comparator cmp = reg.comparator();
12
13 int compare (String[] s1, String [] s2) {
14 return cmp.compare(s1, s2);
15 }
16 int objCompare (Object o1, Object o2) {
17 return cmp.compare(o1, o2);
18 }
19 final String key0[] = {"Quilt"};
20 final String key1[] = {"Quilt", "ARG0"};
21 final String key2[] = {"Elvis", "lives"};
22 final String key20[] = {"Elvis", "lives", "forever"};
23 final String key22[] = {"Elvis", "lives", "forever", "in", "Graceland"};
24 final String key3[] = {"One plus ", "one"};
25 final String key4[] = {"Elvis", "wombat"};
26 final String key5[] = {"Elvis", "heart-throb"};
27 final String key6[] = {"rg2", "msg"};
28 final String key7[] = {"rg2", "test"};
29 final String key8[] = {"rg2", "test", "a"};
30 final String key9[] = {"rg2", "test", "b"};
31
32 public void testSelfCompare () {
33 // self-comparisons should always return 0
34 assertEquals ("compare to self does not return 0",
35 0, compare(key0, key0) );
36 assertEquals ("compare to self does not return 0",
37 0, compare(key1, key1) );
38 assertEquals ("compare to self does not return 0",
39 0, compare(key20, key20));
40 assertEquals ("compare to self does not return 0",
41 0, compare(key22, key22));
42 }
43 public void testDiffLen () {
44 // shorter to otherwise identical but longer string returns -1
45 assertEquals ("compare to longer but otherwise identical",
46 -1, compare(key0, key1) );
47 assertEquals ("compare to longer but otherwise identical",
48 -1, compare(key2, key20) );
49 assertEquals ("compare to longer but otherwise identical",
50 -1, compare(key20, key22));
51
52 // longer to otherwise identical but shorter string returns +1
53 assertEquals ("compare to longer but otherwise identical",
54 1, compare(key1, key0) );
55 assertEquals ("compare to longer but otherwise identical",
56 1, compare(key20, key2) );
57 assertEquals ("compare to longer but otherwise identical",
58 1, compare(key22, key20) );
59 }
60 public void testMiscCompare () {
61 // seem to fail in the field
62 assertEquals ("rg2/msg vs rg2/test", -1, compare(key6, key7));
63 assertEquals ("rg2/msg vs rg2/test", 1, compare(key7, key6));
64
65 // two-string arrays
66 assertEquals ("Elvis/heart-throb vs lives", -1, compare(key5, key2));
67 assertEquals ("Elvis/lives vs wombat", -1, compare(key2, key4));
68 assertEquals ("Elvis/lives vs heart-throb", 1, compare(key2, key5));
69 assertEquals ("Elvis/wombat vs lives", 1, compare(key4, key2));
70
71 // three-string arrays
72 assertEquals ("rg2/test/a vs b", -1, compare(key8, key9));
73 assertEquals ("rg2/test/b vs a", 1, compare(key9, key8));
74 }
75 public void testExceptions () {
76 try {
77 objCompare ("this is a string", new Boolean(true) );
78 fail (
79 "args not String[], Comparator did not throw ClassCastException");
80 } catch (ClassCastException e) {
81 // success
82 }
83 }
84 }
85
This page was automatically generated by Maven