예제 #1
0
        public void DeveResolverAExpressaoComDivisaoComValorNegativo()
        {
            ExpressaoMatematica = new ExpressaoNumerica(ExpressaoSoComDivisaoDeValorNegativo);
            var resultado = ExpressaoMatematica.Resolver();

            Assert.IsTrue(String.Compare(resultado, "-> 10") == 0);
        }
예제 #2
0
        public void DeveResolverAExpressaoComplexa()
        {
            ExpressaoMatematica = new ExpressaoNumerica(ExpressaoComplexa);
            var resultado = ExpressaoMatematica.Resolver();

            Assert.IsTrue(String.Compare(resultado, "-> -16328") == 0);
        }
예제 #3
0
        public void DeveResolverAExpressaoSoComParentesesSemEspaco()
        {
            ExpressaoMatematica = new ExpressaoNumerica(ExpressaoComParentesesSemEspaco);
            var resultado = ExpressaoMatematica.Resolver();

            Assert.IsTrue(String.Compare(resultado, "-> 21") == 0);
        }
예제 #4
0
        public void DeveResolverAExpressaoComMultiplosOperadoresNegativos()
        {
            ExpressaoMatematica = new ExpressaoNumerica(ExpressaoComMultiplosOperadoresNegativos);
            var resultado = ExpressaoMatematica.Resolver();

            Assert.IsTrue(String.Compare(resultado, "-> 16172") == 0);
        }
예제 #5
0
        public void DeveResolverAExpressaoComParentesesValorNegativo()
        {
            ExpressaoMatematica = new ExpressaoNumerica(ExpressaoComParentesesValorNegativo);
            var resultado = ExpressaoMatematica.Resolver();

            Assert.IsTrue(String.Compare(resultado, "-> -16072") == 0);
        }
예제 #6
0
        public void TestSoma2()
        {
            var e1 = new ExpressaoNumerica(2d);
            var e2 = new ExpressaoNumerica(3d);

            var expressao = new Expressao(e1, Operador.Soma, e2);

            Assert.AreEqual(5, expressao.Avaliar());
        }
예제 #7
0
        public void DeveResolverAExpressaoEliminandoOsTresParentesesUmColcheteUmaChave()
        {
            ExpressaoMatematica = new ExpressaoNumerica(ExpressaoComTresParentesesUmColcheteUmaChave);
            Assert.IsTrue(String.Compare(ExpressaoMatematica.Parentese.Resolver(), "8116/{1+[3*540+3]*5}") == 0);
            ExpressaoMatematica.Colchete.AdicionarExpressao(ExpressaoMatematica.Parentese.Expressao.ToString());
            Assert.IsTrue(String.Compare(ExpressaoMatematica.Colchete.Resolver(), "8116/{1+1623*5}") == 0);
            ExpressaoMatematica.Chave.AdicionarExpressao(ExpressaoMatematica.Colchete.Expressao.ToString());
            Assert.IsTrue(String.Compare(ExpressaoMatematica.Chave.Resolver(), "8116/8116") == 0);
            var resultadoFinal = new OperacaoMatematica(ExpressaoMatematica.Chave.Expressao.ToString());

            Assert.AreEqual(resultadoFinal.Calcular(), 1);
        }
예제 #8
0
        public void TestMultiplasSomas()
        {
            // 2 + 3 + 2
            var        expNo1            = new ExpressaoNumerica(2);
            var        expNo2            = new ExpressaoNumerica(3);
            IExpressao expressaoEsquerda = new Expressao(expNo1, Operador.Soma, expNo2);
            var        expNo3            = new ExpressaoNumerica(2);

            var expRaiz   = new Expressao(expressaoEsquerda, Operador.Soma, expNo3);
            var resultado = expRaiz.Avaliar();

            Assert.AreEqual(7, resultado);
        }
예제 #9
0
 public void DeveResolverAExpressaoEliminandoOsDoisParenteses()
 {
     ExpressaoMatematica = new ExpressaoNumerica(ExpressaoComDoisParenteses);
     Assert.IsTrue(String.Compare(ExpressaoMatematica.Parentese.Resolver(), "3*12") == 0);
 }
예제 #10
0
 public void DeveRetirarOsEspacos()
 {
     ExpressaoMatematica = new ExpressaoNumerica(ExpressaoComParenteses);
     Assert.IsTrue(ExpressaoMatematica.RetirarEspacos(ExpressaoComParenteses) == ExpressaoComParentesesSemEspaco);
 }
예제 #11
0
 public void DeveIdentificarSeTemAgrupador()
 {
     ExpressaoMatematica = new ExpressaoNumerica(ExpressaoComParenteses);
     ExpressaoMatematica.Parentese.AdicionarExpressao(ExpressaoComParenteses);
     Assert.IsTrue(ExpressaoMatematica.Parentese.TemAgrupador);
 }
예제 #12
0
 public void DeveObterParenteseFechado()
 {
     ExpressaoMatematica = new ExpressaoNumerica(ExpressaoComParenteses);
     ExpressaoMatematica.Parentese.AdicionarExpressao(ExpressaoComParenteses);
     Assert.IsTrue(ExpressaoMatematica.Parentese.AgrupadorFechado == ")");
 }