rwaldhoff 2003/11/30 23:46:13 Modified: functor/src/test/org/apache/commons/functor/example/kata/two TestBinaryChop.java Log: don't assume compareTo returns -1 or 1 Revision Changes Path 1.2 +17 -22 jakarta-commons-sandbox/functor/src/test/org/apache/commons/functor/example/kata/two/TestBinaryChop.java Index: TestBinaryChop.java =================================================================== RCS file: /home/cvs/jakarta-commons-sandbox/functor/src/test/org/apache/commons/functor/example/kata/two/TestBinaryChop.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- TestBinaryChop.java 1 Dec 2003 07:30:24 -0000 1.1 +++ TestBinaryChop.java 1 Dec 2003 07:46:13 -0000 1.2 @@ -121,16 +121,14 @@ int cur = 0; while(low < high) { cur = (high+low)/2; - switch(((Comparable)(list.get(cur))).compareTo(seeking)) { - case 0: // equal - return cur; - case 1: - high = cur; - break; - case -1: - if(low == cur) { cur++; } - low = cur; - break; + int comp = ((Comparable)(list.get(cur))).compareTo(seeking); + if(comp == 0) { + return cur; + } else if(comp > 0) { + high = cur; + } else { + if(low == cur) { cur++; } + low = cur; } } return -1; @@ -147,16 +145,13 @@ } else { int pivot = list.size()/2; int offset = 0; - int comp = ((Comparable)(list.get(pivot))).compareTo(seeking); - switch(comp) { - case 0: - return pivot; - case -1: - offset = find(seeking,list.subList(Math.max(pivot,1),list.size())); - break; - case 1: - offset = find(seeking,list.subList(0,pivot)); - break; + int comp = ((Comparable)(list.get(pivot))).compareTo(seeking); + if(comp == 0) { + return pivot; + } else if(comp < 0) { + offset = find(seeking,list.subList(Math.max(pivot,1),list.size())); + } else { + offset = find(seeking,list.subList(0,pivot)); } return -1 == offset ? -1 : (comp == 1) ? offset : pivot+offset; }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]