Skip to content

Commit

Permalink
skip test week with time type in Jan and Dec
Browse files Browse the repository at this point in the history
Signed-off-by: Lantao Jin <[email protected]>
  • Loading branch information
LantaoJin committed Dec 30, 2024
1 parent 9e2defc commit d63d9cc
Showing 1 changed file with 15 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

package org.opensearch.sql.expression.datetime;

import static java.time.temporal.ChronoField.DAY_OF_WEEK;
import static java.time.temporal.ChronoField.ALIGNED_WEEK_OF_YEAR;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.opensearch.sql.data.type.ExprCoreType.LONG;

Expand Down Expand Up @@ -92,19 +92,23 @@ private void datePartWithTimeArgQuery(String part, String time, long expected) {

@Test
public void testExtractDatePartWithTimeType() {
datePartWithTimeArgQuery(
"DAY", timeInput, LocalDate.now(functionProperties.getQueryStartClock()).getDayOfMonth());
LocalDate now = LocalDate.now(functionProperties.getQueryStartClock());

datePartWithTimeArgQuery(
"WEEK",
timeInput,
LocalDate.now(functionProperties.getQueryStartClock()).get(DAY_OF_WEEK));
datePartWithTimeArgQuery("DAY", timeInput, now.getDayOfMonth());

datePartWithTimeArgQuery(
"MONTH", timeInput, LocalDate.now(functionProperties.getQueryStartClock()).getMonthValue());
// To avoid flaky test, skip the testing in December and January because the WEEK is ISO 8601
// week-of-week-based-year which is considered to start on a Monday and week 1 is the first week
// with >3 days. it is possible for early-January dates to be part of the 52nd or 53rd week of
// the previous year, and for late-December dates to be part of the first week of the next year.
// For example, 2005-01-02 is part of the 53rd week of year 2004, while 2012-12-31 is part of
// the first week of 2013
if (now.getMonthValue() != 1 && now.getMonthValue() != 12) {
datePartWithTimeArgQuery("WEEK", datetimeInput, now.get(ALIGNED_WEEK_OF_YEAR));
}

datePartWithTimeArgQuery(
"YEAR", timeInput, LocalDate.now(functionProperties.getQueryStartClock()).getYear());
datePartWithTimeArgQuery("MONTH", timeInput, now.getMonthValue());

datePartWithTimeArgQuery("YEAR", timeInput, now.getYear());
}

@ParameterizedTest(name = "{0}")
Expand Down

0 comments on commit d63d9cc

Please sign in to comment.