
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@9651 8e941d3f-bd1b-0410-a28a-d453659cc2b4
208 lines
5.9 KiB
ObjectPascal
208 lines
5.9 KiB
ObjectPascal
unit calcformulatests;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils, fpcunit, testutils, testregistry,
|
|
fpstypes, fpspreadsheet, fpsexprparser;
|
|
|
|
type
|
|
|
|
TCalcFormulaTests = class(TTestCase)
|
|
private
|
|
FWorkbook: TsWorkbook;
|
|
FWorksheet: TsWorksheet;
|
|
FOtherWorksheet: TsWorksheet;
|
|
protected
|
|
// Set up expected values:
|
|
procedure SetUp; override;
|
|
procedure TearDown; override;
|
|
published
|
|
end;
|
|
|
|
TCalcDateTimeFormulaTests = class(TCalcFormulaTests)
|
|
published
|
|
procedure Test_DATE;
|
|
// procedure Test_DATEDIF; to be written
|
|
// procedure Test_DATEVALUE; to be written
|
|
// procedure Test_DAY; to be written
|
|
// procedure Test_HOUR; to be written
|
|
// procedure Test_MINUTE; to be written
|
|
// procedure Test_MONTH; to be written
|
|
// procedure Test_NOW; to be written
|
|
// procedure Test_SECOND; to be written
|
|
procedure Test_TIME;
|
|
// procedure Test_TIMEVALUE; to be written
|
|
// procedure Test_TODAY; to be written
|
|
// procedure Test_WEEKDAY; to be written
|
|
// procedure Test_YEAR; to be written
|
|
end;
|
|
|
|
TCalcInfoFormulaTests = class(TCalcFormulaTests)
|
|
published
|
|
procedure Test_ERRORTYPE;
|
|
procedure Test_IFERROR;
|
|
procedure Test_ISBLANK;
|
|
procedure Test_ISERR;
|
|
procedure Test_ISERROR;
|
|
procedure Test_ISLOGICAL;
|
|
procedure Test_ISNA;
|
|
procedure Test_ISNONTEXT;
|
|
procedure Test_ISNUMBER;
|
|
procedure Test_ISREF;
|
|
procedure Test_ISTEXT;
|
|
end;
|
|
|
|
TCalcLogicalFormulaTests = class(TCalcFormulaTests)
|
|
published
|
|
procedure Test_AND;
|
|
// procedure Test_FALSE; to be written
|
|
procedure Test_IF;
|
|
// procedure Test_XLFN.IFS; to be written
|
|
procedure Test_NOT;
|
|
procedure Test_OR;
|
|
// procedure Test_TRUE; to be written
|
|
end;
|
|
|
|
TCalcLookupFormulaTests = class(TCalcFormulaTests)
|
|
published
|
|
procedure Test_ADDRESS;
|
|
procedure Test_COLUMN;
|
|
// procedure Test_HYPERLINK -- to be written
|
|
procedure Test_INDEX_1;
|
|
procedure Test_INDEX_2;
|
|
procedure Test_INDIRECT;
|
|
procedure Test_MATCH;
|
|
procedure Test_ROW;
|
|
end;
|
|
|
|
TCalcMathFormulaTests = class(TCalcFormulaTests)
|
|
published
|
|
procedure Test_ABS;
|
|
procedure Test_ACOS;
|
|
// procedure Test_ACOSH; to be written
|
|
procedure Test_ASIN;
|
|
// procedure Test_ASINH; to be written
|
|
procedure Test_ATAN;
|
|
// procedure Test_ATANH; to be written
|
|
procedure Test_CEILING;
|
|
// procedure Test_COS; to be written
|
|
// procedure Test_COSH; to be written
|
|
// procedure Test_DEGREES; to be written
|
|
procedure Test_EVEN;
|
|
// procedure Test_EXP; to be written
|
|
// procedure Test_FACT; to be written
|
|
procedure Test_FLOOR;
|
|
// procedure Test_INT; to be written
|
|
// procedure Test_LN; to be written
|
|
procedure Test_LOG;
|
|
procedure Test_LOG10;
|
|
// procedure Test_MOD; to be written
|
|
procedure Test_ODD;
|
|
// procedure Test_PI; to be written
|
|
procedure Test_POWER;
|
|
procedure Test_RADIANS;
|
|
// procedure Test_RAND; to be written
|
|
procedure Test_ROUND;
|
|
// procedure Test_ROUNDDOWN; to be written
|
|
// procedure Test_ROUNDUP; to be written
|
|
// procedure Test_SIGN; to be written
|
|
// procedure Test_SIN; to be written
|
|
// procedure Test_SINH; to be written
|
|
procedure Test_SQRT;
|
|
// procedure Test_TAN; to be written
|
|
// procedure Test_TANH; to be written
|
|
end;
|
|
|
|
TCalcStatsFormulaTests = class(TCalcFormulaTests)
|
|
published
|
|
procedure Test_AVEDEV;
|
|
procedure Test_AVERAGE;
|
|
procedure Test_AVERAGEIF;
|
|
// procedure Test_AVERAGEIFS; to be written
|
|
procedure Test_COUNT;
|
|
procedure Test_COUNTA;
|
|
procedure Test_COUNTBLANK;
|
|
procedure Test_COUNTIF;
|
|
// procedure Test_COUNITFS; to be written
|
|
procedure Test_MAX;
|
|
procedure Test_MIN;
|
|
procedure Test_PRODUCT;
|
|
procedure Test_STDEV;
|
|
procedure Test_STDEVP;
|
|
procedure Test_SUM;
|
|
procedure Test_SUMIF;
|
|
// procedure Test_SUMIFS; to be written
|
|
procedure Test_SUMSQ;
|
|
procedure Test_VAR;
|
|
procedure Test_VARP;
|
|
end;
|
|
|
|
TCalcTextFormulaTests = class(TCalcFormulaTests)
|
|
published
|
|
// procedure Test_CHAR; to be written
|
|
// procedure Test_CODE; to be written
|
|
procedure Test_CONCATENATE;
|
|
procedure Test_EXACT;
|
|
// procedure Test_LEFT; to be written
|
|
procedure Test_LEN;
|
|
procedure Test_LOWER;
|
|
// procedure Test_MID; to be written
|
|
// procedure Test_REPLACE; to be written
|
|
// procedure Test_REPT; to be written
|
|
// procedure Test_RIGHT; to be written
|
|
// procedure Test_SUBSTITUTE; to be written
|
|
// procedure Test_TEXT; to be written
|
|
// procedure Test_TRIM; to be written
|
|
procedure Test_UPPER;
|
|
// procedure Test_VALUE; to be written
|
|
end;
|
|
|
|
implementation
|
|
|
|
procedure TCalcFormulaTests.Setup;
|
|
begin
|
|
FWorkbook := TsWorkbook.Create;
|
|
FWorksheet := FWorkbook.AddWorksheet('Sheet1');
|
|
FOtherWorksheet := FWorkbook.AddWorksheet('Sheet2');
|
|
end;
|
|
|
|
procedure TCalcFormulaTests.TearDown;
|
|
begin
|
|
FWorkbook.Free;
|
|
end;
|
|
|
|
// *** Date/time formula tests
|
|
{$I testcases_calcdatetimeformulas.inc}
|
|
|
|
// *** Information formula tests
|
|
{$I testcases_calcinfoformulas.inc}
|
|
|
|
// *** Logical formula tests
|
|
{$I testcases_calclogicalformulas.inc}
|
|
|
|
// *** Lookup formula tests
|
|
{$I testcases_calclookupformulas.inc}
|
|
|
|
// *** Math formula tests
|
|
{$I testcases_calcmathformulas.inc}
|
|
|
|
// *** Statistical formula tests
|
|
{$I testcases_calcstatsformulas.inc}
|
|
|
|
// *** Text formula tests
|
|
{$I testcases_calctextformulas.inc}
|
|
|
|
initialization
|
|
RegisterTest('TCalcFormulaTests', TCalcDateTimeFormulaTests);
|
|
RegisterTest('TCalcFormulaTests', TCalcInfoFormulaTests);
|
|
RegisterTest('TCalcFormulaTests', TCalcLogicalFormulaTests);
|
|
RegisterTest('TCalcFormulaTests', TCalcLookupFormulaTests);
|
|
RegisterTest('TCalcFormulaTests', TCalcMathFormulaTests);
|
|
RegisterTest('TCalcFormulaTests', TCalcStatsFormulaTests);
|
|
RegisterTest('TCalcFormulaTests', TCalcTextFormulaTests);
|
|
end.
|
|
|