~ubuntu-branches/ubuntu/oneiric/koffice/oneiric-updates

« back to all changes in this revision

Viewing changes to kspread/tests/TestDatetimeFunctions.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Alessandro Ghersi
  • Date: 2010-10-27 17:52:57 UTC
  • mfrom: (0.12.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20101027175257-s04zqqk5bs8ckm9o
Tags: 1:2.2.83-0ubuntu1
* Merge with Debian git remaining changes:
 - Add build-deps on librcps-dev, opengtl-dev, libqtgtl-dev, freetds-dev,
   create-resources, libspnav-dev
 - Remove needless build-dep on libwv2-dev
 - koffice-libs recommends create-resources
 - krita recommends pstoedit
 - Keep our patches
* New upstream release 2.3 beta 3
  - Remove debian/patches fixed by upstream
  - Update install files

Show diffs side-by-side

added added

removed removed

Lines of Context:
20
20
 
21
21
#include "TestKspreadCommon.h"
22
22
 
23
 
#include "functions/DateTimeModule.h"
24
 
#include "functions/MathModule.h"
25
 
#include "FunctionModuleRegistry.h"
26
 
 
27
23
void TestDatetimeFunctions::initTestCase()
28
24
{
29
 
    FunctionModuleRegistry::instance()->add(new DateTimeModule(this));
30
 
    FunctionModuleRegistry::instance()->add(new MathModule(this));
31
 
    FunctionModuleRegistry::instance()->registerFunctions();
 
25
    FunctionModuleRegistry::instance()->loadFunctionModules();
32
26
}
33
27
 
34
28
#define CHECK_EVAL(x,y) { Value z(RoundNumber(y)); QCOMPARE(evaluate(x,z), (z)); }
147
141
    CHECK_EVAL("YEARFRAC( \"2001-01-01\" ; \"2002-01-01\" ; 4)", Value(1.0000000000));
148
142
    CHECK_EVAL("YEARFRAC( \"2001-12-05\" ; \"2001-12-30\" ; 4)", Value(0.0694444444));
149
143
    CHECK_EVAL("YEARFRAC( \"2000-02-05\" ; \"2006-08-10\" ; 4)", Value(6.5138888889));
 
144
 
 
145
    // alternate function name
 
146
    CHECK_EVAL("COM.SUN.STAR.SHEET.ADDIN.ANALYSIS.GETYEARFRAC(\"1999-01-01\";\"1999-06-30\";1)", Value(0.4931506849));
150
147
}
151
148
 
152
149
void TestDatetimeFunctions::testDATEDIF()
186
183
    CHECK_EVAL("ISLEAPYEAR(2002)", Value(false));
187
184
    CHECK_EVAL("ISLEAPYEAR(2003)", Value(false));
188
185
    CHECK_EVAL("ISLEAPYEAR(2004)", Value(true));
 
186
    // test alternate name for the ISLEAPYEAR function
 
187
    CHECK_EVAL("COM.SUN.STAR.SHEET.ADDIN.DATEFUNCTIONS.GETISLEAPYEAR(1900)", Value(false));
 
188
    CHECK_EVAL("COM.SUN.STAR.SHEET.ADDIN.DATEFUNCTIONS.GETISLEAPYEAR(2000)", Value(true));
189
189
}
190
190
 
191
191
void TestDatetimeFunctions::testWEEKNUM()
216
216
    CHECK_EVAL("WEEKNUM(DATE(2006;01;01);2)", Value(01));
217
217
    CHECK_EVAL("WEEKNUM(DATE(2006;01;02);2)", Value(02));
218
218
 
 
219
    // alternate function name
 
220
    CHECK_EVAL("COM.SUN.STAR.SHEET.ADDIN.ANALYSIS.GETWEEKNUM(DATE(2000;05;21);1)", Value(22));
219
221
}
220
222
 
221
223
void TestDatetimeFunctions::testWEEKSINYEAR()
223
225
    //
224
226
    CHECK_EVAL("WEEKSINYEAR(1995)", Value(52));
225
227
    CHECK_EVAL("WEEKSINYEAR(1992)", Value(53));
 
228
    CHECK_EVAL("COM.SUN.STAR.SHEET.ADDIN.DATEFUNCTIONS.GETWEEKSINYEAR(1992)", Value(53));
226
229
}
227
230
 
228
231
void TestDatetimeFunctions::testWORKDAY()
232
235
    //          01 02 -- --
233
236
    CHECK_EVAL("WORKDAY(DATE(2001;01;01);2;2)=DATE(2001;01;05)", Value(true));
234
237
    CHECK_EVAL("WORKDAY(DATE(2001;01;01);2;3)=DATE(2001;01;08)", Value(true));
 
238
    CHECK_EVAL("COM.SUN.STAR.SHEET.ADDIN.ANALYSIS.GETWORKDAY(DATE(2001;01;01);2;3)=DATE(2001;01;08)", Value(true));
235
239
}
236
240
 
237
241
void TestDatetimeFunctions::testNETWORKDAY()
325
329
    CHECK_EVAL("DAYSINMONTH(2000;02)", Value(29));
326
330
    CHECK_EVAL("DAYSINMONTH(1900;02)", Value(28));     // non leapyear
327
331
    CHECK_EVAL("DAYSINMONTH(2004;02)", Value(29));
 
