mirror of
https://github.com/ETLCPP/etl.git
synced 2026-10-28 18:07:10 +08:00
Added arithmetic tests
This commit is contained in:
parent
30281b2a1d
commit
afdb37715d
@ -121,18 +121,18 @@ namespace
|
||||
//*************************************************************************
|
||||
TEST(test_year_month_day_compare)
|
||||
{
|
||||
Chrono::year_month_day ym1{Chrono::year(2000), Chrono::January, Chrono::day(1)};
|
||||
Chrono::year_month_day ym2{Chrono::year(2001), Chrono::January, Chrono::day(1)};
|
||||
Chrono::year_month_day ym3{Chrono::year(2000), Chrono::February, Chrono::day(1)};
|
||||
Chrono::year_month_day ym4{Chrono::year(2000), Chrono::January, Chrono::day(2)};
|
||||
Chrono::year_month_day ymd1{Chrono::year(2000), Chrono::January, Chrono::day(1)};
|
||||
Chrono::year_month_day ymd2{Chrono::year(2001), Chrono::January, Chrono::day(1)};
|
||||
Chrono::year_month_day ymd3{Chrono::year(2000), Chrono::February, Chrono::day(1)};
|
||||
Chrono::year_month_day ymd4{Chrono::year(2000), Chrono::January, Chrono::day(2)};
|
||||
|
||||
CHECK_TRUE(ym1.compare(ym1) == 0);
|
||||
CHECK_TRUE(ym1.compare(ym2) == -1);
|
||||
CHECK_TRUE(ym2.compare(ym1) == 1);
|
||||
CHECK_TRUE(ym1.compare(ym3) == -1);
|
||||
CHECK_TRUE(ym3.compare(ym1) == 1);
|
||||
CHECK_TRUE(ym1.compare(ym4) == -1);
|
||||
CHECK_TRUE(ym4.compare(ym1) == 1);
|
||||
CHECK_TRUE(ymd1.compare(ymd1) == 0);
|
||||
CHECK_TRUE(ymd1.compare(ymd2) == -1);
|
||||
CHECK_TRUE(ymd2.compare(ymd1) == 1);
|
||||
CHECK_TRUE(ymd1.compare(ymd3) == -1);
|
||||
CHECK_TRUE(ymd3.compare(ymd1) == 1);
|
||||
CHECK_TRUE(ymd1.compare(ymd4) == -1);
|
||||
CHECK_TRUE(ymd4.compare(ymd1) == 1);
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -156,6 +156,48 @@ namespace
|
||||
CHECK_EQUAL((unsigned)expected.day(), (unsigned)ymd.day());
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_year_month_day_member_arithmetic_operators)
|
||||
{
|
||||
Chrono::year_month_day ymd{Chrono::year(2000), Chrono::January, Chrono::day(1)};
|
||||
|
||||
ymd += Chrono::years(10);
|
||||
CHECK_TRUE(Chrono::year_month_day(Chrono::year(2010), Chrono::January, Chrono::day(1)) == ymd);
|
||||
|
||||
ymd -= Chrono::years(5);
|
||||
CHECK_TRUE(Chrono::year_month_day(Chrono::year(2005), Chrono::January, Chrono::day(1)) == ymd);
|
||||
|
||||
ymd += Chrono::months(10);
|
||||
CHECK_TRUE(Chrono::year_month_day(Chrono::year(2005), Chrono::November, Chrono::day(1)) == ymd);
|
||||
|
||||
ymd -= Chrono::months(5);
|
||||
CHECK_TRUE(Chrono::year_month_day(Chrono::year(2005), Chrono::June, Chrono::day(1)) == ymd);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_year_month_day_non_member_arithmetic_operators)
|
||||
{
|
||||
Chrono::year_month_day ymd{Chrono::year(2000), Chrono::January, Chrono::day(1)};
|
||||
|
||||
ymd = ymd + Chrono::years(10);
|
||||
CHECK_TRUE(Chrono::year_month_day(Chrono::year(2010), Chrono::January, Chrono::day(1)) == ymd);
|
||||
|
||||
ymd = Chrono::years(10) + ymd;
|
||||
CHECK_TRUE(Chrono::year_month_day(Chrono::year(2020), Chrono::January, Chrono::day(1)) == ymd);
|
||||
|
||||
ymd = ymd - Chrono::years(5);
|
||||
CHECK_TRUE(Chrono::year_month_day(Chrono::year(2015), Chrono::January, Chrono::day(1)) == ymd);
|
||||
|
||||
ymd = ymd + Chrono::months(3);
|
||||
CHECK_TRUE(Chrono::year_month_day(Chrono::year(2015), Chrono::April, Chrono::day(1)) == ymd);
|
||||
|
||||
ymd = Chrono::months(3) + ymd;
|
||||
CHECK_TRUE(Chrono::year_month_day(Chrono::year(2015), Chrono::July, Chrono::day(1)) == ymd);
|
||||
|
||||
ymd = ymd - Chrono::months(5);
|
||||
CHECK_TRUE(Chrono::year_month_day(Chrono::year(2015), Chrono::February, Chrono::day(1)) == ymd);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_year_month_day_equality_operator)
|
||||
{
|
||||
|
||||
@ -102,6 +102,48 @@ namespace
|
||||
CHECK_EQUAL(31, (unsigned)year_month_day_last_2011_december.day());
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_year_month_day_last_member_arithmetic_operators)
|
||||
{
|
||||
Chrono::year_month_day_last ymdl(Chrono::year(2000), Chrono::month_day_last(Chrono::January));
|
||||
|
||||
ymdl += Chrono::years(10);
|
||||
CHECK_TRUE(Chrono::year_month_day_last(Chrono::year(2010), Chrono::month_day_last(Chrono::January)) == ymdl);
|
||||
|
||||
ymdl -= Chrono::years(5);
|
||||
CHECK_TRUE(Chrono::year_month_day_last(Chrono::year(2005), Chrono::month_day_last(Chrono::January)) == ymdl);
|
||||
|
||||
ymdl += Chrono::months(10);
|
||||
CHECK_TRUE(Chrono::year_month_day_last(Chrono::year(2005), Chrono::month_day_last(Chrono::November)) == ymdl);
|
||||
|
||||
ymdl -= Chrono::months(5);
|
||||
CHECK_TRUE(Chrono::year_month_day_last(Chrono::year(2005), Chrono::month_day_last(Chrono::June)) == ymdl);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_year_month_day_last_non_member_arithmetic_operators)
|
||||
{
|
||||
Chrono::year_month_day_last ymdl(Chrono::year(2000), Chrono::month_day_last(Chrono::January));
|
||||
|
||||
ymdl = ymdl + Chrono::years(10);
|
||||
CHECK_TRUE(Chrono::year_month_day_last(Chrono::year(2010), Chrono::month_day_last(Chrono::January)) == ymdl);
|
||||
|
||||
ymdl = Chrono::years(10) + ymdl;
|
||||
CHECK_TRUE(Chrono::year_month_day_last(Chrono::year(2020), Chrono::month_day_last(Chrono::January)) == ymdl);
|
||||
|
||||
ymdl = ymdl - Chrono::years(5);
|
||||
CHECK_TRUE(Chrono::year_month_day_last(Chrono::year(2015), Chrono::month_day_last(Chrono::January)) == ymdl);
|
||||
|
||||
ymdl = ymdl + Chrono::months(3);
|
||||
CHECK_TRUE(Chrono::year_month_day_last(Chrono::year(2015), Chrono::month_day_last(Chrono::April)) == ymdl);
|
||||
|
||||
ymdl = Chrono::months(3) + ymdl;
|
||||
CHECK_TRUE(Chrono::year_month_day_last(Chrono::year(2015), Chrono::month_day_last(Chrono::July)) == ymdl);
|
||||
|
||||
ymdl = ymdl - Chrono::months(5);
|
||||
CHECK_TRUE(Chrono::year_month_day_last(Chrono::year(2015), Chrono::month_day_last(Chrono::February)) == ymdl);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_year_month_day_last_comparison_operators)
|
||||
{
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user