--- old/test/jdk/java/util/Optional/BasicDouble.java 2018-04-16 10:24:18.316076798 -0700 +++ new/test/jdk/java/util/Optional/BasicDouble.java 2018-04-16 10:24:18.032050649 -0700 @@ -32,6 +32,8 @@ import java.util.NoSuchElementException; import java.util.OptionalDouble; import java.util.concurrent.atomic.AtomicBoolean; +import java.util.function.DoublePredicate; +import java.util.List; import static org.testng.Assert.*; import org.testng.annotations.Test; @@ -51,6 +53,7 @@ assertFalse(empty.equals("unexpected")); assertFalse(empty.isPresent()); + assertTrue(empty.isEmpty()); assertEquals(empty.hashCode(), 0); assertEquals(empty.orElse(UNEXPECTED), UNEXPECTED); assertEquals(empty.orElseGet(() -> UNEXPECTED), UNEXPECTED); @@ -126,4 +129,20 @@ public void testStreamPresent() { assertEquals(OptionalDouble.of(DOUBLEVAL).stream().toArray(), new double[] { DOUBLEVAL }); } + + @Test(groups = "unit") + public void testIsEmpty() { + OptionalDouble empty = OptionalDouble.empty(); + assertTrue(empty.isEmpty()); + OptionalDouble present = OptionalDouble.of(DOUBLEVAL); + assertFalse(present.isEmpty()); + var doubleList = List.of(1.0, 2.0, 3.0, 4.0, 5.0); + DoublePredicate isPositiveNumber = x -> x > 0; + DoublePredicate isNegativeNumber = x -> x < 0; + OptionalDouble positiveNumber = doubleList.stream().mapToDouble(Double::doubleValue).filter(isPositiveNumber).findAny(); + OptionalDouble negativeNumber = doubleList.stream().mapToDouble(Double::doubleValue).filter(isNegativeNumber).findAny(); + assertFalse(positiveNumber.isEmpty()); + assertTrue(negativeNumber.isEmpty()); + } + }