lazarus-ccr/components/fpspreadsheet/unit-tests/common/calcformulatests.pas

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.