AssignWithFrame() public method

public AssignWithFrame ( IAssignValue values, int update ) : void
values IAssignValue
update int
return void
        public void WarewolfParse_Eval_Delete_Mid()
        {



            ExecutionEnvironment env = new ExecutionEnvironment();
            env.AssignWithFrame(new AssignValue("[[rec().a]]", "25"));
            env.AssignWithFrame(new AssignValue("[[rec().a]]", "26"));
            env.AssignWithFrame(new AssignValue("[[rec().a]]", "25"));
            env.AssignWithFrame(new AssignValue("[[rec().a]]", "28"));



            env.EvalDelete("[[rec(3)]]");
            var items = env.EvalAsListOfStrings("[[rec(*).a]]");


            Assert.AreEqual(items[0], "25");
            Assert.AreEqual(items[1], "26");
            Assert.AreEqual(items[2], "28");

        }
        public void WarewolfParse_Eval_Delete_WithNoIndexAndMultipleColumns_Multipleresults()
        {


            ExecutionEnvironment env = new ExecutionEnvironment();
            env.AssignWithFrame(new AssignValue("[[rec().a]]", "25"));
            env.AssignWithFrame(new AssignValue("[[rec().a]]", "26"));
            env.AssignWithFrame(new AssignValue("[[rec().a]]", "25"));
            env.AssignWithFrame(new AssignValue("[[rec().a]]", "28"));



            env.EvalDelete("[[rec(1)]]");
            var items = env.EvalAsListOfStrings("[[rec(*).a]]");


            Assert.AreEqual(items[0], "26");
            Assert.AreEqual(items[1], "25");
            Assert.AreEqual(items[2], "28");

        }
        public void WarewolfParse_Eval_where_WithNoIndexAndMultipleColumns_Multipleresults()
        {


            var assigns = new List<IAssignValue>
             {
                 new AssignValue("[[rec().a]]", "25"),
                 new AssignValue("[[rec().b]]", "33"),
                 new AssignValue("[[rec().b]]", "25"),
                 new AssignValue("[[rec().a]]", "27"),

             };
            var testEnv = WarewolfTestData.CreateTestEnvEmpty(""); 

            // ReSharper disable UnusedVariable
            var testEnv2 = PublicFunctions.EvalMultiAssign(assigns, testEnv);
            // ReSharper restore UnusedVariable
            ExecutionEnvironment env = new ExecutionEnvironment();
            env.AssignWithFrame(new AssignValue("[[rec().a]]", "25"));
            env.AssignWithFrame(new AssignValue("[[rec().a]]", "26"));
            env.AssignWithFrame(new AssignValue("[[rec().a]]", "25"));
            env.AssignWithFrame(new AssignValue("[[rec().a]]", "28"));

            var items = env.EnvalWhere("[[rec(*).a]]", (a => PublicFunctions.AtomtoString(a) == "25"));

            IEnumerable<int> enumerable = items as int[] ?? items.ToArray();
            Assert.AreEqual(enumerable.ToArray()[0], 1);
            Assert.AreEqual(enumerable.ToArray()[1], 3);

        }
        public void WarewolfParse_Eval_Delete_Unordered_CheckForAttributes_Mixed()
        {


            ExecutionEnvironment env = new ExecutionEnvironment();
            env.AssignWithFrame(new AssignValue("[[rec().a]]", "25"));
            env.AssignWithFrame(new AssignValue("[[rec().a]]", "26"));
            env.AssignWithFrame(new AssignValue("[[rec(5).a]]", "25"));
            env.AssignWithFrame(new AssignValue("[[rec(7).a]]", "28"));



            env.EvalDelete("[[rec(2)]]");
            var items = env.EvalAsListOfStrings("[[rec(*).a]]");


            Assert.AreEqual(items[0], "25");
            Assert.AreEqual(items[1], "25");
            Assert.AreEqual(items[2], "28");
            PrivateObject p = new PrivateObject(env);
            var inner = p.GetField("_env") as DataASTMutable.WarewolfEnvironment;
            var recset = inner.RecordSets["rec"];
            Assert.AreEqual(recset.Optimisations, DataASTMutable.WarewolfAttribute.Sorted);
            Assert.AreEqual(recset.LastIndex, 7);
        }
        public void WarewolfParse_Eval_Delete_Unordered_CheckForAttributes_Multiple_Delete_Star()
        {


            ExecutionEnvironment env = new ExecutionEnvironment();
            env.AssignWithFrame(new AssignValue("[[rec().a]]", "25"));
            env.AssignWithFrame(new AssignValue("[[rec().b]]", "26"));
            env.AssignWithFrame(new AssignValue("[[rec().b]]", "25"));
            env.AssignWithFrame(new AssignValue("[[rec().a]]", "28"));
            env.AssignWithFrame(new AssignValue("[[rec().b]]", "22"));
            env.AssignWithFrame(new AssignValue("[[rec().a]]", "24"));
            env.AssignWithFrame(new AssignValue("[[rec().b]]", "27"));
            env.AssignWithFrame(new AssignValue("[[rec().a]]", "1"));


            env.EvalDelete("[[rec(2)]]");

            env.AssignWithFrame(new AssignValue("[[rec(1).b]]", "xxx"));
            env.AssignWithFrame(new AssignValue("[[rec(1).a]]", "yyy"));
            env.AssignWithFrame(new AssignValue("[[rec(17).b]]", "uuu"));
            env.AssignWithFrame(new AssignValue("[[rec().a]]", "aaa"));
            env.AssignWithFrame(new AssignValue("[[rec(7).b]]", "444"));
            env.AssignWithFrame(new AssignValue("[[rec(7).a]]", "222"));
            env.EvalDelete("[[rec(7)]]");
            env.EvalDelete("[[rec(*)]]");
            var items = env.EvalAsListOfStrings("[[rec(*).a]]");
            Assert.AreEqual(items.Count, 0);






            PrivateObject p = new PrivateObject(env);
            var inner = p.GetField("_env") as DataASTMutable.WarewolfEnvironment;
            var recset = inner.RecordSets["rec"];
            Assert.AreEqual(recset.Optimisations, DataASTMutable.WarewolfAttribute.Fragmented);
            Assert.AreEqual(recset.LastIndex, 0);
            Assert.AreEqual(recset.Count, 0);
        }
示例#6
0
        public void WarewolfParse_Eval_Delete_Star_WithUpdate_ShouldDeleteUpdateIndex()
        {
            ExecutionEnvironment env = new ExecutionEnvironment();
            env.AssignWithFrame(new AssignValue("[[rec().a]]", "25"), 0);
            env.AssignWithFrame(new AssignValue("[[rec().a]]", "28"), 0);
            env.AssignWithFrame(new AssignValue("[[rec().a]]", "24"), 0);
            env.AssignWithFrame(new AssignValue("[[rec().a]]", "1"), 0);

            env.EvalDelete("[[rec(*)]]", 2);

            var items = env.EvalAsListOfStrings("[[rec(*).a]]", 0);
            Assert.AreEqual(items[0], "25");
            Assert.AreEqual(items[1], "24");
            Assert.AreEqual(items[2], "1");

            PrivateObject p = new PrivateObject(env);
            var inner = p.GetField("_env") as DataASTMutable.WarewolfEnvironment;
            var recset = inner.RecordSets["rec"];
            Assert.AreEqual(recset.LastIndex, 4);
            Assert.AreEqual(recset.Count, 3);
        }