Esempio n. 1
0
        public void EquationToStringTest()
        {
            IEquationBuilder equationBuilder = new EquationBuilder(new BracketOpener(), new SummandBuilder());

            string inputEquation = "(5x+ 5y)/5 -x^2=1";

            var equation = equationBuilder.Create(inputEquation);

            equation.Processing();

            Assert.AreEqual(equation.ToString(), "- x^2 + x + y - 1 = 0");
        }
        public void EquationBuildAndProcessing()
        {
            IEquationBuilder equationBuilder = new EquationBuilder(new BracketOpener(), new SummandBuilder());

            string inputEquation = "x^2 + 2y = 2((2x-1)/2 + 2.5(x + y^2) - 7.11)";

            var expectedLeft = new List <Summand>
            {
                new Summand {
                    Multiplier = 1, Variables = new List <Variable> {
                        new Variable {
                            Exponent = 2, Letter = 'x'
                        }
                    }
                },
                new Summand {
                    Multiplier = -7, Variables = new List <Variable> {
                        new Variable {
                            Exponent = 1, Letter = 'x'
                        }
                    }
                },
                new Summand {
                    Multiplier = -5, Variables = new List <Variable> {
                        new Variable {
                            Exponent = 2, Letter = 'y'
                        }
                    }
                },
                new Summand {
                    Multiplier = 2, Variables = new List <Variable> {
                        new Variable {
                            Exponent = 1, Letter = 'y'
                        }
                    }
                },
                new Summand {
                    Multiplier = 15.22, Variables = new List <Variable>()
                }
            };

            expectedLeft = expectedLeft.OrderByDescending(x => x).ToList();

            var equation = equationBuilder.Create(inputEquation);

            equation.Processing();

            Assert.IsNotNull(equation);
            Assert.IsTrue(expectedLeft.SequenceEqual(equation.LeftSide));
            Assert.IsTrue(equation.RightSide.Count == 0);
        }