summaryrefslogtreecommitdiff
path: root/fpcsrc/tests/webtbs/tw14143.pp
blob: 0d2512c06bc12e3f65f58e1f7a170f3ed8d67a79 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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.