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