Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

226
Visualizações
¿Por qué falla JUnit assertEquals (-0.0, 0.0)?

Estoy trabajando con JUnit 5 en Java SE 11 y descubrí que assertEquals(-0.0,0.0) falla. ¿Porqué es eso? Java en sí mismo está perfectamente feliz con "-0. == 0.". A continuación se muestra el código de ejemplo.

 double dVar1 = 0; double dVar2 = -dVar1; System.out.println( dVar1 == dVar2 ); // true System.out.println( -0. == 0. ); // true assertEquals( dVar1, dVar2, .00001 ); // passes assertEquals( 0.0, -0.0, .0001 ); // passes assertEquals( 0.0, -0.0 ); // fails assertEquals( dVar1, dVar2 ); // fails
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Java no tiene problemas con -0 y 0. Pero en el método assertEquals use este método de la clase Double para convertir parámetros a longBits y los valores reternidos no son los mismos.

 public static long doubleToLongBits(double value) { long result = doubleToRawLongBits(value); // Check for NaN based on values of bit fields, maximum // exponent and nonzero significand. if ( ((result & DoubleConsts.EXP_BIT_MASK) == DoubleConsts.EXP_BIT_MASK) && (result & DoubleConsts.SIGNIF_BIT_MASK) != 0L) result = 0x7ff8000000000000L; return result; }

En su caso, debe usar el primer assertEquals (doble esperado, doble real, doble delta) que se basa en la operación matemática: return doublesAreEqual (value1, value2) || Math.abs(valor1 - valor2) <= delta

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda