Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        public void testLoadTest()
        {
            Rete engine = new Rete();

            engine.loadRuleset(getRoot("test.clp"));
            ICollection <object> rules = engine.CurrentFocus.AllRules;
            int         count          = rules.Count;
            IEnumerator itr            = rules.GetEnumerator();

            while (itr.MoveNext())
            {
                Defrule r = (Defrule)itr.Current;
                Console.WriteLine(r.toPPString());
            }
            Assert.AreEqual(5, count);
            engine.close();
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }
Пример #6
0
        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);
        }