Fix day of year value in RecurrenceProcessor.

RecurrenceProcessor#yearDay was returning incorrectly for July 1st due
to a wrong hard-coded value. Updating it to the correct value and adding
some unit tests for the function.

Bug: 111972497
Test: atest com.android.calendarcommon2.RecurrenceProcessorTest#testYearDay
Change-Id: If468db15d0f66ca059460fbf09d360360cfe8cdd
diff --git a/src/com/android/calendarcommon2/RecurrenceProcessor.java b/src/com/android/calendarcommon2/RecurrenceProcessor.java
index fd225db..d0a647a 100644
--- a/src/com/android/calendarcommon2/RecurrenceProcessor.java
+++ b/src/com/android/calendarcommon2/RecurrenceProcessor.java
@@ -1235,7 +1235,7 @@
     private static final int[] DAYS_PER_MONTH = { 31, 28, 31, 30, 31, 30, 31,
             31, 30, 31, 30, 31 };
     private static final int[] DAYS_IN_YEAR_PRECEDING_MONTH = { 0, 31, 59, 90,
-        120, 151, 180, 212, 243, 273, 304, 334 };
+        120, 151, 181, 212, 243, 273, 304, 334 };
 
     /**
      * Returns the number of days in the given month of the given year.
diff --git a/tests/src/com/android/calendarcommon2/RecurrenceProcessorTest.java b/tests/src/com/android/calendarcommon2/RecurrenceProcessorTest.java
index af850f8..3503aae 100644
--- a/tests/src/com/android/calendarcommon2/RecurrenceProcessorTest.java
+++ b/tests/src/com/android/calendarcommon2/RecurrenceProcessorTest.java
@@ -2534,4 +2534,30 @@
         Log.i(TAG, "date: " + date.format2445());
         Log.i(TAG, "testPerformanceNormalize() unsafeNormalize() elapsed millis: " + elapsed);
     }
+
+    @SmallTest
+    public void testYearDay() {
+        assertEquals(181, RecurrenceProcessor.yearDay(2019, 6, 1));
+
+        /* compare day of year in non leap year (2019) to leap year (2020). */
+
+        // january 1
+        assertEquals(0, RecurrenceProcessor.yearDay(2019, 0, 1));
+        assertEquals(0, RecurrenceProcessor.yearDay(2020, 0, 1));
+
+        // february 28
+        assertEquals(58, RecurrenceProcessor.yearDay(2019, 1, 28));
+        assertEquals(58, RecurrenceProcessor.yearDay(2020, 1, 28));
+
+        // february 29
+        assertEquals(59, RecurrenceProcessor.yearDay(2020, 1, 29));
+
+        // march 1
+        assertEquals(59, RecurrenceProcessor.yearDay(2019, 2, 1));
+        assertEquals(60, RecurrenceProcessor.yearDay(2020, 2, 1));
+
+        // december 31
+        assertEquals(364, RecurrenceProcessor.yearDay(2019, 11, 31));
+        assertEquals(365, RecurrenceProcessor.yearDay(2020, 11, 31));
+    }
  }