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