fpspreadsheet: Make ods stringtests test case ignore the string result of the ##0.0E0 format which is designed in ods to have a different result than biff; just compare the numerical value.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3129 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2014-06-02 19:48:50 +00:00
parent 09d9d95789
commit 8fd1b142ab

View File

@ -175,7 +175,7 @@ begin
for Row := Low(SollStrings) to High(SollStrings) do for Row := Low(SollStrings) to High(SollStrings) do
begin begin
ActualString:=MyWorkSheet.ReadAsUTF8Text(Row,0); ActualString:=MyWorkSheet.ReadAsUTF8Text(Row,0);
CheckEquals(SollStrings[Row],ActualString,'Test value mismatch cell '+CellNotation(MyWorkSheet,Row)); CheckEquals(SollStrings[Row],ActualString,'Test value mismatch, cell '+CellNotation(MyWorkSheet,Row));
end; end;
// Finalization // Finalization
MyWorkbook.Free; MyWorkbook.Free;
@ -294,6 +294,7 @@ end;
procedure TSpreadReadStringTests.TestReadString(FileName: string; Row: integer); procedure TSpreadReadStringTests.TestReadString(FileName: string; Row: integer);
var var
ActualString: string; ActualString: string;
AFormat: TsSpreadsheetFormat;
begin begin
if Row>High(SollStrings) then if Row>High(SollStrings) then
fail('Error in test code: array bounds overflow. Check array size is correct.'); fail('Error in test code: array bounds overflow. Check array size is correct.');
@ -305,20 +306,25 @@ begin
// Open the spreadsheet // Open the spreadsheet
TestWorkbook := TsWorkbook.Create; TestWorkbook := TsWorkbook.Create;
case UpperCase(ExtractFileExt(FileName)) of case Uppercase(ExtractFileExt(FileName)) of
'.XLSX': TestWorkbook.ReadFromFile(FileName, sfOOXML); '.XLSX': AFormat := sfOOXML;
'.ODS': TestWorkbook.ReadFromFile(FileName, sfOpenDocument); '.ODS' : AFormat := sfOpenDocument;
// Excel XLS/BIFF else AFormat := sfExcel8;
else TestWorkbook.ReadFromFile(FileName, sfExcel8);
end; end;
TestWorkbook.ReadFromFile(FileName, AFormat);
TestWorksheet := GetWorksheetByName(TestWorkBook, StringsSheet); TestWorksheet := GetWorksheetByName(TestWorkBook, StringsSheet);
if TestWorksheet=nil then if TestWorksheet=nil then
fail('Error in test code: could not retrieve worksheet.'); fail('Error in test code: could not retrieve worksheet.');
end; end;
ActualString := TestWorkSheet.ReadAsUTF8Text(Row,0); ActualString := TestWorkSheet.ReadAsUTF8Text(Row,0);
CheckEquals(SollStrings[Row], ActualString, 'Test value mismatch, ' if (Row = 11) and (AFormat = sfOpenDocument) then
+'cell '+CellNotation(TestWorkSheet,Row)); // SciFloat is not supported by Biff2 and ODS --> we just compare the value
CheckEquals(StrToFloat(SollStrings[Row]), StrToFloat(ActualString),
'Test value mismatch, cell ' + CellNotation(TestWorksheet, Row))
else
CheckEquals(SollStrings[Row], ActualString, 'Test value mismatch, '
+'cell '+CellNotation(TestWorkSheet, Row));
// Don't free the workbook here - it will be reused. It is destroyed at finalization. // Don't free the workbook here - it will be reused. It is destroyed at finalization.
end; end;