|
From: <jom...@us...> - 2009-01-06 14:19:26
|
Revision: 1426
http://jason.svn.sourceforge.net/jason/?rev=1426&view=rev
Author: jomifred
Date: 2009-01-06 14:19:25 +0000 (Tue, 06 Jan 2009)
Log Message:
-----------
fix bug in Number.compareTo
Modified Paths:
--------------
trunk/src/jason/asSyntax/ListTermImpl.java
trunk/src/jason/asSyntax/NumberTermImpl.java
trunk/src/test/TermTest.java
Modified: trunk/src/jason/asSyntax/ListTermImpl.java
===================================================================
--- trunk/src/jason/asSyntax/ListTermImpl.java 2008-12-26 19:59:05 UTC (rev 1425)
+++ trunk/src/jason/asSyntax/ListTermImpl.java 2009-01-06 14:19:25 UTC (rev 1426)
@@ -344,7 +344,6 @@
for (Term t: set)
tail = tail.append(t.clone());
return result;
-
}
/** returns an iterator where each element is a ListTerm */
@@ -508,6 +507,11 @@
public ListIterator<Term> listIterator() {
return listIterator(0);
}
+
+ // TODO: do not base this implementation on get (that is O(n))
+ // conversely, implement all other methods of List based on this iterator
+ // (see AbstractSequentialList)
+ // merge code of ListTermIterator here and use always the same iterator
public ListIterator<Term> listIterator(final int startIndex) {
final ListTermImpl list = this;
return new ListIterator<Term>() {
@@ -527,7 +531,7 @@
public Term next() {
last = pos;
pos++;
- return get(last); // TODO: get complexity is O(n)! and sort uses this iterator.... it will be nice to have a get implementation with constant time.
+ return get(last);
}
public int nextIndex() {
return pos+1;
Modified: trunk/src/jason/asSyntax/NumberTermImpl.java
===================================================================
--- trunk/src/jason/asSyntax/NumberTermImpl.java 2008-12-26 19:59:05 UTC (rev 1425)
+++ trunk/src/jason/asSyntax/NumberTermImpl.java 2009-01-06 14:19:25 UTC (rev 1426)
@@ -99,6 +99,7 @@
NumberTerm st = (NumberTerm)o;
if (solve() > st.solve()) return 1;
if (solve() < st.solve()) return -1;
+ return 0;
}
if (o instanceof Atom)
return -1;
Modified: trunk/src/test/TermTest.java
===================================================================
--- trunk/src/test/TermTest.java 2008-12-26 19:59:05 UTC (rev 1425)
+++ trunk/src/test/TermTest.java 2009-01-06 14:19:25 UTC (rev 1426)
@@ -532,6 +532,16 @@
l = ListTermImpl.parseList("[b,[1,1,1],c,10,g,casa,f(10),5,[3,10],f(4),[3,4]]");
Collections.sort(l);
assertEquals("[5,10,b,c,casa,f(4),f(10),g,[3,4],[3,10],[1,1,1]]",l.toString());
+
+ Term t1 = ASSyntax.createNumber(10);
+ Term t2 = ASSyntax.createNumber(10);
+ assertEquals(0, t1.compareTo(t2));
+ Term v1 = new VarTerm("X1");
+ Unifier u = new Unifier();
+ u.unifies(v1, t1);
+ v1.apply(u);
+ assertEquals(0, v1.compareTo(t2));
+ assertEquals(0, t2.compareTo(v1));
}
public void testUnify4() throws ParseException {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|