de.caff.generics.function

## Interface FloatPredicate2

- All Superinterfaces:
    java.util.function.BiPredicate<java.lang.Float,java.lang.Float>, java.util.function.Predicate<ITuple2<? extends java.lang.Float,? extends java.lang.Float>>, Predicate1<ITuple2<? extends java.lang.Float,? extends java.lang.Float>>, Predicate2<java.lang.Float,java.lang.Float>
  Functional Interface:
    This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

      @FunctionalInterface
      public interface FloatPredicate2
      extends Predicate2<java.lang.Float,java.lang.Float>

  Predicate which expects two primitive float arguments.
  Since:
    October 05, 2020
  Author:
    Rammi

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static FloatPredicate2` | `EQUAL_EVEN_NAN` Predicate which checks whether two float values are equal which handles NaN values in a way that `Float.NaN == Float.NaN` is `true`.
    `static FloatPredicate2` | `EQUAL_STANDARD` Predicate which checks whether two float values are equal which handles NaN as defined by IEEE 745 so that `Float.NaN == Float.NaN` is `false`, i.e.

    - ### Fields inherited from interface de.caff.generics.function.Predicate1

      `ALWAYS_FALSE, ALWAYS_TRUE`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `default boolean` | `test(java.lang.Float value1, java.lang.Float value2)` Default implementation.
    `default boolean` | `test(FloatPair pair)` Test a float pair by expanding its elements.
    `boolean` | `testFloats(float value1, float value2)` Test the given value.

    - ### Methods inherited from interface de.caff.generics.function.Predicate2

      `after1, after2, after3, after5, after6, after7, after8, after9, alwaysFalse, alwaysTrue, and, and, apply, areIdentical, from, isEqual, negate, or, or, partial1, partial2, partialLeft, partialRight, reverseOrder, test, xor, xor`

    - ### Methods inherited from interface de.caff.generics.function.Predicate1

      `adapted, and_, and, and, from, isEqual, isNull, notNull, or_, or, or, testNonNull, xor_, xor, xor`

- - ### Field Detail

    - #### EQUAL_EVEN_NAN

          @NotNull
          static final FloatPredicate2 EQUAL_EVEN_NAN

      Predicate which checks whether two float values are equal which handles NaN values in a way that `Float.NaN == Float.NaN` is `true`. It also handles `-0.0 == 0.0` in a better way than standard Java using `Float.compare(float, float)` which considers them different, although above equality is `true`.
      See Also:
        `EQUAL_STANDARD`, `Primitives.areEqual(float, float)`

    - #### EQUAL_STANDARD

          @NotNull
          static final FloatPredicate2 EQUAL_STANDARD

      Predicate which checks whether two float values are equal which handles NaN as defined by IEEE 745 so that `Float.NaN == Float.NaN` is `false`, i.e. NaN is different from any other value including itself.
      See Also:
        `EQUAL_EVEN_NAN`

  - ### Method Detail

    - #### testFloats

          boolean testFloats(float value1,
                             float value2)

      Test the given value.
      Parameters:
        `value1` - first value to test
        `value2` - second value to test
      Returns:
        `true` if the values match the predicate, `false` otherwise

    - #### test

          default boolean test(java.lang.Float value1,
                               java.lang.Float value2)

      Default implementation. This forwards to `testFloats(float, float)`. `Double.NaN` will be used instead of `null`.
      Specified by:
        `test` in interface `java.util.function.BiPredicate<java.lang.Float,java.lang.Float>`
      Parameters:
        `value1` - first value
        `value2` - second value
      Returns:
        `true` if the values match the predicate, `false` otherwise

    - #### test

          default boolean test(@NotNull
                               FloatPair pair)

      Test a float pair by expanding its elements.
      Parameters:
        `pair` - pair to test
      Returns:
        result of the test
      Throws:
        `java.lang.NullPointerException` - if pair is `null`