[jboss-svn-commits] JBL Code SVN: r7832 - in labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark: . waltzdb
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sun Nov 26 09:29:45 EST 2006
Author: mfrandsen
Date: 2006-11-26 09:29:40 -0500 (Sun, 26 Nov 2006)
New Revision: 7832
Added:
labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/waltzdb/
labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/waltzdb/Edge.java
labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/waltzdb/EdgeLabel.java
labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/waltzdb/Illegal.java
labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/waltzdb/Junction.java
labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/waltzdb/Label.java
labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/waltzdb/Line.java
labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/waltzdb/Stage.java
labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/waltzdb/WaltzDbBenchmark.java
Log:
waltzdb benchmark sources
Added: labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/waltzdb/Edge.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/waltzdb/Edge.java 2006-11-25 22:29:17 UTC (rev 7831)
+++ labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/waltzdb/Edge.java 2006-11-26 14:29:40 UTC (rev 7832)
@@ -0,0 +1,87 @@
+package org.drools.benchmark.waltzdb;
+
+
+//(literalize edge type p1 p2 joined)
+public class Edge {
+ private String type;
+ private int p1;
+ private int p2;
+ private boolean joined;
+ public Edge() {
+ super();
+ }
+ public Edge(String type, int p1, int p2, boolean joined) {
+ super();
+ this.type = type;
+ this.p1 = p1;
+ this.p2 = p2;
+ this.joined = joined;
+ }
+ public Edge(int p1, int p2, boolean joined) {
+ super();
+ this.p1 = p1;
+ this.p2 = p2;
+ this.joined = joined;
+ }
+ public Edge(int p1, int p2) {
+ super();
+ this.p1 = p1;
+ this.p2 = p2;
+ }
+ @Override
+ public int hashCode() {
+ final int PRIME = 31;
+ int result = 1;
+ result = PRIME * result + (joined ? 1231 : 1237);
+ result = PRIME * result + p1;
+ result = PRIME * result + p2;
+ result = PRIME * result + ((type == null) ? 0 : type.hashCode());
+ return result;
+ }
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ final Edge other = (Edge) obj;
+ if (joined != other.joined)
+ return false;
+ if (p1 != other.p1)
+ return false;
+ if (p2 != other.p2)
+ return false;
+ if (type == null) {
+ if (other.type != null)
+ return false;
+ } else if (!type.equals(other.type))
+ return false;
+ return true;
+ }
+ public boolean isJoined() {
+ return joined;
+ }
+ public void setJoined(boolean joined) {
+ this.joined = joined;
+ }
+ public int getP1() {
+ return p1;
+ }
+ public void setP1(int p1) {
+ this.p1 = p1;
+ }
+ public int getP2() {
+ return p2;
+ }
+ public void setP2(int p2) {
+ this.p2 = p2;
+ }
+ public String getType() {
+ return type;
+ }
+ public void setType(String type) {
+ this.type = type;
+ }
+}
Added: labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/waltzdb/EdgeLabel.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/waltzdb/EdgeLabel.java 2006-11-25 22:29:17 UTC (rev 7831)
+++ labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/waltzdb/EdgeLabel.java 2006-11-26 14:29:40 UTC (rev 7832)
@@ -0,0 +1,77 @@
+package org.drools.benchmark.waltzdb;
+//(literalize edge_label p1 p2 l_name l_id)
+public class EdgeLabel {
+ private int p1;
+ private int p2;
+ private String labelName;
+ private String labelId;
+ public EdgeLabel() {
+ super();
+ }
+ public EdgeLabel(int p1, int p2, String labelName, String labelId) {
+ super();
+ this.p1 = p1;
+ this.p2 = p2;
+ this.labelName = labelName;
+ this.labelId = labelId;
+ }
+ @Override
+ public int hashCode() {
+ final int PRIME = 31;
+ int result = 1;
+ result = PRIME * result + ((labelId == null) ? 0 : labelId.hashCode());
+ result = PRIME * result + ((labelName == null) ? 0 : labelName.hashCode());
+ result = PRIME * result + p1;
+ result = PRIME * result + p2;
+ return result;
+ }
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ final EdgeLabel other = (EdgeLabel) obj;
+ if (labelId == null) {
+ if (other.labelId != null)
+ return false;
+ } else if (!labelId.equals(other.labelId))
+ return false;
+ if (labelName == null) {
+ if (other.labelName != null)
+ return false;
+ } else if (!labelName.equals(other.labelName))
+ return false;
+ if (p1 != other.p1)
+ return false;
+ if (p2 != other.p2)
+ return false;
+ return true;
+ }
+ public String getLabelId() {
+ return labelId;
+ }
+ public void setLabelId(String labelId) {
+ this.labelId = labelId;
+ }
+ public String getLabelName() {
+ return labelName;
+ }
+ public void setLabelName(String labelName) {
+ this.labelName = labelName;
+ }
+ public int getP1() {
+ return p1;
+ }
+ public void setP1(int p1) {
+ this.p1 = p1;
+ }
+ public int getP2() {
+ return p2;
+ }
+ public void setP2(int p2) {
+ this.p2 = p2;
+ }
+}
Added: labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/waltzdb/Illegal.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/waltzdb/Illegal.java 2006-11-25 22:29:17 UTC (rev 7831)
+++ labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/waltzdb/Illegal.java 2006-11-26 14:29:40 UTC (rev 7832)
@@ -0,0 +1,52 @@
+package org.drools.benchmark.waltzdb;
+//(literalize illegal bp l_id)
+public class Illegal {
+ private int basePoint;
+ private String labelId;
+ public Illegal() {
+ super();
+ }
+ public Illegal(int basePoint, String labelId) {
+ super();
+ this.basePoint = basePoint;
+ this.labelId = labelId;
+ }
+ @Override
+ public int hashCode() {
+ final int PRIME = 31;
+ int result = 1;
+ result = PRIME * result + basePoint;
+ result = PRIME * result + ((labelId == null) ? 0 : labelId.hashCode());
+ return result;
+ }
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ final Illegal other = (Illegal) obj;
+ if (basePoint != other.basePoint)
+ return false;
+ if (labelId == null) {
+ if (other.labelId != null)
+ return false;
+ } else if (!labelId.equals(other.labelId))
+ return false;
+ return true;
+ }
+ public int getBasePoint() {
+ return basePoint;
+ }
+ public void setBasePoint(int basePoint) {
+ this.basePoint = basePoint;
+ }
+ public String getLabelId() {
+ return labelId;
+ }
+ public void setLabelId(String labelId) {
+ this.labelId = labelId;
+ }
+}
Added: labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/waltzdb/Junction.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/waltzdb/Junction.java 2006-11-25 22:29:17 UTC (rev 7831)
+++ labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/waltzdb/Junction.java 2006-11-26 14:29:40 UTC (rev 7832)
@@ -0,0 +1,138 @@
+package org.drools.benchmark.waltzdb;
+//(literalize junction p1 p2 p3 base_point type name visited)
+public class Junction {
+
+ public static String L = "L";
+ public Junction() {
+ super();
+ }
+ @Override
+ public String toString() {
+ String result = "JUNCTION: P1=" + p1 + ",P2=" + p2 + ",P3=" +
+ p3 + ",BasePoint=" + basePoint + ", Type=" + type +
+ ",Name=" + name + ",Visited=" + visited;
+ return result;
+ }
+ private int p1;
+ private int p2;
+ private int p3;
+ private int basePoint;
+ private String type;
+ private String name;
+ private String visited;
+ public Junction(String type, String name, int basePoint, int p1,int p2, String visited){
+ super();
+ this.p1 = p1;
+ this.p2 = p2;
+ this.basePoint = basePoint;
+ this.type = type;
+ this.name = name;
+ this.visited = visited;
+ }
+ public Junction(int p1, int p2, int p3, int basePoint, String type, String name, String visited) {
+ super();
+ this.p1 = p1;
+ this.p2 = p2;
+ this.p3 = p3;
+ this.basePoint = basePoint;
+ this.type = type;
+ this.name = name;
+ this.visited = visited;
+ }
+ public Junction(int basePoint, String type, String name, String visited) {
+ super();
+ this.basePoint = basePoint;
+ this.type = type;
+ this.name = name;
+ this.visited = visited;
+ }
+ public int getBasePoint() {
+ return basePoint;
+ }
+ public void setBasePoint(int basePoint) {
+ this.basePoint = basePoint;
+ }
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public int getP1() {
+ return p1;
+ }
+ public void setP1(int p1) {
+ this.p1 = p1;
+ }
+ public int getP2() {
+ return p2;
+ }
+ public void setP2(int p2) {
+ this.p2 = p2;
+ }
+ public int getP3() {
+ return p3;
+ }
+ public void setP3(int p3) {
+ this.p3 = p3;
+ }
+ public String getType() {
+ return type;
+ }
+ public void setType(String type) {
+ this.type = type;
+ }
+ public String getVisited() {
+ return visited;
+ }
+ public void setVisited(String visited) {
+ this.visited = visited;
+ }
+ @Override
+ public int hashCode() {
+ final int PRIME = 31;
+ int result = 1;
+ result = PRIME * result + basePoint;
+ result = PRIME * result + ((name == null) ? 0 : name.hashCode());
+ result = PRIME * result + p1;
+ result = PRIME * result + p2;
+ result = PRIME * result + p3;
+ result = PRIME * result + ((type == null) ? 0 : type.hashCode());
+ result = PRIME * result + ((visited == null) ? 0 : visited.hashCode());
+ return result;
+ }
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ final Junction other = (Junction) obj;
+ if (basePoint != other.basePoint)
+ return false;
+ if (name == null) {
+ if (other.name != null)
+ return false;
+ } else if (!name.equals(other.name))
+ return false;
+ if (p1 != other.p1)
+ return false;
+ if (p2 != other.p2)
+ return false;
+ if (p3 != other.p3)
+ return false;
+ if (type == null) {
+ if (other.type != null)
+ return false;
+ } else if (!type.equals(other.type))
+ return false;
+ if (visited == null) {
+ if (other.visited != null)
+ return false;
+ } else if (!visited.equals(other.visited))
+ return false;
+ return true;
+ }
+}
Added: labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/waltzdb/Label.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/waltzdb/Label.java 2006-11-25 22:29:17 UTC (rev 7831)
+++ labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/waltzdb/Label.java 2006-11-26 14:29:40 UTC (rev 7832)
@@ -0,0 +1,111 @@
+package org.drools.benchmark.waltzdb;
+//(literalize label id type name n1 n2 n3)
+public class Label {
+ private String id;
+ private String type;
+ private String name;
+ private String n1;
+ private String n2;
+ private String n3;
+ public Label() {
+ super();
+ }
+ public Label(String id, String type, String name, String n1, String n2, String n3) {
+ super();
+ this.id = id;
+ this.type = type;
+ this.name = name;
+ this.n1 = n1;
+ this.n2 = n2;
+ this.n3 = n3;
+ }
+ public String getId() {
+ return id;
+ }
+ public void setId(String id) {
+ this.id = id;
+ }
+ public String getN1() {
+ return n1;
+ }
+ public void setN1(String n1) {
+ this.n1 = n1;
+ }
+ public String getN2() {
+ return n2;
+ }
+ public void setN2(String n2) {
+ this.n2 = n2;
+ }
+ public String getN3() {
+ return n3;
+ }
+ public void setN3(String n3) {
+ this.n3 = n3;
+ }
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public String getType() {
+ return type;
+ }
+ public void setType(String type) {
+ this.type = type;
+ }
+ @Override
+ public int hashCode() {
+ final int PRIME = 31;
+ int result = 1;
+ result = PRIME * result + ((id == null) ? 0 : id.hashCode());
+ result = PRIME * result + ((n1 == null) ? 0 : n1.hashCode());
+ result = PRIME * result + ((n2 == null) ? 0 : n2.hashCode());
+ result = PRIME * result + ((n3 == null) ? 0 : n3.hashCode());
+ result = PRIME * result + ((name == null) ? 0 : name.hashCode());
+ result = PRIME * result + ((type == null) ? 0 : type.hashCode());
+ return result;
+ }
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ final Label other = (Label) obj;
+ if (id == null) {
+ if (other.id != null)
+ return false;
+ } else if (!id.equals(other.id))
+ return false;
+ if (n1 == null) {
+ if (other.n1 != null)
+ return false;
+ } else if (!n1.equals(other.n1))
+ return false;
+ if (n2 == null) {
+ if (other.n2 != null)
+ return false;
+ } else if (!n2.equals(other.n2))
+ return false;
+ if (n3 == null) {
+ if (other.n3 != null)
+ return false;
+ } else if (!n3.equals(other.n3))
+ return false;
+ if (name == null) {
+ if (other.name != null)
+ return false;
+ } else if (!name.equals(other.name))
+ return false;
+ if (type == null) {
+ if (other.type != null)
+ return false;
+ } else if (!type.equals(other.type))
+ return false;
+ return true;
+ }
+}
Added: labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/waltzdb/Line.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/waltzdb/Line.java 2006-11-25 22:29:17 UTC (rev 7831)
+++ labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/waltzdb/Line.java 2006-11-26 14:29:40 UTC (rev 7832)
@@ -0,0 +1,49 @@
+package org.drools.benchmark.waltzdb;
+
+public class Line {
+ private int p1;
+ private int p2;
+ public Line() {
+ super();
+ }
+ public int getP1() {
+ return p1;
+ }
+ public void setP1(int p1) {
+ this.p1 = p1;
+ }
+ public int getP2() {
+ return p2;
+ }
+ public void setP2(int p2) {
+ this.p2 = p2;
+ }
+ @Override
+ public int hashCode() {
+ final int PRIME = 31;
+ int result = 1;
+ result = PRIME * result + p1;
+ result = PRIME * result + p2;
+ return result;
+ }
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ final Line other = (Line) obj;
+ if (p1 != other.p1)
+ return false;
+ if (p2 != other.p2)
+ return false;
+ return true;
+ }
+ public Line(int p1, int p2) {
+ super();
+ this.p1 = p1;
+ this.p2 = p2;
+ }
+}
Added: labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/waltzdb/Stage.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/waltzdb/Stage.java 2006-11-25 22:29:17 UTC (rev 7831)
+++ labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/waltzdb/Stage.java 2006-11-26 14:29:40 UTC (rev 7832)
@@ -0,0 +1,59 @@
+package org.drools.benchmark.waltzdb;
+
+public class Stage {
+ final public static String DUPLICATE = "A";
+ final public static String DETECT_JUNCTIONS = "B";
+ final public static String FIND_INITIAL_BOUNDARY = "C";
+ final public static String FIND_SECOND_BOUDARY = "D";
+ final public static String LABELING = "E";
+ final public static String VISITING_3J = "F";
+ final public static String VISITING_2J = "G";
+ final public static String MARKING = "H";
+ final public static String CHECKING = "I";
+ final public static String REMOVE_LABEL = "J";
+ final public static String PRINTING = "K";
+
+ private String value;
+
+ public Stage() {
+ super();
+ }
+
+ public Stage(String value) {
+ super();
+ this.value = value;
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 31;
+ int result = 1;
+ result = PRIME * result + ((value == null) ? 0 : value.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ final Stage other = (Stage) obj;
+ if (value == null) {
+ if (other.value != null)
+ return false;
+ } else if (!value.equals(other.value))
+ return false;
+ return true;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+}
Added: labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/waltzdb/WaltzDbBenchmark.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/waltzdb/WaltzDbBenchmark.java 2006-11-25 22:29:17 UTC (rev 7831)
+++ labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/waltzdb/WaltzDbBenchmark.java 2006-11-26 14:29:40 UTC (rev 7832)
@@ -0,0 +1,94 @@
+package org.drools.benchmark.waltzdb;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.Iterator;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.drools.RuleBase;
+import org.drools.rule.Package;
+import org.drools.RuleBaseConfiguration;
+import org.drools.RuleBaseFactory;
+import org.drools.WorkingMemory;
+import org.drools.compiler.PackageBuilder;
+
+
+public class WaltzDbBenchmark {
+ public static void main(final String[] args) throws Exception {
+ try {
+
+ PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( WaltzDbBenchmark.class.getResourceAsStream( "waltzdb.drl" ) ) );
+ Package pkg = builder.getPackage();
+
+ RuleBaseConfiguration conf = new RuleBaseConfiguration();
+ conf.setRemoveIdentities( true );
+ final RuleBase ruleBase = RuleBaseFactory.newRuleBase(RuleBase.RETEOO, conf);
+
+ ruleBase.addPackage( pkg );
+
+ WorkingMemory workingMemory = ruleBase.newWorkingMemory();
+
+ java.util.List lines = WaltzDbBenchmark.loadLines("waltzdb16.dat"); //12,8,4
+ java.util.List labels = WaltzDbBenchmark.loadLabels("waltzdb16.dat"); //12,8,4
+ long now = System.currentTimeMillis();
+ Iterator iter =lines.iterator();
+ while(iter.hasNext()){
+ Line line = (Line)iter.next();
+ workingMemory.assertObject(line);
+ System.out.println(line.getP1() + " " + line.getP2());
+ }
+
+ iter =labels.iterator();
+ while(iter.hasNext()){
+ Label label = (Label)iter.next();
+ workingMemory.assertObject(label);
+ System.out.println(label.getId() + " " + label.getType());
+ }
+
+ Stage stage = new Stage(Stage.DUPLICATE);
+ workingMemory.assertObject( stage );
+ workingMemory.fireAllRules();
+ System.out.println("Time: " + (System.currentTimeMillis() - now));
+
+ } catch (Throwable t) {
+ t.printStackTrace();
+ }
+
+ }
+
+ private static java.util.List loadLines(String filename) throws IOException {
+ BufferedReader reader = new BufferedReader(new InputStreamReader( WaltzDbBenchmark.class.getResourceAsStream( filename ) ));
+ Pattern pat = Pattern.compile( ".*make line \\^p1 ([0-9]*) \\^p2 ([0-9]*).*" );
+ String line = reader.readLine();
+ java.util.List result = new java.util.ArrayList();
+ while(line != null) {
+ Matcher m = pat.matcher( line );
+ if(m.matches()) {
+ Line l = new Line(Integer.parseInt( m.group( 1 ) ),
+ Integer.parseInt( m.group( 2 ) ) );
+ result.add(l);
+ }
+ line = reader.readLine();
+ }
+ reader.close();
+ return result;
+ }
+ private static java.util.List loadLabels(String filename) throws IOException {
+ BufferedReader reader = new BufferedReader(new InputStreamReader( WaltzDbBenchmark.class.getResourceAsStream( filename ) ));
+ Pattern pat = Pattern.compile( ".*make label \\^type ([0-9a-z]*) \\^name ([0-9a-zA-Z]*) \\^id ([0-9]*) \\^n1 ([B+-]*) \\^n2 ([B+-]*)( \\^n3 ([B+-]*))?.*" );
+ String line = reader.readLine();
+ java.util.List result = new java.util.ArrayList();
+ while(line != null) {
+ Matcher m = pat.matcher( line );
+ if(m.matches()) {
+ Label l = new Label(m.group( 1 ),m.group( 2 ), m.group(3) , m.group(4), m.group(5), m.group(6) );
+ result.add(l);
+ }
+ line = reader.readLine();
+ }
+ reader.close();
+ return result;
+ }
+}
More information about the jboss-svn-commits
mailing list