[jboss-svn-commits] JBL Code SVN: r19436 - in labs/jbossrules/trunk/drools-compiler/src/test: java/org/drools/integrationtests/manners and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sun Apr 6 22:38:36 EDT 2008
Author: mark.proctor at jboss.com
Date: 2008-04-06 22:38:36 -0400 (Sun, 06 Apr 2008)
New Revision: 19436
Added:
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/Chosen.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/Context.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/Count.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/Guest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/Hobby.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/LastSeat.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/MannersBenchmark.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/Path.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/Seating.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/Sex.java
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/manners/
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/manners/manners.drl
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/manners/manners128.dat
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/manners/manners16.dat
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/manners/manners32.dat
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/manners/manners5.dat
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/manners/manners64.dat
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/manners/manners8.dat
Log:
JBRULES-1552 AlphaNode Compiler
-Added initially illustrative AlphaNodeCompiler
-Added Manners to compiler, might as well have it there as we use it enough.
Added: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/Chosen.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/Chosen.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/Chosen.java 2008-04-07 02:38:36 UTC (rev 19436)
@@ -0,0 +1,55 @@
+package org.drools.integrationtests.manners;
+
+/*
+ * Copyright 2005 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.io.Serializable;
+
+public class Chosen implements Serializable {
+
+ private int id;
+
+ private String guestName;
+
+ private Hobby hobby;
+
+ public Chosen() {
+
+ }
+
+ public Chosen(int id, String guestName, Hobby hobby) {
+ this.id = id;
+ this.guestName = guestName;
+ this.hobby = hobby;
+ }
+
+ public int getId() {
+ return this.id;
+ }
+
+ public String getGuestName() {
+ return this.guestName;
+ }
+
+ public Hobby getHobby() {
+ return this.hobby;
+ }
+
+ public String toString() {
+ return "{Chosen id=" + this.id + ", name=" + this.guestName
+ + ", hobbies=" + this.hobby + "}";
+ }
+}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/Context.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/Context.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/Context.java 2008-04-07 02:38:36 UTC (rev 19436)
@@ -0,0 +1,74 @@
+package org.drools.integrationtests.manners;
+
+/*
+ * Copyright 2005 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.io.Serializable;
+
+public class Context implements Serializable {
+
+ public static final int START_UP = 0;
+
+ public static final int ASSIGN_SEATS = 1;
+
+ public static final int MAKE_PATH = 2;
+
+ public static final int CHECK_DONE = 3;
+
+ public static final int PRINT_RESULTS = 4;
+
+ public static final String[] stateStrings = { "START_UP", "ASSIGN_SEATS",
+ "MAKE_PATH", "CHECK_DONE", "PRINT_RESULTS" };
+
+ private int state;
+
+ public Context() {
+
+ }
+
+ public Context(String state) {
+ if ("start".equals(state)) {
+ this.state = Context.START_UP;
+ } else {
+ throw new RuntimeException("Context '" + state
+ + "' does not exist for Context Enum");
+ }
+ }
+
+ public Context(int state) {
+ this.state = state;
+ }
+
+ public void setState(int state) {
+ this.state = state;
+ }
+
+ public boolean isState(int state) {
+ return this.state == state;
+ }
+
+ public int getState() {
+ return this.state;
+ }
+
+ public String getStringValue() {
+ return stateStrings[this.state];
+ }
+
+ public String toString() {
+ return "[Context state=" + getStringValue() + "]";
+ }
+}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/Count.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/Count.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/Count.java 2008-04-07 02:38:36 UTC (rev 19436)
@@ -0,0 +1,59 @@
+package org.drools.integrationtests.manners;
+
+/*
+ * Copyright 2005 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+public class Count {
+ private int value;
+
+ public Count() {
+
+ }
+
+ public Count(int value) {
+ super();
+ this.value = value;
+ }
+
+ public int getValue() {
+ return this.value;
+ }
+
+ public void setValue(int value) {
+ this.value = value;
+ }
+
+ public String toString() {
+ return "[Count value=" + this.value + "]";
+ }
+
+ public boolean equals(Object object) {
+ if (object == this) {
+ return true;
+ }
+
+ if ((object == null) || !(object instanceof Count)) {
+ return false;
+ }
+
+ return this.value == ((Count) object).value;
+ }
+
+ public int hashCode() {
+ return this.value;
+ }
+
+}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/Guest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/Guest.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/Guest.java 2008-04-07 02:38:36 UTC (rev 19436)
@@ -0,0 +1,54 @@
+package org.drools.integrationtests.manners;
+
+/*
+ * Copyright 2005 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.io.Serializable;
+
+public class Guest implements Serializable {
+ private String name;
+
+ private Sex sex;
+
+ private Hobby hobby;
+
+ public Guest() {
+
+ }
+
+ public Guest(String name, Sex sex, Hobby hobby) {
+ this.name = name;
+ this.sex = sex;
+ this.hobby = hobby;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public Hobby getHobby() {
+ return this.hobby;
+ }
+
+ public Sex getSex() {
+ return this.sex;
+ }
+
+ public String toString() {
+ return "[Guest name=" + this.name + ", sex=" + this.sex + ", hobbies="
+ + this.hobby + "]";
+ }
+}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/Hobby.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/Hobby.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/Hobby.java 2008-04-07 02:38:36 UTC (rev 19436)
@@ -0,0 +1,89 @@
+package org.drools.integrationtests.manners;
+
+/*
+ * Copyright 2005 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+public class Hobby {
+ public static final String stringH1 = "h1";
+
+ public static final String stringH2 = "h2";
+
+ public static final String stringH3 = "h3";
+
+ public static final String stringH4 = "h4";
+
+ public static final String stringH5 = "h5";
+
+ public static final String[] hobbyStrings = new String[] { stringH1,
+ stringH2, stringH3, stringH4, stringH5 };
+
+ public static final Hobby H1 = new Hobby(1);
+
+ public static final Hobby H2 = new Hobby(2);
+
+ public static final Hobby H3 = new Hobby(3);
+
+ public static final Hobby H4 = new Hobby(4);
+
+ public static final Hobby H5 = new Hobby(5);
+
+ private String hobbyStr;
+
+ private int hobbyIndex;
+
+ public Hobby() {
+
+ }
+
+ private Hobby(int hobby) {
+ this.hobbyIndex = hobby - 1;
+ this.hobbyStr = hobbyStrings[this.hobbyIndex];
+ }
+
+ public String getHobby() {
+ return this.hobbyStr;
+ }
+
+ public static Hobby resolve(String hobby) {
+ if (stringH1.equals(hobby)) {
+ return Hobby.H1;
+ } else if (stringH2.equals(hobby)) {
+ return Hobby.H2;
+ } else if (stringH3.equals(hobby)) {
+ return Hobby.H3;
+ } else if (stringH4.equals(hobby)) {
+ return Hobby.H4;
+ } else if (stringH5.equals(hobby)) {
+ return Hobby.H5;
+ } else {
+ throw new RuntimeException("Hobby '" + hobby
+ + "' does not exist for Hobby Enum");
+ }
+ }
+
+ public String toString() {
+ return getHobby();
+ }
+
+ public boolean equals(Object object) {
+ return (this == object);
+ }
+
+ public int hashCode() {
+ return this.hobbyIndex;
+ }
+
+}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/LastSeat.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/LastSeat.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/LastSeat.java 2008-04-07 02:38:36 UTC (rev 19436)
@@ -0,0 +1,39 @@
+package org.drools.integrationtests.manners;
+
+/*
+ * Copyright 2005 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.io.Serializable;
+
+public class LastSeat implements Serializable {
+ private int seat;
+
+ public LastSeat() {
+
+ }
+
+ public LastSeat(int seat) {
+ this.seat = seat;
+ }
+
+ public int getSeat() {
+ return this.seat;
+ }
+
+ public String toString() {
+ return "[LastSeat seat=" + this.seat + "]";
+ }
+}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/MannersBenchmark.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/MannersBenchmark.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/MannersBenchmark.java 2008-04-07 02:38:36 UTC (rev 19436)
@@ -0,0 +1,186 @@
+package org.drools.integrationtests.manners;
+
+import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Random;
+import java.util.StringTokenizer;
+
+import org.drools.RuleBase;
+import org.drools.RuleBaseFactory;
+import org.drools.StatefulSession;
+import org.drools.common.InternalRuleBase;
+import org.drools.compiler.PackageBuilder;
+import org.drools.reteoo.AlphaNetworkCompiler;
+import org.drools.reteoo.ObjectTypeNode;
+import org.drools.rule.Package;
+
+public class MannersBenchmark {
+ /** Number of guests at the dinner (default: 16). */
+ private int numGuests = 16;
+
+ /** Number of seats at the table (default: 16). */
+ private int numSeats = 16;
+
+ /** Minimum number of hobbies each guest should have (default: 2). */
+ private int minHobbies = 2;
+
+ /** Maximun number of hobbies each guest should have (default: 3). */
+ private int maxHobbies = 3;
+
+ public static void main(final String[] args) throws Exception {
+ PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( MannersBenchmark.class.getResourceAsStream( "manners.drl" ) ) );
+ Package pkg = builder.getPackage();
+
+ // add the package to a rulebase
+ final RuleBase ruleBase = RuleBaseFactory.newRuleBase();
+ ruleBase.addPackage( pkg );
+
+ AlphaNetworkCompiler compiler = new AlphaNetworkCompiler();
+
+ for(ObjectTypeNode node : ( (InternalRuleBase) ruleBase).getRete().getObjectTypeNodes() ){
+ compiler.compile( node );
+ }
+
+// StatefulSession session = ruleBase.newStatefulSession();
+//
+// String filename;
+// if ( args.length != 0 ) {
+// String arg = args[0];
+// filename = arg;
+// } else {
+// filename = "manners128.dat";
+// }
+//
+// InputStream is = MannersBenchmark.class.getResourceAsStream( filename );
+// List list = getInputObjects( is );
+// for ( Iterator it = list.iterator(); it.hasNext(); ) {
+// Object object = it.next();
+// session.insert( object );
+// }
+//
+// session.insert( new Count( 1 ) );
+//
+// long start = System.currentTimeMillis();
+// session.fireAllRules();
+// System.err.println( System.currentTimeMillis() - start );
+// session.dispose();
+ }
+
+ /**
+ * Convert the facts from the <code>InputStream</code> to a list of
+ * objects.
+ */
+ protected static List getInputObjects(InputStream inputStream) throws IOException {
+ List list = new ArrayList();
+
+ BufferedReader br = new BufferedReader( new InputStreamReader( inputStream ) );
+
+ String line;
+ while ( (line = br.readLine()) != null ) {
+ if ( line.trim().length() == 0 || line.trim().startsWith( ";" ) ) {
+ continue;
+ }
+ StringTokenizer st = new StringTokenizer( line,
+ "() " );
+ String type = st.nextToken();
+
+ if ( "guest".equals( type ) ) {
+ if ( !"name".equals( st.nextToken() ) ) {
+ throw new IOException( "expected 'name' in: " + line );
+ }
+ String name = st.nextToken();
+ if ( !"sex".equals( st.nextToken() ) ) {
+ throw new IOException( "expected 'sex' in: " + line );
+ }
+ String sex = st.nextToken();
+ if ( !"hobby".equals( st.nextToken() ) ) {
+ throw new IOException( "expected 'hobby' in: " + line );
+ }
+ String hobby = st.nextToken();
+
+ Guest guest = new Guest( name,
+ Sex.resolve( sex ),
+ Hobby.resolve( hobby ) );
+
+ list.add( guest );
+ }
+
+ if ( "last_seat".equals( type ) ) {
+ if ( !"seat".equals( st.nextToken() ) ) {
+ throw new IOException( "expected 'seat' in: " + line );
+ }
+ list.add( new LastSeat( new Integer( st.nextToken() ).intValue() ) );
+ }
+
+ if ( "context".equals( type ) ) {
+ if ( !"state".equals( st.nextToken() ) ) {
+ throw new IOException( "expected 'state' in: " + line );
+ }
+ list.add( new Context( st.nextToken() ) );
+ }
+ }
+ inputStream.close();
+
+ return list;
+ }
+
+ private InputStream generateData() {
+ final String LINE_SEPARATOR = System.getProperty( "line.separator" );
+
+ StringWriter writer = new StringWriter();
+
+ int maxMale = numGuests / 2;
+ int maxFemale = numGuests / 2;
+
+ int maleCount = 0;
+ int femaleCount = 0;
+
+ // init hobbies
+ List hobbyList = new ArrayList();
+ for ( int i = 1; i <= maxHobbies; i++ ) {
+ hobbyList.add( "h" + i );
+ }
+
+ Random rnd = new Random();
+ for ( int i = 1; i <= numGuests; i++ ) {
+ char sex = rnd.nextBoolean() ? 'm' : 'f';
+ if ( sex == 'm' && maleCount == maxMale ) {
+ sex = 'f';
+ }
+ if ( sex == 'f' && femaleCount == maxFemale ) {
+ sex = 'm';
+ }
+ if ( sex == 'm' ) {
+ maleCount++;
+ }
+ if ( sex == 'f' ) {
+ femaleCount++;
+ }
+
+ List guestHobbies = new ArrayList( hobbyList );
+
+ int numHobbies = minHobbies + rnd.nextInt( maxHobbies - minHobbies + 1 );
+ for ( int j = 0; j < numHobbies; j++ ) {
+ int hobbyIndex = rnd.nextInt( guestHobbies.size() );
+ String hobby = (String) guestHobbies.get( hobbyIndex );
+ writer.write( "(guest (name n" + i + ") (sex " + sex + ") (hobby " + hobby + "))" + LINE_SEPARATOR );
+ guestHobbies.remove( hobbyIndex );
+ }
+ }
+ writer.write( "(last_seat (seat " + numSeats + "))" + LINE_SEPARATOR );
+
+ writer.write( LINE_SEPARATOR );
+ writer.write( "(context (state start))" + LINE_SEPARATOR );
+
+ return new ByteArrayInputStream( writer.getBuffer().toString().getBytes() );
+ }
+
+}
Added: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/Path.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/Path.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/Path.java 2008-04-07 02:38:36 UTC (rev 19436)
@@ -0,0 +1,53 @@
+package org.drools.integrationtests.manners;
+
+/*
+ * Copyright 2005 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+public class Path {
+ private int id;
+
+ private String guestName;
+
+ private int seat;
+
+ public Path() {
+
+ }
+
+ public Path(int id, int seat, String guestName) {
+ this.id = id;
+ this.seat = seat;
+ this.guestName = guestName;
+ }
+
+ public int getSeat() {
+ return this.seat;
+ }
+
+ public String getGuestName() {
+ return this.guestName;
+ }
+
+ public int getId() {
+ return this.id;
+ }
+
+ public String toString() {
+ return "[Path id=" + this.id + ", seat=" + this.seat + ", guest="
+ + this.guestName + "]";
+ }
+
+}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/Seating.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/Seating.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/Seating.java 2008-04-07 02:38:36 UTC (rev 19436)
@@ -0,0 +1,86 @@
+package org.drools.integrationtests.manners;
+
+/*
+ * Copyright 2005 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.io.Serializable;
+
+public class Seating implements Serializable {
+ private int id, pid;
+
+ private int leftSeat, rightSeat;
+
+ private String leftGuestName, rightGuestName;
+
+ private boolean pathDone;
+
+ public Seating() {
+
+ }
+
+ public Seating( int id, int pid, boolean pathDone,
+ int leftSeat, String leftGuestName,
+ int rightSeat, String rightGuestName) {
+ super();
+ this.id = id;
+ this.pid = pid;
+ this.pathDone = pathDone;
+ this.leftSeat = leftSeat;
+ this.leftGuestName = leftGuestName;
+ this.rightSeat = rightSeat;
+ this.rightGuestName = rightGuestName;
+ }
+
+ public boolean isPathDone() {
+ return this.pathDone;
+ }
+
+ public void setPathDone(boolean pathDone) {
+ this.pathDone = pathDone;
+ }
+
+ public int getId() {
+ return this.id;
+ }
+
+ public String getLeftGuestName() {
+ return this.leftGuestName;
+ }
+
+ public int getLeftSeat() {
+ return this.leftSeat;
+ }
+
+ public int getPid() {
+ return this.pid;
+ }
+
+ public String getRightGuestName() {
+ return this.rightGuestName;
+ }
+
+ public int getRightSeat() {
+ return this.rightSeat;
+ }
+
+ public String toString() {
+ return "[Seating id=" + this.id + " , pid=" + this.pid + " , pathDone="
+ + this.pathDone + " , leftSeat=" + this.leftSeat
+ + ", leftGuestName=" + this.leftGuestName + ", rightSeat="
+ + this.rightSeat + ", rightGuestName=" + this.rightGuestName
+ + "]";
+ }
+}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/Sex.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/Sex.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/manners/Sex.java 2008-04-07 02:38:36 UTC (rev 19436)
@@ -0,0 +1,67 @@
+package org.drools.integrationtests.manners;
+
+/*
+ * Copyright 2005 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+public class Sex {
+ public static final Sex M = new Sex(0);
+
+ public static final Sex F = new Sex(1);
+
+ public static final String stringM = "m";
+
+ public static final String stringF = "f";
+
+ public static final String[] sexList = new String[] { stringM, stringF };
+
+ private int sex;
+
+ public Sex() {
+
+ }
+
+ private Sex(int sex) {
+ this.sex = sex;
+ }
+
+ public String getSex() {
+ return sexList[this.sex];
+ }
+
+ public static Sex resolve(String sex) {
+ if (stringM.equals(sex)) {
+ return Sex.M;
+ } else if (stringF.equals(sex)) {
+ return Sex.F;
+ } else {
+ throw new RuntimeException("Sex '" + sex
+ + "' does not exist for Sex Enum");
+ }
+ }
+
+ public String toString() {
+ return getSex();
+ }
+
+ public boolean equals(Object object) {
+ return this == object;
+ }
+
+ public int hashCode() {
+ return this.sex;
+ }
+
+}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/manners/manners.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/manners/manners.drl (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/manners/manners.drl 2008-04-07 02:38:36 UTC (rev 19436)
@@ -0,0 +1,112 @@
+package org.drools.integrationtests.manners
+
+rule assignFirstSeat
+ when
+ context : Context( state == Context.START_UP )
+ guest : Guest()
+ count : Count()
+ then
+ String guestName = guest.getName();
+
+ Seating seating = new Seating( count.getValue(), 1, true, 1, guestName, 1, guestName);
+ insert( seating );
+
+ Path path = new Path( count.getValue(), 1, guestName );
+ insert( path );
+
+ count.setValue( count.getValue() + 1 );
+ update( count );
+
+ System.out.println( "assign first seat : " + seating + " : " + path );
+
+ context.setState( Context.ASSIGN_SEATS );
+ update( context );
+end
+
+rule findSeating
+ when
+ context : Context( state == Context.ASSIGN_SEATS )
+ $s : Seating( pathDone == true )
+ $g1 : Guest( name == $s.rightGuestName )
+ $g2 : Guest( sex != $g1.sex, hobby == $g1.hobby )
+
+ count : Count()
+
+ not ( Path( id == $s.id, guestName == $g2.name) )
+ not ( Chosen( id == $s.id, guestName == $g2.name, hobby == $g1.hobby) )
+ then
+ int rightSeat = $s.getRightSeat();
+ int seatId = $s.getId();
+ int countValue = count.getValue();
+
+ Seating seating = new Seating( countValue, seatId, false, rightSeat, $s.getRightGuestName(), rightSeat + 1, $g2.getName() );
+ insert( seating );
+
+ Path path = new Path( countValue, rightSeat + 1, $g2.getName() );
+ insert( path );
+
+ Chosen chosen = new Chosen( seatId, $g2.getName(), $g1.getHobby() );
+ insert( chosen );
+
+ System.err.println( "find seating : " + seating + " : " + path + " : " + chosen);
+
+ count.setValue( countValue + 1 );
+ update( count );
+
+ context.setState( Context.MAKE_PATH );
+ update( context );
+end
+
+rule makePath
+ when
+ Context( state == Context.MAKE_PATH )
+ Seating( seatingId:id, seatingPid:pid, pathDone == false )
+ Path( id == seatingPid, pathGuestName:guestName, pathSeat:seat )
+ not Path( id == seatingId, guestName == pathGuestName )
+ then
+ insert( new Path( seatingId, pathSeat, pathGuestName ) );
+end
+
+rule pathDone
+ when
+ context : Context( state == Context.MAKE_PATH )
+ seating : Seating( pathDone == false )
+ then
+ seating.setPathDone( true );
+ update( seating );
+
+ context.setState( Context.CHECK_DONE );
+ update( context );
+end
+
+
+rule areWeDone
+ when
+ context : Context( state == Context.CHECK_DONE )
+ LastSeat( lastSeat: seat )
+ Seating( rightSeat == lastSeat )
+ then
+ context.setState(Context.PRINT_RESULTS );
+ update( context );
+end
+
+rule continue
+ when
+ context : Context( state == Context.CHECK_DONE )
+ then
+ context.setState( Context.ASSIGN_SEATS );
+ update( context );
+end
+
+
+rule allDone
+ when
+ context : Context( state == Context.PRINT_RESULTS )
+ then
+ System.out.println( "All Done" );
+end
+
+//query getResults
+// context : Context( state == Context.PRINT_RESULTS )
+//end
+
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/manners/manners128.dat
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/manners/manners128.dat (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/manners/manners128.dat 2008-04-07 02:38:36 UTC (rev 19436)
@@ -0,0 +1,440 @@
+(guest (name 1) (sex m) (hobby h2) )
+(guest (name 1) (sex m) (hobby h3) )
+(guest (name 1) (sex m) (hobby h1) )
+(guest (name 1) (sex m) (hobby h4) )
+(guest (name 1) (sex m) (hobby h5) )
+(guest (name 2) (sex f) (hobby h3) )
+(guest (name 2) (sex f) (hobby h2) )
+(guest (name 2) (sex f) (hobby h1) )
+(guest (name 2) (sex f) (hobby h4) )
+(guest (name 2) (sex f) (hobby h5) )
+(guest (name 3) (sex f) (hobby h5) )
+(guest (name 3) (sex f) (hobby h4) )
+(guest (name 3) (sex f) (hobby h2) )
+(guest (name 4) (sex m) (hobby h3) )
+(guest (name 4) (sex m) (hobby h2) )
+(guest (name 4) (sex m) (hobby h1) )
+(guest (name 4) (sex m) (hobby h4) )
+(guest (name 5) (sex m) (hobby h2) )
+(guest (name 5) (sex m) (hobby h5) )
+(guest (name 5) (sex m) (hobby h3) )
+(guest (name 6) (sex f) (hobby h1) )
+(guest (name 6) (sex f) (hobby h4) )
+(guest (name 6) (sex f) (hobby h2) )
+(guest (name 6) (sex f) (hobby h5) )
+(guest (name 6) (sex f) (hobby h3) )
+(guest (name 7) (sex f) (hobby h1) )
+(guest (name 7) (sex f) (hobby h2) )
+(guest (name 7) (sex f) (hobby h3) )
+(guest (name 7) (sex f) (hobby h5) )
+(guest (name 8) (sex m) (hobby h3) )
+(guest (name 8) (sex m) (hobby h5) )
+(guest (name 9) (sex m) (hobby h3) )
+(guest (name 9) (sex m) (hobby h5) )
+(guest (name 9) (sex m) (hobby h2) )
+(guest (name 9) (sex m) (hobby h4) )
+(guest (name 10) (sex m) (hobby h2) )
+(guest (name 10) (sex m) (hobby h3) )
+(guest (name 10) (sex m) (hobby h4) )
+(guest (name 10) (sex m) (hobby h5) )
+(guest (name 10) (sex m) (hobby h1) )
+(guest (name 11) (sex m) (hobby h2) )
+(guest (name 11) (sex m) (hobby h4) )
+(guest (name 11) (sex m) (hobby h5) )
+(guest (name 11) (sex m) (hobby h1) )
+(guest (name 12) (sex f) (hobby h3) )
+(guest (name 12) (sex f) (hobby h5) )
+(guest (name 12) (sex f) (hobby h2) )
+(guest (name 13) (sex f) (hobby h5) )
+(guest (name 13) (sex f) (hobby h1) )
+(guest (name 14) (sex m) (hobby h3) )
+(guest (name 14) (sex m) (hobby h5) )
+(guest (name 14) (sex m) (hobby h1) )
+(guest (name 14) (sex m) (hobby h4) )
+(guest (name 15) (sex m) (hobby h5) )
+(guest (name 15) (sex m) (hobby h2) )
+(guest (name 15) (sex m) (hobby h1) )
+(guest (name 15) (sex m) (hobby h3) )
+(guest (name 15) (sex m) (hobby h4) )
+(guest (name 16) (sex m) (hobby h2) )
+(guest (name 16) (sex m) (hobby h5) )
+(guest (name 16) (sex m) (hobby h4) )
+(guest (name 17) (sex m) (hobby h4) )
+(guest (name 17) (sex m) (hobby h3) )
+(guest (name 18) (sex f) (hobby h2) )
+(guest (name 18) (sex f) (hobby h4) )
+(guest (name 18) (sex f) (hobby h5) )
+(guest (name 18) (sex f) (hobby h1) )
+(guest (name 19) (sex m) (hobby h5) )
+(guest (name 19) (sex m) (hobby h2) )
+(guest (name 20) (sex m) (hobby h2) )
+(guest (name 20) (sex m) (hobby h3) )
+(guest (name 21) (sex m) (hobby h4) )
+(guest (name 21) (sex m) (hobby h3) )
+(guest (name 21) (sex m) (hobby h2) )
+(guest (name 21) (sex m) (hobby h1) )
+(guest (name 22) (sex m) (hobby h1) )
+(guest (name 22) (sex m) (hobby h2) )
+(guest (name 22) (sex m) (hobby h4) )
+(guest (name 23) (sex f) (hobby h4) )
+(guest (name 23) (sex f) (hobby h5) )
+(guest (name 23) (sex f) (hobby h2) )
+(guest (name 24) (sex f) (hobby h4) )
+(guest (name 24) (sex f) (hobby h3) )
+(guest (name 24) (sex f) (hobby h2) )
+(guest (name 24) (sex f) (hobby h1) )
+(guest (name 24) (sex f) (hobby h5) )
+(guest (name 25) (sex m) (hobby h4) )
+(guest (name 25) (sex m) (hobby h5) )
+(guest (name 26) (sex m) (hobby h1) )
+(guest (name 26) (sex m) (hobby h2) )
+(guest (name 27) (sex m) (hobby h3) )
+(guest (name 27) (sex m) (hobby h5) )
+(guest (name 27) (sex m) (hobby h2) )
+(guest (name 28) (sex f) (hobby h4) )
+(guest (name 28) (sex f) (hobby h1) )
+(guest (name 28) (sex f) (hobby h3) )
+(guest (name 28) (sex f) (hobby h2) )
+(guest (name 28) (sex f) (hobby h5) )
+(guest (name 29) (sex f) (hobby h3) )
+(guest (name 29) (sex f) (hobby h5) )
+(guest (name 30) (sex m) (hobby h2) )
+(guest (name 30) (sex m) (hobby h1) )
+(guest (name 31) (sex m) (hobby h3) )
+(guest (name 31) (sex m) (hobby h1) )
+(guest (name 31) (sex m) (hobby h4) )
+(guest (name 32) (sex f) (hobby h2) )
+(guest (name 32) (sex f) (hobby h1) )
+(guest (name 32) (sex f) (hobby h5) )
+(guest (name 33) (sex f) (hobby h5) )
+(guest (name 33) (sex f) (hobby h4) )
+(guest (name 34) (sex m) (hobby h4) )
+(guest (name 34) (sex m) (hobby h5) )
+(guest (name 34) (sex m) (hobby h2) )
+(guest (name 35) (sex f) (hobby h3) )
+(guest (name 35) (sex f) (hobby h1) )
+(guest (name 35) (sex f) (hobby h4) )
+(guest (name 35) (sex f) (hobby h5) )
+(guest (name 35) (sex f) (hobby h2) )
+(guest (name 36) (sex m) (hobby h1) )
+(guest (name 36) (sex m) (hobby h4) )
+(guest (name 36) (sex m) (hobby h2) )
+(guest (name 36) (sex m) (hobby h3) )
+(guest (name 37) (sex f) (hobby h4) )
+(guest (name 37) (sex f) (hobby h2) )
+(guest (name 37) (sex f) (hobby h1) )
+(guest (name 38) (sex f) (hobby h3) )
+(guest (name 38) (sex f) (hobby h1) )
+(guest (name 38) (sex f) (hobby h2) )
+(guest (name 38) (sex f) (hobby h4) )
+(guest (name 39) (sex m) (hobby h5) )
+(guest (name 39) (sex m) (hobby h2) )
+(guest (name 40) (sex m) (hobby h2) )
+(guest (name 40) (sex m) (hobby h3) )
+(guest (name 41) (sex f) (hobby h5) )
+(guest (name 41) (sex f) (hobby h3) )
+(guest (name 42) (sex m) (hobby h5) )
+(guest (name 42) (sex m) (hobby h4) )
+(guest (name 43) (sex m) (hobby h3) )
+(guest (name 43) (sex m) (hobby h4) )
+(guest (name 43) (sex m) (hobby h5) )
+(guest (name 44) (sex f) (hobby h2) )
+(guest (name 44) (sex f) (hobby h4) )
+(guest (name 44) (sex f) (hobby h3) )
+(guest (name 44) (sex f) (hobby h1) )
+(guest (name 45) (sex m) (hobby h2) )
+(guest (name 45) (sex m) (hobby h4) )
+(guest (name 46) (sex m) (hobby h4) )
+(guest (name 46) (sex m) (hobby h1) )
+(guest (name 46) (sex m) (hobby h5) )
+(guest (name 47) (sex m) (hobby h2) )
+(guest (name 47) (sex m) (hobby h5) )
+(guest (name 47) (sex m) (hobby h4) )
+(guest (name 48) (sex f) (hobby h3) )
+(guest (name 48) (sex f) (hobby h1) )
+(guest (name 49) (sex m) (hobby h1) )
+(guest (name 49) (sex m) (hobby h5) )
+(guest (name 49) (sex m) (hobby h4) )
+(guest (name 49) (sex m) (hobby h3) )
+(guest (name 49) (sex m) (hobby h2) )
+(guest (name 50) (sex m) (hobby h2) )
+(guest (name 50) (sex m) (hobby h4) )
+(guest (name 50) (sex m) (hobby h3) )
+(guest (name 51) (sex m) (hobby h1) )
+(guest (name 51) (sex m) (hobby h2) )
+(guest (name 51) (sex m) (hobby h5) )
+(guest (name 51) (sex m) (hobby h4) )
+(guest (name 52) (sex f) (hobby h5) )
+(guest (name 52) (sex f) (hobby h3) )
+(guest (name 52) (sex f) (hobby h1) )
+(guest (name 52) (sex f) (hobby h4) )
+(guest (name 53) (sex f) (hobby h5) )
+(guest (name 53) (sex f) (hobby h1) )
+(guest (name 53) (sex f) (hobby h4) )
+(guest (name 53) (sex f) (hobby h2) )
+(guest (name 53) (sex f) (hobby h3) )
+(guest (name 54) (sex f) (hobby h1) )
+(guest (name 54) (sex f) (hobby h3) )
+(guest (name 55) (sex m) (hobby h2) )
+(guest (name 55) (sex m) (hobby h4) )
+(guest (name 56) (sex m) (hobby h2) )
+(guest (name 56) (sex m) (hobby h3) )
+(guest (name 57) (sex f) (hobby h2) )
+(guest (name 57) (sex f) (hobby h1) )
+(guest (name 57) (sex f) (hobby h4) )
+(guest (name 58) (sex m) (hobby h5) )
+(guest (name 58) (sex m) (hobby h3) )
+(guest (name 58) (sex m) (hobby h2) )
+(guest (name 58) (sex m) (hobby h1) )
+(guest (name 58) (sex m) (hobby h4) )
+(guest (name 59) (sex f) (hobby h2) )
+(guest (name 59) (sex f) (hobby h3) )
+(guest (name 59) (sex f) (hobby h5) )
+(guest (name 60) (sex f) (hobby h4) )
+(guest (name 60) (sex f) (hobby h2) )
+(guest (name 60) (sex f) (hobby h3) )
+(guest (name 60) (sex f) (hobby h5) )
+(guest (name 61) (sex m) (hobby h1) )
+(guest (name 61) (sex m) (hobby h2) )
+(guest (name 61) (sex m) (hobby h4) )
+(guest (name 61) (sex m) (hobby h3) )
+(guest (name 62) (sex f) (hobby h3) )
+(guest (name 62) (sex f) (hobby h2) )
+(guest (name 62) (sex f) (hobby h5) )
+(guest (name 62) (sex f) (hobby h4) )
+(guest (name 62) (sex f) (hobby h1) )
+(guest (name 63) (sex f) (hobby h2) )
+(guest (name 63) (sex f) (hobby h3) )
+(guest (name 63) (sex f) (hobby h4) )
+(guest (name 63) (sex f) (hobby h1) )
+(guest (name 63) (sex f) (hobby h5) )
+(guest (name 64) (sex f) (hobby h2) )
+(guest (name 64) (sex f) (hobby h4) )
+(guest (name 64) (sex f) (hobby h1) )
+(guest (name 64) (sex f) (hobby h5) )
+(guest (name 64) (sex f) (hobby h3) )
+(guest (name 65) (sex m) (hobby h5) )
+(guest (name 65) (sex m) (hobby h3) )
+(guest (name 65) (sex m) (hobby h2) )
+(guest (name 65) (sex m) (hobby h1) )
+(guest (name 65) (sex m) (hobby h4) )
+(guest (name 66) (sex f) (hobby h5) )
+(guest (name 66) (sex f) (hobby h3) )
+(guest (name 66) (sex f) (hobby h4) )
+(guest (name 67) (sex f) (hobby h1) )
+(guest (name 67) (sex f) (hobby h4) )
+(guest (name 68) (sex m) (hobby h4) )
+(guest (name 68) (sex m) (hobby h2) )
+(guest (name 68) (sex m) (hobby h1) )
+(guest (name 68) (sex m) (hobby h5) )
+(guest (name 69) (sex m) (hobby h3) )
+(guest (name 69) (sex m) (hobby h4) )
+(guest (name 69) (sex m) (hobby h1) )
+(guest (name 70) (sex f) (hobby h3) )
+(guest (name 70) (sex f) (hobby h5) )
+(guest (name 70) (sex f) (hobby h1) )
+(guest (name 70) (sex f) (hobby h4) )
+(guest (name 70) (sex f) (hobby h2) )
+(guest (name 71) (sex m) (hobby h3) )
+(guest (name 71) (sex m) (hobby h1) )
+(guest (name 71) (sex m) (hobby h4) )
+(guest (name 72) (sex m) (hobby h4) )
+(guest (name 72) (sex m) (hobby h3) )
+(guest (name 72) (sex m) (hobby h1) )
+(guest (name 73) (sex f) (hobby h4) )
+(guest (name 73) (sex f) (hobby h1) )
+(guest (name 73) (sex f) (hobby h3) )
+(guest (name 74) (sex f) (hobby h1) )
+(guest (name 74) (sex f) (hobby h4) )
+(guest (name 74) (sex f) (hobby h2) )
+(guest (name 74) (sex f) (hobby h5) )
+(guest (name 74) (sex f) (hobby h3) )
+(guest (name 75) (sex f) (hobby h4) )
+(guest (name 75) (sex f) (hobby h2) )
+(guest (name 76) (sex f) (hobby h5) )
+(guest (name 76) (sex f) (hobby h4) )
+(guest (name 76) (sex f) (hobby h3) )
+(guest (name 76) (sex f) (hobby h2) )
+(guest (name 76) (sex f) (hobby h1) )
+(guest (name 77) (sex m) (hobby h1) )
+(guest (name 77) (sex m) (hobby h5) )
+(guest (name 78) (sex m) (hobby h5) )
+(guest (name 78) (sex m) (hobby h1) )
+(guest (name 79) (sex f) (hobby h1) )
+(guest (name 79) (sex f) (hobby h3) )
+(guest (name 79) (sex f) (hobby h4) )
+(guest (name 79) (sex f) (hobby h2) )
+(guest (name 79) (sex f) (hobby h5) )
+(guest (name 80) (sex m) (hobby h5) )
+(guest (name 80) (sex m) (hobby h1) )
+(guest (name 80) (sex m) (hobby h2) )
+(guest (name 80) (sex m) (hobby h4) )
+(guest (name 81) (sex m) (hobby h4) )
+(guest (name 81) (sex m) (hobby h1) )
+(guest (name 82) (sex m) (hobby h3) )
+(guest (name 82) (sex m) (hobby h4) )
+(guest (name 82) (sex m) (hobby h1) )
+(guest (name 82) (sex m) (hobby h2) )
+(guest (name 82) (sex m) (hobby h5) )
+(guest (name 83) (sex f) (hobby h1) )
+(guest (name 83) (sex f) (hobby h3) )
+(guest (name 83) (sex f) (hobby h4) )
+(guest (name 84) (sex m) (hobby h3) )
+(guest (name 84) (sex m) (hobby h4) )
+(guest (name 85) (sex f) (hobby h4) )
+(guest (name 85) (sex f) (hobby h1) )
+(guest (name 86) (sex m) (hobby h3) )
+(guest (name 86) (sex m) (hobby h4) )
+(guest (name 87) (sex m) (hobby h5) )
+(guest (name 87) (sex m) (hobby h4) )
+(guest (name 87) (sex m) (hobby h2) )
+(guest (name 87) (sex m) (hobby h3) )
+(guest (name 88) (sex m) (hobby h2) )
+(guest (name 88) (sex m) (hobby h5) )
+(guest (name 88) (sex m) (hobby h3) )
+(guest (name 88) (sex m) (hobby h1) )
+(guest (name 88) (sex m) (hobby h4) )
+(guest (name 89) (sex f) (hobby h5) )
+(guest (name 89) (sex f) (hobby h2) )
+(guest (name 89) (sex f) (hobby h4) )
+(guest (name 89) (sex f) (hobby h1) )
+(guest (name 90) (sex m) (hobby h2) )
+(guest (name 90) (sex m) (hobby h4) )
+(guest (name 90) (sex m) (hobby h5) )
+(guest (name 91) (sex f) (hobby h2) )
+(guest (name 91) (sex f) (hobby h3) )
+(guest (name 91) (sex f) (hobby h5) )
+(guest (name 91) (sex f) (hobby h1) )
+(guest (name 91) (sex f) (hobby h4) )
+(guest (name 92) (sex f) (hobby h3) )
+(guest (name 92) (sex f) (hobby h1) )
+(guest (name 92) (sex f) (hobby h2) )
+(guest (name 92) (sex f) (hobby h5) )
+(guest (name 93) (sex f) (hobby h3) )
+(guest (name 93) (sex f) (hobby h1) )
+(guest (name 93) (sex f) (hobby h2) )
+(guest (name 94) (sex f) (hobby h2) )
+(guest (name 94) (sex f) (hobby h5) )
+(guest (name 95) (sex f) (hobby h3) )
+(guest (name 95) (sex f) (hobby h4) )
+(guest (name 96) (sex m) (hobby h1) )
+(guest (name 96) (sex m) (hobby h4) )
+(guest (name 96) (sex m) (hobby h2) )
+(guest (name 96) (sex m) (hobby h5) )
+(guest (name 96) (sex m) (hobby h3) )
+(guest (name 97) (sex f) (hobby h4) )
+(guest (name 97) (sex f) (hobby h2) )
+(guest (name 97) (sex f) (hobby h5) )
+(guest (name 98) (sex m) (hobby h5) )
+(guest (name 98) (sex m) (hobby h4) )
+(guest (name 99) (sex f) (hobby h2) )
+(guest (name 99) (sex f) (hobby h5) )
+(guest (name 100) (sex m) (hobby h2) )
+(guest (name 100) (sex m) (hobby h3) )
+(guest (name 100) (sex m) (hobby h5) )
+(guest (name 100) (sex m) (hobby h4) )
+(guest (name 101) (sex f) (hobby h2) )
+(guest (name 101) (sex f) (hobby h1) )
+(guest (name 101) (sex f) (hobby h5) )
+(guest (name 101) (sex f) (hobby h3) )
+(guest (name 101) (sex f) (hobby h4) )
+(guest (name 102) (sex f) (hobby h2) )
+(guest (name 102) (sex f) (hobby h1) )
+(guest (name 102) (sex f) (hobby h5) )
+(guest (name 102) (sex f) (hobby h3) )
+(guest (name 102) (sex f) (hobby h4) )
+(guest (name 103) (sex m) (hobby h2) )
+(guest (name 103) (sex m) (hobby h1) )
+(guest (name 103) (sex m) (hobby h4) )
+(guest (name 103) (sex m) (hobby h3) )
+(guest (name 103) (sex m) (hobby h5) )
+(guest (name 104) (sex m) (hobby h5) )
+(guest (name 104) (sex m) (hobby h3) )
+(guest (name 104) (sex m) (hobby h4) )
+(guest (name 104) (sex m) (hobby h1) )
+(guest (name 104) (sex m) (hobby h2) )
+(guest (name 105) (sex f) (hobby h4) )
+(guest (name 105) (sex f) (hobby h2) )
+(guest (name 106) (sex f) (hobby h4) )
+(guest (name 106) (sex f) (hobby h5) )
+(guest (name 106) (sex f) (hobby h1) )
+(guest (name 107) (sex f) (hobby h3) )
+(guest (name 107) (sex f) (hobby h1) )
+(guest (name 107) (sex f) (hobby h2) )
+(guest (name 107) (sex f) (hobby h5) )
+(guest (name 107) (sex f) (hobby h4) )
+(guest (name 108) (sex f) (hobby h4) )
+(guest (name 108) (sex f) (hobby h5) )
+(guest (name 108) (sex f) (hobby h1) )
+(guest (name 108) (sex f) (hobby h2) )
+(guest (name 108) (sex f) (hobby h3) )
+(guest (name 109) (sex f) (hobby h1) )
+(guest (name 109) (sex f) (hobby h2) )
+(guest (name 110) (sex m) (hobby h5) )
+(guest (name 110) (sex m) (hobby h4) )
+(guest (name 110) (sex m) (hobby h1) )
+(guest (name 110) (sex m) (hobby h2) )
+(guest (name 111) (sex f) (hobby h3) )
+(guest (name 111) (sex f) (hobby h2) )
+(guest (name 112) (sex f) (hobby h4) )
+(guest (name 112) (sex f) (hobby h3) )
+(guest (name 112) (sex f) (hobby h5) )
+(guest (name 112) (sex f) (hobby h2) )
+(guest (name 112) (sex f) (hobby h1) )
+(guest (name 113) (sex f) (hobby h1) )
+(guest (name 113) (sex f) (hobby h3) )
+(guest (name 113) (sex f) (hobby h5) )
+(guest (name 113) (sex f) (hobby h2) )
+(guest (name 114) (sex m) (hobby h3) )
+(guest (name 114) (sex m) (hobby h2) )
+(guest (name 115) (sex m) (hobby h2) )
+(guest (name 115) (sex m) (hobby h1) )
+(guest (name 115) (sex m) (hobby h5) )
+(guest (name 115) (sex m) (hobby h4) )
+(guest (name 116) (sex m) (hobby h3) )
+(guest (name 116) (sex m) (hobby h4) )
+(guest (name 116) (sex m) (hobby h5) )
+(guest (name 116) (sex m) (hobby h1) )
+(guest (name 117) (sex f) (hobby h4) )
+(guest (name 117) (sex f) (hobby h5) )
+(guest (name 117) (sex f) (hobby h2) )
+(guest (name 118) (sex f) (hobby h2) )
+(guest (name 118) (sex f) (hobby h4) )
+(guest (name 118) (sex f) (hobby h3) )
+(guest (name 119) (sex m) (hobby h5) )
+(guest (name 119) (sex m) (hobby h3) )
+(guest (name 120) (sex m) (hobby h5) )
+(guest (name 120) (sex m) (hobby h1) )
+(guest (name 120) (sex m) (hobby h3) )
+(guest (name 120) (sex m) (hobby h2) )
+(guest (name 120) (sex m) (hobby h4) )
+(guest (name 121) (sex f) (hobby h4) )
+(guest (name 121) (sex f) (hobby h2) )
+(guest (name 121) (sex f) (hobby h3) )
+(guest (name 121) (sex f) (hobby h5) )
+(guest (name 122) (sex m) (hobby h1) )
+(guest (name 122) (sex m) (hobby h2) )
+(guest (name 122) (sex m) (hobby h5) )
+(guest (name 123) (sex m) (hobby h2) )
+(guest (name 123) (sex m) (hobby h3) )
+(guest (name 123) (sex m) (hobby h1) )
+(guest (name 123) (sex m) (hobby h5) )
+(guest (name 124) (sex f) (hobby h2) )
+(guest (name 124) (sex f) (hobby h3) )
+(guest (name 124) (sex f) (hobby h4) )
+(guest (name 125) (sex f) (hobby h3) )
+(guest (name 125) (sex f) (hobby h5) )
+(guest (name 125) (sex f) (hobby h2) )
+(guest (name 125) (sex f) (hobby h4) )
+(guest (name 126) (sex f) (hobby h2) )
+(guest (name 126) (sex f) (hobby h3) )
+(guest (name 126) (sex f) (hobby h1) )
+(guest (name 126) (sex f) (hobby h4) )
+(guest (name 127) (sex f) (hobby h5) )
+(guest (name 127) (sex f) (hobby h1) )
+(guest (name 128) (sex f) (hobby h2) )
+(guest (name 128) (sex f) (hobby h4) )
+(guest (name 128) (sex f) (hobby h1) )
+(guest (name 128) (sex f) (hobby h3) )
+(last_seat (seat 128) )
+(context (state start) )
Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/manners/manners16.dat
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/manners/manners16.dat (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/manners/manners16.dat 2008-04-07 02:38:36 UTC (rev 19436)
@@ -0,0 +1,42 @@
+(guest (name n1) (sex f) (hobby h3))
+(guest (name n1) (sex f) (hobby h1))
+(guest (name n1) (sex f) (hobby h2))
+(guest (name n2) (sex f) (hobby h3))
+(guest (name n2) (sex f) (hobby h2))
+(guest (name n3) (sex m) (hobby h1))
+(guest (name n3) (sex m) (hobby h3))
+(guest (name n4) (sex m) (hobby h2))
+(guest (name n4) (sex m) (hobby h1))
+(guest (name n5) (sex m) (hobby h2))
+(guest (name n5) (sex m) (hobby h3))
+(guest (name n6) (sex m) (hobby h2))
+(guest (name n6) (sex m) (hobby h1))
+(guest (name n7) (sex f) (hobby h2))
+(guest (name n7) (sex f) (hobby h1))
+(guest (name n7) (sex f) (hobby h3))
+(guest (name n8) (sex f) (hobby h3))
+(guest (name n8) (sex f) (hobby h2))
+(guest (name n9) (sex f) (hobby h1))
+(guest (name n9) (sex f) (hobby h3))
+(guest (name n9) (sex f) (hobby h2))
+(guest (name n10) (sex m) (hobby h2))
+(guest (name n10) (sex m) (hobby h3))
+(guest (name n11) (sex m) (hobby h3))
+(guest (name n11) (sex m) (hobby h2))
+(guest (name n11) (sex m) (hobby h1))
+(guest (name n12) (sex m) (hobby h3))
+(guest (name n12) (sex m) (hobby h1))
+(guest (name n13) (sex m) (hobby h2))
+(guest (name n13) (sex m) (hobby h3))
+(guest (name n13) (sex m) (hobby h1))
+(guest (name n14) (sex f) (hobby h3))
+(guest (name n14) (sex f) (hobby h1))
+(guest (name n15) (sex f) (hobby h3))
+(guest (name n15) (sex f) (hobby h1))
+(guest (name n15) (sex f) (hobby h2))
+(guest (name n16) (sex f) (hobby h3))
+(guest (name n16) (sex f) (hobby h2))
+(guest (name n16) (sex f) (hobby h1))
+(last_seat (seat 16))
+
+(context (state start))
Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/manners/manners32.dat
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/manners/manners32.dat (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/manners/manners32.dat 2008-04-07 02:38:36 UTC (rev 19436)
@@ -0,0 +1,84 @@
+(guest (name n1) (sex m) (hobby h1))
+(guest (name n1) (sex m) (hobby h3))
+(guest (name n2) (sex f) (hobby h3))
+(guest (name n2) (sex f) (hobby h2))
+(guest (name n2) (sex f) (hobby h1))
+(guest (name n3) (sex f) (hobby h1))
+(guest (name n3) (sex f) (hobby h2))
+(guest (name n4) (sex f) (hobby h3))
+(guest (name n4) (sex f) (hobby h1))
+(guest (name n5) (sex f) (hobby h1))
+(guest (name n5) (sex f) (hobby h2))
+(guest (name n6) (sex m) (hobby h1))
+(guest (name n6) (sex m) (hobby h2))
+(guest (name n6) (sex m) (hobby h3))
+(guest (name n7) (sex f) (hobby h2))
+(guest (name n7) (sex f) (hobby h1))
+(guest (name n7) (sex f) (hobby h3))
+(guest (name n8) (sex f) (hobby h1))
+(guest (name n8) (sex f) (hobby h3))
+(guest (name n8) (sex f) (hobby h2))
+(guest (name n9) (sex f) (hobby h1))
+(guest (name n9) (sex f) (hobby h3))
+(guest (name n9) (sex f) (hobby h2))
+(guest (name n10) (sex m) (hobby h2))
+(guest (name n10) (sex m) (hobby h1))
+(guest (name n11) (sex m) (hobby h2))
+(guest (name n11) (sex m) (hobby h1))
+(guest (name n12) (sex m) (hobby h3))
+(guest (name n12) (sex m) (hobby h2))
+(guest (name n13) (sex m) (hobby h1))
+(guest (name n13) (sex m) (hobby h3))
+(guest (name n14) (sex m) (hobby h3))
+(guest (name n14) (sex m) (hobby h2))
+(guest (name n15) (sex f) (hobby h2))
+(guest (name n15) (sex f) (hobby h1))
+(guest (name n15) (sex f) (hobby h3))
+(guest (name n16) (sex f) (hobby h3))
+(guest (name n16) (sex f) (hobby h2))
+(guest (name n16) (sex f) (hobby h1))
+(guest (name n17) (sex m) (hobby h3))
+(guest (name n17) (sex m) (hobby h2))
+(guest (name n18) (sex f) (hobby h2))
+(guest (name n18) (sex f) (hobby h1))
+(guest (name n19) (sex f) (hobby h1))
+(guest (name n19) (sex f) (hobby h2))
+(guest (name n19) (sex f) (hobby h3))
+(guest (name n20) (sex f) (hobby h1))
+(guest (name n20) (sex f) (hobby h2))
+(guest (name n20) (sex f) (hobby h3))
+(guest (name n21) (sex m) (hobby h2))
+(guest (name n21) (sex m) (hobby h3))
+(guest (name n21) (sex m) (hobby h1))
+(guest (name n22) (sex f) (hobby h1))
+(guest (name n22) (sex f) (hobby h2))
+(guest (name n22) (sex f) (hobby h3))
+(guest (name n23) (sex f) (hobby h3))
+(guest (name n23) (sex f) (hobby h1))
+(guest (name n23) (sex f) (hobby h2))
+(guest (name n24) (sex m) (hobby h1))
+(guest (name n24) (sex m) (hobby h3))
+(guest (name n25) (sex f) (hobby h3))
+(guest (name n25) (sex f) (hobby h2))
+(guest (name n25) (sex f) (hobby h1))
+(guest (name n26) (sex f) (hobby h3))
+(guest (name n26) (sex f) (hobby h2))
+(guest (name n26) (sex f) (hobby h1))
+(guest (name n27) (sex m) (hobby h3))
+(guest (name n27) (sex m) (hobby h1))
+(guest (name n27) (sex m) (hobby h2))
+(guest (name n28) (sex m) (hobby h3))
+(guest (name n28) (sex m) (hobby h1))
+(guest (name n29) (sex m) (hobby h3))
+(guest (name n29) (sex m) (hobby h2))
+(guest (name n29) (sex m) (hobby h1))
+(guest (name n30) (sex m) (hobby h2))
+(guest (name n30) (sex m) (hobby h1))
+(guest (name n30) (sex m) (hobby h3))
+(guest (name n31) (sex m) (hobby h2))
+(guest (name n31) (sex m) (hobby h1))
+(guest (name n32) (sex m) (hobby h1))
+(guest (name n32) (sex m) (hobby h3))
+(guest (name n32) (sex m) (hobby h2))
+(last_seat (seat 32))
+(context (state start))
Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/manners/manners5.dat
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/manners/manners5.dat (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/manners/manners5.dat 2008-04-07 02:38:36 UTC (rev 19436)
@@ -0,0 +1,11 @@
+(guest (name n1) (sex m) (hobby h1) )
+(guest (name n2) (sex f) (hobby h1) )
+(guest (name n2) (sex f) (hobby h3) )
+(guest (name n3) (sex m) (hobby h3) )
+(guest (name n3) (sex m) (hobby h1) )
+(guest (name n4) (sex f) (hobby h1) )
+(guest (name n4) (sex f) (hobby h3) )
+(guest (name n5) (sex f) (hobby h2) )
+(guest (name n5) (sex f) (hobby h1) )
+(last_seat (seat 5) )
+(context (state start))
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/manners/manners64.dat
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/manners/manners64.dat (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/manners/manners64.dat 2008-04-07 02:38:36 UTC (rev 19436)
@@ -0,0 +1,169 @@
+(guest (name 1) (sex m) (hobby h2) )
+(guest (name 1) (sex m) (hobby h1) )
+(guest (name 1) (sex m) (hobby h3) )
+(guest (name 2) (sex f) (hobby h2) )
+(guest (name 2) (sex f) (hobby h1) )
+(guest (name 2) (sex f) (hobby h3) )
+(guest (name 3) (sex m) (hobby h3) )
+(guest (name 3) (sex m) (hobby h2) )
+(guest (name 4) (sex m) (hobby h3) )
+(guest (name 4) (sex m) (hobby h2) )
+(guest (name 4) (sex m) (hobby h1) )
+(guest (name 5) (sex m) (hobby h2) )
+(guest (name 5) (sex m) (hobby h1) )
+(guest (name 5) (sex m) (hobby h3) )
+(guest (name 6) (sex m) (hobby h2) )
+(guest (name 6) (sex m) (hobby h3) )
+(guest (name 6) (sex m) (hobby h1) )
+(guest (name 7) (sex f) (hobby h1) )
+(guest (name 7) (sex f) (hobby h2) )
+(guest (name 7) (sex f) (hobby h3) )
+(guest (name 8) (sex m) (hobby h3) )
+(guest (name 8) (sex m) (hobby h1) )
+(guest (name 9) (sex m) (hobby h2) )
+(guest (name 9) (sex m) (hobby h3) )
+(guest (name 9) (sex m) (hobby h1) )
+(guest (name 10) (sex m) (hobby h3) )
+(guest (name 10) (sex m) (hobby h2) )
+(guest (name 10) (sex m) (hobby h1) )
+(guest (name 11) (sex m) (hobby h1) )
+(guest (name 11) (sex m) (hobby h3) )
+(guest (name 11) (sex m) (hobby h2) )
+(guest (name 12) (sex f) (hobby h3) )
+(guest (name 12) (sex f) (hobby h1) )
+(guest (name 12) (sex f) (hobby h2) )
+(guest (name 13) (sex m) (hobby h2) )
+(guest (name 13) (sex m) (hobby h3) )
+(guest (name 14) (sex m) (hobby h1) )
+(guest (name 14) (sex m) (hobby h2) )
+(guest (name 15) (sex m) (hobby h2) )
+(guest (name 15) (sex m) (hobby h3) )
+(guest (name 15) (sex m) (hobby h1) )
+(guest (name 16) (sex f) (hobby h2) )
+(guest (name 16) (sex f) (hobby h3) )
+(guest (name 17) (sex f) (hobby h3) )
+(guest (name 17) (sex f) (hobby h2) )
+(guest (name 18) (sex m) (hobby h1) )
+(guest (name 18) (sex m) (hobby h3) )
+(guest (name 18) (sex m) (hobby h2) )
+(guest (name 19) (sex f) (hobby h3) )
+(guest (name 19) (sex f) (hobby h1) )
+(guest (name 20) (sex f) (hobby h1) )
+(guest (name 20) (sex f) (hobby h3) )
+(guest (name 20) (sex f) (hobby h2) )
+(guest (name 21) (sex m) (hobby h2) )
+(guest (name 21) (sex m) (hobby h3) )
+(guest (name 22) (sex m) (hobby h2) )
+(guest (name 22) (sex m) (hobby h3) )
+(guest (name 23) (sex f) (hobby h1) )
+(guest (name 23) (sex f) (hobby h2) )
+(guest (name 24) (sex f) (hobby h3) )
+(guest (name 24) (sex f) (hobby h1) )
+(guest (name 24) (sex f) (hobby h2) )
+(guest (name 25) (sex f) (hobby h3) )
+(guest (name 25) (sex f) (hobby h1) )
+(guest (name 25) (sex f) (hobby h2) )
+(guest (name 26) (sex m) (hobby h2) )
+(guest (name 26) (sex m) (hobby h1) )
+(guest (name 26) (sex m) (hobby h3) )
+(guest (name 27) (sex f) (hobby h2) )
+(guest (name 27) (sex f) (hobby h3) )
+(guest (name 27) (sex f) (hobby h1) )
+(guest (name 28) (sex m) (hobby h1) )
+(guest (name 28) (sex m) (hobby h2) )
+(guest (name 29) (sex f) (hobby h2) )
+(guest (name 29) (sex f) (hobby h3) )
+(guest (name 29) (sex f) (hobby h1) )
+(guest (name 30) (sex f) (hobby h2) )
+(guest (name 30) (sex f) (hobby h1) )
+(guest (name 30) (sex f) (hobby h3) )
+(guest (name 31) (sex m) (hobby h1) )
+(guest (name 31) (sex m) (hobby h2) )
+(guest (name 31) (sex m) (hobby h3) )
+(guest (name 32) (sex m) (hobby h1) )
+(guest (name 32) (sex m) (hobby h2) )
+(guest (name 33) (sex m) (hobby h2) )
+(guest (name 33) (sex m) (hobby h3) )
+(guest (name 33) (sex m) (hobby h1) )
+(guest (name 34) (sex f) (hobby h2) )
+(guest (name 34) (sex f) (hobby h1) )
+(guest (name 34) (sex f) (hobby h3) )
+(guest (name 35) (sex f) (hobby h2) )
+(guest (name 35) (sex f) (hobby h3) )
+(guest (name 36) (sex m) (hobby h2) )
+(guest (name 36) (sex m) (hobby h1) )
+(guest (name 37) (sex m) (hobby h2) )
+(guest (name 37) (sex m) (hobby h1) )
+(guest (name 38) (sex f) (hobby h1) )
+(guest (name 38) (sex f) (hobby h3) )
+(guest (name 38) (sex f) (hobby h2) )
+(guest (name 39) (sex m) (hobby h3) )
+(guest (name 39) (sex m) (hobby h1) )
+(guest (name 39) (sex m) (hobby h2) )
+(guest (name 40) (sex f) (hobby h1) )
+(guest (name 40) (sex f) (hobby h2) )
+(guest (name 40) (sex f) (hobby h3) )
+(guest (name 41) (sex m) (hobby h2) )
+(guest (name 41) (sex m) (hobby h1) )
+(guest (name 41) (sex m) (hobby h3) )
+(guest (name 42) (sex m) (hobby h3) )
+(guest (name 42) (sex m) (hobby h1) )
+(guest (name 43) (sex m) (hobby h1) )
+(guest (name 43) (sex m) (hobby h3) )
+(guest (name 43) (sex m) (hobby h2) )
+(guest (name 44) (sex m) (hobby h3) )
+(guest (name 44) (sex m) (hobby h1) )
+(guest (name 44) (sex m) (hobby h2) )
+(guest (name 45) (sex m) (hobby h1) )
+(guest (name 45) (sex m) (hobby h2) )
+(guest (name 46) (sex f) (hobby h1) )
+(guest (name 46) (sex f) (hobby h2) )
+(guest (name 46) (sex f) (hobby h3) )
+(guest (name 47) (sex m) (hobby h1) )
+(guest (name 47) (sex m) (hobby h2) )
+(guest (name 48) (sex f) (hobby h3) )
+(guest (name 48) (sex f) (hobby h2) )
+(guest (name 49) (sex m) (hobby h3) )
+(guest (name 49) (sex m) (hobby h2) )
+(guest (name 50) (sex m) (hobby h2) )
+(guest (name 50) (sex m) (hobby h3) )
+(guest (name 51) (sex f) (hobby h2) )
+(guest (name 51) (sex f) (hobby h1) )
+(guest (name 51) (sex f) (hobby h3) )
+(guest (name 52) (sex m) (hobby h1) )
+(guest (name 52) (sex m) (hobby h2) )
+(guest (name 52) (sex m) (hobby h3) )
+(guest (name 53) (sex f) (hobby h2) )
+(guest (name 53) (sex f) (hobby h1) )
+(guest (name 54) (sex f) (hobby h1) )
+(guest (name 54) (sex f) (hobby h2) )
+(guest (name 54) (sex f) (hobby h3) )
+(guest (name 55) (sex f) (hobby h1) )
+(guest (name 55) (sex f) (hobby h2) )
+(guest (name 55) (sex f) (hobby h3) )
+(guest (name 56) (sex f) (hobby h2) )
+(guest (name 56) (sex f) (hobby h1) )
+(guest (name 56) (sex f) (hobby h3) )
+(guest (name 57) (sex f) (hobby h3) )
+(guest (name 57) (sex f) (hobby h2) )
+(guest (name 57) (sex f) (hobby h1) )
+(guest (name 58) (sex f) (hobby h3) )
+(guest (name 58) (sex f) (hobby h1) )
+(guest (name 58) (sex f) (hobby h2) )
+(guest (name 59) (sex f) (hobby h1) )
+(guest (name 59) (sex f) (hobby h2) )
+(guest (name 59) (sex f) (hobby h3) )
+(guest (name 60) (sex f) (hobby h3) )
+(guest (name 60) (sex f) (hobby h1) )
+(guest (name 61) (sex f) (hobby h3) )
+(guest (name 61) (sex f) (hobby h2) )
+(guest (name 62) (sex f) (hobby h1) )
+(guest (name 62) (sex f) (hobby h2) )
+(guest (name 62) (sex f) (hobby h3) )
+(guest (name 63) (sex f) (hobby h3) )
+(guest (name 63) (sex f) (hobby h1) )
+(guest (name 63) (sex f) (hobby h2) )
+(guest (name 64) (sex f) (hobby h3) )
+(guest (name 64) (sex f) (hobby h2) )
+(last_seat (seat 64) )
+(context (state start))
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/manners/manners8.dat
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/manners/manners8.dat (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/manners/manners8.dat 2008-04-07 02:38:36 UTC (rev 19436)
@@ -0,0 +1,21 @@
+(guest (name n1) (sex m) (hobby h3) )
+(guest (name n1) (sex m) (hobby h2) )
+(guest (name n2) (sex m) (hobby h2) )
+(guest (name n2) (sex m) (hobby h3) )
+(guest (name n3) (sex m) (hobby h1) )
+(guest (name n3) (sex m) (hobby h2) )
+(guest (name n3) (sex m) (hobby h3) )
+(guest (name n4) (sex f) (hobby h3) )
+(guest (name n4) (sex f) (hobby h2) )
+(guest (name n5) (sex f) (hobby h1) )
+(guest (name n5) (sex f) (hobby h2) )
+(guest (name n5) (sex f) (hobby h3) )
+(guest (name n6) (sex f) (hobby h3) )
+(guest (name n6) (sex f) (hobby h1) )
+(guest (name n6) (sex f) (hobby h2) )
+(guest (name n7) (sex f) (hobby h3) )
+(guest (name n7) (sex f) (hobby h2) )
+(guest (name n8) (sex m) (hobby h3) )
+(guest (name n8) (sex m) (hobby h1) )
+(last_seat (seat 8) )
+(context (state start))
\ No newline at end of file
More information about the jboss-svn-commits
mailing list