public void TestRememberTwoSameConstantObjects() { var gc = new GeneratedCode(); var expr1 = Expression.Constant(new ROOTNET.NTH1F()); var expr2 = Expression.Constant(new ROOTNET.NTH1F()); var r1 = new LINQToTTreeLib.Variables.ValSimple("10", typeof(int)); var r2 = new LINQToTTreeLib.Variables.ValSimple("11", typeof(int)); gc.RememberSubExpression(expr1, r1); gc.RememberSubExpression(expr2, r2); Assert.AreEqual(r1, gc.LookupSubExpression(expr1), "expr1 failure"); Assert.AreEqual(r2, gc.LookupSubExpression(expr2), "expr2 failure"); }
public void TestRememberEmbededConstExpr() { var gc = new GeneratedCode(); var c1 = Expression.Constant(new ROOTNET.NTH1F("hi", "there", 100, 0.0, 10.0)); var c2 = Expression.Constant(new ROOTNET.NTH1F("no", "way", 100, 0.0, 10.0)); var n1 = Expression.Call(c1, typeof(ROOTNET.NTH1F).GetMethod("GetNbinsX")); var n2 = Expression.Call(c2, typeof(ROOTNET.NTH1F).GetMethod("GetNbinsX")); var r1 = new ValSimple("1", typeof(int)); var r2 = new ValSimple("2", typeof(int)); gc.RememberSubExpression(n1, r1); gc.RememberSubExpression(n2, r2); Assert.AreEqual(r1, gc.LookupSubExpression(n1), "lookup n1"); Assert.AreEqual(r2, gc.LookupSubExpression(n2), "lookup n2"); }
public void TestRememberConstantObject() { var gc = new GeneratedCode(); var expr = Expression.Constant(new ROOTNET.NTH1F()); var r1 = new LINQToTTreeLib.Variables.ValSimple("10", typeof(int)); gc.RememberSubExpression(expr, r1); Assert.AreEqual(r1, gc.LookupSubExpression(expr), "Constant Expressions of arbitrary objects can't be looked up"); }
public void TestRememberExprHideAndSeek() { var gc = new GeneratedCode(); var expr = Expression.Constant(5); var r1 = new LINQToTTreeLib.Variables.ValSimple("10", typeof(int)); gc.RememberSubExpression(expr, r1); var initialScope = gc.CurrentScope; gc.Add(new StatementInlineBlock()); var r2 = new LINQToTTreeLib.Variables.ValSimple("11", typeof(int)); gc.RememberSubExpression(expr, r2); Assert.AreEqual(r2, gc.LookupSubExpression(expr), "Is hidden one done right?"); gc.Pop(); Assert.AreEqual(r1, gc.LookupSubExpression(expr), "Is revealed one done right?"); }
public void TestRememberExprPop() { var gc = new GeneratedCode(); var initialScope = gc.CurrentScope; gc.Add(new StatementInlineBlock()); var expr = Expression.Constant(10); var r = new LINQToTTreeLib.Variables.ValSimple("10", typeof(int)); gc.RememberSubExpression(expr, r); gc.CurrentScope = initialScope; Assert.IsNull(gc.LookupSubExpression(Expression.Constant(10)), "Expression after popping"); }
public void TestRememberExprSimpleByVal() { var gc = new GeneratedCode(); var expr = Expression.Constant(10); var r = new LINQToTTreeLib.Variables.ValSimple("10", typeof(int)); gc.RememberSubExpression(expr, r); Assert.AreEqual(r, gc.LookupSubExpression(Expression.Constant(10)), "Could not find expression"); }