/calculadora-posfixa

Desenvolver uma calculadora posfixa para expressões simples

Primary LanguageJavaGNU General Public License v3.0GPL-3.0

Calculadora Posfixa

Objetivo

  • Projetar testes uniários para uma terceira equipe implementar

Problema

Atividades

  • segunda-feira 25-09
    1. forkar este repositório
    2. atualizar README.md com
      • equipe (lembrar de colocar link para o github dos membros)
      • tecnologia usada
      • plano de teste (definir se vai usar top-down ou bottom-up)
      • implementar os testes unitários
      • como executar teste
    3. apresentar em sala o plano de teste
  • quinta-feira 28-09
    1. sortear repositório e equipe
    2. forkar repositório
    3. desenvolver solução para os testes
    4. apresentar plano de teste e solução

Plano de teste

  • equipe ( Yuri Jordan, Thomas Nogueira )
    • Java 8 com JUnit Versão 4, IDE Netbeans 8.2, SO Windows 10.
    • plano de teste (bottom-up)
    • implementar os testes unitários
    • como executar teste

Identificação

Objetivo

  • Projetar testes uniários para uma terceira equipe implementar

Problema

  • Receber uma string contendo uma expressão matemática em notação polonesa reversa e retornar o valor de resultado da expressão.

  • Exemplos "3 2 5 + *" => 21

Casos equivalentes

Entrada Condição Classes válidas Classes inválidas
polonesa É do tipo string. (1) expressao(polonesa) == String (4) expressao(polonesa) != String
Dentro da string cada elemento é um número(s) inteiro com caractere(s) usados em expressões matemáticas: + - * / (2) polonesa = "3 2 5 * +" (5) polonesa = "3 2 5 * + d -"
A operação matemática RPN opera de forma que: o(s) número(s) é(são) inseridos numa pilha, quando algum caractere de expressão númerica é inserido, é calculado os dois últimos números (ou os primeiros da pilha), assim sucessivamente até que todos os números sejam calculados e retirada da pilha o resultado. (3) polonesa = "5 1 2 + 4 × + 3 −" calculando = 5 + (1 + 2) × 4 - 3 (6) polonesa = "5 1 2 + 4 × + 3 −" calculando = 5 + 1 + 8 - 3

Casos de testes

Sequência Entrada Saída
1 - válida "5 1 2 + 4 × + 3 −" 14
2 - inválida 5 Lança uma exceção
3 - válida "3 2 5 * +" 21
4 - inválida "3 2 5 * + d -" Lança uma exceção
5 - válida "5 1 2 + 4 × + 3 −" 14
6 - inválida "5 1 2 + 4 × + 3 −" 11

Calculando

Próximo valor Operação Pilha
5 adicionar valor 5
1 adicionar valor 5, 1
2 adicionar valor 5, 1, 2
+ somar 5, 3
4 adicionar valor 5, 3, 4
× multiplicar 5, 12
+ somar 17
3 adicionar valor 17, 3
subtrair 14
Resultado 14

Como executar os testes

Utilizando o JUnit na IDE Netbeans

Utilizando o JUnit na IDE Eclipse

  1. Crie um novo projeto Java com JUnit seguindo um dos tutoriais acima

  2. Adicione uma biblioteca JUnit V4.x, ao classpath dele

  3. Para poder testar é preciso fazer a classe de teste compilar. Então crie a classe "CalculadoraPosfixa" e implemente os casos de teste, o mais simples possível, até que passem.

  4. Como forma de ajuda, já existe uma implementação para os testes, porém melhore-a, refatorando etc...