summaryrefslogtreecommitdiff
path: root/fpcsrc/tests/test/testv9.pp
blob: 433379ffa99dc4addb1ebaa1b7429a12779dd02e (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
{$ifdef fpc}
{$mode objfpc}
{$endif fpc}
uses
  Variants;

var
  a,av : array of longint;
  a2,av2 : array of array of longint;
  v,v2 : variant;
  i,j : longint;
begin
  setlength(a,1000);
  for i:=0 to high(a) do
    a[i]:=i;
  v:=a;
  for i:=0 to high(a) do
    if v[i]<>i then
      begin
        writeln('v[',i,']=',v[i]);
        halt(1);
      end;
  writeln('simple test ok');

  setlength(a2,10,30);
  for i:=0 to high(a2) do
    for j:=0 to high(a2[i]) do
      a2[i,j]:=i*j;
  writeln(length(a2));
  writeln(length(a2[0]));
  v2:=a2;
  for i:=0 to high(a2) do
    for j:=0 to high(a2[i]) do
    if v2[i,j]<>i*j then
      begin
        writeln('v2[',i,',',j,']=',v2[i,j]);
        halt(1);
      end;
  writeln('complex test ok');

  av:=v;
  writeln('1d dyn. array:=var. array ok');


  av2:=v2;
  if high(av2)<>VarArrayHighBound(v2,1) then
   halt(1);
  if high(av2[0])<>VarArrayHighBound(v2,2) then
   halt(1);
  writeln('2d dyn. array:=var. array ok');
  writeln('ok');
end.