diff --git a/components/fpspreadsheet/tests/datetests.pas b/components/fpspreadsheet/tests/datetests.pas index a888bf66c..0a0e0061e 100644 --- a/components/fpspreadsheet/tests/datetests.pas +++ b/components/fpspreadsheet/tests/datetests.pas @@ -372,7 +372,12 @@ var ActualDateTime: TDateTime; ErrorMargin: TDateTime; //margin for error in comparison test begin + // Seems to be needed for testing with FPC 2.7.x; 2.6.4 shows more precise comparison + {$if FPC_FULLVERSION>=20701} ErrorMargin := 1E-5/(24*60*60*1000); // = 10 nsec = 1E-8 sec (1 ns fails) + {$else} + ErrorMargin:=0; + {$endif} if Row>High(SollDates) then fail('Error in test code: array bounds overflow. Check array size is correct.'); diff --git a/components/fpspreadsheet/tests/formulatests.pas b/components/fpspreadsheet/tests/formulatests.pas index 5c91a2c52..aaffe149e 100644 --- a/components/fpspreadsheet/tests/formulatests.pas +++ b/components/fpspreadsheet/tests/formulatests.pas @@ -155,7 +155,20 @@ var s: String; t: TTime; hr,min,sec,msec: Word; + ErrorMargin: double; begin + // Seems to be needed for testing with FPC 2.7.x; 2.6.4 shows more precise comparison + {$if FPC_FULLVERSION>=20701} + ErrorMargin:=1.44E-7; + //1.44E-7 for SUMSQ formula + //6.0E-8 for SUM formula + //4.8E-8 for MAX formula + //2.4E-8 for now formula + //about 1E-15 is needed for some trig functions + {$else} + ErrorMargin:=0; + {$endif} + // Create test workbook MyWorkbook := TsWorkbook.Create; MyWorkSheet:= MyWorkBook.AddWorksheet(SHEET); @@ -206,7 +219,7 @@ begin 'Test read calculated formula result mismatch, formula "' + formula + '", cell '+CellNotation(MyWorkSheet,Row,1)); atNumber: - CheckEquals(expected.NumberValue, actual.NumberValue, + CheckEquals(expected.NumberValue, actual.NumberValue, ErrorMargin, 'Test read calculated formula result mismatch, formula "' + formula + '", cell '+CellNotation(MyWorkSheet,Row,1)); atString: