コード例 #1
0
        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");
        }
コード例 #2
0
        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");
        }
コード例 #3
0
        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");
        }
コード例 #4
0
        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?");
        }
コード例 #5
0
        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");
        }
コード例 #6
0
        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");
        }