|
From: <jom...@us...> - 2009-02-08 17:58:07
|
Revision: 1431
http://jason.svn.sourceforge.net/jason/?rev=1431&view=rev
Author: jomifred
Date: 2009-02-08 17:58:02 +0000 (Sun, 08 Feb 2009)
Log Message:
-----------
fix a bug in Arithmetic expressions
Modified Paths:
--------------
trunk/src/jason/asSyntax/ArithFunctionTerm.java
trunk/src/test/ExprTermTest.java
Modified: trunk/src/jason/asSyntax/ArithFunctionTerm.java
===================================================================
--- trunk/src/jason/asSyntax/ArithFunctionTerm.java 2009-01-23 07:41:05 UTC (rev 1430)
+++ trunk/src/jason/asSyntax/ArithFunctionTerm.java 2009-02-08 17:58:02 UTC (rev 1431)
@@ -67,6 +67,12 @@
}
@Override
+ public boolean isLiteral() {
+ return false;
+ }
+
+
+ @Override
public boolean isArithExpr() {
return !isEvaluated();
}
Modified: trunk/src/test/ExprTermTest.java
===================================================================
--- trunk/src/test/ExprTermTest.java 2009-01-23 07:41:05 UTC (rev 1430)
+++ trunk/src/test/ExprTermTest.java 2009-02-08 17:58:02 UTC (rev 1431)
@@ -5,6 +5,7 @@
import jason.asSemantics.Agent;
import jason.asSemantics.TransitionSystem;
import jason.asSemantics.Unifier;
+import jason.asSyntax.ASSyntax;
import jason.asSyntax.ArithExpr;
import jason.asSyntax.ArithFunctionTerm;
import jason.asSyntax.ListTerm;
@@ -13,7 +14,9 @@
import jason.asSyntax.NumberTerm;
import jason.asSyntax.NumberTermImpl;
import jason.asSyntax.RelExpr;
+import jason.asSyntax.Term;
import jason.asSyntax.VarTerm;
+import jason.asSyntax.parser.ParseException;
import jason.infra.centralised.CentralisedAgArch;
import java.util.Collections;
@@ -64,7 +67,7 @@
assertEquals(new NumberTermImpl(2.5).hashCode(), nb.hashCode());
}
- public void testUnify() {
+ public void testUnify1() {
Literal t1 = (Literal) Literal.parseLiteral("p(X*2)").clone();
Literal t2 = Literal.parseLiteral("p(Y)");
Unifier u = new Unifier();
@@ -82,6 +85,23 @@
assertEquals(t2.toString(), "p(10)");
}
+ public void testUnify2() throws ParseException {
+ Unifier u = new Unifier();
+ u.unifies(new VarTerm("X"), new NumberTermImpl(3));
+ Term e1 = ASSyntax.parseTerm("X-1");
+ e1.apply(u);
+ assertTrue(u.unifies(new NumberTermImpl(2), e1));
+ assertTrue(u.unifies(e1, new NumberTermImpl(2)));
+ assertTrue(u.unifies(new NumberTermImpl(2), e1.clone()));
+
+ u.unifies(new VarTerm("Y"), new NumberTermImpl(1));
+ Term e2 = ASSyntax.parseTerm("Y+1");
+ e2.apply(u);
+ assertFalse(e1.isLiteral());
+ assertFalse(e2.isLiteral());
+ assertTrue(u.unifies(e2, e1));
+ }
+
public void testAddAddAdd() {
Literal t1 = Literal.parseLiteral("p(X+1)");
Unifier u = new Unifier();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|