Revision: 4300 http://vexi.svn.sourceforge.net/vexi/?rev=4300&view=rev Author: mkpg2 Date: 2011-11-30 14:38:48 +0000 (Wed, 30 Nov 2011) Log Message: ----------- Fix regression. Date compare.
Modified Paths: -------------- trunk/org.vexi-library.js/src/main/java/org/ibex/js/JSU.java trunk/org.vexi-library.js/src/main/jpp/org/ibex/js/JSDate.jpp trunk/org.vexi-library.js/src/test/java/test/js/exec/date/methods.js trunk/org.vexi-library.js/src/test/java/test/js/exec/date/sort.js trunk/org.vexi-library.value/src/main/java/org/vexi/value/Date.java Modified: trunk/org.vexi-library.js/src/main/java/org/ibex/js/JSU.java =================================================================== --- trunk/org.vexi-library.js/src/main/java/org/ibex/js/JSU.java 2011-11-29 17:42:46 UTC (rev 4299) +++ trunk/org.vexi-library.js/src/main/java/org/ibex/js/JSU.java 2011-11-30 14:38:48 UTC (rev 4300) @@ -108,6 +108,10 @@ JSNumber n = (JSNumber) o; return n.toInt() == n.toDouble(); } + if(o instanceof JSDecimal){ + JSDecimal d = (JSDecimal)o; + return d.decimal.intValue()==d.decimal.doubleValue(); + } if(o instanceof JSString) { String s = ((JSString)o).s; for(int i=0;i<s.length();i++) Modified: trunk/org.vexi-library.js/src/main/jpp/org/ibex/js/JSDate.jpp =================================================================== --- trunk/org.vexi-library.js/src/main/jpp/org/ibex/js/JSDate.jpp 2011-11-29 17:42:46 UTC (rev 4299) +++ trunk/org.vexi-library.js/src/main/jpp/org/ibex/js/JSDate.jpp 2011-11-30 14:38:48 UTC (rev 4300) @@ -153,10 +153,11 @@ throw new JSExn("Unsupported: "+key); case "scheme": return JSU.S(Date.getSchemeName(date.getScheme())); + case "addPeriod": return METHOD; + case "as": return METHOD; case "asInstant": return METHOD; - case "addPeriod": return METHOD; case "diff": return METHOD; - case "as": return METHOD; + case "withPart": return METHOD; //#end return super.get(jskey); } @@ -185,6 +186,11 @@ JSDate from = expectDate(args,1); return JSU.N(date.diff(partId, from.date)); } + case "withPart": { + int partId = Date.getPartId(JSU.toString(JSU.expectArg(args,0))); + int amount = JSU.expectArg_int(args,1); + return new JSDate(date.with(partId, amount)); + } //#end return super.callMethod(this_, method, args); }catch(ValueException e){ Modified: trunk/org.vexi-library.js/src/test/java/test/js/exec/date/methods.js =================================================================== --- trunk/org.vexi-library.js/src/test/java/test/js/exec/date/methods.js 2011-11-29 17:42:46 UTC (rev 4299) +++ trunk/org.vexi-library.js/src/test/java/test/js/exec/date/methods.js 2011-11-30 14:38:48 UTC (rev 4300) @@ -10,16 +10,16 @@ assertEquals(today, today_); -const ym = new Date(2011,01); -const ymd = new Date(2011,01,05); +const ym = new Date("YM",2011,01); +const ymd = new Date("YMD",2011,01,05); assertEquals(2011,ym.year); -assertEquals(1,ym.month); +assertEquals(1, ym.month); assertEquals(null,ym.day); assertEquals(2011,ymd.year); -assertEquals(1,ymd.month); -assertEquals(5,ymd.day); +assertEquals(1, ymd.month); +assertEquals(5, ymd.day); assertEquals( @@ -27,22 +27,22 @@ ym.withPart("day",ymd.day)); assertEquals( ym, - ymd.withPart("day",null)); + ymd.as("YM")); assertEquals( - new Date(2011,01,05).addPeriod("day",31), - new Date(2011,02,05)); + new Date("YMD",2011,01,05).addPeriod("day",31), + new Date("YMD",2011,02,05)); assertEquals( - new Date(2011,02,05).addPeriod("day",28), - new Date(2011,03,05)); + new Date("YMD",2011,02,05).addPeriod("day",28), + new Date("YMD",2011,03,05)); assertEquals( - new Date(2011,01,05).addPeriod("day",40).addPeriod("month",12), - new Date(2012,02,14)); + new Date("YMD",2011,01,05).addPeriod("day",40).addPeriod("month",12), + new Date("YMD",2012,02,14)); -assert( 0>Date.compare(new Date(2011,01,05),new Date(2011,01,06) )); -assert(0==Date.compare(new Date(2011,01,05),new Date(2011,01,05) )); -assert( 0<Date.compare(new Date(2011,01,05),new Date(2011,01,04) )); +assert( 0>Date.compare(new Date("YMD",2011,01,05),new Date("YMD",2011,01,06) )); +assert(0==Date.compare(new Date("YMD",2011,01,05),new Date("YMD",2011,01,05) )); +assert( 0<Date.compare(new Date("YMD",2011,01,05),new Date("YMD",2011,01,04) )); \ No newline at end of file Modified: trunk/org.vexi-library.js/src/test/java/test/js/exec/date/sort.js =================================================================== --- trunk/org.vexi-library.js/src/test/java/test/js/exec/date/sort.js 2011-11-29 17:42:46 UTC (rev 4299) +++ trunk/org.vexi-library.js/src/test/java/test/js/exec/date/sort.js 2011-11-30 14:38:48 UTC (rev 4300) @@ -2,10 +2,10 @@ const Date = sys.js.Date; var array = [ - new Date(2011,01,03), - new Date(2011,01), - new Date(2010,01,04), - new Date(2010,12,01) + new Date("YMD",2011,01,03), + new Date("YM", 2011,01), + new Date("YMD",2010,01,04), + new Date("YMD",2010,12,01) ]; array.sort(); Modified: trunk/org.vexi-library.value/src/main/java/org/vexi/value/Date.java =================================================================== --- trunk/org.vexi-library.value/src/main/java/org/vexi/value/Date.java 2011-11-29 17:42:46 UTC (rev 4299) +++ trunk/org.vexi-library.value/src/main/java/org/vexi/value/Date.java 2011-11-30 14:38:48 UTC (rev 4300) @@ -250,14 +250,19 @@ } return false; } - public int getPart(int part, int default_) { - if(!hasPart(part)) return default_; - int index = getPartIndex(part); + private int getPartByIndex(int index, int default_){ + if(index>=parts.length) return default_; + return parts[index]; + } + + public int getPart(int partId, int default_) { + if(!hasPart(partId)) return default_; + int index = getPartIndex(partId); return parts[index]; } - public int getPart(int part) throws ValueException { - if (!hasPart(part)) throw new ValueException("No value for part: "+getPartName(part)); - int index = getPartIndex(part); + public int getPart(int partId) throws ValueException { + if (!hasPart(partId)) throw new ValueException("No value for part: "+getPartName(partId)); + int index = getPartIndex(partId); return parts[index]; } public int getPartDefault(int part){ @@ -397,8 +402,8 @@ Date b = (Date)o; int l = Math.max(parts.length, b.parts.length); for (int i=0; i<l; i++) { - int pa = getPart(i, -1); - int pb = b.getPart(i, -1); + int pa = getPartByIndex(i, -1); + int pb = b.getPartByIndex(i, -1); if (pa>pb) return 1; if (pb>pa) return -1; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity, and more. Splunk takes this data and makes sense of it. IT sense. And common sense. http://p.sf.net/sfu/splunk-novd2d _______________________________________________ Vexi-svn mailing list Vexi-svn@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/vexi-svn