fpc/tests/webtbs/tw14143.pp
Jonas Maebe 55578e8226 * fixed FloatToDecimal() for inf/nan (mantis #14143, thanks to
Sergei Gorelkin for the test program)

git-svn-id: trunk@13394 -
2009-07-16 13:11:36 +00:00

38 lines
865 B
ObjectPascal

program t5;
{$ifdef fpc}{$mode objfpc}{$h+}{$endif}
uses sysutils;
var
frec: TFloatRec;
code: Integer;
const
posinf: Extended = 1.0/0.0;
neginf: Extended = -1.0/0.0;
nan: Extended = 0.0/0.0;
begin
code := 0;
FloatToDecimal(frec, posinf, fvExtended, 15, 15);
if (frec.Exponent <> 32767) or frec.Negative or (frec.Digits[0] <> #0) then
begin
writeln('Positive infinity test failed');
code := code or 1;
end;
FloatToDecimal(frec, neginf, fvExtended, 15, 15);
if (frec.Exponent <> 32767) or (not frec.Negative) or (frec.Digits[0] <> #0) then
begin
writeln('Negative infinity test failed');
code := code or 2;
end;
FloatToDecimal(frec, nan, fvExtended, 15, 15);
if (frec.Exponent <> -32768) or (frec.Digits[0] <> #0) then
begin
writeln('NaN test failed');
code := code or 4;
end;
Halt(Code);
end.