332
 
 
333
    // test alternate name for the DAYSINMONTH function
 
334
    CHECK_EVAL("COM.SUN.STAR.SHEET.ADDIN.DATEFUNCTIONS.GETDAYSINMONTH(1995;01)", Value(31)); // alternate function name
 
335
}
 
336
 
 
337
void TestDatetimeFunctions::testDAYSINYEAR()
 
338
{
 
339
    CHECK_EVAL("DAYSINYEAR(2000)", Value(366));
 
340
    CHECK_EVAL("COM.SUN.STAR.SHEET.ADDIN.DATEFUNCTIONS.GETDAYSINYEAR(2000)", Value(366)); // alternate function name
328
341
}
329
342
 
330
343
void TestDatetimeFunctions::testDAYS360()
346
359
    CHECK_EVAL("EDATE(\"2006-01-01\";-2) =DATE(2005;11;01)", Value(true));     // 2006 is not a leap year. Last day of March, going back to February
347
360
    CHECK_EVAL("EDATE(\"2000-04-30\";-2) =DATE(2000; 2;29)", Value(true));     // TODO 2000 was a leap year, so the end of February is the 29th
348
361
    CHECK_EVAL("EDATE(\"2000-04-05\";24 )=DATE(2002;04;05)", Value(true));     // EDATE isn't limited to 12 months
 
362
    CHECK_EVAL("COM.SUN.STAR.SHEET.ADDIN.ANALYSIS.GETEDATE(\"2006-01-01\";0)  =DATE(2006;01;01)", Value(true)); // alternate function name
349
363
}
350
364
 
351
365
void TestDatetimeFunctions::testEOMONTH()
367
381
    CHECK_EVAL("EOMONTH(\"2006-01-05\";09) =DATE(2002;10;31)", Value(false));     // Oct 31
368
382
    CHECK_EVAL("EOMONTH(\"2006-01-05\";10) =DATE(2002;11;30)", Value(false));     // Nov. 30
369
383
    CHECK_EVAL("EOMONTH(\"2006-01-05\";11) =DATE(2002;12;31)", Value(false));     // Dec. 31
 
384
    CHECK_EVAL("COM.SUN.STAR.SHEET.ADDIN.ANALYSIS.GETEOMONTH(\"2006-01-01\";0)  =DATE(2006;01;31)", Value(true)); // alternate function name
370
385
}
371
386
 
372
387
void TestDatetimeFunctions::testHOUR()
445
460
    CHECK_EVAL("MONTH(DATE(2006;5;21))", Value(5));        // Month extraction from DATE() value
446
461
}
447
462
 
 
463
void TestDatetimeFunctions::testMONTHS()
 
464
{
 
465
    CHECK_EVAL("MONTHS(\"2002-01-18\"; \"2002-02-26\"; 0)", Value(1));
 
466
    CHECK_EVAL("MONTHS(\"2002-01-19\"; \"2002-02-26\"; 1)", Value(0));
 
467
    CHECK_EVAL("COM.SUN.STAR.SHEET.ADDIN.DATEFUNCTIONS.GETDIFFMONTHS(\"2002-01-18\"; \"2002-02-26\"; 0)", Value(1));
 
468
    CHECK_EVAL("COM.SUN.STAR.SHEET.ADDIN.DATEFUNCTIONS.GETDIFFMONTHS(\"2002-01-19\"; \"2002-02-26\"; 1)", Value(0));
 
469
}
 
470
 
448
471
void TestDatetimeFunctions::testNOW()
449
472
{
450
473
    //
508
531
 
509
532
void TestDatetimeFunctions::testYEAR()
510
533
{
511
 
    //
512
534
    CHECK_EVAL("YEAR(DATE(1904;1;1))", Value(1904));
 
535
    CHECK_EVAL("YEAR(DATE(2004;1;1))", Value(2004));
 
536
}
 
537
 
 
538
void TestDatetimeFunctions::testYEARS()
 
539
{
 
540
    CHECK_EVAL("YEARS(\"2001-02-19\"; \"2002-02-26\"; 0)", Value(1));
 
541
    CHECK_EVAL("YEARS(\"2002-02-19\"; \"2002-02-26\"; 1)", Value(0));
 
542
    CHECK_EVAL("COM.SUN.STAR.SHEET.ADDIN.DATEFUNCTIONS.GETDIFFYEARS(\"2001-02-19\";\"2002-02-26\";0)", Value(1));
 
543
    CHECK_EVAL("COM.SUN.STAR.SHEET.ADDIN.DATEFUNCTIONS.GETDIFFYEARS(\"2002-02-19\";\"2002-02-26\";1)", Value(0));
 
544
}
 
545
 
 
546
void TestDatetimeFunctions::testWEEKS()
 
547
{
 
548
    CHECK_EVAL("WEEKS(\"2002-02-18\"; \"2002-02-26\"; 0)", Value(1));
 
549
    CHECK_EVAL("COM.SUN.STAR.SHEET.ADDIN.DATEFUNCTIONS.GETDIFFWEEKS(\"2002-02-18\"; \"2002-02-26\"; 0)", Value(1));
513
550
}
514
551
 
515
552
QTEST_KDEMAIN(TestDatetimeFunctions, GUI)