Fix libcore.libcore.icu.DateIntervalFormatTest#testEndAtMidnight

The test was asserting that the calendar year is not part of the
formatted result, even though it is (for years in the past).

This CL updates the test for the fact that 2018 is now a previous
year. The CL adds a test for the case where start and end are in
different years.

Test: atest CtsLibcoreTestCases:libcore.libcore.icu.DateIntervalFormatTest
Bug: 122240208

Change-Id: I6ebe990349b8a131e2f5611022eb575002f49730
(cherry picked from commit cd3406d51779a8672d64f8d7af92b9df43a0a733)
diff --git a/luni/src/test/java/libcore/libcore/icu/DateIntervalFormatTest.java b/luni/src/test/java/libcore/libcore/icu/DateIntervalFormatTest.java
index 6b33f13..7d2cb93 100644
--- a/luni/src/test/java/libcore/libcore/icu/DateIntervalFormatTest.java
+++ b/luni/src/test/java/libcore/libcore/icu/DateIntervalFormatTest.java
@@ -439,34 +439,38 @@
     int dateTimeFlags = FORMAT_SHOW_DATE | FORMAT_SHOW_TIME | FORMAT_24HOUR;
     // If we're showing times and the end-point is midnight the following day, we want the
     // behaviour of suppressing the date for the end...
-    assertEquals("February 27, 04:00 – 00:00",
+    assertEquals("February 27, 2018, 04:00 – 00:00",
         formatDateRange(locale, timeZone, 1519704000000L, 1519776000000L, dateTimeFlags));
     // ...unless the start-point is also midnight, in which case we need dates to disambiguate.
-    assertEquals("February 27, 00:00 – February 28, 00:00",
+    assertEquals("February 27, 2018, 00:00 – February 28, 2018, 00:00",
         formatDateRange(locale, timeZone, 1519689600000L, 1519776000000L, dateTimeFlags));
     // We want to show the date if the end-point is a millisecond after midnight the following
     // day, or if it is exactly midnight the day after that.
-    assertEquals("February 27, 04:00 – February 28, 00:00",
+    assertEquals("February 27, 2018, 04:00 – February 28, 2018, 00:00",
         formatDateRange(locale, timeZone, 1519704000000L, 1519776000001L, dateTimeFlags));
-    assertEquals("February 27, 04:00 – March 1, 00:00",
+    assertEquals("February 27, 2018, 04:00 – March 1, 2018, 00:00",
         formatDateRange(locale, timeZone, 1519704000000L, 1519862400000L, dateTimeFlags));
     // We want to show the date if the start-point is anything less than a minute after midnight,
     // since that gets displayed as midnight...
-    assertEquals("February 27, 00:00 – February 28, 00:00",
+    assertEquals("February 27, 2018, 00:00 – February 28, 2018, 00:00",
         formatDateRange(locale, timeZone, 1519689659999L, 1519776000000L, dateTimeFlags));
     // ...but not if it is exactly one minute after midnight.
-    assertEquals("February 27, 00:01 – 00:00",
+    assertEquals("February 27, 2018, 00:01 – 00:00",
         formatDateRange(locale, timeZone, 1519689660000L, 1519776000000L, dateTimeFlags));
     int dateOnlyFlags = FORMAT_SHOW_DATE;
     // If we're only showing dates and the end-point is midnight of any day, we want the
     // behaviour of showing an end date one earlier. So if the end-point is March 2, 00:00, show
     // March 1 instead (whether the start-point is midnight or not).
-    assertEquals("February 27 – March 1",
+    assertEquals("February 27 – March 1, 2018",
         formatDateRange(locale, timeZone, 1519689600000L, 1519948800000L, dateOnlyFlags));
-    assertEquals("February 27 – March 1",
+    assertEquals("February 27 – March 1, 2018",
         formatDateRange(locale, timeZone, 1519704000000L, 1519948800000L, dateOnlyFlags));
     // We want to show the true date if the end-point is a millisecond after midnight.
-    assertEquals("February 27 – March 2",
+    assertEquals("February 27 – March 2, 2018",
         formatDateRange(locale, timeZone, 1519689600000L, 1519948800001L, dateOnlyFlags));
+
+    // 2017-02-27 00:00:00.000 GMT - 2018-03-02 00:00:00.000 GMT
+    assertEquals("February 27, 2017 – March 1, 2018",
+            formatDateRange(locale, timeZone, 1488153600000L, 1519948800000L, dateOnlyFlags));
   }
 }