summaryrefslogtreecommitdiff
path: root/fpcsrc/tests/test/tstrreal5.pp
blob: e4e148ba7cdb25fe2674c1634febe3ff9afc47c7 (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
program tstrreal4;
{ test for NegCurFormat values  by Zeljan Rikalo
  valid values are at:
  http://msdn.microsoft.com/en-us/library/dd373791%28VS.85%29.aspx
 }
uses SysUtils;

procedure test;
const
  MaxNegCurFormats = 15;
var
  s: string;
  r: double;
  i: integer;
begin
  DecimalSeparator := '.';
  r := -1.1;
  writeln('NegCurrFormat test pass 1 ...');
  for i := 0 to MaxNegCurFormats do
  begin
    NegCurrFormat := i;
    s := FloatToStrF(r, ffCurrency, 12, 1);
    writeln('NegCurrFormat: ',i,' value: ',s);
    case i of
      0,4,14,15: 
        if (Pos('(', s) = 0) and (Pos(')', s) = 0) then
          halt(1);
      else
      if Pos('-', s) = 0 then
        halt(1);
    end; 
  end;

  r := -0.001;
  writeln('NegCurrFormat test pass 2 ...');
  for i := 0 to MaxNegCurFormats do
  begin
    NegCurrFormat := i;
    s := FloatToStrF(r, ffCurrency, 12, 4);
    writeln('NegCurrFormat: ',i,' value: ',s);
    case i of
      0,4,14,15: 
        if (Pos('(', s) = 0) and (Pos(')', s) = 0) then
          halt(1);
      else
      if Pos('-', s) = 0 then
        halt(1);
    end; 
  end;

  writeln('Tests for NegCurrFormat: SUCCESS');
end;

begin
  test;
end.