public void ProgramIsNotConstantTest() { var prog = new MultiplicationFunction(new Constant(3), new Variable("a")); Console.WriteLine(prog); Assert.IsFalse(prog.IsConstant(), $"{prog} should not be constant."); }
public void MultiplicationByZeroTest() { GetConverter(out var varX, out _); var prog1 = new MultiplicationFunction(varX, Constant.Zero); var prog2 = Constant.Zero; var simp = prog1.Simplify(); Console.WriteLine($"{prog1}->{simp}, {prog2}"); Assert.AreEqual(simp, prog2, $"{prog1} simplification ({simp}) should be equal to {prog2}"); }
public void ChainedAdditionsTest() { var converter = GetConverter(out var varX, out _); var expression = "(x+x)"; for (var i = 3; i <= 10; i++) { expression = $"({expression}+x)"; var prog1 = converter.FromNormalNotation(expression); var prog2 = new MultiplicationFunction(new Constant(i), varX); var simp = prog1.Simplify(); Console.WriteLine($"{prog1}->{simp}, {prog2}"); Assert.AreEqual(simp, prog2, $"{prog1} simplification ({simp}) should be equal to {prog2}"); } }