コード例 #1
0
ファイル: ForLoopTest.cs プロジェクト: gordonwatts/PlotLingo
        public void DictForCacheNotKept()
        {
            var loop1 = new Dictionary <object, object>()
            {
                { "a", 10 }
            };
            var loop2 = new Dictionary <object, object>()
            {
                { "a", 20 }
            };
            var loopdict = new ObjectValue(new Dictionary <object, object>[] { loop1, loop2 });

            var dictEval = new Tuple <IExpression, IExpression>[] {
                new Tuple <IExpression, IExpression>(new StringValue("hi"), new VariableValue("a"))
            };
            var dict   = new DictionaryValue(dictEval);
            var lookup = new IndexerRefExpression(dict, new StringValue("hi"));

            var statement1    = new ExpressionStatement(lookup);
            var exprStatement = new ListOfStatementsExpression(new IStatement[] { statement1 });

            var forLoop = new FunctionExpression("for", loopdict, exprStatement);

            var c = new RootContext();
            var r = forLoop.Evaluate(c);

            Assert.AreEqual(20, r, "for loop with nothing in it");
        }
コード例 #2
0
        public void TestSimpleIndexForMissingGuy()
        {
            var dict = new Dictionary <string, int>();

            dict["hi"] = 5;
            var ir = new IndexerRefExpression(new ObjectValue(dict), new StringValue("hioi"));
            var c  = new RootContext();
            var r  = ir.Evaluate(c);
        }
コード例 #3
0
        public void TestToString()
        {
            var dict = new Dictionary <string, int>();

            dict["hi"] = 5;
            var ir = new IndexerRefExpression(new ObjectValue(dict), new StringValue("hi"));

            Assert.AreEqual("PlotLingoLib.Expressions.Values.ObjectValue[\"hi\"]", ir.ToString(), "ToString");
        }
コード例 #4
0
        public void TestSimpleIndex()
        {
            var dict = new Dictionary <string, int>();

            dict["hi"] = 5;
            var ir = new IndexerRefExpression(new ObjectValue(dict), new StringValue("hi"));
            var c  = new RootContext();
            var r  = ir.Evaluate(c);

            Assert.IsNotNull(r, "result");
            Assert.AreEqual(5, r, "the final result");
        }