示例#1
0
        public void IfEqualChildrenTest()
        {
            GetConverter(out var varX, out var varY);
            var prog1 = new IfFunction(varY, varX, varX, varX);
            var prog2 = varX;
            var simp  = prog1.Simplify();

            Console.WriteLine($"{prog1}->{simp}, {prog2}");
            Assert.AreEqual(simp, prog2, $"{prog1} simplification ({simp}) should be equal to {prog2}");
        }
示例#2
0
        public void IfConstantTest()
        {
            var converter = GetConverter(out var varX, out _);
            var prog1     = new IfFunction(converter.FromNormalNotation("(2-2)"), varX, Constant.One, Constant.One);
            var prog2     = varX;
            var simp      = prog1.Simplify();

            Console.WriteLine($"{prog1}->{simp}, {prog2}");
            Assert.AreEqual(simp, prog2, $"{prog1} simplification ({simp}) should be equal to {prog2}");

            prog1 = new IfFunction(converter.FromNormalNotation("(2-1)"), Constant.One, varX, Constant.One);
            simp  = prog1.Simplify();
            Console.WriteLine($"{prog1}->{simp}, {prog2}");
            Assert.AreEqual(simp, prog2, $"{prog1} simplification ({simp}) should be equal to {prog2}");

            prog1 = new IfFunction(converter.FromNormalNotation("(1-2)"), Constant.One, Constant.One, varX);
            simp  = prog1.Simplify();
            Console.WriteLine($"{prog1}->{simp}, {prog2}");
            Assert.AreEqual(simp, prog2, $"{prog1} simplification ({simp}) should be equal to {prog2}");
        }
示例#3
0
        public void IfRangeTest()
        {
            var varX  = new Variable("x", 2, new Range(1, 4));
            var varY  = new Variable("y", new Range(-3, -1));
            var varZ  = new Variable("z", new Range(0));
            var prog1 = new IfFunction(varZ, varX, Constant.One, Constant.One);
            var prog2 = varX;
            var simp  = prog1.Simplify();

            Console.WriteLine($"{prog1}->{simp}, {prog2}");
            Assert.AreEqual(simp, prog2, $"{prog1} simplification ({simp}) should be equal to {prog2}");

            prog1 = new IfFunction(varX, Constant.One, varY, Constant.One);
            simp  = prog1.Simplify();
            prog2 = varY;
            Console.WriteLine($"{prog1}->{simp}, {prog2}");
            Assert.AreEqual(simp, prog2, $"{prog1} simplification ({simp}) should be equal to {prog2}");

            prog1 = new IfFunction(varY, Constant.One, Constant.One, varX);
            simp  = prog1.Simplify();
            prog2 = varX;
            Console.WriteLine($"{prog1}->{simp}, {prog2}");
            Assert.AreEqual(simp, prog2, $"{prog1} simplification ({simp}) should be equal to {prog2}");
        }