Backport Optional/OptionalInt/OptionalLong/OptionalDouble.orElseThrow()

Test: tools/test.py --dex_vm all --no-internal -v *Backport*Test*
Test: tools/test.py --no-internal -v *GenerateBackportMethods*
Change-Id: I6b1e9c09f033c4a1fe95c939fdef02095ef8d5a1
diff --git a/src/test/examplesJava10/backport/OptionalIntBackportJava10Main.java b/src/test/examplesJava10/backport/OptionalIntBackportJava10Main.java
new file mode 100644
index 0000000..06c85f5
--- /dev/null
+++ b/src/test/examplesJava10/backport/OptionalIntBackportJava10Main.java
@@ -0,0 +1,32 @@
+// Copyright (c) 2019, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+package backport;
+
+import java.util.NoSuchElementException;
+import java.util.OptionalInt;
+
+public final class OptionalIntBackportJava10Main {
+
+  public static void main(String[] args) {
+    testOrElseThrow();
+  }
+
+  private static void testOrElseThrow() {
+    OptionalInt present = OptionalInt.of(2);
+    assertEquals(2, present.orElseThrow());
+
+    OptionalInt absent = OptionalInt.empty();
+    try {
+      throw new AssertionError(absent.orElseThrow());
+    } catch (NoSuchElementException expected) {
+    }
+  }
+
+  private static void assertEquals(Object expected, Object actual) {
+    if (expected != actual && !expected.equals(actual)) {
+      throw new AssertionError("Expected <" + expected + "> but was <" + actual + ">");
+    }
+  }
+}