public void BasicObjectBindingTest1() { long ts = DateTime.Now.Ticks; int fired = 0; int activations = 0; Basic basic = new Basic("one", 1); using (TextWriter writer = Console.Out) { Rete engine = new Rete(); engine.Watch = WatchType.WATCH_ALL; engine.addPrintWriter("Console", writer); engine.declareObject(typeof(Basic), "Basic"); engine.loadRuleset(getRule3()); foreach (Defrule rule in engine.CurrentFocus.AllRules) { Console.WriteLine(rule.toPPString()); } engine.assertObject(basic, "Basic", false, false); activations = engine.CurrentFocus.ActivationCount; fired = engine.fire(); engine.printWorkingMemory(true, false); double endTime = DateTime.Now.Ticks - ts; Console.WriteLine(String.Format("BasicObjectBindingTest1 completed in {0} seconds.", (endTime / 10000000).ToString("0.000000"))); writer.Flush(); writer.Close(); engine.close(); } Assert.IsTrue(fired == 1); Assert.IsTrue(activations == 1); //AppDomain.Unload(AppDomain.CurrentDomain); }
public void ObjectBindingTest1() { long ts = DateTime.Now.Ticks; int fired = 0; int activations = 0; using (TextWriter writer = Console.Out) { Rete engine = new Rete(); engine.Watch = WatchType.WATCH_ALL; engine.addPrintWriter("Console", writer); engine.declareObject(typeof(Account), "Account"); engine.loadRuleset(getRule1()); engine.assertObject(GetAcct0(), "Account", false, false); activations = engine.CurrentFocus.ActivationCount; fired = engine.fire(); engine.printWorkingMemory(true, false); double endTime = DateTime.Now.Ticks - ts; Console.WriteLine(String.Format("ObjectBindingTest1 completed in {0} seconds.", (endTime / 10000000).ToString("0.000000"))); writer.Flush(); writer.Close(); engine.close(); } Assert.IsTrue(fired == 1); Assert.IsTrue(activations == 1); //AppDomain.Unload(AppDomain.CurrentDomain); }
public virtual IReturnVector executeFunction(Rete engine, IParameter[] params_Renamed) { bool sp = true; if (params_Renamed != null && params_Renamed.Length >= 2) { String val = params_Renamed[0].StringValue; if (val.Equals("off")) { // turn off spooling String name = params_Renamed[1].StringValue; TextWriter writer = engine.removePrintWriter(name); if (writer != null) { writer.Flush(); writer.Close(); } } else { // turn on spooling // we expected a file name String spname = params_Renamed[0].StringValue; String fname = params_Renamed[1].StringValue; try { FileInfo nfile = new FileInfo(fname); nfile.Create(); FileStream fos = new FileStream(nfile.FullName, FileMode.Create); StreamWriter writer = new StreamWriter(fos); engine.addPrintWriter(spname, writer); } catch (FileNotFoundException e) { // we should report it sp = false; } catch (IOException e) { sp = false; } } } else { sp = false; } DefaultReturnVector ret = new DefaultReturnVector(); DefaultReturnValue rv = new DefaultReturnValue(Constants.BOOLEAN_OBJECT, sp); ret.addReturnValue(rv); return(ret); }
public static double manners64() { long ts = DateTime.Now.Ticks; long totTime = 0; using (TextWriter writer = System.Console.Out) { Rete engine = new Rete(); //engine.CurrentFocus.Lazy = true; engine.addPrintWriter("Console", writer); engine.loadRuleset(getRoot("manners64guests.clp")); engine.printWorkingMemory(false, false); totTime = DateTime.Now.Ticks - ts; writer.Flush(); writer.Close(); engine.close(); } return(totTime); }
private void RunRules(string dir, string clpFile) { var outFile = Path.Combine(dir, String.Concat(Path.GetFileNameWithoutExtension(clpFile), ".out")); var refFile = Path.Combine(dir, String.Concat(Path.GetFileNameWithoutExtension(clpFile), ".ref")); using (TextWriter writer = new StreamWriter(outFile)) { Rete engine = new Rete(); engine.addPrintWriter("File", writer); engine.loadRuleset(clpFile); engine.printWorkingMemory(false, false); engine.close(); writer.Flush(); writer.Close(); } var outTxt = File.ReadAllText(outFile); var refTxt = File.ReadAllText(refFile); }
public void manners64() { long ts = DateTime.Now.Ticks; using (TextWriter writer = Console.Out) { Rete engine = new Rete(); engine.addPrintWriter("Console", writer); engine.loadRuleset(getRoot("manners64guests.clp")); engine.printWorkingMemory(false, false); writer.Flush(); writer.Close(); //engine.MessageRouter.ShutDown(); engine.close(); } double endTime = DateTime.Now.Ticks - ts; Console.WriteLine(String.Format("Manners 64 completed in {0} seconds.", (endTime / 10000000).ToString("0.000000"))); //AppDomain.Unload(AppDomain.CurrentDomain); }