[JaEra] Calc: subtracting 1-year from date during Reiwa 1 yields unexpected results.
This commit is contained in:
Eric Wong
2019-04-24 13:37:49 -07:00
committed by GitHub
parent b03a026f6c
commit 1dee9dc984
2 changed files with 86 additions and 0 deletions

View File

@@ -664,5 +664,57 @@ namespace DateCalculationUnitTests
VERIFY_IS_TRUE(actualValue.find(expectedValue) != wstring::npos, message.c_str());
}
}
TEST_METHOD(JaEraTransitionAddition)
{
auto viewModel = make_unique<DateCalculationEngine>(CalendarIdentifiers::Japanese);
auto cal = ref new Calendar();
// Showa period ended in Jan 1989.
cal->Year = 1989;
cal->Month = 1;
cal->Day = 1;
auto startTime = cal->GetDateTime();
cal->Year = 1990;
cal->Month = 1;
cal->Day = 1;
// Expect that adding a year across boundaries adds the equivalent in the Gregorian calendar.
auto expectedResult = cal->GetDateTime();
DateDifference duration;
duration.year = 1;
DateTime actualResult;
viewModel->AddDuration(startTime, duration, &actualResult);
VERIFY_ARE_EQUAL(expectedResult.UniversalTime, actualResult.UniversalTime);
}
TEST_METHOD(JaEraTransitionSubtraction)
{
auto viewModel = make_unique<DateCalculationEngine>(CalendarIdentifiers::Japanese);
auto cal = ref new Calendar();
// Showa period ended in Jan 1989.
cal->Year = 1990;
cal->Month = 1;
cal->Day = 1;
auto startTime = cal->GetDateTime();
cal->Year = 1989;
cal->Month = 1;
cal->Day = 1;
// Expect that adding a year across boundaries adds the equivalent in the Gregorian calendar.
auto expectedResult = cal->GetDateTime();
DateDifference duration;
duration.year = 1;
DateTime actualResult;
viewModel->SubtractDuration(startTime, duration, &actualResult);
VERIFY_ARE_EQUAL(expectedResult.UniversalTime, actualResult.UniversalTime);
}
};
}