示例#1
0
        public void When_BuildVariable_Expect_Reference()
        {
            var builder  = new RealBuilder();
            var variable = new GetSetVariable <double>("a", Units.Volt);

            builder.VariableFound += (sender, args) =>
            {
                if (!args.Created && args.Node.Name == "a")
                {
                    args.Result = variable.Value;
                }
            };
            variable.Value = 2.0;
            Assert.AreEqual(5.0, builder.Build(Node.Add(Node.Variable("a"), 3.0)), 1e-20);
        }
        public void When_BuildVariable_Expect_Reference()
        {
            var builder  = new RealFunctionBuilder();
            var variable = new GetSetVariable <double>("a", Units.Volt);

            builder.VariableFound += (sender, args) =>
            {
                if (args.Variable == null && args.Node.Name == "a")
                {
                    args.Variable = variable;
                }
            };

            variable.Value = 2.0;
            Assert.AreEqual(5.0, builder.Build(Node.Variable("a") + 3.0).Invoke(), 1e-20);
        }
        public void When_BuildVariable_Expect_Reference()
        {
            var builder  = new ComplexFunctionBuilder();
            var variable = new GetSetVariable <Complex>("a", Units.Volt);

            builder.VariableFound += (sender, args) =>
            {
                if (args.Variable == null && args.Node.Name == "a")
                {
                    args.Variable = variable;
                }
            };
            variable.Value = new Complex(1.0, 2.0);
            var act = builder.Build(Node.Variable("a") + 3.0).Invoke();

            Assert.AreEqual(4.0, act.Real, 1e-20);
            Assert.AreEqual(2.0, act.Imaginary, 1e-20);
        }
示例#4
0
        public void When_BuildVariable_Expect_Reference()
        {
            var builder  = new ComplexBuilder();
            var variable = new GetSetVariable <Complex>("a", Units.Volt);

            builder.VariableFound += (sender, args) =>
            {
                if (!args.Created && args.Node.Name == "a")
                {
                    args.Result = variable.Value;
                }
            };
            variable.Value = 2.0;
            var act = builder.Build(Node.Add(Node.Variable("a"), 3.0));

            Assert.AreEqual(5.0, act.Real, 1e-20);
            Assert.AreEqual(0.0, act.Imaginary, 1e-20);
        }