|
From: <jom...@us...> - 2008-04-18 17:41:27
|
Revision: 1222
http://jason.svn.sourceforge.net/jason/?rev=1222&view=rev
Author: jomifred
Date: 2008-04-18 10:41:10 -0700 (Fri, 18 Apr 2008)
Log Message:
-----------
fix bug in return of ? and !
Modified Paths:
--------------
trunk/applications/as-unit-test/src/jason/asunit/TestArch.java
trunk/applications/as-unit-test/src/jason/tests/TestAll.java
trunk/release-notes.txt
trunk/src/jason/asSemantics/VarsCluster.java
trunk/src/jason/asSyntax/PlanBodyImpl.java
Added Paths:
-----------
trunk/applications/as-unit-test/src/jason/tests/BugListReturnUnification.java
Modified: trunk/applications/as-unit-test/src/jason/asunit/TestArch.java
===================================================================
--- trunk/applications/as-unit-test/src/jason/asunit/TestArch.java 2008-04-18 16:10:08 UTC (rev 1221)
+++ trunk/applications/as-unit-test/src/jason/asunit/TestArch.java 2008-04-18 17:41:10 UTC (rev 1222)
@@ -93,7 +93,7 @@
}
public void print(String s) {
- //System.out.println(s);
+ System.out.println(s);
output.append(s+"\n");
}
Added: trunk/applications/as-unit-test/src/jason/tests/BugListReturnUnification.java
===================================================================
--- trunk/applications/as-unit-test/src/jason/tests/BugListReturnUnification.java (rev 0)
+++ trunk/applications/as-unit-test/src/jason/tests/BugListReturnUnification.java 2008-04-18 17:41:10 UTC (rev 1222)
@@ -0,0 +1,37 @@
+package jason.tests;
+
+import jason.asunit.TestAgent;
+
+import org.junit.Before;
+import org.junit.Test;
+
+public class BugListReturnUnification {
+
+ TestAgent ag;
+
+ @Before
+ public void setupAg() {
+ ag = new TestAgent();
+ ag.setDebugMode(true);
+
+ // defines the agent's AgentSpeak code
+ ag.parseAScode(
+ "+!test1 <- L=[A,B]; ?bundle(L); jason.asunit.print(L). "+
+ "+?bundle([]). "+
+ "+?bundle([a|T]) <- ?bundle(T). "+
+
+ "+!test2 <- L=[A,B,C,D]; !bundle(L); jason.asunit.print(L). "+
+ "+!bundle([]). "+
+ "+!bundle([a|T]) <- !bundle(T). "
+ );
+ }
+
+ @Test
+ public void testContext() {
+ ag.addGoal("test1");
+ ag.assertPrint("[a,a]", 10);
+ ag.addGoal("test2");
+ ag.assertPrint("[a,a,a,a]", 10);
+ }
+
+}
Modified: trunk/applications/as-unit-test/src/jason/tests/TestAll.java
===================================================================
--- trunk/applications/as-unit-test/src/jason/tests/TestAll.java 2008-04-18 16:10:08 UTC (rev 1221)
+++ trunk/applications/as-unit-test/src/jason/tests/TestAll.java 2008-04-18 17:41:10 UTC (rev 1222)
@@ -6,6 +6,7 @@
@RunWith(Suite.class)
@SuiteClasses({
+ BugListReturnUnification.class,
BugVarsInInitBels.class,
TestAddLogExprInBB.class,
TestGoalSource.class,
Modified: trunk/release-notes.txt
===================================================================
--- trunk/release-notes.txt 2008-04-18 16:10:08 UTC (rev 1221)
+++ trunk/release-notes.txt 2008-04-18 17:41:10 UTC (rev 1222)
@@ -12,6 +12,7 @@
. add "source(self)" in goals without source
. correctly handle failure event caused by no relevant plans
. timeout in .wait does not cause a runtime exception
+. unification in return of ! and ?
-------------
Modified: trunk/src/jason/asSemantics/VarsCluster.java
===================================================================
--- trunk/src/jason/asSemantics/VarsCluster.java 2008-04-18 16:10:08 UTC (rev 1221)
+++ trunk/src/jason/asSemantics/VarsCluster.java 2008-04-18 17:41:10 UTC (rev 1222)
@@ -67,7 +67,7 @@
this.u = u;
}
- protected VarsCluster(VarTerm v1, VarTerm v2, Unifier u) {
+ public VarsCluster(VarTerm v1, VarTerm v2, Unifier u) {
id = ++idCount;
this.u = u;
add(v1);
Modified: trunk/src/jason/asSyntax/PlanBodyImpl.java
===================================================================
--- trunk/src/jason/asSyntax/PlanBodyImpl.java 2008-04-18 16:10:08 UTC (rev 1221)
+++ trunk/src/jason/asSyntax/PlanBodyImpl.java 2008-04-18 17:41:10 UTC (rev 1222)
@@ -184,15 +184,14 @@
public Term removeBody(int index) {
if (index == 0) {
+ Term oldvalue = term;
if (next == null) {
term = null; // becomes an empty
} else {
- Term oldvalue = term;
swap(next); // get values of text
next = next.getBodyNext();
- return oldvalue;
}
- return this;
+ return oldvalue;
} else {
return next.removeBody(index - 1);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|