Consertar Erro do Exercício

Estou curioso nesse exercício, não achei uma solução de como consertar.

4) E, agora, vamos para o que tem apenas uma negociação e estava falhando. Ainda na classe
CandlestickFactoryTest adicione o método: (repare que cada classe de teste possui vários métodos
com vários casos diferentes)

@Test
public void apenasUmaNegociacaoGeraCandleComValoresIguais() 
{
    Calendar hoje = Calendar.getInstance();
    Negociacao negociacao1 = new Negociacao(40.5, 100, hoje);
    List<Negociacao> negociacoes = Arrays.asList(negociacao1);
    CandlestickFactory fabrica = new CandlestickFactory();
    Candlestick candle = fabrica.constroiCandleParaData(hoje, negociacoes);
    Assert.assertEquals(40.5, candle.getAbertura(), 0.00001);
    Assert.assertEquals(40.5, candle.getFechamento(), 0.00001);
    Assert.assertEquals(40.5, candle.getMinimo(), 0.00001);
    Assert.assertEquals(40.5, candle.getMaximo(), 0.00001);
    Assert.assertEquals(4050.0, candle.getVolume(), 0.00001);
}

Rode o teste. Repare no erro:

Como consertar?

amigo eu ate sei daonde vem este exercicio ( FJ-26 se nao me engano ) mas se vc nao passar o contexto fica dificil.

por exemplo vc tem 4 assertions onde vc espera 40.5 e vc nao diz se o erro foi na primeira delas… dê mais detalhes pq quem lê nao imagina o codigo por traz disso

É um problema de arredondamento que diz em exercícios anteriores, que o double dá uma inexatidão devolvendo um número alto.

Consegui, anteriormente vem explicando, consegui resolver, mas ainda n entendi mto bem, mas ta resolvido assim:

public class CandlestickFactoryTest {
@Test
public void sequenciaSimplesDeNegociacoes() {
Calendar hoje = Calendar.getInstance();
Negociacao
Negociacao
Negociacao
Negociacao
negociacao1
negociacao2
negociacao3
negociacao4
=
=
=
=
new
new
new
new
Negociacao(40.5,
Negociacao(45.0,
Negociacao(39.8,
Negociacao(42.3,
100,
100,
100,
100,
hoje);
hoje);
hoje);
hoje);
List<Negociacao> negociacoes = Arrays.asList(negociacao1, negociacao2,
negociacao3, negociacao4);
CandlestickFactory fabrica = new CandlestickFactory();
Candlestick candle = fabrica.constroiCandleParaData(hoje, negociacoes);
Assert.assertEquals(40.5, candle.getAbertura(), 0.00001);
Assert.assertEquals(42.3, candle.getFechamento(), 0.00001);
Assert.assertEquals(39.8, candle.getMinimo(), 0.00001);
Assert.assertEquals(45.0, candle.getMaximo(), 0.00001);
Assert.assertEquals(16760.0, candle.getVolume(), 0.00001);
}
}

Agora parei nesse: Que na verdade nao consegui resolver há um tampão e resolvi refazer os exercícios

  1. (opcional) Nosso teste para quando não há negociações na CandlestickFactory está verificando apenas
    se o volume é zero. Ele também poderia verificar que os outros valores dessa candle são zero.
    Modifique o método semNegociacoesGeraCandleComZeros e adicione os asserts faltantes de abertura,
    fechamento, mínimo e máximo.
    O teste vai parar de passar!
    Corrija ele da mesma forma que resolvemos o problema para as variáveis abertura e fechamento .

Ainda estou agarrado nesse exercício, alguém pode ajudar? Na verdade eu tinha aberto o tópico para esse mesmo exercício Teste JUnit esse último.