예제 #1
0
        public void test_reify_1()
        {
            /*
             * //ax+by+c=0
             *  b = 1
             *  a = 2
             */
            var variable  = new Var('a');
            var variable2 = new Var('b');
            var variable3 = new Var('c');
            var line      = new Line(variable, variable2, variable3);
            var ls        = new LineSymbol(line);

            //a = 2
            var goal = new EqGoal(variable, 2.0);

            ls.Reify(goal);
            Assert.False(line.Concrete);
            Assert.True(ls.CachedSymbols.Count == 1);
            Assert.True(ls.CachedGoals.Count == 1);

            //b = 1
            goal = new EqGoal(variable2, 1);
            ls.Reify(goal);
            Assert.False(line.Concrete);
            Assert.True(ls.CachedSymbols.Count == 1);
            Assert.True(ls.CachedGoals.Count == 2);

            //c = -3.2
            goal = new EqGoal(variable3, -3.2);
            ls.Reify(goal);
            Assert.False(line.Concrete);
            Assert.True(ls.CachedSymbols.Count == 1);
            Assert.True(ls.CachedGoals.Count == 3);

            //c = 4
            goal = new EqGoal(variable3, 4);
            ls.Reify(goal);
            Assert.False(line.Concrete);
            Assert.True(ls.CachedSymbols.Count == 2);
            Assert.True(ls.CachedGoals.Count == 4);
        }
예제 #2
0
        public void test_unreify_1()
        {
            var variable  = new Var('a');
            var variable2 = new Var('b');
            var variable3 = new Var('c');
            var line      = new Line(variable, variable2, variable3);
            var ls        = new LineSymbol(line);
            //a = 2
            var goal = new EqGoal(variable, 2.0);

            ls.Reify(goal);
            Assert.False(line.Concrete);
            Assert.True(ls.CachedSymbols.Count == 1);
            Assert.True(ls.CachedGoals.Count == 1);

            ls.UnReify(goal);
            Assert.True(ls.CachedSymbols.Count == 0);
            Assert.True(ls.CachedGoals.Count == 0);
        }
예제 #3
0
        public void test_unreify_1()
        {
            var variable = new Var('a');
            var variable2 = new Var('b');
            var variable3 = new Var('c');
            var line = new Line(variable, variable2, variable3);
            var ls = new LineSymbol(line);
            //a = 2
            var goal = new EqGoal(variable, 2.0);
            ls.Reify(goal);
            Assert.False(line.Concrete);
            Assert.True(ls.CachedSymbols.Count == 1);
            Assert.True(ls.CachedGoals.Count == 1);

            ls.UnReify(goal);
            Assert.True(ls.CachedSymbols.Count == 0);
            Assert.True(ls.CachedGoals.Count == 0);
        }
예제 #4
0
        public void test_reify_1()
        {
            /*
             * //ax+by+c=0
             *  b = 1
             *  a = 2
             */
            var variable = new Var('a');
            var variable2 = new Var('b');
            var variable3 = new Var('c');
            var line = new Line(variable, variable2, variable3);
            var ls = new LineSymbol(line);

            //a = 2
            var goal = new EqGoal(variable, 2.0);
            ls.Reify(goal);
            Assert.False(line.Concrete);
            Assert.True(ls.CachedSymbols.Count == 1);
            Assert.True(ls.CachedGoals.Count == 1);

            //b = 1
            goal = new EqGoal(variable2, 1);
            ls.Reify(goal);
            Assert.False(line.Concrete);
            Assert.True(ls.CachedSymbols.Count == 1);
            Assert.True(ls.CachedGoals.Count == 2);

            //c = -3.2
            goal = new EqGoal(variable3, -3.2);
            ls.Reify(goal);
            Assert.False(line.Concrete);
            Assert.True(ls.CachedSymbols.Count == 1);
            Assert.True(ls.CachedGoals.Count == 3);
            
            //c = 4
            goal = new EqGoal(variable3, 4);
            ls.Reify(goal);
            Assert.False(line.Concrete);
            Assert.True(ls.CachedSymbols.Count == 2);
            Assert.True(ls.CachedGoals.Count == 4);
        }