public class TestaConversorMonetário { int contaErros = 0; public static void main(String[] args) { ConversorMonetário cm = new ConversorMonetário(); TestaConversorMonetário testador = new TestaConversorMonetário(); testador.testaUmCaso(100, 4.85, 4.95, 495, 485, cm); testador.testaUmCaso(0, 4.85, 4.95, 0, 0, cm); testador.testaUmCaso(0.01, 4.85, 4.95, 0.0495, 0.0485, cm); if (testador.contaErros == 0) System.out.println("Não detectamos nenhum erro! Deve estar certo!"); } void testaUmCaso(double quantidade, double taxaC, double taxaV, double valorEsperadoVenda, double valorEsperadoCompra, ConversorMonetário cm) { cm.defineTaxaCompra(taxaC); cm.defineTaxaVenda(taxaV); if (!saoQuaseIguais(cm.compraDólar(quantidade), valorEsperadoCompra)) { System.out.println("valor errado = " + cm.compraDólar(quantidade)); contaErros = contaErros + 1; System.out.println("Erro na compra para " + quantidade + " dólares com taxa de compra = " + taxaC); } if (!saoQuaseIguais(cm.vendeDólar(quantidade), valorEsperadoVenda)) { contaErros = contaErros + 1; System.out.println("Erro na venda para " + quantidade + " dólares com taxa de venda = " + taxaV); } } boolean saoQuaseIguais(double x, double y) { return (Math.abs(x - y) < 0.000000000001); } }