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"); }
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); }
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"); }
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"); }