Class AbstractDoubleAssert<SELF extends AbstractDoubleAssert<SELF>>

Type Parameters:
SELF - the "self" type of this assertion class. Please read "Emulating 'self types' using Java Generics to simplify fluent API implementation" for more details.
All Implemented Interfaces:
Assert<SELF,Double>, ComparableAssert<SELF,Double>, Descriptable<SELF>, ExtensionPoints<SELF,Double>, FloatingPointNumberAssert<SELF,Double>, NumberAssert<SELF,Double>
Direct Known Subclasses:
DoubleAssert

public abstract class AbstractDoubleAssert<SELF extends AbstractDoubleAssert<SELF>> extends AbstractComparableAssert<SELF,Double> implements FloatingPointNumberAssert<SELF,Double>
Base class for all implementations of assertions for Doubles.
  • Field Details

    • NEGATIVE_ZERO

      private static final Double NEGATIVE_ZERO
    • doubles

      Doubles doubles
    • isPrimitive

      private boolean isPrimitive
  • Constructor Details

    • AbstractDoubleAssert

      public AbstractDoubleAssert(Double actual, Class<?> selfType)
    • AbstractDoubleAssert

      public AbstractDoubleAssert(double actual, Class<?> selfType)
  • Method Details

    • isNaN

      public SELF isNaN()
      Verifies that the actual value is equal to NaN.

      Example:

       // assertions will pass
       assertThat(Double.NaN).isNaN();
       assertThat(0.0 / 0.0).isNaN();
       assertThat(0.0F * Float.POSITIVE_INFINITY).isNaN();
       
       // assertions will fail
       assertThat(1.0).isNaN();
       assertThat(-1.0F).isNaN();

      Specified by:
      isNaN in interface FloatingPointNumberAssert<SELF extends AbstractDoubleAssert<SELF>,Double>
      Returns:
      this assertion object.
    • isNotNaN

      public SELF isNotNaN()
      Verifies that the actual value is not equal to NaN.

      Example:

       // assertions will pass
       assertThat(1.0).isNotNaN();
       assertThat(-1.0F).isNotNaN();
       
       // assertions will fail
       assertThat(Double.NaN).isNotNaN();
       assertThat(0.0 / 0.0).isNotNaN();
       assertThat(0.0F * Float.POSITIVE_INFINITY).isNotNaN();

      Specified by:
      isNotNaN in interface FloatingPointNumberAssert<SELF extends AbstractDoubleAssert<SELF>,Double>
      Returns:
      this assertion object.
    • isZero

      public SELF isZero()
      Verifies that the actual value is equal to zero.

      Although 0.0 == -0.0 (primitives), Double(-0.0) is not zero as Double.doubleToRawLongBits(0.0) == Double.doubleToRawLongBits(-0.0) is false.

      Example:

       // assertions will pass
       assertThat(0.0).isZero();
       assertThat(-0.0).isZero();
      
       // assertions will fail
       assertThat(new Double(-0.0)).isZero();
       assertThat(3.142).isZero();
      Specified by:
      isZero in interface NumberAssert<SELF extends AbstractDoubleAssert<SELF>,Double>
      Returns:
      this assertion object.
      Throws:
      AssertionError - if the actual value is null.
      AssertionError - if the actual value is not equal to zero.
    • isNotZero

      public SELF isNotZero()
      Verifies that the actual value is not equal to zero.

      Although 0.0 == -0.0 (primitives), Double(-0.0) is not zero as Double.doubleToRawLongBits(0.0) == Double.doubleToRawLongBits(-0.0) is false.

      Example:

       // assertions will pass
       assertThat(3.142).isNotZero();
       assertThat(new Double(-0.0)).isNotZero();
      
       // assertions will fail
       assertThat(0.0).isNotZero();
       assertThat(new Double(0.0)).isNotZero();
       assertThat(-0.0).isNotZero();
      Specified by:
      isNotZero in interface NumberAssert<SELF extends AbstractDoubleAssert<SELF>,Double>
      Returns:
      this assertion object.
      Throws:
      AssertionError - if the actual value is null.
      AssertionError - if the actual value is equal to zero.
    • isOne

      public SELF isOne()
      Verifies that the actual value is equal to one.

      Example:

       // assertions will pass
       assertThat(1).isOne();
       assertThat(1.0).isOne();
      
       // assertions will fail
       assertThat(42).isOne();
       assertThat(3.142).isOne();
      Specified by:
      isOne in interface NumberAssert<SELF extends AbstractDoubleAssert<SELF>,Double>
      Returns:
      this assertion object.
    • isPositive

      public SELF isPositive()
      Verifies that the actual value is positive.

      Example:

       // assertions will pass
       assertThat(42).isPositive();
       assertThat(3.142).isPositive();
      
       // assertions will fail
       assertThat(0).isPositive();
       assertThat(-42).isPositive();
      Specified by:
      isPositive in interface NumberAssert<SELF extends AbstractDoubleAssert<SELF>,Double>
      Returns:
      this assertion object.
    • isNegative

      public SELF isNegative()
      Verifies that the actual value is negative.

      Example:

       // assertions will pass
       assertThat(-42).isNegative();
       assertThat(-3.124).isNegative();
      
       // assertions will fail
       assertThat(0).isNegative();
       assertThat(42).isNegative();
      Specified by:
      isNegative in interface NumberAssert<SELF extends AbstractDoubleAssert<SELF>,Double>
      Returns:
      this assertion object.
    • isNotNegative

      public SELF isNotNegative()
      Verifies that the actual value is non negative (positive or equal zero).

      Example:

       // assertions will pass
       assertThat(42).isNotNegative();
       assertThat(0).isNotNegative();
      
       // assertions will fail
       assertThat(-42).isNotNegative();
       assertThat(-3.124).isNotNegative();
      Specified by:
      isNotNegative in interface NumberAssert<SELF extends AbstractDoubleAssert<SELF>,Double>
      Returns:
      this assertion object.
    • isNotPositive

      public SELF isNotPositive()
      Verifies that the actual value is non positive (negative or equal zero).

      Example:

       // assertions will pass
       assertThat(-42).isNotPositive();
       assertThat(0).isNotPositive();
      
       // assertions will fail
       assertThat(42).isNotPositive();
       assertThat(3.124).isNotPositive();
      Specified by:
      isNotPositive in interface NumberAssert<SELF extends AbstractDoubleAssert<SELF>,Double>
      Returns:
      this assertion object.
    • isCloseTo

      public SELF isCloseTo(double expected, Offset<Double> offset)
      Verifies that the actual number is close to the given one within the given offset.
      If difference is equal to offset value, assertion is considered valid.

      Example:

       // assertion will pass
       assertThat(8.1).isCloseTo(8.0, within(0.2));
      
       // you can use offset if you prefer
       assertThat(8.1).isCloseTo(8.0, offset(0.2));
      
       // if difference is exactly equals to 0.1, it's ok
       assertThat(8.1).isCloseTo(8.0, within(0.1));
      
       // assertion will fail
       assertThat(8.1).isCloseTo(8.0, within(0.01));
      Parameters:
      expected - the given number to compare the actual value to.
      offset - the given positive offset.
      Returns:
      this assertion object.
      Throws:
      NullPointerException - if the given offset is null.
      NullPointerException - if the expected number is null.
      AssertionError - if the actual value is not close to the given one.
    • isNotCloseTo

      public SELF isNotCloseTo(double expected, Offset<Double> offset)
      Verifies that the actual number is not close to the given one by less than the given offset.
      If the difference is equal to the offset value, the assertion fails.

      Example:

       // assertion will pass
       assertThat(8.1).isNotCloseTo(8.0, byLessThan(0.01));
      
       // you can use offset if you prefer
       assertThat(8.1).isNotCloseTo(8.0, offset(0.01));
      
       // assertions will fail
       assertThat(8.1).isNotCloseTo(8.0, byLessThan(0.1));
       assertThat(8.1).isNotCloseTo(8.0, byLessThan(0.2));
      Parameters:
      expected - the given number to compare the actual value to.
      offset - the given positive offset.
      Returns:
      this assertion object.
      Throws:
      NullPointerException - if the given offset is null.
      NullPointerException - if the expected number is null.
      AssertionError - if the actual value is close to the given one.
      Since:
      2.6.0 / 3.6.0
      See Also:
    • isCloseTo

      public SELF isCloseTo(Double expected, Offset<Double> offset)
      Verifies that the actual number is close to the given one within the given offset.
      If difference is equal to offset value, assertion is considered valid.

      Example:

       // assertion will pass
       assertThat(8.1).isCloseTo(Double.valueOf(8.0), within(0.2));
      
       // you can use offset if you prefer
       assertThat(8.1).isCloseTo(Double.valueOf(8.0), offset(0.2));
      
       // if difference is exactly equals to 0.1, it's ok
       assertThat(8.1).isCloseTo(Double.valueOf(8.0), within(0.1));
      
       // assertion will fail
       assertThat(8.1).isCloseTo(Double.valueOf(8.0), within(0.01));
      Specified by:
      isCloseTo in interface FloatingPointNumberAssert<SELF extends AbstractDoubleAssert<SELF>,Double>
      Specified by:
      isCloseTo in interface NumberAssert<SELF extends AbstractDoubleAssert<SELF>,Double>
      Parameters:
      expected - the given number to compare the actual value to.
      offset - the given positive offset.
      Returns:
      this assertion object.
      Throws:
      NullPointerException - if the given offset is null.
      NullPointerException - if the expected number is null.
      AssertionError - if the actual value is not close to the given one.
    • isNotCloseTo

      public SELF isNotCloseTo(Double expected, Offset<Double> offset)
      Verifies that the actual number is close to the given one by less than the given offset.
      If the difference is equal to the offset value, the assertion fails.

      Example:

       // assertion will pass
       assertThat(8.1).isNotCloseTo(Double.valueOf(8.0), byLessThan(0.01));
      
       // you can use offset if you prefer
       assertThat(8.1).isNotCloseTo(Double.valueOf(8.0), offset(0.01));
      
       // assertions will fail
       assertThat(8.1).isNotCloseTo(Double.valueOf(8.0), byLessThan(0.1));
       assertThat(8.1).isNotCloseTo(Double.valueOf(8.0), byLessThan(0.2));
      Specified by:
      isNotCloseTo in interface FloatingPointNumberAssert<SELF extends AbstractDoubleAssert<SELF>,Double>
      Specified by:
      isNotCloseTo in interface NumberAssert<SELF extends AbstractDoubleAssert<SELF>,Double>
      Parameters:
      expected - the given number to compare the actual value to.
      offset - the given positive offset.
      Returns:
      this assertion object.
      Throws:
      NullPointerException - if the given offset is null.
      NullPointerException - if the expected number is null.
      AssertionError - if the actual value is close to the given one.
      Since:
      2.6.0 / 3.6.0
      See Also:
    • isCloseTo

      public SELF isCloseTo(Double expected, Percentage percentage)
      Verifies that the actual number is close to the given one within the given percentage.
      If difference is equal to the percentage value, assertion is considered valid.

      Example with double:

       // assertions will pass:
       assertThat(11.0).isCloseTo(Double.valueOf(10.0), withinPercentage(20d));
      
       // if difference is exactly equals to the computed offset (1.0), it's ok
       assertThat(11.0).isCloseTo(Double.valueOf(10.0), withinPercentage(10d));
      
       // assertion will fail
       assertThat(11.0).isCloseTo(Double.valueOf(10.0), withinPercentage(5d));
      Specified by:
      isCloseTo in interface NumberAssert<SELF extends AbstractDoubleAssert<SELF>,Double>
      Parameters:
      expected - the given number to compare the actual value to.
      percentage - the given positive percentage.
      Returns:
      this assertion object.
      Throws:
      NullPointerException - if the given offset is null.
      NullPointerException - if the expected number is null.
      AssertionError - if the actual value is not close to the given one.
    • isNotCloseTo

      public SELF isNotCloseTo(Double expected, Percentage percentage)
      Verifies that the actual number is close to the given one within the given percentage.
      If difference is equal to the percentage value, the assertion fails.

      Example with double:

       // assertion will pass:
       assertThat(11.0).isNotCloseTo(Double.valueOf(10.0), withinPercentage(5d));
      
       // assertions will fail
       assertThat(11.0).isNotCloseTo(Double.valueOf(10.0), withinPercentage(10d));
       assertThat(11.0).isNotCloseTo(Double.valueOf(10.0), withinPercentage(20d));
      Specified by:
      isNotCloseTo in interface NumberAssert<SELF extends AbstractDoubleAssert<SELF>,Double>
      Parameters:
      expected - the given number to compare the actual value to.
      percentage - the given positive percentage.
      Returns:
      this assertion object.
      Throws:
      NullPointerException - if the given offset is null.
      NullPointerException - if the expected number is null.
      AssertionError - if the actual value is close to the given one.
      Since:
      2.6.0 / 3.6.0
    • isCloseTo

      public SELF isCloseTo(double expected, Percentage percentage)
      Verifies that the actual number is close to the given one within the given percentage.
      If difference is equal to the percentage value, assertion is considered valid.

      Example with double:

       // assertions will pass:
       assertThat(11.0).isCloseTo(10.0, withinPercentage(20d));
      
       // if difference is exactly equals to the computed offset (1.0), it's ok
       assertThat(11.0).isCloseTo(10.0, withinPercentage(10d));
      
       // assertion will fail
       assertThat(11.0).isCloseTo(10.0, withinPercentage(5d));
      Parameters:
      expected - the given number to compare the actual value to.
      percentage - the given positive percentage.
      Returns:
      this assertion object.
      Throws:
      NullPointerException - if the given offset is null.
      NullPointerException - if the expected number is null.
      AssertionError - if the actual value is not close to the given one.
    • isNotCloseTo

      public SELF isNotCloseTo(double expected, Percentage percentage)
      Verifies that the actual number is not close to the given one within the given percentage.
      If difference is equal to the percentage value, the assertion fails.

      Example with double:

       // assertion will pass:
       assertThat(11.0).isNotCloseTo(10.0, withinPercentage(5d));
      
       // assertions will fail
       assertThat(11.0).isNotCloseTo(10.0, withinPercentage(10d));
       assertThat(11.0).isNotCloseTo(10.0, withinPercentage(20d));
      Parameters:
      expected - the given number to compare the actual value to.
      percentage - the given positive percentage.
      Returns:
      this assertion object.
      Throws:
      NullPointerException - if the given offset is null.
      NullPointerException - if the expected number is null.
      AssertionError - if the actual value is close to the given one.
      Since:
      2.6.0 / 3.6.0
    • isEqualTo

      public SELF isEqualTo(double expected)
      Verifies that the actual value is equal to the given one.

      Example:

       // assertions will pass:
       assertThat(1.0).isEqualTo(1.0);
       assertThat(1D).isEqualTo(1.0);
       
       // assertions will fail:
       assertThat(0.0).isEqualTo(1.0);
       assertThat(-1.0).isEqualTo(1.0);

      Parameters:
      expected - the given value to compare the actual value to.
      Returns:
      this assertion object.
      Throws:
      AssertionError - if the actual value is null.
      AssertionError - if the actual value is not equal to the given one.
    • isEqualTo

      public SELF isEqualTo(Double expected, Offset<Double> offset)
      Verifies that the actual value is close to the given one by less than the given offset.
      If difference is equal to offset value, assertion is considered valid.

      Example with double:

       // assertion will pass:
       assertThat(8.1).isEqualTo(new Double(8.0), offset(0.2));
      
       // if difference is exactly equals to the offset (0.1), it's ok
       assertThat(8.1).isEqualTo(new Double(8.0), offset(0.1));
      
       // within is an alias of offset
       assertThat(8.1).isEqualTo(new Double(8.0), within(0.1));
      
       // assertion will fail
       assertThat(8.1).isEqualTo(new Double(8.0), offset(0.01));
      Specified by:
      isEqualTo in interface FloatingPointNumberAssert<SELF extends AbstractDoubleAssert<SELF>,Double>
      Parameters:
      expected - the given value to compare the actual value to.
      offset - the given positive offset.
      Returns:
      this assertion object.
    • isEqualTo

      public SELF isEqualTo(double expected, Offset<Double> offset)
      Verifies that the actual value is close to the given one by less than the given offset.
      If difference is equal to offset value, assertion is considered valid.

      Example with double:

       // assertion will pass:
       assertThat(8.1).isEqualTo(8.0, offset(0.2));
      
       // if difference is exactly equals to the offset (0.1), it's ok
       assertThat(8.1).isEqualTo(8.0, offset(0.1));
      
       // within is an alias of offset
       assertThat(8.1).isEqualTo(8.0, within(0.1));
      
       // assertion will fail
       assertThat(8.1).isEqualTo(8.0, offset(0.01));
      Parameters:
      expected - the given value to compare the actual value to.
      offset - the given positive offset.
      Returns:
      this assertion object.
      Throws:
      NullPointerException - if the given offset is null.
      NullPointerException - if the expected number is null.
      AssertionError - if the actual value is not equal to the given one.
    • isNotEqualTo

      public SELF isNotEqualTo(double other)
      Verifies that the actual value is not equal to the given one.

      Example:

       // assertions will pass:
       assertThat(0.0).isNotEqualTo(1.0);
       assertThat(-1.0).isNotEqualTo(1.0);
       
       // assertions will fail:
       assertThat(1.0).isNotEqualTo(1.0);
       assertThat(1D).isNotEqualTo(1.0);

      Parameters:
      other - the given value to compare the actual value to.
      Returns:
      this assertion object.
      Throws:
      AssertionError - if the actual value is null.
      AssertionError - if the actual value is equal to the given one.
    • isLessThan

      public SELF isLessThan(double other)
      Verifies that the actual value is less than the given one.

      Example:

       // assertion will pass:
       assertThat(1.0).isLessThan(2.0);
       
       // assertions will fail:
       assertThat(2.0).isLessThan(1.0);
       assertThat(1.0).isLessThan(1.0);

      Parameters:
      other - the given value to compare the actual value to.
      Returns:
      this assertion object.
      Throws:
      AssertionError - if the actual value is null.
      AssertionError - if the actual value is equal to or greater than the given one.
    • isLessThanOrEqualTo

      public SELF isLessThanOrEqualTo(double other)
      Verifies that the actual value is less than or equal to the given one.

      Example:

       // assertions will pass:
       assertThat(-1.0).isLessThanOrEqualTo(1.0);
       assertThat(1.0).isLessThanOrEqualTo(1.0);
       
       // assertion will fail:
       assertThat(2.0).isLessThanOrEqualTo(1.0);

      Parameters:
      other - the given value to compare the actual value to.
      Returns:
      this assertion object.
      Throws:
      AssertionError - if the actual value is null.
      AssertionError - if the actual value is greater than the given one.
    • isGreaterThan

      public SELF isGreaterThan(double other)
      Verifies that the actual value is greater than the given one.

      Example:

       // assertion will pass:
       assertThat(2.0).isGreaterThan(1.0);
       
       // assertions will fail:
       assertThat(1.0).isGreaterThan(1.0);
       assertThat(1.0).isGreaterThan(2.0);

      Parameters:
      other - the given value to compare the actual value to.
      Returns:
      this assertion object.
      Throws:
      AssertionError - if the actual value is null.
      AssertionError - if the actual value is equal to or less than the given one.
    • isGreaterThanOrEqualTo

      public SELF isGreaterThanOrEqualTo(double other)
      Verifies that the actual value is greater than or equal to the given one.

      Example:

       // assertions will pass:
       assertThat(2.0).isGreaterThanOrEqualTo(1.0);
       assertThat(1.0).isGreaterThanOrEqualTo(1.0);
       
       // assertion will fail:
       assertThat(1.0).isGreaterThanOrEqualTo(2.0);

      Parameters:
      other - the given value to compare the actual value to.
      Returns:
      this assertion object.
      Throws:
      AssertionError - if the actual value is null.
      AssertionError - if the actual value is less than the given one.
    • isBetween

      public SELF isBetween(Double start, Double end)
      Verifies that the actual value is in [start, end] range (start included, end included).

      Example:

       // assertions succeed
       assertThat('b').isBetween('a', 'c');
       assertThat('a').isBetween('a', 'b');
       assertThat('b').isBetween('a', 'b');
       
       // assertions fail
       assertThat('a').isBetween('b', 'c');
       assertThat('c').isBetween('a', 'b');
      Specified by:
      isBetween in interface ComparableAssert<SELF extends AbstractDoubleAssert<SELF>,Double>
      Specified by:
      isBetween in interface NumberAssert<SELF extends AbstractDoubleAssert<SELF>,Double>
      Overrides:
      isBetween in class AbstractComparableAssert<SELF extends AbstractDoubleAssert<SELF>,Double>
      Parameters:
      start - the start value (inclusive), expected not to be null.
      end - the end value (inclusive), expected not to be null.
      Returns:
      this assertion object.
    • isStrictlyBetween

      public SELF isStrictlyBetween(Double start, Double end)
      Verifies that the actual value is in ]start, end[ range (start excluded, end excluded).

      Example:

       // assertion succeeds
       assertThat('b').isStrictlyBetween('a', 'c');
       
       // assertions fail
       assertThat('d').isStrictlyBetween('a', 'c');
       assertThat('a').isStrictlyBetween('b', 'd');
       assertThat('a').isStrictlyBetween('a', 'b');
       assertThat('b').isStrictlyBetween('a', 'b');
      Specified by:
      isStrictlyBetween in interface ComparableAssert<SELF extends AbstractDoubleAssert<SELF>,Double>
      Specified by:
      isStrictlyBetween in interface NumberAssert<SELF extends AbstractDoubleAssert<SELF>,Double>
      Overrides:
      isStrictlyBetween in class AbstractComparableAssert<SELF extends AbstractDoubleAssert<SELF>,Double>
      Parameters:
      start - the start value (exclusive), expected not to be null.
      end - the end value (exclusive), expected not to be null.
      Returns:
      this assertion object.
    • usingComparator

      public SELF usingComparator(Comparator<? super Double> customComparator)
      Description copied from class: AbstractAssert
      Use given custom comparator instead of relying on actual type A equals method for incoming assertion checks.

      Custom comparator is bound to assertion instance, meaning that if a new assertion is created, it will use default comparison strategy. Examples :

       // frodo and sam are instances of Character with Hobbit race (obviously :).
       // raceComparator implements Comparator<Character> 
       assertThat(frodo).usingComparator(raceComparator).isEqualTo(sam);
      Specified by:
      usingComparator in interface Assert<SELF extends AbstractDoubleAssert<SELF>,Double>
      Overrides:
      usingComparator in class AbstractComparableAssert<SELF extends AbstractDoubleAssert<SELF>,Double>
      Parameters:
      customComparator - the comparator to use for incoming assertion checks.
      Returns:
      this assertion object.
    • usingDefaultComparator

      public SELF usingDefaultComparator()
      Description copied from class: AbstractAssert
      Revert to standard comparison for incoming assertion checks.

      This method should be used to disable a custom comparison strategy set by calling Assert.usingComparator(Comparator).

      Specified by:
      usingDefaultComparator in interface Assert<SELF extends AbstractDoubleAssert<SELF>,Double>
      Overrides:
      usingDefaultComparator in class AbstractComparableAssert<SELF extends AbstractDoubleAssert<SELF>,Double>
      Returns:
      this assertion object.
    • assertIsPrimitiveZero

      private void assertIsPrimitiveZero()
    • assertIsPrimitiveNonZero

      private void assertIsPrimitiveNonZero()