summaryrefslogtreecommitdiff
path: root/fpcsrc/tests/webtbs/tw1021.pp
blob: 3ae8dbe1cf1af89d7c0c917e28d6807604bc489a (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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
{ Source provided for Free Pascal Bug Report 1021 }
{ Submitted by "Oliver Puetz" on  2000-07-03 }
{ e-mail: Oliver.Puetz@gmx.de }
{
  Free Pascal Compiler version 0.99.15 [2000/03/30] for i386
  Copyright (c) 1993-2000 by Florian Klaempfl
  Win NT 4.0 Fixpak 2

  With TFloat = EXTENDED Writeln resumes 0.0   0.0   1
  With TFloat = DOUBLE   Writeln resumes 0.0   1.0   1

  Thus only the write-command seems not to transfer the extended a equals 1
  to a string like '1'
}

type  tfloat  = extended;

var   a, b    : tfloat;
      i       : INTEGER;
      f : text;
begin
  case sizeof(tfloat) of
    4:  writeln('single');
    8:  writeln('double');
   10:  writeln('extended');
   else writeln(sizeof(tfloat));
  end;
  a := 0;
  b := 1 - a;
  i := Round(b);
  writeln(a:30:20, b:30:20, i:10);
  assign(f,'tbug1021.tmp');
  rewrite(f);
  writeln(f,a:30:20,' ',b:30:20,' ',i:10);
  close(f);
  reset(f);
  read(f,a);
  read(f,b);
  read(f,i);
  if (a<>0.0) then
    begin
      Writeln('Error reading A value, should be zero');
      Halt(1);
    end;
  if (b<>1.0) then
    begin
      Writeln('Error reading B value, should be one');
      Halt(1);
    end;
  if (i<>1) then
    begin
      Writeln('Error reading I value, should be one');
      Halt(1);
    end;
  close(f);
  erase(f);
end.