public static DaysWindows weeks(int number, int startDayOfWeek) {
    return new DaysWindows(
        7 * number, DEFAULT_START_DATE.withDayOfWeek(startDayOfWeek), DateTimeZone.UTC);
  }
@Test
  public void testWeeks() throws Exception {
    Map<IntervalWindow, Set<String>> expected = new HashMap<>();

    final List<Long> timestamps =
        Arrays.asList(
            makeTimestamp(2014, 1, 1, 0, 0).getMillis(),
            makeTimestamp(2014, 1, 5, 5, 5).getMillis(),
            makeTimestamp(2014, 1, 8, 0, 0).getMillis(),
            makeTimestamp(2014, 1, 12, 5, 5).getMillis(),
            makeTimestamp(2015, 1, 1, 0, 0).getMillis(),
            makeTimestamp(2015, 1, 6, 5, 5).getMillis());

    expected.put(
        new IntervalWindow(makeTimestamp(2014, 1, 1, 0, 0), makeTimestamp(2014, 1, 8, 0, 0)),
        set(timestamps.get(0), timestamps.get(1)));

    expected.put(
        new IntervalWindow(makeTimestamp(2014, 1, 8, 0, 0), makeTimestamp(2014, 1, 15, 0, 0)),
        set(timestamps.get(2), timestamps.get(3)));

    expected.put(
        new IntervalWindow(makeTimestamp(2014, 12, 31, 0, 0), makeTimestamp(2015, 1, 7, 0, 0)),
        set(timestamps.get(4), timestamps.get(5)));

    assertEquals(
        expected, runWindowFn(CalendarWindows.weeks(1, DateTimeConstants.WEDNESDAY), timestamps));
  }