mirror of
https://bitbucket.org/smil3y/kdelibs.git
synced 2025-02-23 18:32:49 +00:00
3246 lines
159 KiB
C++
3246 lines
159 KiB
C++
/*
|
||
Copyright 2005 Brad Hards <bradh@kde.org>
|
||
Copyright 2007, 2009, 2010, 2011 John Layt <john@layt.net>
|
||
|
||
This library is free software; you can redistribute it and/or
|
||
modify it under the terms of the GNU Library General Public
|
||
License as published by the Free Software Foundation; either
|
||
version 2 of the License, or (at your option) any later version.
|
||
|
||
This library is distributed in the hope that it will be useful,
|
||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||
Library General Public License for more details.
|
||
|
||
You should have received a copy of the GNU Library General Public License
|
||
along with this library; see the file COPYING.LIB. If not, write to
|
||
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||
Boston, MA 02110-1301, USA.
|
||
*/
|
||
|
||
#include "kcalendartest.h"
|
||
|
||
#include <locale.h>
|
||
|
||
#include <config.h>
|
||
|
||
#include <QtCore/QString>
|
||
|
||
#include "qtest_kde.h"
|
||
#include "kcalendarsystem.h"
|
||
#include "klocalizeddate.h"
|
||
#include "kglobal.h"
|
||
#include "kdebug.h"
|
||
#include "kstandarddirs.h"
|
||
#include "kconfiggroup.h"
|
||
|
||
#include "moc_kcalendartest.cpp"
|
||
|
||
QTEST_KDEMAIN_CORE_WITH_COMPONENTNAME(KCalendarTest, "kdecalendarsystems" /*so that the .po exists*/)
|
||
|
||
void KCalendarTest::testTypes()
|
||
{
|
||
const KCalendarSystem *calendar;
|
||
calendar = KCalendarSystem::create("coptic");
|
||
QCOMPARE(calendar->calendarType(), QString("coptic"));
|
||
QCOMPARE(calendar->calendarSystem(), KLocale::CopticCalendar);
|
||
delete calendar;
|
||
calendar = KCalendarSystem::create("ethiopian");
|
||
QCOMPARE(calendar->calendarType(), QString("ethiopian"));
|
||
QCOMPARE(calendar->calendarSystem(), KLocale::EthiopianCalendar);
|
||
delete calendar;
|
||
calendar = KCalendarSystem::create("gregorian");
|
||
QCOMPARE(calendar->calendarType(), QString("gregorian"));
|
||
QCOMPARE(calendar->calendarSystem(), KLocale::QDateCalendar);
|
||
delete calendar;
|
||
calendar = KCalendarSystem::create("gregorian-proleptic");
|
||
QCOMPARE(calendar->calendarType(), QString("gregorian-proleptic"));
|
||
QCOMPARE(calendar->calendarSystem(), KLocale::GregorianCalendar);
|
||
delete calendar;
|
||
calendar = KCalendarSystem::create("hebrew");
|
||
QCOMPARE(calendar->calendarType(), QString("hebrew"));
|
||
QCOMPARE(calendar->calendarSystem(), KLocale::HebrewCalendar);
|
||
delete calendar;
|
||
calendar = KCalendarSystem::create("hijri");
|
||
QCOMPARE(calendar->calendarType(), QString("hijri"));
|
||
QCOMPARE(calendar->calendarSystem(), KLocale::IslamicCivilCalendar);
|
||
delete calendar;
|
||
calendar = KCalendarSystem::create("indian-national");
|
||
QCOMPARE(calendar->calendarType(), QString("indian-national"));
|
||
QCOMPARE(calendar->calendarSystem(), KLocale::IndianNationalCalendar);
|
||
delete calendar;
|
||
calendar = KCalendarSystem::create("jalali");
|
||
QCOMPARE(calendar->calendarType(), QString("jalali"));
|
||
QCOMPARE(calendar->calendarSystem(), KLocale::JalaliCalendar);
|
||
delete calendar;
|
||
calendar = KCalendarSystem::create("japanese");
|
||
QCOMPARE(calendar->calendarType(), QString("japanese"));
|
||
QCOMPARE(calendar->calendarSystem(), KLocale::JapaneseCalendar);
|
||
delete calendar;
|
||
calendar = KCalendarSystem::create("julian");
|
||
QCOMPARE(calendar->calendarType(), QString("julian"));
|
||
QCOMPARE(calendar->calendarSystem(), KLocale::JulianCalendar);
|
||
delete calendar;
|
||
calendar = KCalendarSystem::create("minguo");
|
||
QCOMPARE(calendar->calendarType(), QString("minguo"));
|
||
QCOMPARE(calendar->calendarSystem(), KLocale::MinguoCalendar);
|
||
delete calendar;
|
||
calendar = KCalendarSystem::create("thai");
|
||
QCOMPARE(calendar->calendarType(), QString("thai"));
|
||
QCOMPARE(calendar->calendarSystem(), KLocale::ThaiCalendar);
|
||
delete calendar;
|
||
calendar = KCalendarSystem::create("invalid");
|
||
QCOMPARE(calendar->calendarType(), QString("gregorian"));
|
||
QCOMPARE(calendar->calendarSystem(), KLocale::QDateCalendar);
|
||
delete calendar;
|
||
calendar = KCalendarSystem::create(QString());
|
||
QCOMPARE(calendar->calendarType(), QString("gregorian"));
|
||
QCOMPARE(calendar->calendarSystem(), KLocale::QDateCalendar);
|
||
delete calendar;
|
||
|
||
calendar = KCalendarSystem::create(KLocale::QDateCalendar);
|
||
QCOMPARE(calendar->calendarType(), QString("gregorian"));
|
||
QCOMPARE(calendar->calendarSystem(), KLocale::QDateCalendar);
|
||
delete calendar;
|
||
calendar = KCalendarSystem::create(KLocale::CopticCalendar);
|
||
QCOMPARE(calendar->calendarType(), QString("coptic"));
|
||
QCOMPARE(calendar->calendarSystem(), KLocale::CopticCalendar);
|
||
delete calendar;
|
||
calendar = KCalendarSystem::create(KLocale::EthiopianCalendar);
|
||
QCOMPARE(calendar->calendarType(), QString("ethiopian"));
|
||
QCOMPARE(calendar->calendarSystem(), KLocale::EthiopianCalendar);
|
||
delete calendar;
|
||
calendar = KCalendarSystem::create(KLocale::GregorianCalendar);
|
||
QCOMPARE(calendar->calendarType(), QString("gregorian-proleptic"));
|
||
QCOMPARE(calendar->calendarSystem(), KLocale::GregorianCalendar);
|
||
delete calendar;
|
||
calendar = KCalendarSystem::create(KLocale::HebrewCalendar);
|
||
QCOMPARE(calendar->calendarType(), QString("hebrew"));
|
||
QCOMPARE(calendar->calendarSystem(), KLocale::HebrewCalendar);
|
||
delete calendar;
|
||
calendar = KCalendarSystem::create(KLocale::IslamicCivilCalendar);
|
||
QCOMPARE(calendar->calendarType(), QString("hijri"));
|
||
QCOMPARE(calendar->calendarSystem(), KLocale::IslamicCivilCalendar);
|
||
delete calendar;
|
||
calendar = KCalendarSystem::create(KLocale::IndianNationalCalendar);
|
||
QCOMPARE(calendar->calendarType(), QString("indian-national"));
|
||
QCOMPARE(calendar->calendarSystem(), KLocale::IndianNationalCalendar);
|
||
delete calendar;
|
||
calendar = KCalendarSystem::create(KLocale::JalaliCalendar);
|
||
QCOMPARE(calendar->calendarType(), QString("jalali"));
|
||
QCOMPARE(calendar->calendarSystem(), KLocale::JalaliCalendar);
|
||
delete calendar;
|
||
calendar = KCalendarSystem::create(KLocale::JapaneseCalendar);
|
||
QCOMPARE(calendar->calendarType(), QString("japanese"));
|
||
QCOMPARE(calendar->calendarSystem(), KLocale::JapaneseCalendar);
|
||
delete calendar;
|
||
calendar = KCalendarSystem::create(KLocale::JulianCalendar);
|
||
QCOMPARE(calendar->calendarType(), QString("julian"));
|
||
QCOMPARE(calendar->calendarSystem(), KLocale::JulianCalendar);
|
||
delete calendar;
|
||
calendar = KCalendarSystem::create(KLocale::MinguoCalendar);
|
||
QCOMPARE(calendar->calendarType(), QString("minguo"));
|
||
QCOMPARE(calendar->calendarSystem(), KLocale::MinguoCalendar);
|
||
delete calendar;
|
||
calendar = KCalendarSystem::create(KLocale::ThaiCalendar);
|
||
QCOMPARE(calendar->calendarType(), QString("thai"));
|
||
QCOMPARE(calendar->calendarSystem(), KLocale::ThaiCalendar);
|
||
delete calendar;
|
||
|
||
QStringList lst = KCalendarSystem::calendarSystems();
|
||
QCOMPARE(lst.count(), 12);
|
||
QVERIFY(lst.contains("coptic"));
|
||
QVERIFY(lst.contains("ethiopian"));
|
||
QVERIFY(lst.contains("gregorian"));
|
||
QVERIFY(lst.contains("gregorian-proleptic"));
|
||
QVERIFY(lst.contains("hebrew"));
|
||
QVERIFY(lst.contains("hijri"));
|
||
QVERIFY(lst.contains("indian-national"));
|
||
QVERIFY(lst.contains("jalali"));
|
||
QVERIFY(lst.contains("japanese"));
|
||
QVERIFY(lst.contains("julian"));
|
||
QVERIFY(lst.contains("minguo"));
|
||
QVERIFY(lst.contains("thai"));
|
||
|
||
QList<KLocale::CalendarSystem> list = KCalendarSystem::calendarSystemsList();
|
||
QCOMPARE(list.count(), 12);
|
||
QVERIFY(list.contains(KLocale::QDateCalendar));
|
||
QVERIFY(list.contains(KLocale::CopticCalendar));
|
||
QVERIFY(list.contains(KLocale::EthiopianCalendar));
|
||
QVERIFY(list.contains(KLocale::GregorianCalendar));
|
||
QVERIFY(list.contains(KLocale::HebrewCalendar));
|
||
QVERIFY(list.contains(KLocale::IslamicCivilCalendar));
|
||
QVERIFY(list.contains(KLocale::IndianNationalCalendar));
|
||
QVERIFY(list.contains(KLocale::JalaliCalendar));
|
||
QVERIFY(list.contains(KLocale::JapaneseCalendar));
|
||
QVERIFY(list.contains(KLocale::JulianCalendar));
|
||
QVERIFY(list.contains(KLocale::MinguoCalendar));
|
||
QVERIFY(list.contains(KLocale::ThaiCalendar));
|
||
|
||
QCOMPARE(KCalendarSystem::calendarLabel("coptic"), QString("Coptic"));
|
||
QCOMPARE(KCalendarSystem::calendarLabel("ethiopian"), QString("Ethiopian"));
|
||
QCOMPARE(KCalendarSystem::calendarLabel("gregorian"), QString("Gregorian"));
|
||
QCOMPARE(KCalendarSystem::calendarLabel("gregorian-proleptic"), QString("Gregorian (Proleptic)"));
|
||
QCOMPARE(KCalendarSystem::calendarLabel("hebrew"), QString("Hebrew"));
|
||
QCOMPARE(KCalendarSystem::calendarLabel("hijri"), QString("Islamic / Hijri (Civil)"));
|
||
QCOMPARE(KCalendarSystem::calendarLabel("indian-national"), QString("Indian National"));
|
||
QCOMPARE(KCalendarSystem::calendarLabel("jalali"), QString("Jalali"));
|
||
QCOMPARE(KCalendarSystem::calendarLabel("japanese"), QString("Japanese"));
|
||
QCOMPARE(KCalendarSystem::calendarLabel("julian"), QString("Julian"));
|
||
QCOMPARE(KCalendarSystem::calendarLabel("minguo"), QString("Taiwanese"));
|
||
QCOMPARE(KCalendarSystem::calendarLabel("thai"), QString("Thai"));
|
||
|
||
QCOMPARE(KCalendarSystem::calendarLabel(KLocale::QDateCalendar), QString("Gregorian"));
|
||
QCOMPARE(KCalendarSystem::calendarLabel(KLocale::CopticCalendar), QString("Coptic"));
|
||
QCOMPARE(KCalendarSystem::calendarLabel(KLocale::EthiopianCalendar), QString("Ethiopian"));
|
||
QCOMPARE(KCalendarSystem::calendarLabel(KLocale::GregorianCalendar), QString("Gregorian (Proleptic)"));
|
||
QCOMPARE(KCalendarSystem::calendarLabel(KLocale::HebrewCalendar), QString("Hebrew"));
|
||
QCOMPARE(KCalendarSystem::calendarLabel(KLocale::IslamicCivilCalendar), QString("Islamic / Hijri (Civil)"));
|
||
QCOMPARE(KCalendarSystem::calendarLabel(KLocale::IndianNationalCalendar), QString("Indian National"));
|
||
QCOMPARE(KCalendarSystem::calendarLabel(KLocale::JalaliCalendar), QString("Jalali"));
|
||
QCOMPARE(KCalendarSystem::calendarLabel(KLocale::JapaneseCalendar), QString("Japanese"));
|
||
QCOMPARE(KCalendarSystem::calendarLabel(KLocale::JulianCalendar), QString("Julian"));
|
||
QCOMPARE(KCalendarSystem::calendarLabel(KLocale::MinguoCalendar), QString("Taiwanese"));
|
||
QCOMPARE(KCalendarSystem::calendarLabel(KLocale::ThaiCalendar), QString("Thai"));
|
||
|
||
}
|
||
|
||
void KCalendarTest::testFormatDate()
|
||
{
|
||
KLocale *locale = new KLocale(*KGlobal::locale());
|
||
locale->setDateFormatShort("%y-%m-%d");
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::QDateCalendar, locale);
|
||
|
||
//Test default settings
|
||
QDate testDate(2005, 10, 20);
|
||
QCOMPARE(calendar->formatDate(testDate, "%Y"), QString("2005"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%C"), QString("20"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%y"), QString("05"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%m"), QString("10"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%n"), QString("10"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%d"), QString("20"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%e"), QString("20"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%B"), QString("October"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%b"), QString("Oct"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%h"), QString("Oct"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%A"), QString("Thursday"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%a"), QString("Thu"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%j"), QString("293"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%V"), QString("42"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%G"), QString("2005"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%g"), QString("05"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%u"), QString("4"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%D"), QString("10/20/05"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%F"), QString("2005-10-20"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%x"), QString("05-10-20"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%%"), QString("%"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%t"), QString("\t"));
|
||
|
||
QCOMPARE(calendar->formatDate(testDate, "-%Y-%C-%y-%m-%n-%d-%e-%B-%b-%h-%A-%a-%j-%V-%G-%g-%u:%D:%F:%x:%%-%t-"),
|
||
QString("-2005-20-05-10-10-20-20-October-Oct-Oct-Thursday-Thu-293-42-2005-05-4:10/20/05:2005-10-20:05-10-20:%-\t-"));
|
||
|
||
//Test the minimum widths are respected
|
||
QCOMPARE(calendar->formatDate(testDate, "%1Y"), QString("2005"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%1C"), QString("20"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%1y"), QString("05"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%1m"), QString("10"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%1n"), QString("10"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%1d"), QString("20"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%1e"), QString("20"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%01B"), QString("October"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%01b"), QString("Oct"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%01h"), QString("Oct"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%01A"), QString("Thursday"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%01a"), QString("Thu"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%1j"), QString("293"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%1V"), QString("42"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%1G"), QString("2005"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%1g"), QString("05"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%1u"), QString("4"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%1D"), QString("10/20/05"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%1F"), QString("2005-10-20"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%1x"), QString("05-10-20"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%1%"), QString("%"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%1t"), QString("\t"));
|
||
|
||
testDate.setDate(2005, 1, 2);
|
||
|
||
//Test various padding options with minimum width
|
||
QCOMPARE(calendar->formatDate(testDate, "%"), QString(""));
|
||
QCOMPARE(calendar->formatDate(testDate, "%m"), QString("01"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%n"), QString("1"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%d"), QString("02"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%e"), QString("2"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%j"), QString("002"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_m"), QString(" 1"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_n"), QString("1"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_d"), QString(" 2"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_e"), QString("2"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_j"), QString(" 2"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-m"), QString("1"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-n"), QString("1"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-d"), QString("2"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-e"), QString("2"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-j"), QString("2"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%0m"), QString("01"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%0n"), QString("1"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%0d"), QString("02"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%0e"), QString("2"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%0j"), QString("002"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-_j"), QString(" 2"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_-j"), QString("2"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-_0j"), QString("002"));
|
||
|
||
//Test various padding options with width override
|
||
QCOMPARE(calendar->formatDate(testDate, "%1m"), QString("01"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-05m"), QString("00001"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%10m"), QString("0000000001"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%15m"), QString("000000000000001"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-5m"), QString("1"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_5m"), QString(" 1"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_15m"), QString(" 1"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%1B"), QString("January"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%15B"), QString(" January"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-15B"), QString("January"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_15B"), QString(" January"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%015B"), QString("00000000January"));
|
||
|
||
//Test week number in previous year
|
||
QCOMPARE(calendar->formatDate(testDate, "%V"), QString("53"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%G"), QString("2004"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%g"), QString("04"));
|
||
|
||
//test case overrides
|
||
QCOMPARE(calendar->formatDate(testDate, "%B"), QString("January"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%^B"), QString("JANUARY"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%#B"), QString("JANUARY"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%m"), QString("01"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%^m"), QString("01"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%#m"), QString("01"));
|
||
|
||
//Test various year options
|
||
|
||
testDate.setDate(789, 1, 1);
|
||
QCOMPARE(calendar->formatDate(testDate, "%Y"), QString("0789"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%C"), QString("07"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%y"), QString("89"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-Y"), QString("789"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-C"), QString("7"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-y"), QString("89"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_Y"), QString(" 789"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_C"), QString(" 7"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_y"), QString("89"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%0Y"), QString("0789"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%0C"), QString("07"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%0y"), QString("89"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%EC"), QString("AD"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%Ey"), QString("789"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%EY"), QString("789 AD"));
|
||
|
||
testDate.setDate(709, 1, 1);
|
||
QCOMPARE(calendar->formatDate(testDate, "%Y"), QString("0709"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%C"), QString("07"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%y"), QString("09"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-Y"), QString("709"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-C"), QString("7"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-y"), QString("9"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_Y"), QString(" 709"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_C"), QString(" 7"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_y"), QString(" 9"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%0Y"), QString("0709"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%0C"), QString("07"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%0y"), QString("09"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%EC"), QString("AD"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%Ey"), QString("709"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%EY"), QString("709 AD"));
|
||
|
||
testDate.setDate(89, 1, 1);
|
||
QCOMPARE(calendar->formatDate(testDate, "%Y"), QString("0089"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%C"), QString("00"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%y"), QString("89"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-Y"), QString("89"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-C"), QString("0"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-y"), QString("89"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_Y"), QString(" 89"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_C"), QString(" 0"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_y"), QString("89"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%0Y"), QString("0089"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%0C"), QString("00"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%0y"), QString("89"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%EC"), QString("AD"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%Ey"), QString("89"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%EY"), QString("89 AD"));
|
||
|
||
testDate.setDate(9, 1, 1);
|
||
QCOMPARE(calendar->formatDate(testDate, "%Y"), QString("0009"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%C"), QString("00"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%y"), QString("09"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-Y"), QString("9"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-C"), QString("0"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-y"), QString("9"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_Y"), QString(" 9"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_C"), QString(" 0"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_y"), QString(" 9"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%0Y"), QString("0009"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%0C"), QString("00"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%0y"), QString("09"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%EC"), QString("AD"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%Ey"), QString("9"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%EY"), QString("9 AD"));
|
||
|
||
testDate.setDate(-9, 1, 1);
|
||
QCOMPARE(calendar->formatDate(testDate, "%Y"), QString("-0009"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%C"), QString("-00"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%y"), QString("-09"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-Y"), QString("-9"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-C"), QString("-0"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-y"), QString("-9"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_Y"), QString(" -9"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_C"), QString("-0"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_y"), QString("-9"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%0Y"), QString("-0009"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%0C"), QString("-00"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%0y"), QString("-09"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%EC"), QString("BC"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%Ey"), QString("9"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%EY"), QString("9 BC"));
|
||
|
||
testDate.setDate(-89, 1, 1);
|
||
QCOMPARE(calendar->formatDate(testDate, "%Y"), QString("-0089"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%C"), QString("-00"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%y"), QString("-89"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-Y"), QString("-89"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-C"), QString("-0"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-y"), QString("-89"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_Y"), QString(" -89"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_C"), QString("-0"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_y"), QString("-89"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%0Y"), QString("-0089"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%0C"), QString("-00"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%0y"), QString("-89"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%EC"), QString("BC"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%Ey"), QString("89"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%EY"), QString("89 BC"));
|
||
|
||
testDate.setDate(-789, 1, 1);
|
||
QCOMPARE(calendar->formatDate(testDate, "%Y"), QString("-0789"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%C"), QString("-07"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%y"), QString("-89"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-Y"), QString("-789"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-C"), QString("-7"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-y"), QString("-89"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_Y"), QString("-789"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_C"), QString("-7"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_y"), QString("-89"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%0Y"), QString("-0789"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%0C"), QString("-07"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%0y"), QString("-89"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%EC"), QString("BC"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%Ey"), QString("789"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%EY"), QString("789 BC"));
|
||
|
||
testDate.setDate(-709, 1, 1);
|
||
QCOMPARE(calendar->formatDate(testDate, "%Y"), QString("-0709"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%C"), QString("-07"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%y"), QString("-09"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-Y"), QString("-709"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-C"), QString("-7"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-y"), QString("-9"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_Y"), QString("-709"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_C"), QString("-7"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_y"), QString("-9"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%0Y"), QString("-0709"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%0C"), QString("-07"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%0y"), QString("-09"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%EC"), QString("BC"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%Ey"), QString("709"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%EY"), QString("709 BC"));
|
||
|
||
testDate.setDate(-1789, 1, 1);
|
||
QCOMPARE(calendar->formatDate(testDate, "%Y"), QString("-1789"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%C"), QString("-17"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%y"), QString("-89"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-Y"), QString("-1789"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-C"), QString("-17"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-y"), QString("-89"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_Y"), QString("-1789"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_C"), QString("-17"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_y"), QString("-89"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%0Y"), QString("-1789"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%0C"), QString("-17"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%0y"), QString("-89"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%EC"), QString("BC"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%Ey"), QString("1789"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%EY"), QString("1789 BC"));
|
||
|
||
testDate.setDate(-1709, 1, 1);
|
||
QCOMPARE(calendar->formatDate(testDate, "%Y"), QString("-1709"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%C"), QString("-17"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%y"), QString("-09"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-Y"), QString("-1709"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-C"), QString("-17"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%-y"), QString("-9"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_Y"), QString("-1709"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_C"), QString("-17"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%_y"), QString("-9"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%0Y"), QString("-1709"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%0C"), QString("-17"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%0y"), QString("-09"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%EC"), QString("BC"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%Ey"), QString("1709"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%EY"), QString("1709 BC"));
|
||
|
||
// Test POSIX format
|
||
testDate.setDate(2010, 1, 2);
|
||
QCOMPARE(calendar->formatDate(testDate, "%Y-%n-%d", KLocale::KdeFormat), QString("2010-1-02"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%Y-%n-%d", KLocale::PosixFormat), QString("2010-\n-02"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%e", KLocale::KdeFormat), QString("2"));
|
||
QCOMPARE(calendar->formatDate(testDate, "%e", KLocale::PosixFormat), QString(" 2"));
|
||
|
||
delete calendar;
|
||
delete locale;
|
||
}
|
||
|
||
void KCalendarTest::testFormatUnicode()
|
||
{
|
||
KLocale *locale = new KLocale(*KGlobal::locale());
|
||
locale->setDateFormatShort("%y-%m-%d");
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::QDateCalendar, locale);
|
||
|
||
QDate testDate(2005, 10, 20);
|
||
compareFormatUnicode(calendar, testDate, "yyyy");
|
||
compareFormatUnicode(calendar, testDate, "yy");
|
||
compareFormatUnicode(calendar, testDate, "MMMM");
|
||
compareFormatUnicode(calendar, testDate, "MMM");
|
||
compareFormatUnicode(calendar, testDate, "MM");
|
||
compareFormatUnicode(calendar, testDate, "M");
|
||
compareFormatUnicode(calendar, testDate, "dddd");
|
||
compareFormatUnicode(calendar, testDate, "ddd");
|
||
compareFormatUnicode(calendar, testDate, "dd");
|
||
compareFormatUnicode(calendar, testDate, "d");
|
||
compareFormatUnicode(calendar, testDate, "yyyy-MM-dd");
|
||
|
||
testDate.setDate(-2005, 10, 20);
|
||
compareFormatUnicode(calendar, testDate, "yyyy");
|
||
compareFormatUnicode(calendar, testDate, "yy");
|
||
compareFormatUnicode(calendar, testDate, "MMMM");
|
||
compareFormatUnicode(calendar, testDate, "MMM");
|
||
compareFormatUnicode(calendar, testDate, "MM");
|
||
compareFormatUnicode(calendar, testDate, "M");
|
||
compareFormatUnicode(calendar, testDate, "dddd");
|
||
compareFormatUnicode(calendar, testDate, "ddd");
|
||
compareFormatUnicode(calendar, testDate, "dd");
|
||
compareFormatUnicode(calendar, testDate, "d");
|
||
compareFormatUnicode(calendar, testDate, "yyyy-MM-dd");
|
||
}
|
||
|
||
void KCalendarTest::compareFormatUnicode(const KCalendarSystem *calendar, const QDate &testDate, const QString &testFormat)
|
||
{
|
||
QCOMPARE(calendar->formatDate(testDate, testFormat, KLocale::UnicodeFormat), testDate.toString(testFormat));
|
||
}
|
||
|
||
void KCalendarTest::testReadDate()
|
||
{
|
||
KLocale *locale = new KLocale(*KGlobal::locale());
|
||
locale->setDateFormatShort("%y-%m-%d");
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::QDateCalendar, locale);
|
||
int currentYear = QDate::currentDate().year();
|
||
|
||
//Test default settings
|
||
QDate testDate(2005, 10, 20);
|
||
|
||
//Test Month and Day
|
||
QCOMPARE(calendar->readDate("2005-01-01", "%Y-%m-%d"), QDate(2005, 1, 1));
|
||
QCOMPARE(calendar->readDate("-2005-01-01", "%Y-%m-%d"), QDate(-2005, 1, 1));
|
||
QCOMPARE(calendar->readDate("05-01-01", "%y-%m-%d"), QDate(2005, 1, 1));
|
||
QCOMPARE(calendar->readDate("01-01", "%m-%d"), QDate(currentYear, 1, 1));
|
||
|
||
//Test Era and Year In Era
|
||
QCOMPARE(calendar->readDate("1 1 2005 AD", "%d %m %Ey %EC"), QDate(2005, 1, 1));
|
||
QCOMPARE(calendar->readDate("1 1 2005 Anno Domini", "%d %m %Ey %EC"), QDate(2005, 1, 1));
|
||
QCOMPARE(calendar->readDate("1 1 2005 BC", "%d %m %Ey %EC"), QDate(-2005, 1, 1));
|
||
QCOMPARE(calendar->readDate("1 1 2005 Before Christ", "%d %m %Ey %EC"), QDate(-2005, 1, 1));
|
||
QCOMPARE(calendar->readDate("1 1 2005 AD", "%d %m %EY"), QDate(2005, 1, 1));
|
||
QCOMPARE(calendar->readDate("1 1 2005 Anno Domini", "%d %m %EY"), QDate(2005, 1, 1));
|
||
QCOMPARE(calendar->readDate("1 1 2005 BC", "%d %m %EY"), QDate(-2005, 1, 1));
|
||
QCOMPARE(calendar->readDate("1 1 2005 Before Christ", "%d %m %EY"), QDate(-2005, 1, 1));
|
||
QCOMPARE(calendar->readDate("1 2005 AD January", "%d %Ey %EC %B"), QDate(2005, 1, 1));
|
||
QCOMPARE(calendar->readDate("1 2005 AD January", "%d %EY %B"), QDate(2005, 1, 1));
|
||
QCOMPARE(calendar->readDate("2005 AD January 1", "%Ey %EC %B %d"), QDate(2005, 1, 1));
|
||
QCOMPARE(calendar->readDate("2005 AD January 1", "%EY %B %d"), QDate(2005, 1, 1));
|
||
|
||
//Test Day-of-Year
|
||
QCOMPARE(calendar->readDate("2005-001", "%Y-%j"), QDate(2005, 1, 1));
|
||
QCOMPARE(calendar->readDate("2005-1", "%Y-%j"), QDate(2005, 1, 1));
|
||
QCOMPARE(calendar->readDate("001", "%j"), QDate(currentYear, 1, 1));
|
||
QCOMPARE(calendar->readDate("2005-365", "%Y-%j"), QDate(2005, 12, 31));
|
||
QCOMPARE(calendar->readDate("2000-366", "%Y-%j"), QDate(2000, 12, 31));
|
||
|
||
QCOMPARE(calendar->readDate("2005-000", "%Y-%j"), QDate());
|
||
QCOMPARE(calendar->readDate("2005-366", "%Y-%j"), QDate());
|
||
QCOMPARE(calendar->readDate("2000-367", "%Y-%j"), QDate());
|
||
|
||
//Test Weekday and Month names
|
||
QCOMPARE(calendar->readDate("Monday 2004-01-05", "%A %Y-%m-%d"), QDate(2004, 1, 5));
|
||
QCOMPARE(calendar->readDate("Mon 2004-01-05", "%A %Y-%m-%d"), QDate(2004, 1, 5));
|
||
QCOMPARE(calendar->readDate("Monday 2004-01-05", "%a %Y-%m-%d"), QDate(2004, 1, 5));
|
||
QCOMPARE(calendar->readDate("Mon 2004-01-05", "%a %Y-%m-%d"), QDate(2004, 1, 5));
|
||
|
||
QCOMPARE(calendar->readDate("Sunday 2004-01-11", "%A %Y-%m-%d"), QDate(2004, 1, 11));
|
||
QCOMPARE(calendar->readDate("Sun 2004-01-11", "%A %Y-%m-%d"), QDate(2004, 1, 11));
|
||
QCOMPARE(calendar->readDate("Sunday 2004-01-11", "%a %Y-%m-%d"), QDate(2004, 1, 11));
|
||
QCOMPARE(calendar->readDate("Sun 2004-01-11", "%a %Y-%m-%d"), QDate(2004, 1, 11));
|
||
|
||
QCOMPARE(calendar->readDate("2004 January 01", "%Y %B %d"), QDate(2004, 1, 1));
|
||
QCOMPARE(calendar->readDate("2004 Jan 01", "%Y %B %d"), QDate(2004, 1, 1));
|
||
QCOMPARE(calendar->readDate("2004 January 01", "%Y %b %d"), QDate(2004, 1, 1));
|
||
QCOMPARE(calendar->readDate("2004 Jan 01", "%Y %b %d"), QDate(2004, 1, 1));
|
||
|
||
QCOMPARE(calendar->readDate("2004 December 01", "%Y %B %d"), QDate(2004, 12, 1));
|
||
QCOMPARE(calendar->readDate("2004 Dec 01", "%Y %B %d"), QDate(2004, 12, 1));
|
||
QCOMPARE(calendar->readDate("2004 December 01", "%Y %b %d"), QDate(2004, 12, 1));
|
||
QCOMPARE(calendar->readDate("2004 Dec 01", "%Y %b %d"), QDate(2004, 12, 1));
|
||
|
||
QCOMPARE(calendar->readDate("Wednesday 2004 December 01", "%A %Y %B %d"), QDate(2004, 12, 1));
|
||
QCOMPARE(calendar->readDate("Wed 2004 Dec 01", "%A %Y %B %d"), QDate(2004, 12, 1));
|
||
QCOMPARE(calendar->readDate("Wednesday 2004 December 01", "%a %Y %b %d"), QDate(2004, 12, 1));
|
||
QCOMPARE(calendar->readDate("Wed 2004 Dec 01", "%a %Y %b %d"), QDate(2004, 12, 1));
|
||
|
||
//Test ISO Week and Day-of-Week
|
||
QCOMPARE(calendar->readDate("2004-W01-1", "%Y-W%V-%u"), QDate(2003, 12, 29));
|
||
QCOMPARE(calendar->readDate("2004-W01-2", "%Y-W%V-%u"), QDate(2003, 12, 30));
|
||
QCOMPARE(calendar->readDate("2004-W01-3", "%Y-W%V-%u"), QDate(2003, 12, 31));
|
||
QCOMPARE(calendar->readDate("2004-W01-4", "%Y-W%V-%u"), QDate(2004, 1, 1));
|
||
QCOMPARE(calendar->readDate("2004-W01-5", "%Y-W%V-%u"), QDate(2004, 1, 2));
|
||
QCOMPARE(calendar->readDate("2004-W01-6", "%Y-W%V-%u"), QDate(2004, 1, 3));
|
||
QCOMPARE(calendar->readDate("2004-W01-7", "%Y-W%V-%u"), QDate(2004, 1, 4));
|
||
|
||
QCOMPARE(calendar->readDate("2004-W24-1", "%Y-W%V-%u"), QDate(2004, 6, 7));
|
||
QCOMPARE(calendar->readDate("2004-W24-2", "%Y-W%V-%u"), QDate(2004, 6, 8));
|
||
QCOMPARE(calendar->readDate("2004-W24-3", "%Y-W%V-%u"), QDate(2004, 6, 9));
|
||
QCOMPARE(calendar->readDate("2004-W24-4", "%Y-W%V-%u"), QDate(2004, 6, 10));
|
||
QCOMPARE(calendar->readDate("2004-W24-5", "%Y-W%V-%u"), QDate(2004, 6, 11));
|
||
QCOMPARE(calendar->readDate("2004-W24-6", "%Y-W%V-%u"), QDate(2004, 6, 12));
|
||
QCOMPARE(calendar->readDate("2004-W24-7", "%Y-W%V-%u"), QDate(2004, 6, 13));
|
||
|
||
QCOMPARE(calendar->readDate("2004-W53-1", "%Y-W%V-%u"), QDate(2004, 12, 27));
|
||
QCOMPARE(calendar->readDate("2004-W53-2", "%Y-W%V-%u"), QDate(2004, 12, 28));
|
||
QCOMPARE(calendar->readDate("2004-W53-3", "%Y-W%V-%u"), QDate(2004, 12, 29));
|
||
QCOMPARE(calendar->readDate("2004-W53-4", "%Y-W%V-%u"), QDate(2004, 12, 30));
|
||
QCOMPARE(calendar->readDate("2004-W53-5", "%Y-W%V-%u"), QDate(2004, 12, 31));
|
||
QCOMPARE(calendar->readDate("2004-W53-6", "%Y-W%V-%u"), QDate(2005, 1, 1));
|
||
QCOMPARE(calendar->readDate("2004-W53-7", "%Y-W%V-%u"), QDate(2005, 1, 2));
|
||
|
||
calendar->setDateIsoWeek(testDate, currentYear, 46, 5);
|
||
QCOMPARE(calendar->readDate("W46-5", "W%V-%u"), testDate);
|
||
|
||
QCOMPARE(calendar->readDate("2004-W00-1", "%Y-W%V-%u"), QDate());
|
||
QCOMPARE(calendar->readDate("2004-W01-0", "%Y-W%V-%u"), QDate());
|
||
QCOMPARE(calendar->readDate("2004-W01-8", "%Y-W%V-%u"), QDate());
|
||
QCOMPARE(calendar->readDate("2004-W54-1", "%Y-W%V-%u"), QDate());
|
||
QCOMPARE(calendar->readDate("2004-W53-01", "%Y-W%V-%u"), QDate());
|
||
QCOMPARE(calendar->readDate("2004-W053-01", "%Y-W%V-%u"), QDate());
|
||
|
||
//Test all 3 options, should go with most accurate
|
||
QCOMPARE(calendar->readDate("2004-01-01-365-W52-1", "%Y-%m-%d-%j-W%V-%u"), QDate(2004, 1, 1));
|
||
QCOMPARE(calendar->readDate("2004-001-W52-1", "%Y-%j-W%V-%u"), QDate(2004, 1, 1));
|
||
|
||
//Test spaces and literals
|
||
QCOMPARE(calendar->readDate("2004- 1-1", "%Y-%m-%d"), QDate(2004, 1, 1));
|
||
QCOMPARE(calendar->readDate("2004-1-1", "%Y-%m-%e"), QDate(2004, 1, 1));
|
||
QCOMPARE(calendar->readDate("2004 01 01", "%Y %m %d"), QDate(2004, 1, 1));
|
||
QCOMPARE(calendar->readDate("2004 01 01", "%Y %m %d"), QDate(2004, 1, 1));
|
||
QCOMPARE(calendar->readDate("2004W01-1", "%YW%m-%d"), QDate(2004, 1, 1));
|
||
QCOMPARE(calendar->readDate("2004w01-1", "%YW%m-%d"), QDate(2004, 1, 1));
|
||
QCOMPARE(calendar->readDate("2004W01-1", "%Yw%m-%d"), QDate(2004, 1, 1));
|
||
|
||
//Test enums and non-strict version of readDate()
|
||
locale->setDateFormat("%d/%m/%Y");
|
||
locale->setDateFormatShort("%Y/%m/%d");
|
||
QCOMPARE(calendar->readDate("01/02/2004"), QDate(2004, 2, 1)); //KLocale::NormalFormat
|
||
QCOMPARE(calendar->readDate("01/02/-2004"), QDate(-2004, 2, 1)); //KLocale::NormalFormat
|
||
QCOMPARE(calendar->readDate("2004/02/01"), QDate(2004, 2, 1)); //KLocale::ShortFormat
|
||
QCOMPARE(calendar->readDate("-2004/02/01"), QDate(-2004, 2, 1)); //KLocale::ShortFormat
|
||
QCOMPARE(calendar->readDate("2004-02-01"), QDate(2004, 2, 1)); //KLocale::IsoFormat
|
||
QCOMPARE(calendar->readDate("-2004-02-01"), QDate(-2004, 2, 1)); //KLocale::IsoFormat
|
||
QCOMPARE(calendar->readDate("2004-W02-1"), QDate(2004, 1, 5)); //KLocale::IsoWeekFormat
|
||
QCOMPARE(calendar->readDate("2004-001"), QDate(2004, 1, 1)); //KLocale::IsoOrdinalFormat
|
||
QCOMPARE(calendar->readDate("-2004-001"), QDate(-2004, 1, 1)); //KLocale::IsoOrdinalFormat
|
||
|
||
//Test enums and strict version of readDate()
|
||
QCOMPARE(calendar->readDate("01/02/2004", KLocale::NormalFormat), QDate(2004, 2, 1));
|
||
QCOMPARE(calendar->readDate("01/02/-2004", KLocale::NormalFormat), QDate(-2004, 2, 1));
|
||
QCOMPARE(calendar->readDate("2004/02/01", KLocale::ShortFormat), QDate(2004, 2, 1));
|
||
QCOMPARE(calendar->readDate("-2004/02/01", KLocale::ShortFormat), QDate(-2004, 2, 1));
|
||
QCOMPARE(calendar->readDate("2004-02-01", KLocale::IsoFormat), QDate(2004, 2, 1));
|
||
QCOMPARE(calendar->readDate("-2004-02-01", KLocale::IsoFormat), QDate(-2004, 2, 1));
|
||
QCOMPARE(calendar->readDate("2004-W02-1", KLocale::IsoWeekFormat), QDate(2004, 1, 5));
|
||
QCOMPARE(calendar->readDate("2004-001", KLocale::IsoOrdinalFormat), QDate(2004, 1, 1));
|
||
QCOMPARE(calendar->readDate("-2004-001", KLocale::IsoOrdinalFormat), QDate(-2004, 1, 1));
|
||
|
||
//Test ISO standard date form with no spaces
|
||
locale->setDateFormatShort("%Y%m%d");
|
||
QCOMPARE(calendar->readDate("20040201"), QDate(2004, 2, 1));
|
||
QCOMPARE(calendar->readDate("-20040201"), QDate(-2004, 2, 1));
|
||
|
||
// Test POSIX format
|
||
testDate.setDate(2010, 1, 2);
|
||
QCOMPARE(calendar->readDate("2010-1-2", "%Y-%n-%d", 0, KLocale::KdeFormat), QDate(2010, 1, 2));
|
||
QCOMPARE(calendar->readDate("2010-\n-2", "%Y-%n-%d", 0, KLocale::PosixFormat), QDate());
|
||
QCOMPARE(calendar->readDate("2010-1\n-2", "%Y-%n\n-%d", 0, KLocale::KdeFormat), QDate(2010, 1, 2));
|
||
QCOMPARE(calendar->readDate("2010-1\n-2", "%Y-%m%n-%d", 0, KLocale::PosixFormat), QDate(2010, 1, 2));
|
||
QCOMPARE(calendar->readDate("2010-1-2", "%Y-%m-%e", 0, KLocale::KdeFormat), QDate(2010, 1, 2));
|
||
QCOMPARE(calendar->readDate("2010-1-2", "%Y-%m-%e", 0, KLocale::PosixFormat), QDate(2010, 1, 2));
|
||
|
||
delete calendar;
|
||
delete locale;
|
||
}
|
||
|
||
void KCalendarTest::testStringForms()
|
||
{
|
||
testStrings(KLocale::ArabicDigits);
|
||
testStrings(KLocale::ArabicIndicDigits);
|
||
}
|
||
|
||
void KCalendarTest::testStrings(KLocale::DigitSet testDigitSet)
|
||
{
|
||
KLocale *locale = new KLocale(*KGlobal::locale());
|
||
locale->setDigitSet(testDigitSet);
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::QDateCalendar, locale);
|
||
|
||
//Test default settings
|
||
QDate testDate(2005, 1, 3);
|
||
|
||
//Test Year String
|
||
QCOMPARE(calendar->yearString(testDate), locale->convertDigits("2005", locale->dateTimeDigitSet()));
|
||
QCOMPARE(calendar->yearString(testDate, KCalendarSystem::LongFormat), locale->convertDigits("2005", locale->dateTimeDigitSet()));
|
||
QCOMPARE(calendar->yearString(testDate, KCalendarSystem::ShortFormat), locale->convertDigits("05", locale->dateTimeDigitSet()));
|
||
|
||
//Test Month String
|
||
QCOMPARE(calendar->monthString(testDate), locale->convertDigits("01", locale->dateTimeDigitSet()));
|
||
QCOMPARE(calendar->monthString(testDate, KCalendarSystem::LongFormat), locale->convertDigits("01", locale->dateTimeDigitSet()));
|
||
QCOMPARE(calendar->monthString(testDate, KCalendarSystem::ShortFormat), locale->convertDigits("1", locale->dateTimeDigitSet()));
|
||
|
||
//Test Day String
|
||
QCOMPARE(calendar->dayString(testDate), locale->convertDigits("03", locale->dateTimeDigitSet()));
|
||
QCOMPARE(calendar->dayString(testDate, KCalendarSystem::LongFormat), locale->convertDigits("03", locale->dateTimeDigitSet()));
|
||
QCOMPARE(calendar->dayString(testDate, KCalendarSystem::ShortFormat), locale->convertDigits("3", locale->dateTimeDigitSet()));
|
||
|
||
//Test Day of Year String
|
||
QCOMPARE(calendar->dayOfYearString(testDate), locale->convertDigits("003", locale->dateTimeDigitSet()));
|
||
QCOMPARE(calendar->dayOfYearString(testDate, KCalendarSystem::LongFormat), locale->convertDigits("003", locale->dateTimeDigitSet()));
|
||
QCOMPARE(calendar->dayOfYearString(testDate, KCalendarSystem::ShortFormat), locale->convertDigits("3", locale->dateTimeDigitSet()));
|
||
|
||
//Test Day of Week String
|
||
QCOMPARE(calendar->dayOfWeekString(testDate), locale->convertDigits("1", locale->dateTimeDigitSet()));
|
||
|
||
//Test Week Number String
|
||
QCOMPARE(calendar->weekNumberString(testDate), locale->convertDigits("01", locale->dateTimeDigitSet()));
|
||
QCOMPARE(calendar->weekNumberString(testDate, KCalendarSystem::LongFormat), locale->convertDigits("01", locale->dateTimeDigitSet()));
|
||
QCOMPARE(calendar->weekNumberString(testDate, KCalendarSystem::ShortFormat), locale->convertDigits("1", locale->dateTimeDigitSet()));
|
||
|
||
//Test Months In Year String
|
||
QCOMPARE(calendar->monthsInYearString(testDate), locale->convertDigits("12", locale->dateTimeDigitSet()));
|
||
QCOMPARE(calendar->monthsInYearString(testDate, KCalendarSystem::LongFormat), locale->convertDigits("12", locale->dateTimeDigitSet()));
|
||
QCOMPARE(calendar->monthsInYearString(testDate, KCalendarSystem::ShortFormat), locale->convertDigits("12", locale->dateTimeDigitSet()));
|
||
|
||
//Test Weeks In Year String
|
||
QCOMPARE(calendar->weeksInYearString(testDate), locale->convertDigits("52", locale->dateTimeDigitSet()));
|
||
QCOMPARE(calendar->weeksInYearString(testDate, KCalendarSystem::LongFormat), locale->convertDigits("52", locale->dateTimeDigitSet()));
|
||
QCOMPARE(calendar->weeksInYearString(testDate, KCalendarSystem::ShortFormat), locale->convertDigits("52", locale->dateTimeDigitSet()));
|
||
|
||
//Test Days In Year String
|
||
QCOMPARE(calendar->daysInYearString(testDate), locale->convertDigits("365", locale->dateTimeDigitSet()));
|
||
QCOMPARE(calendar->daysInYearString(testDate, KCalendarSystem::LongFormat), locale->convertDigits("365", locale->dateTimeDigitSet()));
|
||
QCOMPARE(calendar->daysInYearString(testDate, KCalendarSystem::ShortFormat), locale->convertDigits("365", locale->dateTimeDigitSet()));
|
||
|
||
//Test Days In Month String
|
||
QCOMPARE(calendar->daysInMonthString(testDate), locale->convertDigits("31", locale->dateTimeDigitSet()));
|
||
QCOMPARE(calendar->daysInMonthString(testDate, KCalendarSystem::LongFormat), locale->convertDigits("31", locale->dateTimeDigitSet()));
|
||
QCOMPARE(calendar->daysInMonthString(testDate, KCalendarSystem::ShortFormat), locale->convertDigits("31", locale->dateTimeDigitSet()));
|
||
|
||
//Test Days In Week String
|
||
QCOMPARE(calendar->daysInWeekString(testDate), locale->convertDigits("7", locale->dateTimeDigitSet()));
|
||
|
||
//Test Year In Era String
|
||
testDate.setDate(5, 1, 1);
|
||
QCOMPARE(calendar->yearInEraString(testDate), locale->convertDigits("5", locale->dateTimeDigitSet()));
|
||
QCOMPARE(calendar->yearInEraString(testDate, KCalendarSystem::LongFormat), locale->convertDigits("0005", locale->dateTimeDigitSet()));
|
||
QCOMPARE(calendar->yearInEraString(testDate, KCalendarSystem::ShortFormat), locale->convertDigits("5", locale->dateTimeDigitSet()));
|
||
|
||
delete calendar;
|
||
delete locale;
|
||
}
|
||
|
||
void KCalendarTest::testIsoWeekDate()
|
||
{
|
||
KLocale *locale = new KLocale(*KGlobal::locale());
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::QDateCalendar, locale);
|
||
|
||
int earliestValidYear = calendar->year(calendar->earliestValidDate());
|
||
int latestValidYear = calendar->year(calendar->latestValidDate());
|
||
|
||
QCOMPARE(calendar->isValidIsoWeekDate(earliestValidYear - 1, 1, 1), false);
|
||
QCOMPARE(calendar->isValidIsoWeekDate(earliestValidYear, 1, 1), false); //In prev year
|
||
QCOMPARE(calendar->isValidIsoWeekDate(earliestValidYear, 1, 2), false); //In prev year
|
||
QCOMPARE(calendar->isValidIsoWeekDate(earliestValidYear, 1, 3), true);
|
||
QCOMPARE(calendar->isValidIsoWeekDate(-1, 1, 1), true);
|
||
QCOMPARE(calendar->isValidIsoWeekDate(0, 1, 1), false);
|
||
QCOMPARE(calendar->isValidIsoWeekDate(1, 1, 1), true);
|
||
QCOMPARE(calendar->isValidIsoWeekDate(latestValidYear, 52, 5), true);
|
||
QCOMPARE(calendar->isValidIsoWeekDate(latestValidYear, 52, 6), false); //In following year
|
||
QCOMPARE(calendar->isValidIsoWeekDate(latestValidYear, 52, 7), false); //In following year
|
||
QCOMPARE(calendar->isValidIsoWeekDate(latestValidYear + 1, 1, 1), false);
|
||
|
||
QCOMPARE(calendar->isValidIsoWeekDate(2004, 0, 1), false);
|
||
QCOMPARE(calendar->isValidIsoWeekDate(2004, 1, 1), true);
|
||
QCOMPARE(calendar->isValidIsoWeekDate(2004, 53, 1), true);
|
||
QCOMPARE(calendar->isValidIsoWeekDate(2000, 54, 1), false);
|
||
|
||
QCOMPARE(calendar->isValidIsoWeekDate(2004, 1, 0), false);
|
||
QCOMPARE(calendar->isValidIsoWeekDate(2004, 1, 1), true);
|
||
QCOMPARE(calendar->isValidIsoWeekDate(2004, 1, 7), true);
|
||
QCOMPARE(calendar->isValidIsoWeekDate(2004, 1, 8), false);
|
||
|
||
QCOMPARE(setIsoWeekDate(calendar, earliestValidYear - 1, 1, 1), QDate());
|
||
QCOMPARE(setIsoWeekDate(calendar, earliestValidYear, 1, 1), QDate()); //In prev year
|
||
QCOMPARE(setIsoWeekDate(calendar, earliestValidYear, 1, 2), QDate()); //In prev year
|
||
QCOMPARE(setIsoWeekDate(calendar, earliestValidYear, 1, 3), QDate(-4712, 1, 1));
|
||
QCOMPARE(setIsoWeekDate(calendar, -1, 1, 1), QDate(-2, 12, 29));
|
||
QCOMPARE(setIsoWeekDate(calendar, 0, 1, 1), QDate());
|
||
QCOMPARE(setIsoWeekDate(calendar, 1, 1, 1), QDate(1, 1, 3));
|
||
QCOMPARE(setIsoWeekDate(calendar, latestValidYear, 52, 5), QDate(9999, 12, 31));
|
||
QCOMPARE(setIsoWeekDate(calendar, latestValidYear, 52, 6), QDate()); //In next year
|
||
QCOMPARE(setIsoWeekDate(calendar, latestValidYear, 52, 7), QDate()); //In next year
|
||
QCOMPARE(setIsoWeekDate(calendar, latestValidYear + 1, 1, 1), QDate());
|
||
|
||
QCOMPARE(setIsoWeekDate(calendar, 2004, 0, 1), QDate());
|
||
QCOMPARE(setIsoWeekDate(calendar, 2004, 1, 1), QDate(2003, 12, 29));
|
||
QCOMPARE(setIsoWeekDate(calendar, 2004, 53, 1), QDate(2004, 12, 27));
|
||
QCOMPARE(setIsoWeekDate(calendar, 2000, 54, 1), QDate());
|
||
|
||
QCOMPARE(setIsoWeekDate(calendar, 2004, 1, 0), QDate());
|
||
QCOMPARE(setIsoWeekDate(calendar, 2004, 1, 1), QDate(2003, 12, 29));
|
||
QCOMPARE(setIsoWeekDate(calendar, 2004, 1, 7), QDate(2004, 1, 4));
|
||
QCOMPARE(setIsoWeekDate(calendar, 2004, 1, 8), QDate());
|
||
|
||
QCOMPARE(setIsoWeekDate(calendar, 2004, 1, 1), QDate(2003, 12, 29));
|
||
QCOMPARE(setIsoWeekDate(calendar, 2004, 1, 2), QDate(2003, 12, 30));
|
||
QCOMPARE(setIsoWeekDate(calendar, 2004, 1, 3), QDate(2003, 12, 31));
|
||
QCOMPARE(setIsoWeekDate(calendar, 2004, 1, 4), QDate(2004, 1, 1));
|
||
QCOMPARE(setIsoWeekDate(calendar, 2004, 1, 5), QDate(2004, 1, 2));
|
||
QCOMPARE(setIsoWeekDate(calendar, 2004, 1, 6), QDate(2004, 1, 3));
|
||
QCOMPARE(setIsoWeekDate(calendar, 2004, 1, 7), QDate(2004, 1, 4));
|
||
|
||
QCOMPARE(setIsoWeekDate(calendar, 2004, 24, 1), QDate(2004, 6, 7));
|
||
QCOMPARE(setIsoWeekDate(calendar, 2004, 24, 2), QDate(2004, 6, 8));
|
||
QCOMPARE(setIsoWeekDate(calendar, 2004, 24, 3), QDate(2004, 6, 9));
|
||
QCOMPARE(setIsoWeekDate(calendar, 2004, 24, 4), QDate(2004, 6, 10));
|
||
QCOMPARE(setIsoWeekDate(calendar, 2004, 24, 5), QDate(2004, 6, 11));
|
||
QCOMPARE(setIsoWeekDate(calendar, 2004, 24, 6), QDate(2004, 6, 12));
|
||
QCOMPARE(setIsoWeekDate(calendar, 2004, 24, 7), QDate(2004, 6, 13));
|
||
|
||
QCOMPARE(setIsoWeekDate(calendar, 2004, 53, 1), QDate(2004, 12, 27));
|
||
QCOMPARE(setIsoWeekDate(calendar, 2004, 53, 2), QDate(2004, 12, 28));
|
||
QCOMPARE(setIsoWeekDate(calendar, 2004, 53, 3), QDate(2004, 12, 29));
|
||
QCOMPARE(setIsoWeekDate(calendar, 2004, 53, 4), QDate(2004, 12, 30));
|
||
QCOMPARE(setIsoWeekDate(calendar, 2004, 53, 5), QDate(2004, 12, 31));
|
||
QCOMPARE(setIsoWeekDate(calendar, 2004, 53, 6), QDate(2005, 1, 1));
|
||
QCOMPARE(setIsoWeekDate(calendar, 2004, 53, 7), QDate(2005, 1, 2));
|
||
|
||
delete calendar;
|
||
delete locale;
|
||
}
|
||
|
||
void KCalendarTest::testHebrewStrings()
|
||
{
|
||
/*
|
||
Ref table for numbers to Hebrew chars
|
||
|
||
Value 1 2 3 4 5 6 7 8 9
|
||
|
||
x 1 Alef <20>0<EFBFBD>2 Bet <20>0<EFBFBD>3 Gimel <20>0<EFBFBD>4 Dalet <20>0<EFBFBD>5 He <20>0<EFBFBD>6 Vav <20>0<EFBFBD>7 Zayen <20>0<EFBFBD>8 Het <20>0<EFBFBD>9 Tet <20>0<EFBFBD>0
|
||
0x05D0 0x05D1 0x05D2 0x05D3 0x05D4 0x05D5 0x05D6 0x05D7 0x05D8
|
||
|
||
x 10 Yod <20>0<EFBFBD>1 Kaf <20>0<EFBFBD>3 Lamed <20>0<EFBFBD>4 Mem <20>0<EFBFBD>6 Nun <20>0<EFBFBD>8 Samekh <20>0<EFBFBD>9 Ayin <20>0<EFBFBD>0 Pe <20>0<EFBFBD>2 Tzadi <20>0<EFBFBD>4
|
||
0x05D9 0x05DB 0x05DC 0x05DE 0x05E0 0x05E1 0x05E2 0x05E4 0x05E6
|
||
|
||
x 100 Qof <20>0<EFBFBD>5 Resh <20>0<EFBFBD>6 Shin <20>0<EFBFBD>7 Tav <20>0<EFBFBD>8
|
||
0x05E7 0x05E8 0x05E9 0x05EA
|
||
|
||
Note special cases 15 = 9 + 6 <20>0<EFBFBD>0<EFBFBD>0<EFBFBD>7 and 16 = 9 + 7 <20>0<EFBFBD>0<EFBFBD>0<EFBFBD>8
|
||
*/
|
||
|
||
QString oldLocale = setlocale(LC_ALL, "he.utf8");
|
||
KLocale *locale = new KLocale(*KGlobal::locale());
|
||
locale->setLanguage(QStringList() << "he");
|
||
locale->insertCatalog("kdecalendarsystems");
|
||
locale->setDateFormat("%d %B %Y");
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::HebrewCalendar, locale);
|
||
if (locale->language() == "he") {
|
||
QDate testDate;
|
||
QString yearString, monthString, dayString, testString, resultString;
|
||
calendar->setDate(testDate, 5765, 1, 1);
|
||
// Have to use unicode values, for some reason directly using the chars doesn't work?
|
||
yearString.append(QChar(0x05EA)).append(QChar(0x05E9)).append(QChar(0x05E1)).append(QChar('\"')).append(QChar(0x05D4));
|
||
monthString = "<EFBFBD>0<EFBFBD>8<EFBFBD>0<EFBFBD>7<EFBFBD>0<EFBFBD>6<EFBFBD>0<EFBFBD>1";
|
||
dayString.append(QChar(0x05D0)).append(QChar('\''));
|
||
testString = yearString + ' ' + monthString + ' ' + dayString;
|
||
QCOMPARE(calendar->readDate(calendar->formatDate(testDate, KLocale::LongDate), KLocale::NormalFormat), testDate);
|
||
QCOMPARE(calendar->formatDate(testDate, "%Y"), yearString);
|
||
// Skip month name for now as won't translate for some reason, confirmed works visually in GUI
|
||
//QCOMPARE( calendar->formatDate( testDate, "%B" ), monthString );
|
||
QCOMPARE(calendar->formatDate(testDate, "%d"), dayString);
|
||
//QCOMPARE( calendar->formatDate( testDate, locale->dateFormat() ), testString );
|
||
//QCOMPARE( calendar->readDate( testString ), testDate );
|
||
for (int yy = 5400; yy <= 6400; ++yy) {
|
||
calendar->setDate(testDate, yy, 1, 1);
|
||
QCOMPARE(calendar->readDate(calendar->formatDate(testDate, KLocale::LongDate), KLocale::NormalFormat), testDate);
|
||
}
|
||
} else {
|
||
kDebug() << "Cannot set Hebrew language, please install and re-test!";
|
||
}
|
||
setlocale(LC_ALL, oldLocale.toLatin1());
|
||
}
|
||
|
||
QDate KCalendarTest::setIsoWeekDate(const KCalendarSystem * calendar, int year, int isoWeek, int dayOfWeek)
|
||
{
|
||
QDate resultDate;
|
||
calendar->setDateIsoWeek(resultDate, year, isoWeek, dayOfWeek);
|
||
return resultDate;
|
||
}
|
||
|
||
void KCalendarTest::testDayOfYearDate()
|
||
{
|
||
KLocale *locale = new KLocale(*KGlobal::locale());
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::QDateCalendar, locale);
|
||
|
||
int earliestValidYear = calendar->year(calendar->earliestValidDate());
|
||
int latestValidYear = calendar->year(calendar->latestValidDate());
|
||
|
||
QCOMPARE(calendar->isValid(earliestValidYear - 1, 1), false);
|
||
QCOMPARE(calendar->isValid(earliestValidYear, 1), true);
|
||
QCOMPARE(calendar->isValid(-1, 1), true);
|
||
QCOMPARE(calendar->isValid(0, 1), false);
|
||
QCOMPARE(calendar->isValid(1, 1), true);
|
||
QCOMPARE(calendar->isValid(latestValidYear, 1), true);
|
||
QCOMPARE(calendar->isValid(latestValidYear + 1, 1), false);
|
||
|
||
QCOMPARE(calendar->isValid(2005, 0), false);
|
||
QCOMPARE(calendar->isValid(2005, 1), true);
|
||
QCOMPARE(calendar->isValid(2005, 365), true);
|
||
QCOMPARE(calendar->isValid(2005, 366), false);
|
||
QCOMPARE(calendar->isValid(2000, 366), true);
|
||
QCOMPARE(calendar->isValid(2000, 367), false);
|
||
|
||
QCOMPARE(setDayOfYearDate(calendar, earliestValidYear - 1, 1), QDate());
|
||
QCOMPARE(setDayOfYearDate(calendar, earliestValidYear, 1), QDate(earliestValidYear, 1, 1));
|
||
QCOMPARE(setDayOfYearDate(calendar, -1, 1), QDate(-1, 1, 1));
|
||
QCOMPARE(setDayOfYearDate(calendar, 0, 1), QDate());
|
||
QCOMPARE(setDayOfYearDate(calendar, 1, 1), QDate(1, 1, 1));
|
||
QCOMPARE(setDayOfYearDate(calendar, latestValidYear, 1), QDate(latestValidYear, 1, 1));
|
||
QCOMPARE(setDayOfYearDate(calendar, latestValidYear + 1, 1), QDate());
|
||
|
||
QCOMPARE(setDayOfYearDate(calendar, 2005, 0), QDate());
|
||
QCOMPARE(setDayOfYearDate(calendar, 2005, 1), QDate(2005, 1, 1));
|
||
QCOMPARE(setDayOfYearDate(calendar, 2005, 365), QDate(2005, 12, 31));
|
||
QCOMPARE(setDayOfYearDate(calendar, 2005, 366), QDate());
|
||
QCOMPARE(setDayOfYearDate(calendar, 2000, 366), QDate(2000, 12, 31));
|
||
QCOMPARE(setDayOfYearDate(calendar, 2000, 367), QDate());
|
||
|
||
delete calendar;
|
||
delete locale;
|
||
}
|
||
|
||
QDate KCalendarTest::setDayOfYearDate(const KCalendarSystem * calendar, int year, int dayOfYear)
|
||
{
|
||
QDate resultDate;
|
||
calendar->setDate(resultDate, year, dayOfYear);
|
||
return resultDate;
|
||
}
|
||
|
||
void KCalendarTest::testDateDifference()
|
||
{
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::QDateCalendar);
|
||
QDate testDate1, testDate2;
|
||
|
||
// Date Difference
|
||
|
||
compareDateDifference(calendar, QDate(2010, 6, 1), QDate(2010, 6, 1), 0, 0, 0);
|
||
compareDateDifference(calendar, QDate(2010, 6, 10), QDate(2010, 6, 20), 0, 0, 10);
|
||
compareDateDifference(calendar, QDate(2010, 6, 1), QDate(2010, 7, 1), 0, 1, 0);
|
||
compareDateDifference(calendar, QDate(2010, 6, 10), QDate(2010, 7, 20), 0, 1, 10);
|
||
compareDateDifference(calendar, QDate(2010, 6, 20), QDate(2010, 7, 10), 0, 0, 20);
|
||
compareDateDifference(calendar, QDate(2010, 6, 30), QDate(2010, 7, 31), 0, 1, 1);
|
||
compareDateDifference(calendar, QDate(2010, 8, 31), QDate(2010, 9, 30), 0, 1, 0);
|
||
compareDateDifference(calendar, QDate(2010, 7, 1), QDate(2011, 6, 1), 0, 11, 0);
|
||
compareDateDifference(calendar, QDate(2010, 7, 10), QDate(2011, 6, 20), 0, 11, 10);
|
||
compareDateDifference(calendar, QDate(2010, 7, 20), QDate(2011, 6, 10), 0, 10, 21);
|
||
compareDateDifference(calendar, QDate(2010, 7, 31), QDate(2011, 6, 30), 0, 11, 0);
|
||
compareDateDifference(calendar, QDate(2010, 8, 30), QDate(2011, 7, 31), 0, 11, 1);
|
||
compareDateDifference(calendar, QDate(2010, 6, 10), QDate(2011, 6, 10), 1, 0, 0);
|
||
compareDateDifference(calendar, QDate(2010, 6, 10), QDate(2011, 6, 20), 1, 0, 10);
|
||
compareDateDifference(calendar, QDate(2010, 6, 10), QDate(2011, 7, 10), 1, 1, 0);
|
||
compareDateDifference(calendar, QDate(2010, 6, 10), QDate(2011, 7, 20), 1, 1, 10);
|
||
compareDateDifference(calendar, QDate(2010, 6, 20), QDate(2011, 8, 10), 1, 1, 21);
|
||
compareDateDifference(calendar, QDate(2010, 6, 30), QDate(2011, 7, 31), 1, 1, 1);
|
||
compareDateDifference(calendar, QDate(2010, 8, 31), QDate(2011, 9, 30), 1, 1, 0);
|
||
compareDateDifference(calendar, QDate(2010, 7, 31), QDate(2012, 6, 30), 1, 11, 0);
|
||
compareDateDifference(calendar, QDate(2010, 8, 30), QDate(2012, 7, 31), 1, 11, 1);
|
||
compareDateDifference(calendar, QDate(2000, 2, 29), QDate(2001, 2, 28), 1, 0, 0);
|
||
compareDateDifference(calendar, QDate(2000, 2, 29), QDate(2001, 3, 1), 1, 0, 1);
|
||
compareDateDifference(calendar, QDate(2000, 2, 29), QDate(2001, 4, 1), 1, 1, 3);
|
||
calendar->setDate(testDate1, -1, 1, 1);
|
||
calendar->setDate(testDate2, 1, 1, 1);
|
||
compareDateDifference(calendar, testDate1, testDate2, 1, 0, 0);
|
||
|
||
// Years Difference
|
||
|
||
compareYearDifference(calendar, QDate(2010, 1, 1), QDate(2010, 1, 1), 0);
|
||
compareYearDifference(calendar, QDate(2010, 1, 1), QDate(2010, 12, 31), 0);
|
||
compareYearDifference(calendar, QDate(2010, 6, 1), QDate(2010, 7, 1), 0);
|
||
compareYearDifference(calendar, QDate(2010, 6, 1), QDate(2011, 5, 1), 0);
|
||
compareYearDifference(calendar, QDate(2010, 6, 1), QDate(2011, 7, 1), 1);
|
||
compareYearDifference(calendar, QDate(2010, 6, 20), QDate(2012, 6, 20), 2);
|
||
compareYearDifference(calendar, QDate(2010, 6, 20), QDate(2012, 6, 30), 2);
|
||
compareYearDifference(calendar, QDate(2010, 6, 20), QDate(2012, 6, 10), 1);
|
||
compareYearDifference(calendar, QDate(2000, 2, 29), QDate(2001, 2, 28), 1);
|
||
calendar->setDate(testDate1, -1, 12, 31);
|
||
calendar->setDate(testDate2, 1, 1, 1);
|
||
compareYearDifference(calendar, testDate1, testDate2, 0);
|
||
calendar->setDate(testDate1, -1, 1, 1);
|
||
compareYearDifference(calendar, testDate1, testDate2, 1);
|
||
|
||
// Months Difference
|
||
|
||
compareMonthDifference(calendar, QDate(2010, 1, 1), QDate(2010, 1, 1), 0);
|
||
compareMonthDifference(calendar, QDate(2010, 1, 1), QDate(2010, 2, 1), 1);
|
||
compareMonthDifference(calendar, QDate(2010, 1, 10), QDate(2010, 2, 1), 0);
|
||
compareMonthDifference(calendar, QDate(2010, 1, 10), QDate(2010, 2, 20), 1);
|
||
compareMonthDifference(calendar, QDate(2010, 1, 1), QDate(2011, 1, 1), 12);
|
||
compareMonthDifference(calendar, QDate(2010, 1, 1), QDate(2011, 2, 1), 13);
|
||
compareMonthDifference(calendar, QDate(2010, 1, 10), QDate(2011, 2, 1), 12);
|
||
compareMonthDifference(calendar, QDate(2010, 1, 10), QDate(2011, 2, 20), 13);
|
||
compareMonthDifference(calendar, QDate(2000, 2, 29), QDate(2001, 2, 27), 11);
|
||
compareMonthDifference(calendar, QDate(2000, 2, 29), QDate(2001, 2, 28), 12);
|
||
compareMonthDifference(calendar, QDate(2000, 2, 27), QDate(2001, 2, 28), 12);
|
||
compareMonthDifference(calendar, QDate(2000, 2, 29), QDate(2001, 3, 1), 12);
|
||
calendar->setDate(testDate1, -1, 12, 31);
|
||
calendar->setDate(testDate2, 1, 1, 1);
|
||
compareMonthDifference(calendar, testDate1, testDate2, 0);
|
||
calendar->setDate(testDate1, -1, 12, 1);
|
||
compareMonthDifference(calendar, testDate1, testDate2, 1);
|
||
|
||
// Days Difference
|
||
|
||
// Directly uses QDate::toJulianDay() so only basic testing needed
|
||
testDate1.setDate(2010, 1, 1);
|
||
testDate2.setDate(2010, 1, 2);
|
||
QCOMPARE(calendar->daysDifference(testDate1, testDate2), 1);
|
||
QCOMPARE(calendar->daysDifference(testDate2, testDate1), -1);
|
||
|
||
// Test for crossing Julian/Gregorian switch!!!
|
||
}
|
||
|
||
void KCalendarTest::compareDateDifference(const KCalendarSystem *calendar,
|
||
const QDate &lowDate, const QDate &highDate,
|
||
int yearsDiff, int monthsDiff, int daysDiff)
|
||
{
|
||
int y, m, d, s;
|
||
if (highDate >= lowDate) {
|
||
calendar->dateDifference(lowDate, highDate, &y, &m, &d, &s);
|
||
QCOMPARE(y, yearsDiff);
|
||
QCOMPARE(m, monthsDiff);
|
||
QCOMPARE(d, daysDiff);
|
||
QCOMPARE(s, 1);
|
||
}
|
||
if (highDate > lowDate) {
|
||
calendar->dateDifference(highDate, lowDate, &y, &m, &d, &s);
|
||
QCOMPARE(y, yearsDiff);
|
||
QCOMPARE(m, monthsDiff);
|
||
QCOMPARE(d, daysDiff);
|
||
QCOMPARE(s, -1);
|
||
}
|
||
}
|
||
|
||
void KCalendarTest::compareYearDifference(const KCalendarSystem *calendar,
|
||
const QDate &lowDate, const QDate &highDate,
|
||
int yearsDiff)
|
||
{
|
||
if (highDate >= lowDate) {
|
||
QCOMPARE(calendar->yearsDifference(lowDate, highDate), yearsDiff);
|
||
}
|
||
if (highDate > lowDate) {
|
||
QCOMPARE(calendar->yearsDifference(highDate, lowDate), -yearsDiff);
|
||
}
|
||
}
|
||
|
||
void KCalendarTest::compareMonthDifference(const KCalendarSystem *calendar,
|
||
const QDate &lowDate, const QDate &highDate,
|
||
int monthsDiff)
|
||
{
|
||
if (highDate >= lowDate) {
|
||
QCOMPARE(calendar->monthsDifference(lowDate, highDate), monthsDiff);
|
||
}
|
||
if (highDate > lowDate) {
|
||
QCOMPARE(calendar->monthsDifference(highDate, lowDate), -monthsDiff);
|
||
}
|
||
}
|
||
|
||
void KCalendarTest::testFirstLast()
|
||
{
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::QDateCalendar);
|
||
QDate testDate = QDate(2010, 6, 15);
|
||
|
||
QCOMPARE(calendar->firstDayOfYear(testDate), QDate(2010, 1, 1));
|
||
QCOMPARE(calendar->lastDayOfYear(testDate), QDate(2010, 12, 31));
|
||
QCOMPARE(calendar->firstDayOfYear(2010), QDate(2010, 1, 1));
|
||
QCOMPARE(calendar->lastDayOfYear(2010), QDate(2010, 12, 31));
|
||
QCOMPARE(calendar->firstDayOfMonth(testDate), QDate(2010, 6, 1));
|
||
QCOMPARE(calendar->lastDayOfMonth(testDate), QDate(2010, 6, 30));
|
||
QCOMPARE(calendar->firstDayOfMonth(2010, 6), QDate(2010, 6, 1));
|
||
QCOMPARE(calendar->lastDayOfMonth(2010, 6), QDate(2010, 6, 30));
|
||
}
|
||
|
||
void KCalendarTest::testEra()
|
||
{
|
||
KConfigGroup lcg(KGlobal::config(), QString("Locale"));
|
||
KConfigGroup cg = lcg.group(QString("KCalendarSystem %1").arg("gregorian"));
|
||
cg.deleteGroup();
|
||
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::QDateCalendar);
|
||
|
||
int earliestValidYear = calendar->year(calendar->earliestValidDate());
|
||
int latestValidYear = calendar->year(calendar->latestValidDate());
|
||
|
||
QDate testDate;
|
||
calendar->setDate(testDate, 2005, 1, 1);
|
||
QCOMPARE(calendar->yearInEra(testDate), 2005);
|
||
QCOMPARE(calendar->eraName(testDate), QString("AD"));
|
||
QCOMPARE(calendar->eraName(testDate, KCalendarSystem::ShortFormat), QString("AD"));
|
||
QCOMPARE(calendar->eraName(testDate, KCalendarSystem::LongFormat), QString("Anno Domini"));
|
||
calendar->setDate(testDate, -5, 1, 1);
|
||
QCOMPARE(calendar->yearInEra(testDate), 5);
|
||
QCOMPARE(calendar->eraName(testDate), QString("BC"));
|
||
QCOMPARE(calendar->eraName(testDate, KCalendarSystem::ShortFormat), QString("BC"));
|
||
QCOMPARE(calendar->eraName(testDate, KCalendarSystem::LongFormat), QString("Before Christ"));
|
||
|
||
QCOMPARE(calendar->isValid("BC", qAbs(earliestValidYear - 1), 1, 1), false);
|
||
QCOMPARE(calendar->isValid("BC", qAbs(earliestValidYear), 1, 1), true);
|
||
QCOMPARE(calendar->isValid("Before Christ", qAbs(earliestValidYear), 1, 1), true);
|
||
QCOMPARE(calendar->isValid("BC", -1, 1, 1), true);
|
||
QCOMPARE(calendar->isValid("Before Christ", -1, 1, 1), true);
|
||
QCOMPARE(calendar->isValid("BC", 0, 1, 1), false);
|
||
QCOMPARE(calendar->isValid("AD", 1, 1, 1), true);
|
||
QCOMPARE(calendar->isValid("Anno Domini", 1, 1, 1), true);
|
||
QCOMPARE(calendar->isValid("AD", latestValidYear, 1, 1), true);
|
||
QCOMPARE(calendar->isValid("Anno Domini", latestValidYear, 1, 1), true);
|
||
QCOMPARE(calendar->isValid("AD", latestValidYear + 1, 1, 1), false);
|
||
|
||
QCOMPARE(calendar->isValid("AD", 2005, 0, 1), false);
|
||
QCOMPARE(calendar->isValid("AD", 2005, 13, 1), false);
|
||
QCOMPARE(calendar->isValid("AD", 2005, 1, 0), false);
|
||
QCOMPARE(calendar->isValid("AD", 2005, 1, 32), false);
|
||
QCOMPARE(calendar->isValid("AD", 2005, 1, 1), true);
|
||
QCOMPARE(calendar->isValid("AD", 2005, 1, 31), true);
|
||
QCOMPARE(calendar->isValid("AD", 2005, 12, 1), true);
|
||
QCOMPARE(calendar->isValid("AD", 2005, 12, 31), true);
|
||
|
||
QCOMPARE(setEraDate(calendar, "BC", qAbs(earliestValidYear - 1), 1, 1), QDate());
|
||
QCOMPARE(setEraDate(calendar, "BC", qAbs(earliestValidYear), 1, 1), QDate(earliestValidYear, 1, 1));
|
||
QCOMPARE(setEraDate(calendar, "Before Christ", qAbs(earliestValidYear), 1, 1), QDate(earliestValidYear, 1, 1));
|
||
QCOMPARE(setEraDate(calendar, "BC", 1, 1, 1), QDate(-1, 1, 1));
|
||
QCOMPARE(setEraDate(calendar, "Before Christ", 1, 1, 1), QDate(-1, 1, 1));
|
||
QCOMPARE(setEraDate(calendar, "BC", 0, 1, 1), QDate());
|
||
QCOMPARE(setEraDate(calendar, "AD", 1, 1, 1), QDate(1, 1, 1));
|
||
QCOMPARE(setEraDate(calendar, "Anno Domini", 1, 1, 1), QDate(1, 1, 1));
|
||
QCOMPARE(setEraDate(calendar, "AD", latestValidYear, 1, 1), QDate(latestValidYear, 1, 1));
|
||
QCOMPARE(setEraDate(calendar, "Anno Domini", latestValidYear, 1, 1), QDate(latestValidYear, 1, 1));
|
||
QCOMPARE(setEraDate(calendar, "AD", latestValidYear + 1, 1, 1), QDate());
|
||
|
||
QCOMPARE(setEraDate(calendar, "AD", 2005, 0, 1), QDate());
|
||
QCOMPARE(setEraDate(calendar, "AD", 2005, 13, 1), QDate());
|
||
QCOMPARE(setEraDate(calendar, "AD", 2005, 1, 0), QDate());
|
||
QCOMPARE(setEraDate(calendar, "AD", 2005, 1, 32), QDate());
|
||
QCOMPARE(setEraDate(calendar, "AD", 2005, 1, 1), QDate(2005, 1, 1));
|
||
QCOMPARE(setEraDate(calendar, "AD", 2005, 1, 31), QDate(2005, 1, 31));
|
||
QCOMPARE(setEraDate(calendar, "AD", 2005, 12, 1), QDate(2005, 12, 1));
|
||
QCOMPARE(setEraDate(calendar, "AD", 2005, 12, 31), QDate(2005, 12, 31));
|
||
|
||
delete calendar;
|
||
cg.writeEntry("Era1", "-:1:-0001-01-01::Test Era 1:TE1:<3A>0<EFBFBD>5%Ey<45>0<EFBFBD>5%EC<45>0<EFBFBD>5");
|
||
cg.writeEntry("Era2", "+:1:0001-01-01::Test Era 2:TE2:^%Ey^%EC^");
|
||
calendar = KCalendarSystem::create(KLocale::QDateCalendar);
|
||
testEraDate(calendar, QDate(2010, 1, 1), 2010, "2010", "2010", "TE2", "Test Era 2");
|
||
testEraDate(calendar, QDate(-5, 1, 1), 5, "5", "0005", "TE1", "Test Era 1");
|
||
QCOMPARE(calendar->formatDate(QDate(2010, 1, 1), "%EY"), QString("^2010^TE2^"));
|
||
QCOMPARE(calendar->formatDate(QDate(-5, 1, 1), "%EY"), QString("<EFBFBD>0<EFBFBD>55<EFBFBD>0<EFBFBD>5TE1<EFBFBD>0<EFBFBD>5"));
|
||
|
||
cg.deleteGroup();
|
||
cg.markAsClean();
|
||
lcg.markAsClean();
|
||
delete calendar;
|
||
}
|
||
|
||
QDate KCalendarTest::setEraDate(const KCalendarSystem * calendar, const QString &era, int yearInEra, int month, int day)
|
||
{
|
||
QDate resultDate;
|
||
calendar->setDate(resultDate, era, yearInEra, month, day);
|
||
return resultDate;
|
||
}
|
||
|
||
void KCalendarTest::testQDateCalendar()
|
||
{
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::QDateCalendar);
|
||
QDate testDate(2005, 9, 10);
|
||
|
||
QCOMPARE(calendar->dayOfYear(testDate), 253);
|
||
|
||
QVERIFY(calendar->setDate(testDate, 2000, 3, 1));
|
||
QCOMPARE(calendar->year(testDate), 2000);
|
||
QCOMPARE(calendar->month(testDate), 3);
|
||
QCOMPARE(calendar->day(testDate), 1);
|
||
QCOMPARE(calendar->daysInYear(testDate), 366);
|
||
|
||
QDate newDate = calendar->addYears(testDate, 4);
|
||
QCOMPARE(newDate.year(), 2004);
|
||
QCOMPARE(calendar->daysInYear(newDate), 366);
|
||
|
||
newDate = calendar->addMonths(testDate, -4);
|
||
QCOMPARE(newDate.year(), 1999);
|
||
QCOMPARE(newDate.month(), 11);
|
||
QCOMPARE(newDate.day(), 1);
|
||
|
||
newDate = calendar->addDays(newDate, 20);
|
||
QCOMPARE(newDate.year(), 1999);
|
||
QCOMPARE(newDate.month(), 11);
|
||
QCOMPARE(newDate.day(), 21);
|
||
|
||
delete calendar;
|
||
}
|
||
|
||
void KCalendarTest::testHebrew()
|
||
{
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::HebrewCalendar);
|
||
QDate testDate(2005, 9, 10); // 5756-13-06
|
||
QCOMPARE(calendar->dayOfYear(testDate), 360);
|
||
|
||
QVERIFY(calendar->setDate(testDate, 5760, 12, 24));
|
||
QCOMPARE(calendar->year(testDate), 5760);
|
||
QCOMPARE(calendar->month(testDate), 12);
|
||
QCOMPARE(calendar->day(testDate), 24);
|
||
QCOMPARE(calendar->daysInYear(testDate), 385);
|
||
|
||
testDate = calendar->addYears(testDate, 4);
|
||
QCOMPARE(calendar->year(testDate), 5764);
|
||
QCOMPARE(calendar->month(testDate), 12);
|
||
QCOMPARE(calendar->day(testDate), 24);
|
||
QCOMPARE(calendar->daysInYear(testDate), 355);
|
||
|
||
testDate = calendar->addMonths(testDate, -4);
|
||
QCOMPARE(calendar->year(testDate), 5764);
|
||
QCOMPARE(calendar->month(testDate), 8);
|
||
QCOMPARE(calendar->day(testDate), 24);
|
||
QCOMPARE(calendar->daysInYear(testDate), 355);
|
||
|
||
testDate = calendar->addDays(testDate, 20);
|
||
QCOMPARE(calendar->year(testDate), 5764);
|
||
QCOMPARE(calendar->month(testDate), 9);
|
||
QCOMPARE(calendar->day(testDate), 15);
|
||
QCOMPARE(calendar->daysInYear(testDate), 355);
|
||
|
||
delete calendar;
|
||
}
|
||
|
||
void KCalendarTest::testIslamicCivil()
|
||
{
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::IslamicCivilCalendar);
|
||
|
||
QDate testDate(2008, 12, 29); //1430-01-01, jd 2454830, not leap
|
||
QCOMPARE(calendar->year(testDate), 1430);
|
||
QCOMPARE(calendar->month(testDate), 1);
|
||
QCOMPARE(calendar->day(testDate), 1);
|
||
QCOMPARE(calendar->isLeapYear(testDate), false);
|
||
QCOMPARE(calendar->daysInYear(testDate), 354);
|
||
QCOMPARE(calendar->daysInMonth(testDate), 30);
|
||
QCOMPARE(calendar->dayOfYear(testDate), 1);
|
||
|
||
testDate.setDate(2009, 12, 17); //1430-12-29, jd 2455183, not leap
|
||
QCOMPARE(calendar->year(testDate), 1430);
|
||
QCOMPARE(calendar->month(testDate), 12);
|
||
QCOMPARE(calendar->day(testDate), 29);
|
||
QCOMPARE(calendar->isLeapYear(testDate), false);
|
||
QCOMPARE(calendar->daysInYear(testDate), 354);
|
||
QCOMPARE(calendar->daysInMonth(testDate), 29);
|
||
QCOMPARE(calendar->dayOfYear(testDate), 354);
|
||
|
||
testDate.setDate(2009, 12, 18); //1431-01-01, jd 2455184, leap
|
||
QCOMPARE(calendar->year(testDate), 1431);
|
||
QCOMPARE(calendar->month(testDate), 1);
|
||
QCOMPARE(calendar->day(testDate), 1);
|
||
QCOMPARE(calendar->isLeapYear(testDate), true);
|
||
QCOMPARE(calendar->daysInYear(testDate), 355);
|
||
QCOMPARE(calendar->daysInMonth(testDate), 30);
|
||
QCOMPARE(calendar->dayOfYear(testDate), 1);
|
||
|
||
testDate.setDate(2010, 12, 7); //1431-12-30, jd 2455538, leap
|
||
QCOMPARE(calendar->year(testDate), 1431);
|
||
QCOMPARE(calendar->month(testDate), 12);
|
||
QCOMPARE(calendar->day(testDate), 30);
|
||
QCOMPARE(calendar->isLeapYear(testDate), true);
|
||
QCOMPARE(calendar->daysInYear(testDate), 355);
|
||
QCOMPARE(calendar->daysInMonth(testDate), 30);
|
||
QCOMPARE(calendar->dayOfYear(testDate), 355);
|
||
|
||
testDate.setDate(2005, 9, 10); //1426-08-06
|
||
QCOMPARE(calendar->year(testDate), 1426);
|
||
QCOMPARE(calendar->month(testDate), 8);
|
||
QCOMPARE(calendar->day(testDate), 6);
|
||
QCOMPARE(calendar->daysInYear(testDate), 355);
|
||
QCOMPARE(calendar->daysInMonth(testDate), 29);
|
||
QCOMPARE(calendar->weeksInYear(testDate.year()), 50);
|
||
QCOMPARE(calendar->weekNumber(testDate), 31);
|
||
QCOMPARE(calendar->dayOfYear(testDate), 213);
|
||
|
||
QVERIFY(calendar->setDate(testDate, 2000, 3, 1));
|
||
QCOMPARE(calendar->year(testDate), 2000);
|
||
QCOMPARE(calendar->month(testDate), 3);
|
||
QCOMPARE(calendar->day(testDate), 1);
|
||
|
||
QDate newDate = calendar->addYears(testDate, 4);
|
||
QCOMPARE(newDate.year(), 2566);
|
||
QCOMPARE(calendar->daysInYear(newDate), 355);
|
||
|
||
newDate = calendar->addMonths(testDate, -4);
|
||
QCOMPARE(newDate.year(), 2561);
|
||
QCOMPARE(newDate.month(), 11);
|
||
QCOMPARE(newDate.day(), 10);
|
||
|
||
newDate = calendar->addDays(newDate, 20);
|
||
QCOMPARE(newDate.year(), 2561);
|
||
QCOMPARE(newDate.month(), 11);
|
||
QCOMPARE(newDate.day(), 30);
|
||
|
||
delete calendar;
|
||
}
|
||
|
||
|
||
void KCalendarTest::testIndianNational()
|
||
{
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::IndianNationalCalendar);
|
||
QDate testDate(2005, 9, 10);
|
||
|
||
calendar->setDate(testDate, 2000, 1, 1);
|
||
calendar->setDate(testDate, 2000, 1, 10);
|
||
calendar->setDate(testDate, 2000, 2, 10);
|
||
calendar->setDate(testDate, 2000, 5, 20);
|
||
calendar->setDate(testDate, 2000, 7, 1);
|
||
calendar->setDate(testDate, 2000, 7, 10);
|
||
calendar->setDate(testDate, 2000, 9, 10);
|
||
calendar->setDate(testDate, 2000, 12, 20);
|
||
|
||
QCOMPARE(calendar->isLeapYear(2009), false);
|
||
QCOMPARE(calendar->isLeapYear(testDate), false);
|
||
|
||
QVERIFY(calendar->setDate(testDate, 2000, 3, 1));
|
||
QCOMPARE(calendar->year(testDate), 2000);
|
||
QCOMPARE(calendar->month(testDate), 3);
|
||
QCOMPARE(calendar->day(testDate), 1);
|
||
|
||
// Test some key dates
|
||
testYmd(calendar, 0, 1, 1, QDate(78, 3, 24).toJulianDay());
|
||
testYmd(calendar, 0, 12, 30, QDate(79, 3, 23).toJulianDay());
|
||
testYmd(calendar, 1922, 1, 1, QDate(2000, 3, 21).toJulianDay());
|
||
testYmd(calendar, 1922, 12, 30, QDate(2001, 3, 21).toJulianDay());
|
||
testYmd(calendar, 1932, 1, 1, QDate(2010, 3, 22).toJulianDay());
|
||
testYmd(calendar, 1932, 12, 30, QDate(2011, 3, 21).toJulianDay());
|
||
|
||
testRoundTrip(calendar);
|
||
|
||
delete calendar;
|
||
}
|
||
|
||
void KCalendarTest::testQDateCalendarBasic()
|
||
{
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::QDateCalendar);
|
||
|
||
testCalendarSystemType(calendar, KLocale::QDateCalendar, "gregorian", "Gregorian");
|
||
|
||
QCOMPARE(calendar->epoch(), QDate(1, 1, 1));
|
||
QCOMPARE(calendar->earliestValidDate(), QDate(-4712, 1, 1));
|
||
QCOMPARE(calendar->latestValidDate(), QDate(9999, 12, 31));
|
||
|
||
testValid(calendar, 0, 10000, 13, 32, QDate(-5000, 1, 1));
|
||
|
||
QCOMPARE(calendar->isLeapYear(2007), false);
|
||
QCOMPARE(calendar->isLeapYear(2008), true);
|
||
QCOMPARE(calendar->isLeapYear(1900), false);
|
||
QCOMPARE(calendar->isLeapYear(2000), true);
|
||
QCOMPARE(calendar->isLeapYear(QDate(2007, 1, 1)), false);
|
||
QCOMPARE(calendar->isLeapYear(QDate(2008, 1, 1)), true);
|
||
|
||
QCOMPARE(calendar->daysInWeek(QDate(2007, 1, 1)), 7);
|
||
|
||
QCOMPARE(calendar->monthsInYear(2007), 12);
|
||
QCOMPARE(calendar->monthsInYear(QDate(2007, 1, 1)), 12);
|
||
|
||
testYear(calendar, QDate(2007, 7, 9), 2007, QString("07"), QString("2007"));
|
||
testMonth(calendar, QDate(2007, 7, 9), 7, QString("7"), QString("07"));
|
||
testDay(calendar, QDate(2007, 7, 9), 9, QString("9"), QString("09"));
|
||
|
||
testEraDate(calendar, QDate(2005, 1, 1), 2005, "2005", "2005", "AD", "Anno Domini");
|
||
testEraDate(calendar, QDate(-5, 1, 1), 5, "5", "0005", "BC", "Before Christ");
|
||
|
||
testWeekDayName(calendar, 6, QDate(2007, 7, 28), "S", "Sat", "Saturday");
|
||
testMonthName(calendar, 12, 2007, QDate(2007, 12, 20), "D", "Dec", "December", "of Dec", "of December");
|
||
|
||
QCOMPARE(calendar->monthsInYear(QDate(2007, 1, 1)), 12);
|
||
|
||
QCOMPARE(calendar->weekStartDay(), 1);
|
||
QCOMPARE(calendar->weekDayOfPray(), 7);
|
||
|
||
QCOMPARE(calendar->isProleptic(), false);
|
||
QCOMPARE(calendar->isLunar(), false);
|
||
QCOMPARE(calendar->isLunisolar(), false);
|
||
QCOMPARE(calendar->isSolar(), true);
|
||
|
||
testRoundTrip(calendar);
|
||
|
||
delete calendar;
|
||
}
|
||
|
||
void KCalendarTest::testQDateCalendarYmd()
|
||
{
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::QDateCalendar);
|
||
testYmd(calendar, 2007, 1, 1, QDate(2007, 1, 1).toJulianDay());
|
||
delete calendar;
|
||
}
|
||
|
||
void KCalendarTest::testQDateCalendarSpecialCases()
|
||
{
|
||
KConfigGroup lcg(KGlobal::config(), QString("Locale"));
|
||
KConfigGroup cg = lcg.group(QString("KCalendarSystem %1").arg("gregorian"));
|
||
cg.deleteGroup();
|
||
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::QDateCalendar);
|
||
|
||
testEraDate(calendar, QDate(2010, 1, 1), 2010, "2010", "2010", "AD", "Anno Domini");
|
||
testEraDate(calendar, QDate(-5, 1, 1), 5, "5", "0005", "BC", "Before Christ");
|
||
|
||
delete calendar;
|
||
cg.writeEntry("UseCommonEra", false, KConfigGroup::Global);
|
||
calendar = KCalendarSystem::create(KLocale::QDateCalendar);
|
||
testEraDate(calendar, QDate(2010, 1, 1), 2010, "2010", "2010", "AD", "Anno Domini");
|
||
testEraDate(calendar, QDate(-5, 1, 1), 5, "5", "0005", "BC", "Before Christ");
|
||
|
||
delete calendar;
|
||
cg.writeEntry("UseCommonEra", true, KConfigGroup::Global);
|
||
calendar = KCalendarSystem::create(KLocale::QDateCalendar);
|
||
testEraDate(calendar, QDate(2010, 1, 1), 2010, "2010", "2010", "CE", "Common Era");
|
||
testEraDate(calendar, QDate(-5, 1, 1), 5, "5", "0005", "BCE", "Before Common Era");
|
||
|
||
cg.deleteGroup();
|
||
cg.markAsClean();
|
||
delete calendar;
|
||
}
|
||
|
||
|
||
void KCalendarTest::testGregorianBasic()
|
||
{
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::GregorianCalendar);
|
||
|
||
testCalendarSystemType(calendar, KLocale::GregorianCalendar, "gregorian-proleptic", "Gregorian (Proleptic)");
|
||
|
||
QCOMPARE(calendar->epoch(), QDate::fromJulianDay(1721426));
|
||
QCOMPARE(calendar->earliestValidDate(), QDate::fromJulianDay(38));
|
||
QCOMPARE(calendar->latestValidDate(), QDate(9999, 12, 31));
|
||
|
||
testValid(calendar, 0, 10000, 13, 32, QDate());
|
||
|
||
QCOMPARE(calendar->isLeapYear(2007), false);
|
||
QCOMPARE(calendar->isLeapYear(2008), true);
|
||
QCOMPARE(calendar->isLeapYear(1900), false);
|
||
QCOMPARE(calendar->isLeapYear(2000), true);
|
||
QCOMPARE(calendar->isLeapYear(QDate(2007, 1, 1)), false);
|
||
QCOMPARE(calendar->isLeapYear(QDate(2008, 1, 1)), true);
|
||
|
||
QCOMPARE(calendar->daysInWeek(QDate(2007, 1, 1)), 7);
|
||
|
||
QCOMPARE(calendar->monthsInYear(2007), 12);
|
||
QCOMPARE(calendar->monthsInYear(QDate(2007, 1, 1)), 12);
|
||
|
||
testYear(calendar, QDate(2007, 7, 9), 2007, QString("07"), QString("2007"));
|
||
testMonth(calendar, QDate(2007, 7, 9), 7, QString("7"), QString("07"));
|
||
testDay(calendar, QDate(2007, 7, 9), 9, QString("9"), QString("09"));
|
||
|
||
testEraDate(calendar, QDate(2005, 1, 1), 2005, "2005", "2005", "AD", "Anno Domini");
|
||
testEraDate(calendar, QDate(-5, 1, 3), 5, "5", "0005", "BC", "Before Christ");
|
||
|
||
testWeekDayName(calendar, 6, QDate(2007, 7, 28), "S", "Sat", "Saturday");
|
||
testMonthName(calendar, 12, 2007, QDate(2007, 12, 20), "D", "Dec", "December", "of Dec", "of December");
|
||
|
||
QCOMPARE(calendar->monthsInYear(QDate(2007, 1, 1)), 12);
|
||
|
||
QCOMPARE(calendar->weekStartDay(), 1);
|
||
QCOMPARE(calendar->weekDayOfPray(), 7);
|
||
|
||
QCOMPARE(calendar->isProleptic(), true);
|
||
QCOMPARE(calendar->isLunar(), false);
|
||
QCOMPARE(calendar->isLunisolar(), false);
|
||
QCOMPARE(calendar->isSolar(), true);
|
||
|
||
testRoundTrip(calendar);
|
||
|
||
delete calendar;
|
||
}
|
||
|
||
|
||
// Test Hebrew Calendar System
|
||
|
||
void KCalendarTest::testHebrewBasic()
|
||
{
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::HebrewCalendar);
|
||
QDate testDate;
|
||
|
||
testCalendarSystemType(calendar, KLocale::HebrewCalendar, "hebrew", "Hebrew");
|
||
|
||
testEpoch(calendar, 1, 1, 1, 347998);
|
||
testEarliestValidDate(calendar, 5344, 1, 1, 2299498);
|
||
testLatestValidDate(calendar, 8119, 13, 29, 3313431);
|
||
|
||
testDate = QDate::fromJulianDay(2450340); //5756-12-29 Not Leap
|
||
QCOMPARE(calendar->isLeapYear(5756), false);
|
||
QCOMPARE(calendar->isLeapYear(testDate), false);
|
||
QCOMPARE(calendar->monthsInYear(testDate), 12);
|
||
QCOMPARE(calendar->month(testDate), 12);
|
||
QCOMPARE(calendar->monthName(testDate), QString("Elul"));
|
||
|
||
testDate = QDate::fromJulianDay(2450723); //5757-13-29 Leap
|
||
QCOMPARE(calendar->isLeapYear(5757), true);
|
||
QCOMPARE(calendar->isLeapYear(testDate), true);
|
||
QCOMPARE(calendar->monthsInYear(testDate), 13);
|
||
QCOMPARE(calendar->month(testDate), 13);
|
||
QCOMPARE(calendar->monthName(testDate), QString("Elul"));
|
||
|
||
// 5707-01-01 Thursday
|
||
testDate = QDate::fromJulianDay(2432090);
|
||
|
||
QCOMPARE(calendar->daysInWeek(testDate), 7);
|
||
|
||
testYear(calendar, testDate, 5707, "07", "5707");
|
||
testMonth(calendar, testDate, 1, "1", "01");
|
||
testDay(calendar, testDate, 1, "1", "01");
|
||
|
||
testEraDate(calendar, testDate, 5707, "5707", "5707", "AM", "Anno Mundi");
|
||
|
||
testWeekDayName(calendar, 4, testDate, "T", "Thu", "Thursday");
|
||
testMonthName(calendar, 1, 5707, testDate, "T", "Tis", "Tishrey", "of Tis", "of Tishrey");
|
||
|
||
QCOMPARE(calendar->weekStartDay(), 1);
|
||
QCOMPARE(calendar->weekDayOfPray(), 6);
|
||
|
||
QCOMPARE(calendar->isProleptic(), false);
|
||
QCOMPARE(calendar->isLunar(), false);
|
||
QCOMPARE(calendar->isLunisolar(), true);
|
||
QCOMPARE(calendar->isSolar(), false);
|
||
|
||
testRoundTrip(calendar);
|
||
|
||
delete calendar;
|
||
}
|
||
|
||
void KCalendarTest::testHebrewYmd()
|
||
{
|
||
// const KCalendarSystem *calendar = KCalendarSystem::create( KLocale::HebrewCalendar );
|
||
// testYmd( calendar, 2007, 1, 1, QDate( 2007, 1, 1 ).toJulianDay() );
|
||
// delete calendar;
|
||
}
|
||
|
||
void KCalendarTest::testHebrewCompare()
|
||
{
|
||
/*
|
||
const KCalendarSystemHebrew *calendar = new KCalendarSystemHebrew();
|
||
QDate setOldDate, setNewDate;
|
||
|
||
for ( QDate testDate( 1900, 1, 1 ); testDate.year() == 2100; testDate.addDays(1) ) {
|
||
QCOMPARE( calendar->year( testDate ), calendar->oldyear( testDate ) );
|
||
QCOMPARE( calendar->month( testDate ), calendar->oldmonth( testDate ) );
|
||
QCOMPARE( calendar->day( testDate ), calendar->oldday( testDate ) );
|
||
|
||
calendar->setDate(setOldDate, calendar->oldyear( testDate ), calendar->oldmonth( testDate ), calendar->oldday( testDate ) );
|
||
calendar->setDate(setNewDate, calendar->oldyear( testDate ), calendar->oldmonth( testDate ), calendar->oldday( testDate ) );
|
||
QCOMPARE( setNewDate.toJulianDay(), setOldDate.toJulianDay() );
|
||
}
|
||
|
||
delete calendar;
|
||
*/
|
||
}
|
||
|
||
// Test Islamic Civil Calendar System
|
||
|
||
void KCalendarTest::testIslamicCivilBasic()
|
||
{
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::IslamicCivilCalendar);
|
||
QDate testDate;
|
||
|
||
testCalendarSystemType(calendar, KLocale::IslamicCivilCalendar, "hijri", "Islamic / Hijri (Civil)");
|
||
|
||
QCOMPARE(calendar->epoch(), QDate(622, 7, 16));
|
||
QCOMPARE(calendar->earliestValidDate(), QDate(622, 7, 16));
|
||
QCOMPARE(calendar->latestValidDate(), QDate(10323, 10, 21));
|
||
|
||
testValid(calendar, 0, 10000, 13, 31, QDate(1, 1, 1));
|
||
|
||
QCOMPARE(calendar->isLeapYear(1427), false);
|
||
QCOMPARE(calendar->isLeapYear(1428), true);
|
||
QCOMPARE(calendar->isLeapYear(QDate(2007, 1, 1)), false);
|
||
QCOMPARE(calendar->isLeapYear(QDate(2008, 1, 1)), true);
|
||
|
||
// 1426-08-06 Saturday
|
||
testDate = QDate(2005, 9, 10);
|
||
|
||
QCOMPARE(calendar->daysInWeek(testDate), 7);
|
||
|
||
QCOMPARE(calendar->monthsInYear(1426), 12);
|
||
QCOMPARE(calendar->monthsInYear(testDate), 12);
|
||
|
||
testYear(calendar, testDate, 1426, "26", "1426");
|
||
testMonth(calendar, testDate, 8, "8", "08");
|
||
testDay(calendar, testDate, 6, "6", "06");
|
||
|
||
testEraDate(calendar, testDate, 1426, "1426", "1426", "AH", "Anno Hegirae");
|
||
|
||
testWeekDayName(calendar, 6, testDate, "S", "Sab", "Yaum al-Sabt");
|
||
testMonthName(calendar, 12, 1428, QDate(2007, 12, 20), "H", "Hij", "Thu al-Hijjah", "of Hij", "of Thu al-Hijjah");
|
||
|
||
QCOMPARE(calendar->monthsInYear(testDate), 12);
|
||
|
||
QCOMPARE(calendar->weekStartDay(), 1);
|
||
QCOMPARE(calendar->weekDayOfPray(), 5);
|
||
|
||
QCOMPARE(calendar->isProleptic(), false);
|
||
QCOMPARE(calendar->isLunar(), true);
|
||
QCOMPARE(calendar->isLunisolar(), false);
|
||
QCOMPARE(calendar->isSolar(), false);
|
||
|
||
testRoundTrip(calendar);
|
||
|
||
delete calendar;
|
||
}
|
||
|
||
void KCalendarTest::testIslamicCivilYmd()
|
||
{
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::IslamicCivilCalendar);
|
||
testYmd(calendar, 1426, 8, 6, QDate(2005, 9, 10).toJulianDay());
|
||
delete calendar;
|
||
}
|
||
|
||
|
||
// Jalali Calendar System
|
||
|
||
void KCalendarTest::testJalaliBasic()
|
||
{
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::JalaliCalendar);
|
||
QDate testDate;
|
||
|
||
testCalendarSystemType(calendar, KLocale::JalaliCalendar, "jalali", "Jalali");
|
||
|
||
//Birashk argorithm only good between AP 1244-01-01 to 1530-12-29 (AD 1865 to 2152)
|
||
QCOMPARE(calendar->epoch(), QDate(622, 3, 19));
|
||
QCOMPARE(calendar->earliestValidDate(), QDate(1865, 03, 21));
|
||
QCOMPARE(calendar->latestValidDate(), QDate(2152, 03, 19));
|
||
QCOMPARE(calendar->isValid(1243, 12, 29), false);
|
||
QCOMPARE(calendar->isValid(1531, 1, 1), false);
|
||
|
||
QCOMPARE(calendar->isLeapYear(1386), false);
|
||
QCOMPARE(calendar->isLeapYear(1387), true);
|
||
QCOMPARE(calendar->isLeapYear(QDate(2008, 1, 1)), false);
|
||
QCOMPARE(calendar->isLeapYear(QDate(2009, 1, 1)), true);
|
||
|
||
testDate = QDate(2005, 8, 31); // 1384-06-09 Wednesday
|
||
|
||
QCOMPARE(calendar->daysInWeek(testDate), 7);
|
||
QCOMPARE(calendar->monthsInYear(1384), 12);
|
||
QCOMPARE(calendar->monthsInYear(testDate), 12);
|
||
|
||
testYear(calendar, testDate, 1384, "84", "1384");
|
||
testMonth(calendar, testDate, 6, "6", "06");
|
||
testDay(calendar, testDate, 9, "9", "09");
|
||
|
||
testEraDate(calendar, testDate, 1384, "1384", "1384", "AP", "Anno Persico");
|
||
|
||
testWeekDayName(calendar, 3, testDate, "4", "4sh", "Chahar shanbe");
|
||
testMonthName(calendar, 6, 1384, testDate, "S", "Sha", "Shahrivar", "of Sha", "of Shahrivar");
|
||
|
||
QCOMPARE(calendar->monthsInYear(testDate), 12);
|
||
|
||
QCOMPARE(calendar->weekStartDay(), 1);
|
||
QCOMPARE(calendar->weekDayOfPray(), 5);
|
||
|
||
QCOMPARE(calendar->isProleptic(), false);
|
||
QCOMPARE(calendar->isLunar(), false);
|
||
QCOMPARE(calendar->isLunisolar(), false);
|
||
QCOMPARE(calendar->isSolar(), true);
|
||
|
||
testRoundTrip(calendar);
|
||
|
||
//Special cases using Birashk argorithm
|
||
QCOMPARE(calendar->isLeapYear(1403), true);
|
||
QCOMPARE(calendar->isLeapYear(1404), false);
|
||
QCOMPARE(calendar->isLeapYear(1436), true);
|
||
QCOMPARE(calendar->isLeapYear(1437), false);
|
||
|
||
delete calendar;
|
||
}
|
||
|
||
void KCalendarTest::testJalaliYmd()
|
||
{
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::JalaliCalendar);
|
||
testYmd(calendar, 1384, 6, 9, QDate(2005, 8, 31).toJulianDay());
|
||
delete calendar;
|
||
}
|
||
|
||
void KCalendarTest::testJapanese()
|
||
{
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::JapaneseCalendar);
|
||
QDate testDate(2005, 9, 10);
|
||
|
||
QCOMPARE(calendar->dayOfYear(testDate), 253);
|
||
|
||
QVERIFY(calendar->setDate(testDate, 2000, 3, 1));
|
||
QCOMPARE(calendar->year(testDate), 2000);
|
||
QCOMPARE(calendar->month(testDate), 3);
|
||
QCOMPARE(calendar->day(testDate), 1);
|
||
QCOMPARE(calendar->daysInYear(testDate), 366);
|
||
|
||
QDate newDate = calendar->addYears(testDate, 4);
|
||
QCOMPARE(newDate.year(), 2004);
|
||
QCOMPARE(calendar->daysInYear(newDate), 366);
|
||
|
||
newDate = calendar->addMonths(testDate, -4);
|
||
QCOMPARE(newDate.year(), 1999);
|
||
QCOMPARE(newDate.month(), 11);
|
||
QCOMPARE(newDate.day(), 1);
|
||
|
||
newDate = calendar->addDays(newDate, 20);
|
||
QCOMPARE(newDate.year(), 1999);
|
||
QCOMPARE(newDate.month(), 11);
|
||
QCOMPARE(newDate.day(), 21);
|
||
|
||
delete calendar;
|
||
}
|
||
|
||
void KCalendarTest::testJapaneseBasic()
|
||
{
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::JapaneseCalendar);
|
||
QDate testDate;
|
||
|
||
testCalendarSystemType(calendar, KLocale::JapaneseCalendar, "japanese", "Japanese");
|
||
|
||
QCOMPARE(calendar->epoch(), QDate::fromJulianDay(1721426));
|
||
QCOMPARE(calendar->earliestValidDate(), QDate::fromJulianDay(1721426));
|
||
QCOMPARE(calendar->latestValidDate(), QDate(9999, 12, 31));
|
||
|
||
testValid(calendar, 0, 10000, 13, 32, QDate(-5000, 1, 1));
|
||
|
||
QCOMPARE(calendar->isLeapYear(2007), false);
|
||
QCOMPARE(calendar->isLeapYear(2008), true);
|
||
QCOMPARE(calendar->isLeapYear(1900), false);
|
||
QCOMPARE(calendar->isLeapYear(2000), true);
|
||
QCOMPARE(calendar->isLeapYear(QDate(2007, 1, 1)), false);
|
||
QCOMPARE(calendar->isLeapYear(QDate(2008, 1, 1)), true);
|
||
|
||
QCOMPARE(calendar->daysInWeek(QDate(2007, 1, 1)), 7);
|
||
QCOMPARE(calendar->monthsInYear(QDate(2007, 1, 1)), 12);
|
||
|
||
testDate = QDate(2007, 7, 9); // 2007-07-09
|
||
testYear(calendar, testDate, 2007, "07", "2007");
|
||
testMonth(calendar, testDate, 7, "7", "07");
|
||
testDay(calendar, testDate, 9, "9", "09");
|
||
|
||
testEraDate(calendar, testDate, 19, "19", "0019", "Heisei", "Heisei");
|
||
|
||
testWeekDayName(calendar, 6, QDate(2007, 7, 28), "S", "Sat", "Saturday");
|
||
testMonthName(calendar, 12, 2007, QDate(2007, 12, 20), "D", "Dec", "December", "of Dec", "of December");
|
||
|
||
QCOMPARE(calendar->monthsInYear(QDate(2007, 1, 1)), 12);
|
||
|
||
QCOMPARE(calendar->weekStartDay(), 1);
|
||
QCOMPARE(calendar->weekDayOfPray(), 7);
|
||
|
||
QCOMPARE(calendar->isProleptic(), false);
|
||
QCOMPARE(calendar->isLunar(), false);
|
||
QCOMPARE(calendar->isLunisolar(), false);
|
||
QCOMPARE(calendar->isSolar(), true);
|
||
|
||
testRoundTrip(calendar);
|
||
|
||
delete calendar;
|
||
}
|
||
|
||
void KCalendarTest::testJapaneseYmd()
|
||
{
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::JapaneseCalendar);
|
||
testYmd(calendar, 2007, 1, 1, QDate(2007, 1, 1).toJulianDay());
|
||
delete calendar;
|
||
}
|
||
|
||
void KCalendarTest::testJapaneseSpecialCases()
|
||
{
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::JapaneseCalendar);
|
||
|
||
// Test Japanese Eras
|
||
// Heisei > 1 1990-01-01 onwards
|
||
// Heisei 1 (Gannen) 1989-01-08 to 1989-12-31
|
||
// Sh<53><68>wa > 1 1927-01-01 to 1989-01-07
|
||
// Sh<53><68>wa 1 (Gannen) 1926-12-25 to 1926-12-31
|
||
// Taish<73><68> > 1 1913-01-01 to 1926-12-24
|
||
// Taish<73><68> 1 (Gannen) 1912-07-30 to 1912-12-31
|
||
// Meiji > 1 1869-01-01 to 1912-07-29
|
||
// Meiji 1 (Gannen) 1868-09-08 to 1868-12-31
|
||
// Gregorian 0001-01-01 to 1868-09-07
|
||
|
||
testEraDate(calendar, QDate(1990, 1, 1), 2, "2", "0002", "Heisei", "Heisei");
|
||
testEraDate(calendar, QDate(1989, 1, 8), 1, "1", "0001", "Heisei", "Heisei");
|
||
//testEraDate( calendar, QDate( 1989, 1, 7 ), 64, "64", "0064", "Sh<53><68>wa", "Sh<53><68>wa" );
|
||
//testEraDate( calendar, QDate( 1927, 1, 1 ), 2, "2", "0002", "Sh<53><68>wa", "Sh<53><68>wa" );
|
||
//testEraDate( calendar, QDate( 1926, 12, 25 ), 1, "1", "0001", "Sh<53><68>wa", "Sh<53><68>wa" );
|
||
//testEraDate( calendar, QDate( 1926, 12, 24 ), 15, "15", "0015", "Taish<73><68>", "Taish<73><68>" );
|
||
//testEraDate( calendar, QDate( 1913, 1, 1 ), 2, "2", "0002", "Taish<73><68>", "Taish<73><68>" );
|
||
//testEraDate( calendar, QDate( 1912, 7, 30 ), 1, "1", "0001", "Taish<73><68>", "Taish<73><68>" );
|
||
testEraDate(calendar, QDate(1912, 7, 29), 45, "45", "0045", "Meiji", "Meiji");
|
||
testEraDate(calendar, QDate(1869, 1, 1), 2, "2", "0002", "Meiji", "Meiji");
|
||
testEraDate(calendar, QDate(1868, 9, 8), 1, "1", "0001", "Meiji", "Meiji");
|
||
testEraDate(calendar, QDate(1868, 9, 7), 1868, "1868", "1868", "AD", "Anno Domini");
|
||
|
||
// Should always be able to read Gannen as year 1
|
||
QCOMPARE(calendar->readDate("1 2 Heisei 1", "%e %n %EC %Ey"), QDate(1989, 2, 1));
|
||
QCOMPARE(calendar->readDate("1 2 Heisei 1", "%e %n %EY"), QDate(1989, 2, 1));
|
||
QCOMPARE(calendar->readDate("1 2 Heisei Gannen", "%e %n %EC %Ey"), QDate(1989, 2, 1));
|
||
QCOMPARE(calendar->readDate("1 2 Heisei Gannen", "%e %n %EY"), QDate(1989, 2, 1));
|
||
|
||
// Should only format Gannen if defined in %EY format, never for %Ey
|
||
QCOMPARE(calendar->formatDate(QDate(1989, 2, 1), "%e %n %EC %Ey"), QString("1 2 Heisei 1"));
|
||
QCOMPARE(calendar->formatDate(QDate(1989, 2, 1), "%e %n %EY"), QString("1 2 Heisei Gannen"));
|
||
QCOMPARE(calendar->formatDate(QDate(1990, 2, 1), "%e %n %EC %Ey"), QString("1 2 Heisei 2"));
|
||
QCOMPARE(calendar->formatDate(QDate(1990, 2, 1), "%e %n %EY"), QString("1 2 Heisei 2"));
|
||
|
||
delete calendar;
|
||
}
|
||
|
||
void KCalendarTest::testMinguoBasic()
|
||
{
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::MinguoCalendar);
|
||
|
||
testCalendarSystemType(calendar, KLocale::MinguoCalendar, "minguo", "Taiwanese");
|
||
|
||
QCOMPARE(calendar->epoch(), QDate(1912, 1, 1));
|
||
QCOMPARE(calendar->earliestValidDate(), QDate(1912, 1, 1));
|
||
QCOMPARE(calendar->latestValidDate(), QDate(11910, 12, 31));
|
||
|
||
testValid(calendar, -1, 10000, 13, 32, QDate());
|
||
|
||
QCOMPARE(calendar->isLeapYear(2007 - 1911), false);
|
||
QCOMPARE(calendar->isLeapYear(2008 - 1911), true);
|
||
QCOMPARE(calendar->isLeapYear(1900 - 1911), false);
|
||
QCOMPARE(calendar->isLeapYear(2000 - 1911), true);
|
||
QCOMPARE(calendar->isLeapYear(QDate(2007, 1, 1)), false);
|
||
QCOMPARE(calendar->isLeapYear(QDate(2008, 1, 1)), true);
|
||
|
||
QCOMPARE(calendar->daysInWeek(QDate(2007, 1, 1)), 7);
|
||
|
||
QCOMPARE(calendar->monthsInYear(2007 - 1911), 12);
|
||
QCOMPARE(calendar->monthsInYear(QDate(2007, 1, 1)), 12);
|
||
|
||
testYear(calendar, QDate(2007, 7, 9), 2007 - 1911, QString("96"), QString("0096"));
|
||
testMonth(calendar, QDate(2007, 7, 9), 7, QString("7"), QString("07"));
|
||
testDay(calendar, QDate(2007, 7, 9), 9, QString("9"), QString("09"));
|
||
|
||
testEraDate(calendar, QDate(2007, 1, 1), 2007 - 1911, "96", "0096", "ROC", "Republic of China Era");
|
||
|
||
testWeekDayName(calendar, 6, QDate(2007, 7, 28), "S", "Sat", "Saturday");
|
||
testMonthName(calendar, 12, 2007 - 1911, QDate(2007, 12, 20), "D", "Dec", "December", "of Dec", "of December");
|
||
|
||
QCOMPARE(calendar->monthsInYear(QDate(2007, 1, 1)), 12);
|
||
|
||
QCOMPARE(calendar->weekStartDay(), 1);
|
||
QCOMPARE(calendar->weekDayOfPray(), 7);
|
||
|
||
QCOMPARE(calendar->isProleptic(), false);
|
||
QCOMPARE(calendar->isLunar(), false);
|
||
QCOMPARE(calendar->isLunisolar(), false);
|
||
QCOMPARE(calendar->isSolar(), true);
|
||
|
||
testRoundTrip(calendar);
|
||
|
||
delete calendar;
|
||
}
|
||
|
||
|
||
void KCalendarTest::testThaiBasic()
|
||
{
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::ThaiCalendar);
|
||
|
||
testCalendarSystemType(calendar, KLocale::ThaiCalendar, "thai", "Thai");
|
||
|
||
QCOMPARE(calendar->epoch(), QDate(-544, 1, 7));
|
||
QCOMPARE(calendar->earliestValidDate(), QDate(-544, 1, 7));
|
||
QCOMPARE(calendar->latestValidDate(), QDate(9456, 12, 31));
|
||
|
||
testValid(calendar, -1, 10000, 13, 32, QDate());
|
||
|
||
QCOMPARE(calendar->isLeapYear(2007 + 543), false);
|
||
QCOMPARE(calendar->isLeapYear(2008 + 543), true);
|
||
QCOMPARE(calendar->isLeapYear(1900 + 543), false);
|
||
QCOMPARE(calendar->isLeapYear(2000 + 543), true);
|
||
QCOMPARE(calendar->isLeapYear(QDate(2007, 1, 1)), false);
|
||
QCOMPARE(calendar->isLeapYear(QDate(2008, 1, 1)), true);
|
||
|
||
QCOMPARE(calendar->daysInWeek(QDate(2007, 1, 1)), 7);
|
||
|
||
QCOMPARE(calendar->monthsInYear(2007 + 543), 12);
|
||
QCOMPARE(calendar->monthsInYear(QDate(2007, 1, 1)), 12);
|
||
|
||
testYear(calendar, QDate(2007, 7, 9), 2007 + 543, QString("50"), QString("2550"));
|
||
testMonth(calendar, QDate(2007, 7, 9), 7, QString("7"), QString("07"));
|
||
testDay(calendar, QDate(2007, 7, 9), 9, QString("9"), QString("09"));
|
||
|
||
testEraDate(calendar, QDate(2007, 1, 1), 2007 + 543, "2550", "2550", "BE", "Buddhist Era");
|
||
|
||
testWeekDayName(calendar, 6, QDate(2007, 7, 28), "S", "Sat", "Saturday");
|
||
testMonthName(calendar, 12, 2007 + 543, QDate(2007, 12, 20), "D", "Dec", "December", "of Dec", "of December");
|
||
|
||
QCOMPARE(calendar->monthsInYear(QDate(2007, 1, 1)), 12);
|
||
|
||
QCOMPARE(calendar->weekStartDay(), 1);
|
||
QCOMPARE(calendar->weekDayOfPray(), 7);
|
||
|
||
QCOMPARE(calendar->isProleptic(), false);
|
||
QCOMPARE(calendar->isLunar(), false);
|
||
QCOMPARE(calendar->isLunisolar(), false);
|
||
QCOMPARE(calendar->isSolar(), true);
|
||
|
||
testRoundTrip(calendar);
|
||
|
||
delete calendar;
|
||
}
|
||
|
||
|
||
// generic test functions, call from calendar system specific ones
|
||
void KCalendarTest::testCalendarSystemType(const KCalendarSystem *calendar,
|
||
KLocale::CalendarSystem system,
|
||
const QString &type, const QString &label)
|
||
{
|
||
QCOMPARE(calendar->calendarType(system), type);
|
||
QCOMPARE(calendar->calendarSystem(type), system);
|
||
QCOMPARE(calendar->calendarType(), type);
|
||
QCOMPARE(calendar->calendarSystem(), system);
|
||
QCOMPARE(calendar->calendarLabel(), label);
|
||
QCOMPARE(KCalendarSystem::calendarLabel(type), label);
|
||
QCOMPARE(KCalendarSystem::calendarLabel(system), label);
|
||
}
|
||
|
||
// Simply tests valid ranges of ymd values, testYmd covers all other dates
|
||
void KCalendarTest::testValid(const KCalendarSystem *calendar, int lowInvalidYear, int highInvalidYear,
|
||
int highInvalidMonth, int highInvalidDay, const QDate &invalidDate)
|
||
{
|
||
// min/max year
|
||
QCOMPARE(calendar->isValid(lowInvalidYear, 1, 1), false);
|
||
QCOMPARE(calendar->isValid(highInvalidYear, 1, 1), false);
|
||
|
||
// min/max month
|
||
QCOMPARE(calendar->isValid(1, 0, 1), false);
|
||
QCOMPARE(calendar->isValid(1, highInvalidMonth, 1), false);
|
||
|
||
// min/max day
|
||
QCOMPARE(calendar->isValid(1, 1, 0), false);
|
||
QCOMPARE(calendar->isValid(1, 1, highInvalidDay), false);
|
||
|
||
QCOMPARE(calendar->isValid(1, 1, 1), true);
|
||
|
||
QCOMPARE(calendar->isValid(invalidDate), false);
|
||
QCOMPARE(calendar->isValid(QDate(2000, 1, 1)), true);
|
||
}
|
||
|
||
void KCalendarTest::testEpoch(const KCalendarSystem *calendar, int y, int m, int d, int jd)
|
||
{
|
||
QCOMPARE(calendar->epoch(), QDate::fromJulianDay(jd));
|
||
if (calendar->epoch() >= calendar->earliestValidDate()) {
|
||
testYmd(calendar, y, m, d, jd);
|
||
}
|
||
}
|
||
|
||
void KCalendarTest::testEarliestValidDate(const KCalendarSystem *calendar, int y, int m, int d, int jd)
|
||
{
|
||
QCOMPARE(calendar->earliestValidDate(), QDate::fromJulianDay(jd));
|
||
testYmd(calendar, y, m, d, jd);
|
||
}
|
||
|
||
void KCalendarTest::testLatestValidDate(const KCalendarSystem *calendar, int y, int m, int d, int jd)
|
||
{
|
||
QCOMPARE(calendar->latestValidDate(), QDate::fromJulianDay(jd));
|
||
testYmd(calendar, y, m, d, jd);
|
||
}
|
||
|
||
void KCalendarTest::testYmd(const KCalendarSystem *calendar, int y, int m, int d, int jd)
|
||
{
|
||
QDate testDate1 = QDate::fromJulianDay(jd);
|
||
QCOMPARE(calendar->year(testDate1), y);
|
||
QCOMPARE(calendar->month(testDate1), m);
|
||
QCOMPARE(calendar->day(testDate1), d);
|
||
|
||
QDate testDate2;
|
||
QVERIFY(calendar->setDate(testDate2, y, m, d));
|
||
QCOMPARE(testDate1, testDate2);
|
||
}
|
||
|
||
void KCalendarTest::testYear(const KCalendarSystem *calendar, const QDate &date,
|
||
int year, const QString &shortString, const QString &longString)
|
||
{
|
||
QCOMPARE(calendar->year(date), year);
|
||
QCOMPARE(calendar->yearString(date, KCalendarSystem::ShortFormat), shortString);
|
||
QCOMPARE(calendar->yearString(date, KCalendarSystem::LongFormat), longString);
|
||
int i;
|
||
QCOMPARE(calendar->yearStringToInteger(longString, i), year);
|
||
QCOMPARE(i, longString.length());
|
||
}
|
||
|
||
void KCalendarTest::testMonth(const KCalendarSystem *calendar, const QDate &date,
|
||
int month, const QString &shortString, const QString &longString)
|
||
{
|
||
QCOMPARE(calendar->month(date), month);
|
||
QCOMPARE(calendar->monthString(date, KCalendarSystem::ShortFormat), shortString);
|
||
QCOMPARE(calendar->monthString(date, KCalendarSystem::LongFormat), longString);
|
||
int i;
|
||
QCOMPARE(calendar->monthStringToInteger(longString, i), month);
|
||
QCOMPARE(i, longString.length());
|
||
}
|
||
|
||
void KCalendarTest::testDay(const KCalendarSystem *calendar, const QDate &date,
|
||
int day, const QString &shortString, const QString &longString)
|
||
{
|
||
QCOMPARE(calendar->day(date), day);
|
||
QCOMPARE(calendar->dayString(date, KCalendarSystem::ShortFormat), shortString);
|
||
QCOMPARE(calendar->dayString(date, KCalendarSystem::LongFormat), longString);
|
||
int i;
|
||
QCOMPARE(calendar->dayStringToInteger(longString, i), day);
|
||
QCOMPARE(i, longString.length());
|
||
}
|
||
|
||
void KCalendarTest::testEraDate(const KCalendarSystem *calendar, const QDate &date,
|
||
int yearInEra, const QString &shortYearInEraString, const QString &longYearInEraString,
|
||
const QString &shortEraName, const QString &longEraName)
|
||
{
|
||
QCOMPARE(calendar->yearInEra(date), yearInEra);
|
||
QCOMPARE(calendar->yearInEraString(date), shortYearInEraString);
|
||
QCOMPARE(calendar->yearInEraString(date, KCalendarSystem::ShortFormat), shortYearInEraString);
|
||
QCOMPARE(calendar->yearInEraString(date, KCalendarSystem::LongFormat), longYearInEraString);
|
||
QCOMPARE(calendar->eraName(date), shortEraName);
|
||
QCOMPARE(calendar->eraName(date, KCalendarSystem::ShortFormat), shortEraName);
|
||
QCOMPARE(calendar->eraName(date, KCalendarSystem::LongFormat), longEraName);
|
||
}
|
||
|
||
// Pass in the week day number, the equivalent QDate, and the short and long day names
|
||
// e.g. testWeekDayName( cal, 6, QDate(y,m,d), QString("Monday"), QString("Mon") )
|
||
|
||
void KCalendarTest::testWeekDayName(const KCalendarSystem *calendar, int weekDay, const QDate &date,
|
||
const QString &narrowName, const QString & shortName, const QString & longName)
|
||
{
|
||
QCOMPARE(calendar->weekDayName(weekDay, KCalendarSystem::ShortDayName), shortName);
|
||
QCOMPARE(calendar->weekDayName(weekDay, KCalendarSystem::LongDayName), longName);
|
||
QCOMPARE(calendar->weekDayName(weekDay), longName);
|
||
|
||
// Test week day < min
|
||
QCOMPARE(calendar->weekDayName(0, KCalendarSystem::ShortDayName), QString());
|
||
QCOMPARE(calendar->weekDayName(0, KCalendarSystem::LongDayName), QString());
|
||
|
||
// Test week day > max
|
||
QCOMPARE(calendar->weekDayName(calendar->daysInWeek(date) + 1, KCalendarSystem::ShortDayName), QString());
|
||
QCOMPARE(calendar->weekDayName(calendar->daysInWeek(date) + 1, KCalendarSystem::LongDayName), QString());
|
||
|
||
// QDate parameter tests, so always in valid range
|
||
QCOMPARE(calendar->weekDayName(date, KCalendarSystem::ShortDayName), shortName);
|
||
QCOMPARE(calendar->weekDayName(date, KCalendarSystem::LongDayName), longName);
|
||
QCOMPARE(calendar->weekDayName(date), longName);
|
||
|
||
// Test format date componant
|
||
QCOMPARE(calendar->formatDate(date, KLocale::DayOfWeekName, KLocale::NarrowName), narrowName);
|
||
QCOMPARE(calendar->formatDate(date, KLocale::DayOfWeekName, KLocale::ShortName), shortName);
|
||
QCOMPARE(calendar->formatDate(date, KLocale::DayOfWeekName, KLocale::LongName), longName);
|
||
}
|
||
|
||
void KCalendarTest::testMonthName(const KCalendarSystem *calendar, int month, int year, const QDate &date,
|
||
const QString &narrowName, const QString &shortName, const QString &longName,
|
||
const QString &shortNamePossessive, const QString &longNamePossessive)
|
||
{
|
||
QCOMPARE(calendar->monthName(month, year, KCalendarSystem::ShortName), shortName);
|
||
QCOMPARE(calendar->monthName(month, year, KCalendarSystem::LongName), longName);
|
||
QCOMPARE(calendar->monthName(month, year, KCalendarSystem::ShortNamePossessive),
|
||
shortNamePossessive);
|
||
QCOMPARE(calendar->monthName(month, year, KCalendarSystem::LongNamePossessive),
|
||
longNamePossessive);
|
||
QCOMPARE(calendar->monthName(month, year), longName);
|
||
|
||
// Test month < min
|
||
QCOMPARE(calendar->monthName(0, year, KCalendarSystem::ShortName), QString());
|
||
QCOMPARE(calendar->monthName(0, year, KCalendarSystem::LongName), QString());
|
||
QCOMPARE(calendar->monthName(0, year, KCalendarSystem::ShortName), QString());
|
||
QCOMPARE(calendar->monthName(0, year, KCalendarSystem::LongName), QString());
|
||
|
||
// Test month > max
|
||
QCOMPARE(calendar->monthName(calendar->monthsInYear(date) + 1, year,
|
||
KCalendarSystem::ShortName), QString());
|
||
QCOMPARE(calendar->monthName(calendar->monthsInYear(date) + 1, year,
|
||
KCalendarSystem::LongName), QString());
|
||
QCOMPARE(calendar->monthName(calendar->monthsInYear(date) + 1, year,
|
||
KCalendarSystem::ShortName), QString());
|
||
QCOMPARE(calendar->monthName(calendar->monthsInYear(date) + 1, year,
|
||
KCalendarSystem::LongName), QString());
|
||
|
||
// QDate parameter tests, so always in valid range
|
||
QCOMPARE(calendar->monthName(date, KCalendarSystem::ShortName), shortName);
|
||
QCOMPARE(calendar->monthName(date, KCalendarSystem::LongName), longName);
|
||
QCOMPARE(calendar->monthName(date, KCalendarSystem::ShortNamePossessive),
|
||
shortNamePossessive);
|
||
QCOMPARE(calendar->monthName(date, KCalendarSystem::LongNamePossessive),
|
||
longNamePossessive);
|
||
QCOMPARE(calendar->monthName(date), longName);
|
||
|
||
// Test format date componant
|
||
QCOMPARE(calendar->formatDate(date, KLocale::MonthName, KLocale::NarrowName), narrowName);
|
||
QCOMPARE(calendar->formatDate(date, KLocale::MonthName, KLocale::ShortName), shortName);
|
||
QCOMPARE(calendar->formatDate(date, KLocale::MonthName, KLocale::LongName), longName);
|
||
}
|
||
|
||
void KCalendarTest::testRoundTrip(const KCalendarSystem *calendar, bool testFullRange)
|
||
{
|
||
kDebug() << "Testing round trip of dates for Calendar System " << calendar->calendarLabel();
|
||
kDebug() << "This may take some time, or you may have created an infinite loop.";
|
||
kDebug() << "Uncomment the loop debug message to see each date comparison.";
|
||
|
||
int testYear, testMonth, testDay;
|
||
QDate testDate;
|
||
// Limit to a short interesting date range for regular testing
|
||
// Later add an Env var to choose full test whenever the formulas are changed.
|
||
QDate loopDate, terminateDate;
|
||
if (testFullRange) {
|
||
loopDate = calendar->earliestValidDate();
|
||
terminateDate = calendar->latestValidDate();
|
||
} else {
|
||
loopDate = qMax(QDate(1990, 1, 1), calendar->earliestValidDate());
|
||
terminateDate = qMin(QDate(2020, 1, 1), calendar->latestValidDate());
|
||
}
|
||
QByteArray msg;
|
||
while (loopDate <= terminateDate) {
|
||
testYear = calendar->year(loopDate);
|
||
testMonth = calendar->month(loopDate);
|
||
testDay = calendar->day(loopDate);
|
||
calendar->setDate(testDate, testYear, testMonth, testDay);
|
||
// Uncomment this to see each comparison printed
|
||
// or
|
||
// Uncomment the QEXPECT_FAIL statements to check all dates regardless of occasional failures
|
||
QByteArray msg = QByteArray::number(loopDate.toJulianDay()) + " = " +
|
||
QByteArray::number(testYear) + '-' +
|
||
QByteArray::number(testMonth) + '-' +
|
||
QByteArray::number(testDay) + " = " +
|
||
QByteArray::number(testDate.toJulianDay());
|
||
/*
|
||
kDebug() << msg;
|
||
*/
|
||
if (testMonth <= 0 || testDay <= 0) { // year <= 0 is OK
|
||
msg.prepend("Round Trip : JD to Date failed : ");
|
||
QEXPECT_FAIL("", msg.data(), Continue);
|
||
} else if (testDate.toJulianDay() == 0) {
|
||
msg.prepend("Round Trip : Date to JD failed : ");
|
||
QEXPECT_FAIL("", msg.data(), Continue);
|
||
} else if (loopDate != testDate) {
|
||
msg.prepend("Round Trip : JD's differ : ");
|
||
QEXPECT_FAIL("", msg.data(), Continue);
|
||
}
|
||
QCOMPARE(loopDate.toJulianDay(), testDate.toJulianDay());
|
||
loopDate = loopDate.addDays(1);
|
||
}
|
||
}
|
||
|
||
|
||
// Tests to compare new base methods are equal to QDate for Gregorian case
|
||
|
||
void KCalendarTest::testQDateYearMonthDay()
|
||
{
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::QDateCalendar);
|
||
|
||
testQDateYMD(calendar, 2000, 1, 1);
|
||
testQDateYMD(calendar, 2000, 2, 28);
|
||
testQDateYMD(calendar, 2000, 2, 29);
|
||
testQDateYMD(calendar, 2000, 6, 15);
|
||
testQDateYMD(calendar, 2000, 12, 31);
|
||
|
||
testQDateYMD(calendar, 9999, 1, 1);
|
||
testQDateYMD(calendar, 9999, 6, 15);
|
||
testQDateYMD(calendar, 9999, 12, 31);
|
||
|
||
testQDateYMD(calendar, 1, 1, 1);
|
||
testQDateYMD(calendar, 1, 6, 15);
|
||
testQDateYMD(calendar, 1, 12, 31);
|
||
|
||
testQDateYMD(calendar, -4712, 1, 2);
|
||
testQDateYMD(calendar, -4712, 6, 15);
|
||
testQDateYMD(calendar, -4712, 12, 31);
|
||
|
||
delete calendar;
|
||
}
|
||
|
||
void KCalendarTest::testQDateYMD(const KCalendarSystem *calendar, int y, int m, int d)
|
||
{
|
||
QDate testDate;
|
||
|
||
calendar->setDate(testDate, y, m, d);
|
||
QCOMPARE(calendar->year(testDate), testDate.year());
|
||
QCOMPARE(calendar->month(testDate), testDate.month());
|
||
QCOMPARE(calendar->day(testDate), testDate.day());
|
||
}
|
||
|
||
void KCalendarTest::testQDateAddYears()
|
||
{
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::QDateCalendar);
|
||
|
||
QDate testDate;
|
||
|
||
calendar->setDate(testDate, 2000, 1, 1);
|
||
QCOMPARE(calendar->addYears(testDate, -1), testDate.addYears(-1));
|
||
QCOMPARE(calendar->addYears(testDate, 1), testDate.addYears(1));
|
||
|
||
calendar->setDate(testDate, 2000, 2, 29);
|
||
QCOMPARE(calendar->addYears(testDate, 1), testDate.addYears(1));
|
||
|
||
calendar->setDate(testDate, -2000, 1, 1);
|
||
QCOMPARE(calendar->addYears(testDate, -1), testDate.addYears(-1));
|
||
QCOMPARE(calendar->addYears(testDate, 1), testDate.addYears(1));
|
||
|
||
delete calendar;
|
||
}
|
||
|
||
void KCalendarTest::testQDateAddMonths()
|
||
{
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::QDateCalendar);
|
||
|
||
QDate testDate;
|
||
|
||
calendar->setDate(testDate, 2000, 1, 1);
|
||
QCOMPARE(calendar->addMonths(testDate, -1), testDate.addMonths(-1));
|
||
QCOMPARE(calendar->addMonths(testDate, 1), testDate.addMonths(1));
|
||
|
||
calendar->setDate(testDate, 2000, 3, 1);
|
||
QCOMPARE(calendar->addMonths(testDate, -1), testDate.addMonths(-1));
|
||
QCOMPARE(calendar->addMonths(testDate, 1), testDate.addMonths(1));
|
||
|
||
calendar->setDate(testDate, 2000, 12, 1);
|
||
QCOMPARE(calendar->addMonths(testDate, -1), testDate.addMonths(-1));
|
||
QCOMPARE(calendar->addMonths(testDate, 1), testDate.addMonths(1));
|
||
|
||
calendar->setDate(testDate, 2000, 1, 1);
|
||
QCOMPARE(calendar->addMonths(testDate, -30), testDate.addMonths(-30));
|
||
QCOMPARE(calendar->addMonths(testDate, 30), testDate.addMonths(30));
|
||
|
||
calendar->setDate(testDate, -2000, 1, 1);
|
||
QCOMPARE(calendar->addMonths(testDate, -1), testDate.addMonths(-1));
|
||
QCOMPARE(calendar->addMonths(testDate, 1), testDate.addMonths(1));
|
||
|
||
calendar->setDate(testDate, -2000, 3, 1);
|
||
QCOMPARE(calendar->addMonths(testDate, -1), testDate.addMonths(-1));
|
||
QCOMPARE(calendar->addMonths(testDate, 1), testDate.addMonths(1));
|
||
|
||
calendar->setDate(testDate, -2000, 12, 1);
|
||
QCOMPARE(calendar->addMonths(testDate, -1), testDate.addMonths(-1));
|
||
QCOMPARE(calendar->addMonths(testDate, 1), testDate.addMonths(1));
|
||
|
||
calendar->setDate(testDate, -2000, 1, 1);
|
||
QCOMPARE(calendar->addMonths(testDate, -30), testDate.addMonths(-30));
|
||
QCOMPARE(calendar->addMonths(testDate, 30), testDate.addMonths(30));
|
||
|
||
delete calendar;
|
||
}
|
||
|
||
void KCalendarTest::testQDateAddDays()
|
||
{
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::QDateCalendar);
|
||
|
||
QDate testDate;
|
||
|
||
calendar->setDate(testDate, 2000, 1, 1);
|
||
QCOMPARE(calendar->addDays(testDate, -1), testDate.addDays(-1));
|
||
QCOMPARE(calendar->addDays(testDate, 1), testDate.addDays(1));
|
||
|
||
calendar->setDate(testDate, -2000, 1, 1);
|
||
QCOMPARE(calendar->addDays(testDate, -1), testDate.addDays(-1));
|
||
QCOMPARE(calendar->addDays(testDate, 1), testDate.addDays(1));
|
||
|
||
delete calendar;
|
||
}
|
||
|
||
void KCalendarTest::testQDateDaysInYear()
|
||
{
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::QDateCalendar);
|
||
|
||
QDate testDate;
|
||
|
||
calendar->setDate(testDate, 1900, 1, 1);
|
||
QCOMPARE(calendar->daysInYear(testDate), testDate.daysInYear());
|
||
calendar->setDate(testDate, 1999, 1, 1);
|
||
QCOMPARE(calendar->daysInYear(testDate), testDate.daysInYear());
|
||
calendar->setDate(testDate, 2000, 1, 1);
|
||
QCOMPARE(calendar->daysInYear(testDate), testDate.daysInYear());
|
||
calendar->setDate(testDate, 2001, 1, 1);
|
||
QCOMPARE(calendar->daysInYear(testDate), testDate.daysInYear());
|
||
calendar->setDate(testDate, 2002, 1, 1);
|
||
QCOMPARE(calendar->daysInYear(testDate), testDate.daysInYear());
|
||
calendar->setDate(testDate, 2003, 1, 1);
|
||
QCOMPARE(calendar->daysInYear(testDate), testDate.daysInYear());
|
||
calendar->setDate(testDate, 2004, 1, 1);
|
||
QCOMPARE(calendar->daysInYear(testDate), testDate.daysInYear());
|
||
calendar->setDate(testDate, 2005, 1, 1);
|
||
QCOMPARE(calendar->daysInYear(testDate), testDate.daysInYear());
|
||
|
||
calendar->setDate(testDate, -4700, 1, 1);
|
||
QCOMPARE(calendar->daysInYear(testDate), testDate.daysInYear());
|
||
calendar->setDate(testDate, -4000, 1, 1);
|
||
QCOMPARE(calendar->daysInYear(testDate), testDate.daysInYear());
|
||
|
||
calendar->setDate(testDate, 1, 1, 1);
|
||
QCOMPARE(calendar->daysInYear(testDate), testDate.daysInYear());
|
||
|
||
calendar->setDate(testDate, 9996, 1, 1);
|
||
QCOMPARE(calendar->daysInYear(testDate), testDate.daysInYear());
|
||
calendar->setDate(testDate, 9999, 1, 1);
|
||
QCOMPARE(calendar->daysInYear(testDate), testDate.daysInYear());
|
||
|
||
delete calendar;
|
||
}
|
||
|
||
|
||
void KCalendarTest::testQDateDaysInMonth()
|
||
{
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::QDateCalendar);
|
||
|
||
QDate testDate;
|
||
|
||
// Test all months
|
||
calendar->setDate(testDate, 2000, 1, 1);
|
||
QCOMPARE(calendar->daysInMonth(testDate), testDate.daysInMonth());
|
||
calendar->setDate(testDate, 2000, 2, 1);
|
||
QCOMPARE(calendar->daysInMonth(testDate), testDate.daysInMonth());
|
||
calendar->setDate(testDate, 2000, 3, 1);
|
||
QCOMPARE(calendar->daysInMonth(testDate), testDate.daysInMonth());
|
||
calendar->setDate(testDate, 2000, 4, 1);
|
||
QCOMPARE(calendar->daysInMonth(testDate), testDate.daysInMonth());
|
||
calendar->setDate(testDate, 2000, 5, 1);
|
||
QCOMPARE(calendar->daysInMonth(testDate), testDate.daysInMonth());
|
||
calendar->setDate(testDate, 2000, 6, 1);
|
||
QCOMPARE(calendar->daysInMonth(testDate), testDate.daysInMonth());
|
||
calendar->setDate(testDate, 2000, 7, 1);
|
||
QCOMPARE(calendar->daysInMonth(testDate), testDate.daysInMonth());
|
||
calendar->setDate(testDate, 2000, 8, 1);
|
||
QCOMPARE(calendar->daysInMonth(testDate), testDate.daysInMonth());
|
||
calendar->setDate(testDate, 2000, 9, 1);
|
||
QCOMPARE(calendar->daysInMonth(testDate), testDate.daysInMonth());
|
||
calendar->setDate(testDate, 2000, 10, 1);
|
||
QCOMPARE(calendar->daysInMonth(testDate), testDate.daysInMonth());
|
||
calendar->setDate(testDate, 2000, 11, 1);
|
||
QCOMPARE(calendar->daysInMonth(testDate), testDate.daysInMonth());
|
||
calendar->setDate(testDate, 2000, 12, 1);
|
||
QCOMPARE(calendar->daysInMonth(testDate), testDate.daysInMonth());
|
||
|
||
// Test Feb in leap and normal years
|
||
calendar->setDate(testDate, 2000, 2, 1);
|
||
QCOMPARE(calendar->daysInMonth(testDate), testDate.daysInMonth());
|
||
calendar->setDate(testDate, 2001, 2, 1);
|
||
QCOMPARE(calendar->daysInMonth(testDate), testDate.daysInMonth());
|
||
|
||
// Test max date
|
||
calendar->setDate(testDate, 9999, 12, 1);
|
||
QCOMPARE(calendar->daysInMonth(testDate), testDate.daysInMonth());
|
||
|
||
delete calendar;
|
||
}
|
||
|
||
void KCalendarTest::testQDateDayOfYear()
|
||
{
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::QDateCalendar);
|
||
|
||
QDate testDate;
|
||
|
||
calendar->setDate(testDate, 2000, 1, 1);
|
||
QCOMPARE(calendar->dayOfYear(testDate), testDate.dayOfYear());
|
||
calendar->setDate(testDate, 2000, 2, 29);
|
||
QCOMPARE(calendar->dayOfYear(testDate), testDate.dayOfYear());
|
||
calendar->setDate(testDate, 2000, 6, 1);
|
||
QCOMPARE(calendar->dayOfYear(testDate), testDate.dayOfYear());
|
||
calendar->setDate(testDate, 2000, 12, 1);
|
||
QCOMPARE(calendar->dayOfYear(testDate), testDate.dayOfYear());
|
||
calendar->setDate(testDate, 2000, 12, 31);
|
||
QCOMPARE(calendar->dayOfYear(testDate), testDate.dayOfYear());
|
||
|
||
calendar->setDate(testDate, -2000, 1, 1);
|
||
QCOMPARE(calendar->dayOfYear(testDate), testDate.dayOfYear());
|
||
calendar->setDate(testDate, -2000, 2, 28);
|
||
QCOMPARE(calendar->dayOfYear(testDate), testDate.dayOfYear());
|
||
calendar->setDate(testDate, -2000, 6, 1);
|
||
QCOMPARE(calendar->dayOfYear(testDate), testDate.dayOfYear());
|
||
calendar->setDate(testDate, -2000, 12, 1);
|
||
QCOMPARE(calendar->dayOfYear(testDate), testDate.dayOfYear());
|
||
calendar->setDate(testDate, -2000, 12, 31);
|
||
QCOMPARE(calendar->dayOfYear(testDate), testDate.dayOfYear());
|
||
|
||
calendar->setDate(testDate, -4712, 1, 2);
|
||
QCOMPARE(calendar->dayOfYear(testDate), testDate.dayOfYear());
|
||
calendar->setDate(testDate, -4712, 2, 28);
|
||
QCOMPARE(calendar->dayOfYear(testDate), testDate.dayOfYear());
|
||
calendar->setDate(testDate, -4712, 6, 1);
|
||
QCOMPARE(calendar->dayOfYear(testDate), testDate.dayOfYear());
|
||
calendar->setDate(testDate, -4712, 12, 1);
|
||
QCOMPARE(calendar->dayOfYear(testDate), testDate.dayOfYear());
|
||
calendar->setDate(testDate, -4712, 12, 31);
|
||
QCOMPARE(calendar->dayOfYear(testDate), testDate.dayOfYear());
|
||
|
||
calendar->setDate(testDate, 9999, 1, 1);
|
||
QCOMPARE(calendar->dayOfYear(testDate), testDate.dayOfYear());
|
||
//QDate::dayOfYear doesn't check if invalid!!!
|
||
//calendar->setDate( testDate, 9999, 2, 29 );
|
||
//QCOMPARE( calendar->dayOfYear( testDate ), testDate.dayOfYear() );
|
||
calendar->setDate(testDate, 9999, 6, 1);
|
||
QCOMPARE(calendar->dayOfYear(testDate), testDate.dayOfYear());
|
||
calendar->setDate(testDate, 9999, 12, 1);
|
||
QCOMPARE(calendar->dayOfYear(testDate), testDate.dayOfYear());
|
||
calendar->setDate(testDate, 9999, 12, 31);
|
||
QCOMPARE(calendar->dayOfYear(testDate), testDate.dayOfYear());
|
||
|
||
delete calendar;
|
||
}
|
||
|
||
void KCalendarTest::testQDateDayOfWeek()
|
||
{
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::QDateCalendar);
|
||
|
||
QDate testDate;
|
||
|
||
calendar->setDate(testDate, 2000, 1, 1);
|
||
QCOMPARE(calendar->dayOfWeek(testDate), testDate.dayOfWeek());
|
||
calendar->setDate(testDate, 2000, 1, 2);
|
||
QCOMPARE(calendar->dayOfWeek(testDate), testDate.dayOfWeek());
|
||
calendar->setDate(testDate, 2000, 1, 3);
|
||
QCOMPARE(calendar->dayOfWeek(testDate), testDate.dayOfWeek());
|
||
calendar->setDate(testDate, 2000, 1, 4);
|
||
QCOMPARE(calendar->dayOfWeek(testDate), testDate.dayOfWeek());
|
||
calendar->setDate(testDate, 2000, 1, 5);
|
||
QCOMPARE(calendar->dayOfWeek(testDate), testDate.dayOfWeek());
|
||
calendar->setDate(testDate, 2000, 1, 6);
|
||
QCOMPARE(calendar->dayOfWeek(testDate), testDate.dayOfWeek());
|
||
calendar->setDate(testDate, 2000, 1, 7);
|
||
QCOMPARE(calendar->dayOfWeek(testDate), testDate.dayOfWeek());
|
||
|
||
calendar->setDate(testDate, -4712, 1, 2);
|
||
QCOMPARE(calendar->dayOfWeek(testDate), testDate.dayOfWeek());
|
||
calendar->setDate(testDate, -4712, 1, 3);
|
||
QCOMPARE(calendar->dayOfWeek(testDate), testDate.dayOfWeek());
|
||
calendar->setDate(testDate, -4712, 1, 4);
|
||
QCOMPARE(calendar->dayOfWeek(testDate), testDate.dayOfWeek());
|
||
calendar->setDate(testDate, -4712, 1, 5);
|
||
QCOMPARE(calendar->dayOfWeek(testDate), testDate.dayOfWeek());
|
||
calendar->setDate(testDate, -4712, 1, 6);
|
||
QCOMPARE(calendar->dayOfWeek(testDate), testDate.dayOfWeek());
|
||
calendar->setDate(testDate, -4712, 1, 7);
|
||
QCOMPARE(calendar->dayOfWeek(testDate), testDate.dayOfWeek());
|
||
calendar->setDate(testDate, -4712, 1, 8);
|
||
QCOMPARE(calendar->dayOfWeek(testDate), testDate.dayOfWeek());
|
||
|
||
calendar->setDate(testDate, 9999, 1, 1);
|
||
QCOMPARE(calendar->dayOfWeek(testDate), testDate.dayOfWeek());
|
||
calendar->setDate(testDate, 9999, 1, 2);
|
||
QCOMPARE(calendar->dayOfWeek(testDate), testDate.dayOfWeek());
|
||
calendar->setDate(testDate, 9999, 1, 3);
|
||
QCOMPARE(calendar->dayOfWeek(testDate), testDate.dayOfWeek());
|
||
calendar->setDate(testDate, 9999, 1, 4);
|
||
QCOMPARE(calendar->dayOfWeek(testDate), testDate.dayOfWeek());
|
||
calendar->setDate(testDate, 9999, 1, 5);
|
||
QCOMPARE(calendar->dayOfWeek(testDate), testDate.dayOfWeek());
|
||
calendar->setDate(testDate, 9999, 1, 6);
|
||
QCOMPARE(calendar->dayOfWeek(testDate), testDate.dayOfWeek());
|
||
calendar->setDate(testDate, 9999, 1, 7);
|
||
QCOMPARE(calendar->dayOfWeek(testDate), testDate.dayOfWeek());
|
||
|
||
delete calendar;
|
||
}
|
||
|
||
// Don't really need this as Gregorian currently uses QDate directly
|
||
void KCalendarTest::testQDateIsLeapYear()
|
||
{
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::QDateCalendar);
|
||
|
||
QDate testDate;
|
||
|
||
calendar->setDate(testDate, 2000, 1, 1);
|
||
QCOMPARE(calendar->isLeapYear(2000), testDate.isLeapYear(2000));
|
||
QCOMPARE(calendar->isLeapYear(testDate), testDate.isLeapYear(2000));
|
||
calendar->setDate(testDate, 2001, 1, 1);
|
||
QCOMPARE(calendar->isLeapYear(2001), testDate.isLeapYear(2001));
|
||
QCOMPARE(calendar->isLeapYear(testDate), testDate.isLeapYear(2001));
|
||
calendar->setDate(testDate, 2004, 1, 1);
|
||
QCOMPARE(calendar->isLeapYear(2004), testDate.isLeapYear(2004));
|
||
QCOMPARE(calendar->isLeapYear(testDate), testDate.isLeapYear(2004));
|
||
|
||
calendar->setDate(testDate, 1900, 1, 1);
|
||
QCOMPARE(calendar->isLeapYear(1900), testDate.isLeapYear(1900));
|
||
QCOMPARE(calendar->isLeapYear(testDate), testDate.isLeapYear(1900));
|
||
calendar->setDate(testDate, 1901, 1, 1);
|
||
QCOMPARE(calendar->isLeapYear(1901), testDate.isLeapYear(1901));
|
||
QCOMPARE(calendar->isLeapYear(testDate), testDate.isLeapYear(1901));
|
||
calendar->setDate(testDate, 1904, 1, 1);
|
||
QCOMPARE(calendar->isLeapYear(1904), testDate.isLeapYear(1904));
|
||
QCOMPARE(calendar->isLeapYear(testDate), testDate.isLeapYear(1904));
|
||
|
||
calendar->setDate(testDate, -2000, 1, 1);
|
||
QCOMPARE(calendar->isLeapYear(-2000), testDate.isLeapYear(-2000));
|
||
QCOMPARE(calendar->isLeapYear(testDate), testDate.isLeapYear(-2000));
|
||
calendar->setDate(testDate, -2001, 1, 1);
|
||
QCOMPARE(calendar->isLeapYear(-2001), testDate.isLeapYear(-2001));
|
||
QCOMPARE(calendar->isLeapYear(testDate), testDate.isLeapYear(-2001));
|
||
calendar->setDate(testDate, -2004, 1, 1);
|
||
QCOMPARE(calendar->isLeapYear(-2004), testDate.isLeapYear(-2004));
|
||
QCOMPARE(calendar->isLeapYear(testDate), testDate.isLeapYear(-2004));
|
||
|
||
delete calendar;
|
||
}
|
||
|
||
void KCalendarTest::testKLocalizedDate()
|
||
{
|
||
KGlobal::locale()->setDateFormatShort("%y-%m-%d");
|
||
const KCalendarSystem *calendar = KGlobal::locale()->calendar();
|
||
|
||
// Set up a bunch of KLocalizedDates and QDates that should be equal
|
||
QDate testQDate(2010, 1, 1);
|
||
KLocalizedDate testKLocalizedDate(testQDate);
|
||
|
||
// Test KLocalizedDate output calls not in KCalendarSystem
|
||
QCOMPARE(KLocalizedDate().isNull(), true);
|
||
QCOMPARE(KLocalizedDate().isValid(), false);
|
||
QCOMPARE(testKLocalizedDate.isNull(), testQDate.isNull());
|
||
QCOMPARE(testKLocalizedDate.date(), testQDate);
|
||
QCOMPARE(testKLocalizedDate.toJulianDay(), testQDate.toJulianDay());
|
||
testKLocalizedDate.setDate(QDate(2010, 6, 1));
|
||
testQDate.setDate(2010, 6, 1);
|
||
QCOMPARE(testKLocalizedDate.date(), testQDate);
|
||
|
||
// Test static KLocalizedDate methods
|
||
QCOMPARE(KLocalizedDate::currentDate().date(), QDate::currentDate());
|
||
QCOMPARE(KLocalizedDate::fromDate(testQDate).date(), testQDate);
|
||
QCOMPARE(KLocalizedDate::fromJulianDay(100000).date(), QDate::fromJulianDay(100000));
|
||
|
||
// Compare KLocalizedDate output to KCalendarSystem output calls
|
||
QCOMPARE(testKLocalizedDate.isValid(), calendar->isValid(testQDate));
|
||
QCOMPARE(testKLocalizedDate.year(), calendar->year(testQDate));
|
||
QCOMPARE(testKLocalizedDate.month(), calendar->month(testQDate));
|
||
QCOMPARE(testKLocalizedDate.day(), calendar->day(testQDate));
|
||
QCOMPARE(testKLocalizedDate.eraName(), calendar->eraName(testQDate));
|
||
QCOMPARE(testKLocalizedDate.eraYear(), calendar->eraYear(testQDate));
|
||
QCOMPARE(testKLocalizedDate.yearInEra(), calendar->yearInEra(testQDate));
|
||
QCOMPARE(testKLocalizedDate.addYears(5).date(), calendar->addYears(testQDate, 5));
|
||
QCOMPARE(testKLocalizedDate.addMonths(5).date(), calendar->addMonths(testQDate, 5));
|
||
QCOMPARE(testKLocalizedDate.addDays(5).date(), calendar->addDays(testQDate, 5));
|
||
QCOMPARE(testKLocalizedDate.monthsInYear(), calendar->monthsInYear(testQDate));
|
||
QCOMPARE(testKLocalizedDate.weeksInYear(), calendar->weeksInYear(testQDate));
|
||
QCOMPARE(testKLocalizedDate.daysInYear(), calendar->daysInYear(testQDate));
|
||
QCOMPARE(testKLocalizedDate.daysInMonth(), calendar->daysInMonth(testQDate));
|
||
QCOMPARE(testKLocalizedDate.daysInWeek(), calendar->daysInWeek(testQDate));
|
||
QCOMPARE(testKLocalizedDate.dayOfYear(), calendar->dayOfYear(testQDate));
|
||
QCOMPARE(testKLocalizedDate.dayOfWeek(), calendar->dayOfWeek(testQDate));
|
||
QCOMPARE(testKLocalizedDate.week(), calendar->week(testQDate));
|
||
QCOMPARE(testKLocalizedDate.isLeapYear(), calendar->isLeapYear(testQDate));
|
||
QCOMPARE(testKLocalizedDate.firstDayOfYear().date(), calendar->firstDayOfYear(testQDate));
|
||
QCOMPARE(testKLocalizedDate.lastDayOfYear().date(), calendar->lastDayOfYear(testQDate));
|
||
QCOMPARE(testKLocalizedDate.firstDayOfMonth().date(), calendar->firstDayOfMonth(testQDate));
|
||
QCOMPARE(testKLocalizedDate.lastDayOfMonth().date(), calendar->lastDayOfMonth(testQDate));
|
||
|
||
QCOMPARE(testKLocalizedDate.week(KLocale::IsoWeekNumber), calendar->week(testQDate, KLocale::IsoWeekNumber));
|
||
QCOMPARE(testKLocalizedDate.weeksInYear(KLocale::IsoWeekNumber), calendar->weeksInYear(testQDate, KLocale::IsoWeekNumber));
|
||
|
||
// Compare KLocalizedDate setDate to KCalendarSystem setDate
|
||
testKLocalizedDate.setDate(2010, 3, 1);
|
||
calendar->setDate(testQDate, 2010, 3, 1);
|
||
QCOMPARE(testKLocalizedDate.date(), testQDate);
|
||
testKLocalizedDate.setDate(2010, 100);
|
||
calendar->setDate(testQDate, 2010, 100);
|
||
QCOMPARE(testKLocalizedDate.date(), testQDate);
|
||
testKLocalizedDate.setDate("AD", 2010, 9, 1);
|
||
calendar->setDate(testQDate, "AD", 2010, 9, 1);
|
||
QCOMPARE(testKLocalizedDate.date(), testQDate);
|
||
testKLocalizedDate.setDate(KLocale::IsoWeekNumber, 2010, 15, 1);
|
||
calendar->setDateIsoWeek(testQDate, 2010, 15, 1);
|
||
QCOMPARE(testKLocalizedDate.date(), testQDate);
|
||
testKLocalizedDate.setCurrentDate();
|
||
testQDate = QDate::currentDate();
|
||
QCOMPARE(testKLocalizedDate.date(), testQDate);
|
||
|
||
// Compare KLocalizedDate getDate to KCalendarSystem getDate
|
||
int ky, km, kd, qy, qm, qd;
|
||
testKLocalizedDate.getDate(&ky, &km, &kd);
|
||
calendar->getDate(testQDate, &qy, &qm, &qd);
|
||
QCOMPARE(ky, qy);
|
||
QCOMPARE(km, qm);
|
||
QCOMPARE(kd, qd);
|
||
|
||
// Compare KLocalizedDate format/read to KCalendarSystem format
|
||
QCOMPARE(testKLocalizedDate.formatDate(), calendar->formatDate(testQDate));
|
||
QCOMPARE(testKLocalizedDate.formatDate("%d-%m-%y"), calendar->formatDate(testQDate, "%d-%m-%y"));
|
||
QCOMPARE(testKLocalizedDate.formatDate(KLocale::Year), calendar->yearString(testQDate));
|
||
QCOMPARE(testKLocalizedDate.formatDate(KLocale::YearName), calendar->yearString(testQDate));
|
||
QCOMPARE(testKLocalizedDate.formatDate(KLocale::Month), calendar->monthString(testQDate, KCalendarSystem::ShortFormat));
|
||
QCOMPARE(testKLocalizedDate.formatDate(KLocale::MonthName), calendar->monthName(testQDate));
|
||
QCOMPARE(testKLocalizedDate.formatDate(KLocale::Day), calendar->dayString(testQDate, KCalendarSystem::ShortFormat));
|
||
QCOMPARE(testKLocalizedDate.formatDate(KLocale::DayName), calendar->dayString(testQDate, KCalendarSystem::ShortFormat));
|
||
QCOMPARE(testKLocalizedDate.formatDate(KLocale::JulianDay), QString::number(testQDate.toJulianDay()));
|
||
QCOMPARE(testKLocalizedDate.formatDate(KLocale::EraName), calendar->eraName(testQDate));
|
||
QCOMPARE(testKLocalizedDate.formatDate(KLocale::EraYear), calendar->eraYear(testQDate));
|
||
QCOMPARE(testKLocalizedDate.formatDate(KLocale::YearInEra), calendar->yearInEraString(testQDate));
|
||
QCOMPARE(testKLocalizedDate.formatDate(KLocale::DayOfYear), calendar->dayOfYearString(testQDate, KCalendarSystem::ShortFormat));
|
||
QCOMPARE(testKLocalizedDate.formatDate(KLocale::DayOfYearName), calendar->dayOfYearString(testQDate, KCalendarSystem::ShortFormat));
|
||
QCOMPARE(testKLocalizedDate.formatDate(KLocale::DayOfWeek), calendar->dayOfWeekString(testQDate));
|
||
QCOMPARE(testKLocalizedDate.formatDate(KLocale::DayOfWeekName), calendar->weekDayName(testQDate));
|
||
QCOMPARE(testKLocalizedDate.formatDate(KLocale::Week), calendar->weekNumberString(testQDate, KCalendarSystem::ShortFormat));
|
||
int weekYear;
|
||
QDate weekDate;
|
||
calendar->weekNumber(testQDate, &weekYear);
|
||
calendar->setDate(weekDate, weekYear, 1, 1);
|
||
QCOMPARE(testKLocalizedDate.formatDate(KLocale::WeekYear), calendar->yearString(weekDate));
|
||
QCOMPARE(testKLocalizedDate.formatDate(KLocale::MonthsInYear), calendar->monthsInYearString(testQDate));
|
||
QCOMPARE(testKLocalizedDate.formatDate(KLocale::WeeksInYear), calendar->weeksInYearString(testQDate));
|
||
QCOMPARE(testKLocalizedDate.formatDate(KLocale::DaysInYear), calendar->daysInYearString(testQDate));
|
||
QCOMPARE(testKLocalizedDate.formatDate(KLocale::DaysInMonth), calendar->daysInMonthString(testQDate));
|
||
QCOMPARE(testKLocalizedDate.formatDate(KLocale::DaysInWeek), calendar->daysInWeekString(testQDate));
|
||
|
||
// Compare KLocalizedDate format/read to KCalendarSystem read
|
||
QCOMPARE(testKLocalizedDate.readDate("2010-01-01").date(), calendar->readDate("2010-01-01"));
|
||
QCOMPARE(testKLocalizedDate.readDate("2010-01-01", KLocale::NormalFormat).date(), calendar->readDate("2010-01-01", KLocale::NormalFormat));
|
||
QCOMPARE(testKLocalizedDate.readDate("2010-01-01", "%y-%m-%d").date(), calendar->readDate("2010-01-01", "%y-%m-%d"));
|
||
|
||
// Test new addOn methods
|
||
testKLocalizedDate.addYearsTo(5);
|
||
testQDate = calendar->addYears(testQDate, 5);
|
||
QCOMPARE(testKLocalizedDate.date(), testQDate);
|
||
testKLocalizedDate.addMonthsTo(5);
|
||
testQDate = calendar->addMonths(testQDate, 5);
|
||
QCOMPARE(testKLocalizedDate.date(), testQDate);
|
||
testKLocalizedDate.addDaysTo(5);
|
||
testQDate = calendar->addDays(testQDate, 5);
|
||
QCOMPARE(testKLocalizedDate.date(), testQDate);
|
||
|
||
// Set up some dates for comparisons
|
||
QDate lowQDate(2000, 1, 1);
|
||
KLocalizedDate lowKLocalizedDate(lowQDate);
|
||
QDate highQDate(2010, 1, 1);
|
||
KLocalizedDate highKLocalizedDate(highQDate);
|
||
|
||
// Compare the difference methods
|
||
int kdy, kdm, kdd, kdir, qdy, qdm, qdd, qdir;
|
||
lowKLocalizedDate.dateDifference(highKLocalizedDate, &kdy, &kdm, &kdd, &kdir);
|
||
calendar->dateDifference(lowKLocalizedDate.date(), highKLocalizedDate.date(), &qdy, &qdm, &qdd, &qdir);
|
||
QCOMPARE(kdy, qdy);
|
||
QCOMPARE(kdm, qdm);
|
||
QCOMPARE(kdd, qdd);
|
||
QCOMPARE(kdir, qdir);
|
||
lowKLocalizedDate.dateDifference(highQDate, &kdy, &kdm, &kdd, &kdir);
|
||
calendar->dateDifference(lowKLocalizedDate.date(), highQDate, &qdy, &qdm, &qdd, &qdir);
|
||
QCOMPARE(kdy, qdy);
|
||
QCOMPARE(kdm, qdm);
|
||
QCOMPARE(kdd, qdd);
|
||
QCOMPARE(kdir, qdir);
|
||
QCOMPARE(lowKLocalizedDate.yearsDifference(highKLocalizedDate), calendar->yearsDifference(lowQDate, highQDate));
|
||
QCOMPARE(lowKLocalizedDate.yearsDifference(highQDate), calendar->yearsDifference(lowQDate, highQDate));
|
||
QCOMPARE(lowKLocalizedDate.monthsDifference(highKLocalizedDate), calendar->monthsDifference(lowQDate, highQDate));
|
||
QCOMPARE(lowKLocalizedDate.monthsDifference(highQDate), calendar->monthsDifference(lowQDate, highQDate));
|
||
QCOMPARE(lowKLocalizedDate.daysDifference(highKLocalizedDate), calendar->daysDifference(lowQDate, highQDate));
|
||
QCOMPARE(lowKLocalizedDate.daysDifference(highQDate), calendar->daysDifference(lowQDate, highQDate));
|
||
|
||
// Test new operators
|
||
QCOMPARE(lowKLocalizedDate == lowKLocalizedDate, true);
|
||
QCOMPARE(lowKLocalizedDate == highKLocalizedDate, false);
|
||
QCOMPARE(lowKLocalizedDate == lowQDate, true);
|
||
QCOMPARE(lowKLocalizedDate == highQDate, false);
|
||
QCOMPARE(lowKLocalizedDate != lowKLocalizedDate, false);
|
||
QCOMPARE(lowKLocalizedDate != highKLocalizedDate, true);
|
||
QCOMPARE(lowKLocalizedDate != lowQDate, false);
|
||
QCOMPARE(lowKLocalizedDate != highQDate, true);
|
||
QCOMPARE(highKLocalizedDate < lowKLocalizedDate, false);
|
||
QCOMPARE(lowKLocalizedDate < highKLocalizedDate, true);
|
||
QCOMPARE(highKLocalizedDate < lowQDate, false);
|
||
QCOMPARE(lowKLocalizedDate < highQDate, true);
|
||
QCOMPARE(highKLocalizedDate <= lowKLocalizedDate, false);
|
||
QCOMPARE(lowKLocalizedDate <= lowKLocalizedDate, true);
|
||
QCOMPARE(lowKLocalizedDate <= highKLocalizedDate, true);
|
||
QCOMPARE(highKLocalizedDate <= lowQDate, false);
|
||
QCOMPARE(lowKLocalizedDate <= lowQDate, true);
|
||
QCOMPARE(lowKLocalizedDate <= highQDate, true);
|
||
QCOMPARE(highKLocalizedDate > lowKLocalizedDate, true);
|
||
QCOMPARE(lowKLocalizedDate > highKLocalizedDate, false);
|
||
QCOMPARE(highKLocalizedDate > lowQDate, true);
|
||
QCOMPARE(lowKLocalizedDate > highQDate, false);
|
||
QCOMPARE(highKLocalizedDate >= lowKLocalizedDate, true);
|
||
QCOMPARE(lowKLocalizedDate >= lowKLocalizedDate, true);
|
||
QCOMPARE(lowKLocalizedDate >= highKLocalizedDate, false);
|
||
QCOMPARE(highKLocalizedDate >= lowQDate, true);
|
||
QCOMPARE(lowKLocalizedDate >= lowQDate, true);
|
||
QCOMPARE(lowKLocalizedDate >= highQDate, false);
|
||
|
||
// Test changing Calendar System
|
||
KCalendarSystem *hijri = KCalendarSystem::create(KLocale::IslamicCivilCalendar);
|
||
testKLocalizedDate.setCalendarSystem(KLocale::IslamicCivilCalendar);
|
||
QCOMPARE(testKLocalizedDate.year(), hijri->year(testQDate));
|
||
|
||
// Test copy of calendar object
|
||
if (true) {
|
||
KLocalizedDate test2 = testKLocalizedDate;
|
||
test2.day();
|
||
}
|
||
testKLocalizedDate.day();
|
||
|
||
KLocalizedDate newOne = testKLocalizedDate.currentDate();
|
||
kDebug() << newOne;
|
||
newOne = KLocalizedDate::currentDate();
|
||
kDebug() << newOne;
|
||
|
||
KLocalizedDate calendarDate(testQDate, calendar);
|
||
QCOMPARE(calendarDate.date(), testQDate);
|
||
QCOMPARE(calendarDate.day(), calendar->day(testQDate));
|
||
|
||
KCalendarSystem *hijriCalendar = KCalendarSystem::create(KLocale::IslamicCivilCalendar);
|
||
KLocalizedDate hijriDate(testQDate, hijriCalendar);
|
||
QCOMPARE(hijriDate.date(), testQDate);
|
||
QCOMPARE(hijriDate.day(), hijriCalendar->day(testQDate));
|
||
delete hijriCalendar;
|
||
}
|
||
|
||
void KCalendarTest::testWeekNumberSystem()
|
||
{
|
||
KLocale *locale = new KLocale(*KGlobal::locale());
|
||
const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::QDateCalendar, locale);
|
||
int weekYear = 0;
|
||
|
||
// Test the 7 days the year can start on:
|
||
// Monday == 2018
|
||
// Tuesday == 2013
|
||
// Wednesday == 2014
|
||
// Thursday == 2015
|
||
// Friday == 2016
|
||
// Saturday == 2011
|
||
// Sunday == 2012
|
||
|
||
// ISO Week
|
||
// Monday == 2018 == Week 1 2018
|
||
// Tuesday == 2013 == Week 1 2013
|
||
// Wednesday == 2014 == Week 1 2014
|
||
// Thursday == 2015 == Week 1 2015
|
||
// Friday == 2016 == Week 53 2015
|
||
// Saturday == 2011 == Week 52 2010
|
||
// Sunday == 2012 == Week 52 2011
|
||
|
||
locale->setWeekStartDay(1);
|
||
locale->setWeekNumberSystem(KLocale::IsoWeekNumber);
|
||
|
||
QCOMPARE(calendar->week(QDate(2018, 1, 1), &weekYear), 1);
|
||
QCOMPARE(weekYear, 2018);
|
||
QCOMPARE(calendar->week(QDate(2013, 1, 1), &weekYear), 1);
|
||
QCOMPARE(weekYear, 2013);
|
||
QCOMPARE(calendar->week(QDate(2014, 1, 1), &weekYear), 1);
|
||
QCOMPARE(weekYear, 2014);
|
||
QCOMPARE(calendar->week(QDate(2015, 1, 1), &weekYear), 1);
|
||
QCOMPARE(weekYear, 2015);
|
||
QCOMPARE(calendar->week(QDate(2016, 1, 1), &weekYear), 53);
|
||
QCOMPARE(weekYear, 2015);
|
||
QCOMPARE(calendar->week(QDate(2011, 1, 1), &weekYear), 52);
|
||
QCOMPARE(weekYear, 2010);
|
||
QCOMPARE(calendar->week(QDate(2012, 1, 1), &weekYear), 52);
|
||
QCOMPARE(weekYear, 2011);
|
||
|
||
QCOMPARE(calendar->week(QDate(2014, 12, 31), &weekYear), 1);
|
||
QCOMPARE(weekYear, 2015);
|
||
QCOMPARE(calendar->week(QDate(2015, 12, 31), &weekYear), 53);
|
||
QCOMPARE(weekYear, 2015);
|
||
|
||
QCOMPARE(calendar->weeksInYear(2010), 52);
|
||
QCOMPARE(calendar->weeksInYear(2015), 53);
|
||
|
||
// First Full Week starting Sunday, aka US Week
|
||
locale->setWeekStartDay(7);
|
||
locale->setWeekNumberSystem(KLocale::FirstFullWeek);
|
||
|
||
// Mon = Jan 1 2018 = Week 52 2017, Sun = Jan 7 = Week 1
|
||
QCOMPARE(calendar->week(QDate(2018, 1, 1), &weekYear), 53); //First Day
|
||
QCOMPARE(weekYear, 2017);
|
||
QCOMPARE(calendar->week(QDate(2018, 1, 6), &weekYear), 53); //First Saturday
|
||
QCOMPARE(weekYear, 2017);
|
||
QCOMPARE(calendar->week(QDate(2018, 1, 7), &weekYear), 1); //First Sunday
|
||
QCOMPARE(weekYear, 2018);
|
||
QCOMPARE(calendar->week(QDate(2018, 1, 13), &weekYear), 1); //Second Saturday
|
||
QCOMPARE(weekYear, 2018);
|
||
QCOMPARE(calendar->week(QDate(2018, 1, 14), &weekYear), 2); //Second Sunday
|
||
QCOMPARE(weekYear, 2018);
|
||
QCOMPARE(calendar->week(QDate(2018, 12, 31), &weekYear), 52); //Last Day
|
||
QCOMPARE(weekYear, 2018);
|
||
|
||
// Tue = Jan 1 2013 = Week 52 2012, Sun = Jan 6 = Week 1
|
||
QCOMPARE(calendar->week(QDate(2013, 1, 1), &weekYear), 53); //First Day
|
||
QCOMPARE(weekYear, 2012);
|
||
QCOMPARE(calendar->week(QDate(2013, 1, 5), &weekYear), 53); //First Saturday
|
||
QCOMPARE(weekYear, 2012);
|
||
QCOMPARE(calendar->week(QDate(2013, 1, 6), &weekYear), 1); //First Sunday
|
||
QCOMPARE(weekYear, 2013);
|
||
QCOMPARE(calendar->week(QDate(2013, 1, 12), &weekYear), 1); //Second Saturday
|
||
QCOMPARE(weekYear, 2013);
|
||
QCOMPARE(calendar->week(QDate(2013, 1, 13), &weekYear), 2); //Second Sunday
|
||
QCOMPARE(weekYear, 2013);
|
||
QCOMPARE(calendar->week(QDate(2013, 12, 31), &weekYear), 52); //Last Day
|
||
QCOMPARE(weekYear, 2013);
|
||
|
||
// Wed = Jan 1 2014 = Week 52 2013, Sun = Jan 5 = Week 1
|
||
QCOMPARE(calendar->week(QDate(2014, 1, 1), &weekYear), 52); //First Day
|
||
QCOMPARE(weekYear, 2013);
|
||
QCOMPARE(calendar->week(QDate(2014, 1, 4), &weekYear), 52); //First Saturday
|
||
QCOMPARE(weekYear, 2013);
|
||
QCOMPARE(calendar->week(QDate(2014, 1, 5), &weekYear), 1); //First Sunday
|
||
QCOMPARE(weekYear, 2014);
|
||
QCOMPARE(calendar->week(QDate(2014, 1, 11), &weekYear), 1); //Second Saturday
|
||
QCOMPARE(weekYear, 2014);
|
||
QCOMPARE(calendar->week(QDate(2014, 1, 12), &weekYear), 2); //Second Sunday
|
||
QCOMPARE(weekYear, 2014);
|
||
QCOMPARE(calendar->week(QDate(2014, 12, 31), &weekYear), 52); //Last Day
|
||
QCOMPARE(weekYear, 2014);
|
||
|
||
// Thu = Jan 1 2015 = Week 52 2014, Sun = Jan 4 = Week 1
|
||
QCOMPARE(calendar->week(QDate(2015, 1, 1), &weekYear), 52); //First Day
|
||
QCOMPARE(weekYear, 2014);
|
||
QCOMPARE(calendar->week(QDate(2015, 1, 3), &weekYear), 52); //First Saturday
|
||
QCOMPARE(weekYear, 2014);
|
||
QCOMPARE(calendar->week(QDate(2015, 1, 4), &weekYear), 1); //First Sunday
|
||
QCOMPARE(weekYear, 2015);
|
||
QCOMPARE(calendar->week(QDate(2015, 1, 10), &weekYear), 1); //Second Saturday
|
||
QCOMPARE(weekYear, 2015);
|
||
QCOMPARE(calendar->week(QDate(2015, 1, 11), &weekYear), 2); //Second Sunday
|
||
QCOMPARE(weekYear, 2015);
|
||
QCOMPARE(calendar->week(QDate(2015, 12, 31), &weekYear), 52); //Last Day
|
||
QCOMPARE(weekYear, 2015);
|
||
|
||
// Fri = Jan 1 2016 = Week 52 2015, Sun = Jan 3 = Week 1
|
||
QCOMPARE(calendar->week(QDate(2016, 1, 1), &weekYear), 52); //First Day
|
||
QCOMPARE(weekYear, 2015);
|
||
QCOMPARE(calendar->week(QDate(2016, 1, 2), &weekYear), 52); //First Saturday
|
||
QCOMPARE(weekYear, 2015);
|
||
QCOMPARE(calendar->week(QDate(2016, 1, 3), &weekYear), 1); //First Sunday
|
||
QCOMPARE(weekYear, 2016);
|
||
QCOMPARE(calendar->week(QDate(2016, 1, 9), &weekYear), 1); //Second Saturday
|
||
QCOMPARE(weekYear, 2016);
|
||
QCOMPARE(calendar->week(QDate(2016, 1, 10), &weekYear), 2); //Second Sunday
|
||
QCOMPARE(weekYear, 2016);
|
||
QCOMPARE(calendar->week(QDate(2016, 12, 31), &weekYear), 52); //Last Day
|
||
QCOMPARE(weekYear, 2016);
|
||
|
||
// Sat = Jan 1 2011 = Week 52 2010, Sun = Jan 2 = Week 1
|
||
QCOMPARE(calendar->week(QDate(2011, 1, 1), &weekYear), 52); //First Day, First Saturday
|
||
QCOMPARE(weekYear, 2010);
|
||
QCOMPARE(calendar->week(QDate(2011, 1, 2), &weekYear), 1); //First Sunday
|
||
QCOMPARE(weekYear, 2011);
|
||
QCOMPARE(calendar->week(QDate(2011, 1, 8), &weekYear), 1); //Second Saturday
|
||
QCOMPARE(weekYear, 2011);
|
||
QCOMPARE(calendar->week(QDate(2011, 1, 9), &weekYear), 2); //Second Sunday
|
||
QCOMPARE(weekYear, 2011);
|
||
QCOMPARE(calendar->week(QDate(2011, 12, 31), &weekYear), 52); //Last Day
|
||
QCOMPARE(weekYear, 2011);
|
||
|
||
// Sun = Jan 1 2012 = Week 1 2012, Sun = Jan 1 = Week 1
|
||
QCOMPARE(calendar->week(QDate(2012, 1, 1), &weekYear), 1); //First Day, First Sunday
|
||
QCOMPARE(weekYear, 2012);
|
||
QCOMPARE(calendar->week(QDate(2012, 1, 7), &weekYear), 1); //First Saturday
|
||
QCOMPARE(weekYear, 2012);
|
||
QCOMPARE(calendar->week(QDate(2012, 1, 8), &weekYear), 2); //Second Sunday
|
||
QCOMPARE(weekYear, 2012);
|
||
QCOMPARE(calendar->week(QDate(2012, 12, 31), &weekYear), 53); //Last Day
|
||
QCOMPARE(weekYear, 2012);
|
||
|
||
// First Full Week starting Monday
|
||
locale->setWeekStartDay(1);
|
||
locale->setWeekNumberSystem(KLocale::FirstFullWeek);
|
||
|
||
// Mon = Jan 1 2018 = Week 52 2017, Mon = Jan 1 = Week 1
|
||
QCOMPARE(calendar->week(QDate(2018, 1, 1), &weekYear), 1); //First Day, First Monday
|
||
QCOMPARE(weekYear, 2018);
|
||
QCOMPARE(calendar->week(QDate(2018, 1, 7), &weekYear), 1); //First Sunday
|
||
QCOMPARE(weekYear, 2018);
|
||
QCOMPARE(calendar->week(QDate(2018, 1, 8), &weekYear), 2); //Second Monday
|
||
QCOMPARE(weekYear, 2018);
|
||
QCOMPARE(calendar->week(QDate(2018, 12, 31), &weekYear), 53); //Last Day
|
||
QCOMPARE(weekYear, 2018);
|
||
|
||
// Tue = Jan 1 2013 = Week 52 2012, Mon = Jan 7 = Week 1
|
||
QCOMPARE(calendar->week(QDate(2013, 1, 1), &weekYear), 53); //First Day
|
||
QCOMPARE(weekYear, 2012);
|
||
QCOMPARE(calendar->week(QDate(2013, 1, 6), &weekYear), 53); //First Sunday
|
||
QCOMPARE(weekYear, 2012);
|
||
QCOMPARE(calendar->week(QDate(2013, 1, 7), &weekYear), 1); //First Monday
|
||
QCOMPARE(weekYear, 2013);
|
||
QCOMPARE(calendar->week(QDate(2013, 1, 13), &weekYear), 1); //Second Saturday
|
||
QCOMPARE(weekYear, 2013);
|
||
QCOMPARE(calendar->week(QDate(2013, 1, 14), &weekYear), 2); //Second Monday
|
||
QCOMPARE(weekYear, 2013);
|
||
QCOMPARE(calendar->week(QDate(2013, 12, 31), &weekYear), 52); //Last Day
|
||
QCOMPARE(weekYear, 2013);
|
||
|
||
// Wed = Jan 1 2014 = Week 52 2013, Mon = Jan 6 = Week 1
|
||
QCOMPARE(calendar->week(QDate(2014, 1, 1), &weekYear), 52); //First Day
|
||
QCOMPARE(weekYear, 2013);
|
||
QCOMPARE(calendar->week(QDate(2014, 1, 5), &weekYear), 52); //First Sunday
|
||
QCOMPARE(weekYear, 2013);
|
||
QCOMPARE(calendar->week(QDate(2014, 1, 6), &weekYear), 1); //First Monday
|
||
QCOMPARE(weekYear, 2014);
|
||
QCOMPARE(calendar->week(QDate(2014, 1, 12), &weekYear), 1); //Second Saturday
|
||
QCOMPARE(weekYear, 2014);
|
||
QCOMPARE(calendar->week(QDate(2014, 1, 13), &weekYear), 2); //Second Monday
|
||
QCOMPARE(weekYear, 2014);
|
||
QCOMPARE(calendar->week(QDate(2014, 12, 31), &weekYear), 52); //Last Day
|
||
QCOMPARE(weekYear, 2014);
|
||
|
||
// Thu = Jan 1 2015 = Week 52 2014, Mon = Jan 5 = Week 1
|
||
QCOMPARE(calendar->week(QDate(2015, 1, 1), &weekYear), 52); //First Day
|
||
QCOMPARE(weekYear, 2014);
|
||
QCOMPARE(calendar->week(QDate(2015, 1, 4), &weekYear), 52); //First Sunday
|
||
QCOMPARE(weekYear, 2014);
|
||
QCOMPARE(calendar->week(QDate(2015, 1, 5), &weekYear), 1); //First Monday
|
||
QCOMPARE(weekYear, 2015);
|
||
QCOMPARE(calendar->week(QDate(2015, 1, 11), &weekYear), 1); //Second Saturday
|
||
QCOMPARE(weekYear, 2015);
|
||
QCOMPARE(calendar->week(QDate(2015, 1, 12), &weekYear), 2); //Second Monday
|
||
QCOMPARE(weekYear, 2015);
|
||
QCOMPARE(calendar->week(QDate(2015, 12, 31), &weekYear), 52); //Last Day
|
||
QCOMPARE(weekYear, 2015);
|
||
|
||
// Fri = Jan 1 2016 = Week 52 2015, Mon = Jan 4 = Week 1
|
||
QCOMPARE(calendar->week(QDate(2016, 1, 1), &weekYear), 52); //First Day
|
||
QCOMPARE(weekYear, 2015);
|
||
QCOMPARE(calendar->week(QDate(2016, 1, 3), &weekYear), 52); //First Sunday
|
||
QCOMPARE(weekYear, 2015);
|
||
QCOMPARE(calendar->week(QDate(2016, 1, 4), &weekYear), 1); //First Monday
|
||
QCOMPARE(weekYear, 2016);
|
||
QCOMPARE(calendar->week(QDate(2016, 1, 10), &weekYear), 1); //Second Saturday
|
||
QCOMPARE(weekYear, 2016);
|
||
QCOMPARE(calendar->week(QDate(2016, 1, 11), &weekYear), 2); //Second Monday
|
||
QCOMPARE(weekYear, 2016);
|
||
QCOMPARE(calendar->week(QDate(2016, 12, 31), &weekYear), 52); //Last Day
|
||
QCOMPARE(weekYear, 2016);
|
||
|
||
// Sat = Jan 1 2011 = Week 52 2010, Mon = Jan 3 = Week 1
|
||
QCOMPARE(calendar->week(QDate(2011, 1, 1), &weekYear), 52); //First Day
|
||
QCOMPARE(weekYear, 2010);
|
||
QCOMPARE(calendar->week(QDate(2011, 1, 2), &weekYear), 52); //First Sunday
|
||
QCOMPARE(weekYear, 2010);
|
||
QCOMPARE(calendar->week(QDate(2011, 1, 3), &weekYear), 1); //First Monday
|
||
QCOMPARE(weekYear, 2011);
|
||
QCOMPARE(calendar->week(QDate(2011, 1, 9), &weekYear), 1); //Second Sunday
|
||
QCOMPARE(weekYear, 2011);
|
||
QCOMPARE(calendar->week(QDate(2011, 1, 10), &weekYear), 2); //Second Monday
|
||
QCOMPARE(weekYear, 2011);
|
||
QCOMPARE(calendar->week(QDate(2011, 12, 31), &weekYear), 52); //Last Day
|
||
QCOMPARE(weekYear, 2011);
|
||
|
||
// Sun = Jan 1 2012 = Week 52 2011, Mon = Jan 2 = Week 1
|
||
QCOMPARE(calendar->week(QDate(2012, 1, 1), &weekYear), 52); //First Day, First Sunday
|
||
QCOMPARE(weekYear, 2011);
|
||
QCOMPARE(calendar->week(QDate(2012, 1, 2), &weekYear), 1); //First Monday
|
||
QCOMPARE(weekYear, 2012);
|
||
QCOMPARE(calendar->week(QDate(2012, 1, 8), &weekYear), 1); //Second Sunday
|
||
QCOMPARE(weekYear, 2012);
|
||
QCOMPARE(calendar->week(QDate(2012, 1, 9), &weekYear), 2); //Second Monday
|
||
QCOMPARE(weekYear, 2012);
|
||
QCOMPARE(calendar->week(QDate(2012, 12, 31), &weekYear), 53); //Last Day
|
||
QCOMPARE(weekYear, 2012);
|
||
|
||
|
||
// First Partial Week, second week starting Sunday
|
||
locale->setWeekStartDay(7);
|
||
locale->setWeekNumberSystem(KLocale::FirstPartialWeek);
|
||
|
||
// Mon = Jan 1 2018 = Week 1, Sun = Jan 7 = Week 2
|
||
QCOMPARE(calendar->week(QDate(2018, 1, 1), &weekYear), 1); //First Day
|
||
QCOMPARE(weekYear, 2018);
|
||
QCOMPARE(calendar->week(QDate(2018, 1, 6), &weekYear), 1); //First Saturday
|
||
QCOMPARE(weekYear, 2018);
|
||
QCOMPARE(calendar->week(QDate(2018, 1, 7), &weekYear), 2); //First Sunday
|
||
QCOMPARE(weekYear, 2018);
|
||
QCOMPARE(calendar->week(QDate(2018, 1, 13), &weekYear), 2); //Second Saturday
|
||
QCOMPARE(weekYear, 2018);
|
||
QCOMPARE(calendar->week(QDate(2018, 1, 14), &weekYear), 3); //Second Sunday
|
||
QCOMPARE(weekYear, 2018);
|
||
QCOMPARE(calendar->week(QDate(2018, 12, 31), &weekYear), 53); //Last Day
|
||
QCOMPARE(weekYear, 2018);
|
||
|
||
// Tue = Jan 1 2013 = Week 1, Sun = Jan 6 = Week 2
|
||
QCOMPARE(calendar->week(QDate(2013, 1, 1), &weekYear), 1); //First Day
|
||
QCOMPARE(weekYear, 2013);
|
||
QCOMPARE(calendar->week(QDate(2013, 1, 5), &weekYear), 1); //First Saturday
|
||
QCOMPARE(weekYear, 2013);
|
||
QCOMPARE(calendar->week(QDate(2013, 1, 6), &weekYear), 2); //First Sunday
|
||
QCOMPARE(weekYear, 2013);
|
||
QCOMPARE(calendar->week(QDate(2013, 1, 12), &weekYear), 2); //Second Saturday
|
||
QCOMPARE(weekYear, 2013);
|
||
QCOMPARE(calendar->week(QDate(2013, 1, 13), &weekYear), 3); //Second Sunday
|
||
QCOMPARE(weekYear, 2013);
|
||
QCOMPARE(calendar->week(QDate(2013, 12, 31), &weekYear), 53); //Last Day
|
||
QCOMPARE(weekYear, 2013);
|
||
|
||
// Wed = Jan 1 2014 = Week 1, Sun = Jan 5 = Week 2
|
||
QCOMPARE(calendar->week(QDate(2014, 1, 1), &weekYear), 1); //First Day
|
||
QCOMPARE(weekYear, 2014);
|
||
QCOMPARE(calendar->week(QDate(2014, 1, 4), &weekYear), 1); //First Saturday
|
||
QCOMPARE(weekYear, 2014);
|
||
QCOMPARE(calendar->week(QDate(2014, 1, 5), &weekYear), 2); //First Sunday
|
||
QCOMPARE(weekYear, 2014);
|
||
QCOMPARE(calendar->week(QDate(2014, 1, 11), &weekYear), 2); //Second Saturday
|
||
QCOMPARE(weekYear, 2014);
|
||
QCOMPARE(calendar->week(QDate(2014, 1, 12), &weekYear), 3); //Second Sunday
|
||
QCOMPARE(weekYear, 2014);
|
||
QCOMPARE(calendar->week(QDate(2014, 12, 31), &weekYear), 53); //Last Day
|
||
QCOMPARE(weekYear, 2014);
|
||
|
||
// Thu = Jan 1 2015 = Week 1, Sun = Jan 4 = Week 2
|
||
QCOMPARE(calendar->week(QDate(2015, 1, 1), &weekYear), 1); //First Day
|
||
QCOMPARE(weekYear, 2015);
|
||
QCOMPARE(calendar->week(QDate(2015, 1, 3), &weekYear), 1); //First Saturday
|
||
QCOMPARE(weekYear, 2015);
|
||
QCOMPARE(calendar->week(QDate(2015, 1, 4), &weekYear), 2); //First Sunday
|
||
QCOMPARE(weekYear, 2015);
|
||
QCOMPARE(calendar->week(QDate(2015, 1, 10), &weekYear), 2); //Second Saturday
|
||
QCOMPARE(weekYear, 2015);
|
||
QCOMPARE(calendar->week(QDate(2015, 1, 11), &weekYear), 3); //Second Sunday
|
||
QCOMPARE(weekYear, 2015);
|
||
QCOMPARE(calendar->week(QDate(2015, 12, 31), &weekYear), 53); //Last Day
|
||
QCOMPARE(weekYear, 2015);
|
||
|
||
// Fri = Jan 1 2016 = Week 1, Sun = Jan 3 = Week 2
|
||
QCOMPARE(calendar->week(QDate(2016, 1, 1), &weekYear), 1); //First Day
|
||
QCOMPARE(weekYear, 2016);
|
||
QCOMPARE(calendar->week(QDate(2016, 1, 2), &weekYear), 1); //First Saturday
|
||
QCOMPARE(weekYear, 2016);
|
||
QCOMPARE(calendar->week(QDate(2016, 1, 3), &weekYear), 2); //First Sunday
|
||
QCOMPARE(weekYear, 2016);
|
||
QCOMPARE(calendar->week(QDate(2016, 1, 9), &weekYear), 2); //Second Saturday
|
||
QCOMPARE(weekYear, 2016);
|
||
QCOMPARE(calendar->week(QDate(2016, 1, 10), &weekYear), 3); //Second Sunday
|
||
QCOMPARE(weekYear, 2016);
|
||
QCOMPARE(calendar->week(QDate(2016, 12, 31), &weekYear), 53); //Last Day
|
||
QCOMPARE(weekYear, 2016);
|
||
|
||
// Sat = Jan 1 2011 = Week 1, Sun = Jan 2 = Week 2
|
||
QCOMPARE(calendar->week(QDate(2011, 1, 1), &weekYear), 1); //First Day, First Saturday
|
||
QCOMPARE(weekYear, 2011);
|
||
QCOMPARE(calendar->week(QDate(2011, 1, 2), &weekYear), 2); //First Sunday
|
||
QCOMPARE(weekYear, 2011);
|
||
QCOMPARE(calendar->week(QDate(2011, 1, 8), &weekYear), 2); //Second Saturday
|
||
QCOMPARE(weekYear, 2011);
|
||
QCOMPARE(calendar->week(QDate(2011, 1, 9), &weekYear), 3); //Second Sunday
|
||
QCOMPARE(weekYear, 2011);
|
||
QCOMPARE(calendar->week(QDate(2011, 12, 31), &weekYear), 53); //Last Day
|
||
QCOMPARE(weekYear, 2011);
|
||
|
||
// Sun = Jan 1 2012 = Week 1, Sun = Jan 1 = Week 1
|
||
QCOMPARE(calendar->week(QDate(2012, 1, 1), &weekYear), 1); //First Day, First Sunday
|
||
QCOMPARE(weekYear, 2012);
|
||
QCOMPARE(calendar->week(QDate(2012, 1, 7), &weekYear), 1); //First Saturday
|
||
QCOMPARE(weekYear, 2012);
|
||
QCOMPARE(calendar->week(QDate(2012, 1, 8), &weekYear), 2); //Second Sunday
|
||
QCOMPARE(weekYear, 2012);
|
||
QCOMPARE(calendar->week(QDate(2012, 12, 31), &weekYear), 53); //Last Day
|
||
QCOMPARE(weekYear, 2012);
|
||
|
||
// First Partial Week starting Monday
|
||
locale->setWeekStartDay(1);
|
||
locale->setWeekNumberSystem(KLocale::FirstPartialWeek);
|
||
|
||
// Mon = Jan 1 2018 = Week 1, Mon = Jan 1 = Week 2
|
||
QCOMPARE(calendar->week(QDate(2018, 1, 1), &weekYear), 1); //First Day, First Monday
|
||
QCOMPARE(weekYear, 2018);
|
||
QCOMPARE(calendar->week(QDate(2018, 1, 7), &weekYear), 1); //First Sunday
|
||
QCOMPARE(weekYear, 2018);
|
||
QCOMPARE(calendar->week(QDate(2018, 1, 8), &weekYear), 2); //Second Monday
|
||
QCOMPARE(weekYear, 2018);
|
||
QCOMPARE(calendar->week(QDate(2018, 12, 31), &weekYear), 53); //Last Day
|
||
QCOMPARE(weekYear, 2018);
|
||
|
||
// Tue = Jan 1 2013 = Week 1, Mon = Jan 7 = Week 2
|
||
QCOMPARE(calendar->week(QDate(2013, 1, 1), &weekYear), 1); //First Day
|
||
QCOMPARE(weekYear, 2013);
|
||
QCOMPARE(calendar->week(QDate(2013, 1, 6), &weekYear), 1); //First Sunday
|
||
QCOMPARE(weekYear, 2013);
|
||
QCOMPARE(calendar->week(QDate(2013, 1, 7), &weekYear), 2); //First Monday
|
||
QCOMPARE(weekYear, 2013);
|
||
QCOMPARE(calendar->week(QDate(2013, 1, 13), &weekYear), 2); //Second Saturday
|
||
QCOMPARE(weekYear, 2013);
|
||
QCOMPARE(calendar->week(QDate(2013, 1, 14), &weekYear), 3); //Second Monday
|
||
QCOMPARE(weekYear, 2013);
|
||
QCOMPARE(calendar->week(QDate(2013, 12, 31), &weekYear), 53); //Last Day
|
||
QCOMPARE(weekYear, 2013);
|
||
|
||
// Wed = Jan 1 2014 = Week 1, Mon = Jan 6 = Week 2
|
||
QCOMPARE(calendar->week(QDate(2014, 1, 1), &weekYear), 1); //First Day
|
||
QCOMPARE(weekYear, 2014);
|
||
QCOMPARE(calendar->week(QDate(2014, 1, 5), &weekYear), 1); //First Sunday
|
||
QCOMPARE(weekYear, 2014);
|
||
QCOMPARE(calendar->week(QDate(2014, 1, 6), &weekYear), 2); //First Monday
|
||
QCOMPARE(weekYear, 2014);
|
||
QCOMPARE(calendar->week(QDate(2014, 1, 12), &weekYear), 2); //Second Saturday
|
||
QCOMPARE(weekYear, 2014);
|
||
QCOMPARE(calendar->week(QDate(2014, 1, 13), &weekYear), 3); //Second Monday
|
||
QCOMPARE(weekYear, 2014);
|
||
QCOMPARE(calendar->week(QDate(2014, 12, 31), &weekYear), 53); //Last Day
|
||
QCOMPARE(weekYear, 2014);
|
||
|
||
// Thu = Jan 1 2015 = Week 1, Mon = Jan 5 = Week 2
|
||
QCOMPARE(calendar->week(QDate(2015, 1, 1), &weekYear), 1); //First Day
|
||
QCOMPARE(weekYear, 2015);
|
||
QCOMPARE(calendar->week(QDate(2015, 1, 4), &weekYear), 1); //First Sunday
|
||
QCOMPARE(weekYear, 2015);
|
||
QCOMPARE(calendar->week(QDate(2015, 1, 5), &weekYear), 2); //First Monday
|
||
QCOMPARE(weekYear, 2015);
|
||
QCOMPARE(calendar->week(QDate(2015, 1, 11), &weekYear), 2); //Second Saturday
|
||
QCOMPARE(weekYear, 2015);
|
||
QCOMPARE(calendar->week(QDate(2015, 1, 12), &weekYear), 3); //Second Monday
|
||
QCOMPARE(weekYear, 2015);
|
||
QCOMPARE(calendar->week(QDate(2015, 12, 31), &weekYear), 53); //Last Day
|
||
QCOMPARE(weekYear, 2015);
|
||
|
||
// Fri = Jan 1 2016 = Week 1, Mon = Jan 4 = Week 2
|
||
QCOMPARE(calendar->week(QDate(2016, 1, 1), &weekYear), 1); //First Day
|
||
QCOMPARE(weekYear, 2016);
|
||
QCOMPARE(calendar->week(QDate(2016, 1, 3), &weekYear), 1); //First Sunday
|
||
QCOMPARE(weekYear, 2016);
|
||
QCOMPARE(calendar->week(QDate(2016, 1, 4), &weekYear), 2); //First Monday
|
||
QCOMPARE(weekYear, 2016);
|
||
QCOMPARE(calendar->week(QDate(2016, 1, 10), &weekYear), 2); //Second Saturday
|
||
QCOMPARE(weekYear, 2016);
|
||
QCOMPARE(calendar->week(QDate(2016, 1, 11), &weekYear), 3); //Second Monday
|
||
QCOMPARE(weekYear, 2016);
|
||
QCOMPARE(calendar->week(QDate(2016, 12, 31), &weekYear), 53); //Last Day
|
||
QCOMPARE(weekYear, 2016);
|
||
|
||
// Sat = Jan 1 2011 = Week 1, Mon = Jan 3 = Week 2
|
||
QCOMPARE(calendar->week(QDate(2011, 1, 1), &weekYear), 1); //First Day
|
||
QCOMPARE(weekYear, 2011);
|
||
QCOMPARE(calendar->week(QDate(2011, 1, 2), &weekYear), 1); //First Sunday
|
||
QCOMPARE(weekYear, 2011);
|
||
QCOMPARE(calendar->week(QDate(2011, 1, 3), &weekYear), 2); //First Monday
|
||
QCOMPARE(weekYear, 2011);
|
||
QCOMPARE(calendar->week(QDate(2011, 1, 9), &weekYear), 2); //Second Sunday
|
||
QCOMPARE(weekYear, 2011);
|
||
QCOMPARE(calendar->week(QDate(2011, 1, 10), &weekYear), 3); //Second Monday
|
||
QCOMPARE(weekYear, 2011);
|
||
QCOMPARE(calendar->week(QDate(2011, 12, 31), &weekYear), 53); //Last Day
|
||
QCOMPARE(weekYear, 2011);
|
||
|
||
// Sun = Jan 1 2012 = Week 1, Mon = Jan 2 = Week 2
|
||
QCOMPARE(calendar->week(QDate(2012, 1, 1), &weekYear), 1); //First Day, First Sunday
|
||
QCOMPARE(weekYear, 2012);
|
||
QCOMPARE(calendar->week(QDate(2012, 1, 2), &weekYear), 2); //First Monday
|
||
QCOMPARE(weekYear, 2012);
|
||
QCOMPARE(calendar->week(QDate(2012, 1, 8), &weekYear), 2); //Second Sunday
|
||
QCOMPARE(weekYear, 2012);
|
||
QCOMPARE(calendar->week(QDate(2012, 1, 9), &weekYear), 3); //Second Monday
|
||
QCOMPARE(weekYear, 2012);
|
||
QCOMPARE(calendar->week(QDate(2012, 12, 31), &weekYear), 54); //Last Day
|
||
QCOMPARE(weekYear, 2012);
|
||
|
||
// Simple weeks starting Jan 1
|
||
locale->setWeekStartDay(1);
|
||
locale->setWeekNumberSystem(KLocale::SimpleWeek);
|
||
|
||
// Mon = Jan 1 2018
|
||
QCOMPARE(calendar->week(QDate(2018, 1, 1), &weekYear), 1); //First Day, Monday
|
||
QCOMPARE(weekYear, 2018);
|
||
QCOMPARE(calendar->week(QDate(2018, 1, 7), &weekYear), 1);
|
||
QCOMPARE(weekYear, 2018);
|
||
QCOMPARE(calendar->week(QDate(2018, 1, 8), &weekYear), 2); //Second Week
|
||
QCOMPARE(weekYear, 2018);
|
||
QCOMPARE(calendar->week(QDate(2018, 1, 14), &weekYear), 2);
|
||
QCOMPARE(weekYear, 2018);
|
||
QCOMPARE(calendar->week(QDate(2018, 1, 15), &weekYear), 3); //Third Week
|
||
QCOMPARE(weekYear, 2018);
|
||
|
||
// Tue = Jan 1 2013
|
||
QCOMPARE(calendar->week(QDate(2013, 1, 1), &weekYear), 1); //First Day, Tuesday
|
||
QCOMPARE(weekYear, 2013);
|
||
QCOMPARE(calendar->week(QDate(2013, 1, 7), &weekYear), 1);
|
||
QCOMPARE(weekYear, 2013);
|
||
QCOMPARE(calendar->week(QDate(2013, 1, 8), &weekYear), 2); //Second Week
|
||
QCOMPARE(weekYear, 2013);
|
||
QCOMPARE(calendar->week(QDate(2013, 1, 14), &weekYear), 2);
|
||
QCOMPARE(weekYear, 2013);
|
||
QCOMPARE(calendar->week(QDate(2013, 1, 15), &weekYear), 3); //Third Week
|
||
QCOMPARE(weekYear, 2013);
|
||
|
||
// Wed = Jan 1 2014
|
||
QCOMPARE(calendar->week(QDate(2014, 1, 1), &weekYear), 1); //First Day, Wednesday
|
||
QCOMPARE(weekYear, 2014);
|
||
QCOMPARE(calendar->week(QDate(2014, 1, 7), &weekYear), 1);
|
||
QCOMPARE(weekYear, 2014);
|
||
QCOMPARE(calendar->week(QDate(2014, 1, 8), &weekYear), 2); //Second Week
|
||
QCOMPARE(weekYear, 2014);
|
||
QCOMPARE(calendar->week(QDate(2014, 1, 14), &weekYear), 2);
|
||
QCOMPARE(weekYear, 2014);
|
||
QCOMPARE(calendar->week(QDate(2014, 1, 15), &weekYear), 3); //Third Week
|
||
QCOMPARE(weekYear, 2014);
|
||
|
||
// Thu = Jan 1 2015
|
||
QCOMPARE(calendar->week(QDate(2015, 1, 1), &weekYear), 1); //First Day, Thursday
|
||
QCOMPARE(weekYear, 2015);
|
||
QCOMPARE(calendar->week(QDate(2015, 1, 7), &weekYear), 1);
|
||
QCOMPARE(weekYear, 2015);
|
||
QCOMPARE(calendar->week(QDate(2015, 1, 8), &weekYear), 2); //Second Week
|
||
QCOMPARE(weekYear, 2015);
|
||
QCOMPARE(calendar->week(QDate(2015, 1, 14), &weekYear), 2);
|
||
QCOMPARE(weekYear, 2015);
|
||
QCOMPARE(calendar->week(QDate(2015, 1, 15), &weekYear), 3); //Third Week
|
||
QCOMPARE(weekYear, 2015);
|
||
|
||
// Fri = Jan 1 2016
|
||
QCOMPARE(calendar->week(QDate(2016, 1, 1), &weekYear), 1); //First Day, Monday
|
||
QCOMPARE(weekYear, 2016);
|
||
QCOMPARE(calendar->week(QDate(2016, 1, 7), &weekYear), 1);
|
||
QCOMPARE(weekYear, 2016);
|
||
QCOMPARE(calendar->week(QDate(2016, 1, 8), &weekYear), 2); //Second Week
|
||
QCOMPARE(weekYear, 2016);
|
||
QCOMPARE(calendar->week(QDate(2016, 1, 14), &weekYear), 2);
|
||
QCOMPARE(weekYear, 2016);
|
||
QCOMPARE(calendar->week(QDate(2016, 1, 15), &weekYear), 3); //Third Week
|
||
QCOMPARE(weekYear, 2016);
|
||
|
||
// Sat = Jan 1 2011
|
||
QCOMPARE(calendar->week(QDate(2011, 1, 1), &weekYear), 1); //First Day, Monday
|
||
QCOMPARE(weekYear, 2011);
|
||
QCOMPARE(calendar->week(QDate(2011, 1, 7), &weekYear), 1);
|
||
QCOMPARE(weekYear, 2011);
|
||
QCOMPARE(calendar->week(QDate(2011, 1, 8), &weekYear), 2); //Second Week
|
||
QCOMPARE(weekYear, 2011);
|
||
QCOMPARE(calendar->week(QDate(2011, 1, 14), &weekYear), 2);
|
||
QCOMPARE(weekYear, 2011);
|
||
QCOMPARE(calendar->week(QDate(2011, 1, 15), &weekYear), 3); //Third Week
|
||
QCOMPARE(weekYear, 2011);
|
||
|
||
// Sun = Jan 1 2012
|
||
QCOMPARE(calendar->week(QDate(2012, 1, 1), &weekYear), 1); //First Day, Monday
|
||
QCOMPARE(weekYear, 2012);
|
||
QCOMPARE(calendar->week(QDate(2012, 1, 7), &weekYear), 1);
|
||
QCOMPARE(weekYear, 2012);
|
||
QCOMPARE(calendar->week(QDate(2012, 1, 8), &weekYear), 2); //Second Week
|
||
QCOMPARE(weekYear, 2012);
|
||
QCOMPARE(calendar->week(QDate(2012, 1, 14), &weekYear), 2);
|
||
QCOMPARE(weekYear, 2012);
|
||
QCOMPARE(calendar->week(QDate(2012, 1, 15), &weekYear), 3); //Third Week
|
||
QCOMPARE(weekYear, 2012);
|
||
|
||
delete calendar;
|
||
delete locale;
|
||
}
|