summaryrefslogtreecommitdiff
path: root/fpcsrc/tests/test/tint641.pp
blob: 05a9e1a340d083c34fc6877fe655e9c113669b9b (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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
const
   q2 : qword = 1234;
   i2 : int64 = -1234;

var
   q : qword;
   i : int64;
   l1,l2 : longint;
   s : string;

procedure p1(q : qword;i : int64);

  begin
  end;

function f1 : qword;

  begin
  end;

function f2 : int64;

  begin
  end;

var
   q1,q3,q4 : qword;

begin
   q1:=1;
   q3:=1;
   q4:=1;
   if not((q4 div q3) div (q2 div q1)<>(q2 div q1) div (q4 div q3)) then
     writeln('Error :(');
   q:=q-q;
   q:=q-(q*q);
   q:=(q*q)-(q*q);
   { first test the comparisation }
   if q<>q then
     begin
        writeln('Error :(');
     end;

   if q>q then
     begin
        writeln('Error :(');
     end;

   if i>f2 then
     begin
        writeln('Error :(');
     end;
   if l1>l2 then
     begin
        writeln('Error :(');
     end;
   p1(q,i);
   q:=f1;
   i:=f2;
   q:=q+q;
   i:=((i+i) xor (i+i)) or ((i+i) xor (i+i));
   q:=q shl l1;
   q:=q shr l1;
   q:=(q shl l1)+(q shl l1);

   q:=not(q);
   i:=not(i);
   q:=not(q xor q);
   i:=not(i or i);

   { unary minus }
   q:=-q;
   i:=-i;
   q:=-(q xor q);
   i:=-(i or i);

   { multiplication }
   // q:=3;
   q:=q*q;

   i:=i*i;

   q:=q*(q*q);
   i:=i*(i*i);

   q:=(q*q)*(q*q);
   q:=((q*q)*(q*q))*((q*q)*(q*q));

   writeln(q);
   writeln(i);
{ test can't be interactive (PFV)
   read(q);
   read(i); }
   str(q,s);
   str(i,s);
end.