Browse Source

Avoid using <> for floating point values, check that abs of difference is small instead (fixes m68k 'pseudo-failure')

git-svn-id: trunk@43896 -
pierre 5 years ago
parent
commit
3eb14dd722
1 changed files with 3 additions and 3 deletions
  1. 3 3
      tests/test/cg/taddcurr.pp

+ 3 - 3
tests/test/cg/taddcurr.pp

@@ -127,19 +127,19 @@ end;
   i:=i / j;
   i:=i / j;
   if trunc(i) <> trunc(-9.99) then
   if trunc(i) <> trunc(-9.99) then
     result := false;
     result := false;
-  if frac(i) <> frac(-9.99) then
+  if abs(frac(i) - frac(-9.99)) > 1e-9 then
     result := false;
     result := false;
   WriteLn('Result (-9.99) :',i);
   WriteLn('Result (-9.99) :',i);
   i:=j / i;
   i:=j / i;
   if trunc(i) <> trunc(-1.001) then
   if trunc(i) <> trunc(-1.001) then
     result := false;
     result := false;
-  if frac(i) <> frac(-1.001) then
+  if abs (frac(i) - frac(-1.001)) > 1e-9 then
     result := false;
     result := false;
   WriteLN('Result (-1.001) :',i);
   WriteLN('Result (-1.001) :',i);
   j:=i / 10.0;
   j:=i / 10.0;
   if trunc(j) <> trunc(-0.1001) then
   if trunc(j) <> trunc(-0.1001) then
     result := false;
     result := false;
-  if frac(j) <> frac(-0.1001) then
+  if abs(frac(j) - frac(-0.1001)) > 1e-9 then
     result := false;
     result := false;
   WriteLn('Result (-0.1001) :',j);
   WriteLn('Result (-0.1001) :',j);
   if not result then
   if not result then