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

Reply via email to