Revision: 1702 http://svn.sourceforge.net/vexi/?rev=1702&view=rev Author: mkpg2 Date: 2007-02-28 07:46:26 -0800 (Wed, 28 Feb 2007)
Log Message: ----------- Fix sorting of arrays. Modified Paths: -------------- core/trunk/org.ibex.js/src/org/ibex/js/JSPrimitive.jpp core/trunk/org.ibex.js/src_junit/test/js/array/TestArray.java core/trunk/org.ibex.util/src/org/ibex/util/Basket.java Added Paths: ----------- core/trunk/org.ibex.js/src_junit/test/js/array/testsort.js Modified: core/trunk/org.ibex.js/src/org/ibex/js/JSPrimitive.jpp =================================================================== --- core/trunk/org.ibex.js/src/org/ibex/js/JSPrimitive.jpp 2007-02-27 18:26:25 UTC (rev 1701) +++ core/trunk/org.ibex.js/src/org/ibex/js/JSPrimitive.jpp 2007-02-28 15:46:26 UTC (rev 1702) @@ -22,8 +22,7 @@ } case "compareTo": { String a = JSU.toString(args[0]); - String b = JSU.toString(args[1]); - return JSU.N(a.compareTo(b)); + return JSU.N(s.compareTo(a)); } case "concat": { StringBuffer sb = new StringBuffer(slength*2).append(s); Modified: core/trunk/org.ibex.js/src_junit/test/js/array/TestArray.java =================================================================== --- core/trunk/org.ibex.js/src_junit/test/js/array/TestArray.java 2007-02-27 18:26:25 UTC (rev 1701) +++ core/trunk/org.ibex.js/src_junit/test/js/array/TestArray.java 2007-02-28 15:46:26 UTC (rev 1702) @@ -16,6 +16,6 @@ public static void main(String[] args) throws Exception { String resourceDir = TestArray.class.getResource(".").getPath(); - RunJS.runJSFile(new String[]{resourceDir}, "testsplice.js"); + RunJS.runJSFile(new String[]{resourceDir}, "testsort.js"); } } Added: core/trunk/org.ibex.js/src_junit/test/js/array/testsort.js =================================================================== --- core/trunk/org.ibex.js/src_junit/test/js/array/testsort.js (rev 0) +++ core/trunk/org.ibex.js/src_junit/test/js/array/testsort.js 2007-02-28 15:46:26 UTC (rev 1702) @@ -0,0 +1,59 @@ +var strToArray = function(str){ + var r = []; + for(var i=0; i<str.length; i++){ + r[i] = str.charAt(i); + }; + return r; +}; + +var assertEqual = function(a,b){ + var stra = a.join(); + var strb = b.join(); + if(stra!=strb){ + sys.print("Arrays unequal"); + sys.print(stra); + sys.print(strb); + } + assert(stra==strb); +}; + +var comp = function(a,b){ + return a.compareTo(b); +}; + +var assertSort = function(expected, a){ + var x = a.copy().sort(); + assertEqual(expected,x); + var y = a.copy().sort(comp); + assertEqual(expected,y); +}; + +var a = []; +assertSort([],a); + +var b = ["m"]; +assertSort(["m"],b); + +var c = ["m","i"]; +assertSort(["i","m"],c); + +assertSort( + strToArray("acehilm"), + strToArray("michael")); + +assertSort( + strToArray(".abcdeeefghhijklmnoooopqrrsttuuvwxyz"), + strToArray("thequickbrownfoxjumpsoverthelazydog.")); + + + +/* +var x = ["m","i","c","h","a","e","l"]; +var y = x.copy(); +sys.print(x.join(",")); +sys.print(y.join(",")); +sys.print(y.length); +assert(x.length==6); +assert(y.length==6); +assert(y.join()==x.join()); +*/ \ No newline at end of file Modified: core/trunk/org.ibex.util/src/org/ibex/util/Basket.java =================================================================== --- core/trunk/org.ibex.util/src/org/ibex/util/Basket.java 2007-02-27 18:26:25 UTC (rev 1701) +++ core/trunk/org.ibex.util/src/org/ibex/util/Basket.java 2007-02-28 15:46:26 UTC (rev 1702) @@ -122,11 +122,12 @@ for (int i=0; i < size; i++) { tmp = o[i]; o[i] = o[size - i]; o[size - i] = tmp; } } - public void sort(CompareFunc c) { sort(this, null, c, 0, size); } + public void sort(CompareFunc c) { sort(this, null, c, 0, size-1); } public static void sort(Array a, Array b, CompareFunc c, int start, int end) { Object tmpa, tmpb = null; if(start >= end) return; + //if(end-start==1)return; if(end-start <= 6) { for(int i=start+1;i<=end;i++) { tmpa = a.o[i]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Vexi-svn mailing list Vexi-svn@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/vexi-svn