Added positionOf() method to DaysOfWeek
This commit is contained in:
parent
4de02ed353
commit
9aa47ccfbe
@ -3,6 +3,7 @@ package com.philliphsu.clock2;
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.support.annotation.VisibleForTesting;
|
||||
import android.util.Log;
|
||||
|
||||
import java.util.Arrays;
|
||||
@ -57,11 +58,21 @@ public class DaysOfWeek {
|
||||
return sAppContext.getString(LABELS_RES[weekDay]);
|
||||
}
|
||||
|
||||
/** @return the week day whose order is specified by {@code ordinalDay} */
|
||||
public int weekDay(int ordinalDay) {
|
||||
if (ordinalDay < 0 || ordinalDay > 6)
|
||||
/** @return the week day at {@code position} within the user-defined week */
|
||||
public int weekDay(int position) {
|
||||
if (position < 0 || position > 6)
|
||||
throw new ArrayIndexOutOfBoundsException("Ordinal day out of range");
|
||||
return DAYS[ordinalDay];
|
||||
return DAYS[position];
|
||||
}
|
||||
|
||||
/** @return the position of the {@code weekDay} within the user-defined week */
|
||||
public int positionOf(int weekDay) {
|
||||
if (weekDay < SUNDAY || weekDay > SATURDAY)
|
||||
throw new ArrayIndexOutOfBoundsException("Week day ("+weekDay+") out of range");
|
||||
for (int i = 0; i < DAYS.length; i++)
|
||||
if (DAYS[i] == weekDay)
|
||||
return i;
|
||||
return -1;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -71,7 +82,8 @@ public class DaysOfWeek {
|
||||
+ "}";
|
||||
}
|
||||
|
||||
private DaysOfWeek(int firstDayOfWeek) {
|
||||
@VisibleForTesting
|
||||
DaysOfWeek(int firstDayOfWeek) {
|
||||
if (firstDayOfWeek != SATURDAY && firstDayOfWeek != SUNDAY && firstDayOfWeek != MONDAY)
|
||||
throw new IllegalArgumentException("Invalid first day of week: " + firstDayOfWeek);
|
||||
DAYS[0] = firstDayOfWeek;
|
||||
|
||||
74
app/src/test/java/com/philliphsu/clock2/DaysOfWeekTest.java
Normal file
74
app/src/test/java/com/philliphsu/clock2/DaysOfWeekTest.java
Normal file
@ -0,0 +1,74 @@
|
||||
package com.philliphsu.clock2;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import static com.philliphsu.clock2.DaysOfWeek.*;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
/**
|
||||
* Created by Phillip Hsu on 6/1/2016.
|
||||
*/
|
||||
public class DaysOfWeekTest {
|
||||
|
||||
@Test
|
||||
public void testSundayAsFirstDayOfWeek() {
|
||||
DaysOfWeek days = new DaysOfWeek(SUNDAY);
|
||||
assertEquals(days.weekDay(0), SUNDAY);
|
||||
assertEquals(days.weekDay(1), MONDAY);
|
||||
assertEquals(days.weekDay(2), TUESDAY);
|
||||
assertEquals(days.weekDay(3), WEDNESDAY);
|
||||
assertEquals(days.weekDay(4), THURSDAY);
|
||||
assertEquals(days.weekDay(5), FRIDAY);
|
||||
assertEquals(days.weekDay(6), SATURDAY);
|
||||
|
||||
assertEquals(days.positionOf(SUNDAY), 0);
|
||||
assertEquals(days.positionOf(MONDAY), 1);
|
||||
assertEquals(days.positionOf(TUESDAY), 2);
|
||||
assertEquals(days.positionOf(WEDNESDAY), 3);
|
||||
assertEquals(days.positionOf(THURSDAY), 4);
|
||||
assertEquals(days.positionOf(FRIDAY), 5);
|
||||
assertEquals(days.positionOf(SATURDAY), 6);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSaturdayAsFirstDayOfWeek() {
|
||||
DaysOfWeek days = new DaysOfWeek(SATURDAY);
|
||||
assertEquals(days.weekDay(0), SATURDAY);
|
||||
assertEquals(days.weekDay(1), SUNDAY);
|
||||
assertEquals(days.weekDay(2), MONDAY);
|
||||
assertEquals(days.weekDay(3), TUESDAY);
|
||||
assertEquals(days.weekDay(4), WEDNESDAY);
|
||||
assertEquals(days.weekDay(5), THURSDAY);
|
||||
assertEquals(days.weekDay(6), FRIDAY);
|
||||
|
||||
assertEquals(days.positionOf(SUNDAY), 1);
|
||||
assertEquals(days.positionOf(MONDAY), 2);
|
||||
assertEquals(days.positionOf(TUESDAY), 3);
|
||||
assertEquals(days.positionOf(WEDNESDAY), 4);
|
||||
assertEquals(days.positionOf(THURSDAY), 5);
|
||||
assertEquals(days.positionOf(FRIDAY), 6);
|
||||
assertEquals(days.positionOf(SATURDAY), 0);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMondayAsFirstDayOfWeek() {
|
||||
DaysOfWeek days = new DaysOfWeek(MONDAY);
|
||||
assertEquals(days.weekDay(0), MONDAY);
|
||||
assertEquals(days.weekDay(1), TUESDAY);
|
||||
assertEquals(days.weekDay(2), WEDNESDAY);
|
||||
assertEquals(days.weekDay(3), THURSDAY);
|
||||
assertEquals(days.weekDay(4), FRIDAY);
|
||||
assertEquals(days.weekDay(5), SATURDAY);
|
||||
assertEquals(days.weekDay(6), SUNDAY);
|
||||
|
||||
assertEquals(days.positionOf(SUNDAY), 6);
|
||||
assertEquals(days.positionOf(MONDAY), 0);
|
||||
assertEquals(days.positionOf(TUESDAY), 1);
|
||||
assertEquals(days.positionOf(WEDNESDAY), 2);
|
||||
assertEquals(days.positionOf(THURSDAY), 3);
|
||||
assertEquals(days.positionOf(FRIDAY), 4);
|
||||
assertEquals(days.positionOf(SATURDAY), 5);
|
||||
|
||||
System.out.println(days.toString());
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user