pascalabcnet/TestSuite/incdec2u.pas
Бондарев Иван e6e67c193c initial commit
2015-05-14 21:35:07 +02:00

442 lines
11 KiB
ObjectPascal

unit incdec2u;
type TDiap = 1..4;
procedure Test;
var a : integer;
b : byte;
sm : smallint;
sh : shortint;
w : word;
lw : longword;
li : int64;
ui : uint64;
c : char;
f : boolean;
arr1 : array[TDiap] of integer;
arr2 : array[TDiap] of byte;
arr3 : array[TDiap] of smallint;
arr4 : array[TDiap] of shortint;
arr5 : array[TDiap] of word;
arr6 : array[TDiap] of longword;
arr7 : array[TDiap] of int64;
arr8 : array[TDiap] of uint64;
arr9 : array[TDiap] of char;
begin
a := 1; b := 1; sm := 1; sh := 1; w := 1; lw := 1; li := 1; ui := 1; c := 'a'; f := false;
Inc(a);assert(a=2);
Inc(b);assert(b=2);
Inc(sm);assert(sm=2);
Inc(sh);assert(sh=2);
Inc(w);assert(w=2);
Inc(lw);assert(lw=2);
Inc(li);assert(li=2);
Inc(ui);assert(ui=2);
Inc(c);assert(c='b');
//Inc(f);assert(f=true);
Dec(a);assert(a=1);
Dec(b);assert(b=1);
Dec(sm);assert(sm=1);
Dec(sh);assert(sh=1);
Dec(w);assert(w=1);
Dec(lw);assert(lw=1);
Dec(li);assert(li=1);
Dec(ui);assert(ui=1);
Dec(c); assert(c='a');
//Dec(f);assert(f=false);
assert(Succ(a)=2);
assert(Succ(b)=2);
assert(Succ(sm)=2);
assert(Succ(sh)=2);
assert(Succ(w)=2);
assert(Succ(lw)=2);
assert(Succ(li)=2);
assert(Succ(ui)=2);
assert(Succ(c)='b');
assert(Pred(a)=0);
assert(Pred(b)=0);
assert(Pred(sm)=0);
assert(Pred(sh)=0);
assert(Pred(w)=0);
assert(Pred(lw)=0);
assert(Pred(li)=0);
assert(Pred(ui)=0);
Inc(c);
assert(Pred(c)='a');
c := 'a';
Inc(a,2);assert(a=3);
Inc(b,2);assert(b=3);
Inc(sm,2);assert(sm=3);
Inc(sh,2);assert(sh=3);
Inc(w,2);assert(w=3);
Inc(lw,2);assert(lw=3);
Inc(li,2);assert(li=3);
Inc(ui,2);assert(ui=3);
Inc(c,2);assert(c='c');
Dec(a,2);assert(a=1);
Dec(b,2);assert(b=1);
Dec(sm,2);assert(sm=1);
Dec(sh,2);assert(sh=1);
Dec(w,2);assert(w=1);
Dec(lw,2);assert(lw=1);
Dec(li,2);assert(li=1);
Dec(ui,2);assert(ui=1);
Dec(c,2); assert(c='a');
arr1[1] := 1; arr2[1] := 1; arr3[1] := 1; arr4[1] := 1; arr5[1] := 1; arr6[1] := 1;
arr7[1] := 1; arr8[1] := 1; arr9[1] := 'a';
Inc(arr1[1]);assert(arr1[1]=2);
Inc(arr2[1]);assert(arr2[1]=2);
Inc(arr3[1]);assert(arr3[1]=2);
Inc(arr4[1]);assert(arr4[1]=2);
Inc(arr5[1]);assert(arr5[1]=2);
Inc(arr6[1]);assert(arr6[1]=2);
Inc(arr7[1]);assert(arr7[1]=2);
Inc(arr8[1]);assert(arr8[1]=2);
Inc(arr9[1]);assert(arr9[1]='b');
Dec(arr1[1]);assert(arr1[1]=1);
Dec(arr2[1]);assert(arr2[1]=1);
Dec(arr3[1]);assert(arr3[1]=1);
Dec(arr4[1]);assert(arr4[1]=1);
Dec(arr5[1]);assert(arr5[1]=1);
Dec(arr6[1]);assert(arr6[1]=1);
Dec(arr7[1]);assert(arr7[1]=1);
Dec(arr8[1]);assert(arr8[1]=1);
Dec(arr9[1]);assert(arr9[1]='a');
assert(succ(arr1[1])=2);
assert(succ(arr2[1])=2);
assert(succ(arr3[1])=2);
assert(succ(arr4[1])=2);
assert(succ(arr5[1])=2);
assert(succ(arr6[1])=2);
assert(succ(arr7[1])=2);
assert(succ(arr8[1])=2);
assert(succ(arr9[1])='b');
arr9[1] := 'b';
assert(pred(arr1[1])=0);
assert(pred(arr2[1])=0);
assert(pred(arr3[1])=0);
assert(pred(arr4[1])=0);
assert(pred(arr5[1])=0);
assert(pred(arr6[1])=0);
assert(pred(arr7[1])=0);
assert(pred(arr8[1])=0);
assert(pred(arr9[1])='a');
arr1[1] := 1; arr2[1] := 1; arr3[1] := 1; arr4[1] := 1; arr5[1] := 1; arr6[1] := 1;
arr7[1] := 1; arr8[1] := 1; arr9[1] := 'a';
Inc(arr1[1],2);assert(arr1[1]=3);
Inc(arr2[1],2);assert(arr2[1]=3);
Inc(arr3[1],2);assert(arr3[1]=3);
Inc(arr4[1],2);assert(arr4[1]=3);
Inc(arr5[1],2);assert(arr5[1]=3);
Inc(arr6[1],2);assert(arr6[1]=3);
Inc(arr7[1],2);assert(arr7[1]=3);
Inc(arr8[1],2);assert(arr8[1]=3);
Inc(arr9[1],2);assert(arr9[1]='c');
Dec(arr1[1],2);assert(arr1[1]=1);
Dec(arr2[1],2);assert(arr2[1]=1);
Dec(arr3[1],2);assert(arr3[1]=1);
Dec(arr4[1],2);assert(arr4[1]=1);
Dec(arr5[1],2);assert(arr5[1]=1);
Dec(arr6[1],2);assert(arr6[1]=1);
Dec(arr7[1],2);assert(arr7[1]=1);
Dec(arr8[1],2);assert(arr8[1]=1);
Dec(arr9[1],2);assert(arr9[1]='a');
end;
procedure Test2;
var a : integer;
b : byte;
sm : smallint;
sh : shortint;
w : word;
lw : longword;
li : int64;
ui : uint64;
c : char;
f : boolean;
arr1 : array[TDiap] of integer;
arr2 : array[TDiap] of byte;
arr3 : array[TDiap] of smallint;
arr4 : array[TDiap] of shortint;
arr5 : array[TDiap] of word;
arr6 : array[TDiap] of longword;
arr7 : array[TDiap] of int64;
arr8 : array[TDiap] of uint64;
arr9 : array[TDiap] of char;
procedure Nested;
begin
a := 1; b := 1; sm := 1; sh := 1; w := 1; lw := 1; li := 1; ui := 1; c := 'a'; f := false;
Inc(a);assert(a=2);
Inc(b);assert(b=2);
Inc(sm);assert(sm=2);
Inc(sh);assert(sh=2);
Inc(w);assert(w=2);
Inc(lw);assert(lw=2);
Inc(li);assert(li=2);
Inc(ui);assert(ui=2);
Inc(c);assert(c='b');
//Inc(f);assert(f=true);
Dec(a);assert(a=1);
Dec(b);assert(b=1);
Dec(sm);assert(sm=1);
Dec(sh);assert(sh=1);
Dec(w);assert(w=1);
Dec(lw);assert(lw=1);
Dec(li);assert(li=1);
Dec(ui);assert(ui=1);
Dec(c); assert(c='a');
//Dec(f);assert(f=false);
assert(Succ(a)=2);
assert(Succ(b)=2);
assert(Succ(sm)=2);
assert(Succ(sh)=2);
assert(Succ(w)=2);
assert(Succ(lw)=2);
assert(Succ(li)=2);
assert(Succ(ui)=2);
assert(Succ(c)='b');
assert(Pred(a)=0);
assert(Pred(b)=0);
assert(Pred(sm)=0);
assert(Pred(sh)=0);
assert(Pred(w)=0);
assert(Pred(lw)=0);
assert(Pred(li)=0);
assert(Pred(ui)=0);
Inc(c);
assert(Pred(c)='a');
c := 'a';
Inc(a,2);assert(a=3);
Inc(b,2);assert(b=3);
Inc(sm,2);assert(sm=3);
Inc(sh,2);assert(sh=3);
Inc(w,2);assert(w=3);
Inc(lw,2);assert(lw=3);
Inc(li,2);assert(li=3);
Inc(ui,2);assert(ui=3);
Inc(c,2);assert(c='c');
Dec(a,2);assert(a=1);
Dec(b,2);assert(b=1);
Dec(sm,2);assert(sm=1);
Dec(sh,2);assert(sh=1);
Dec(w,2);assert(w=1);
Dec(lw,2);assert(lw=1);
Dec(li,2);assert(li=1);
Dec(ui,2);assert(ui=1);
Dec(c,2); assert(c='a');
arr1[1] := 1; arr2[1] := 1; arr3[1] := 1; arr4[1] := 1; arr5[1] := 1; arr6[1] := 1;
arr7[1] := 1; arr8[1] := 1; arr9[1] := 'a';
Inc(arr1[1]);assert(arr1[1]=2);
Inc(arr2[1]);assert(arr2[1]=2);
Inc(arr3[1]);assert(arr3[1]=2);
Inc(arr4[1]);assert(arr4[1]=2);
Inc(arr5[1]);assert(arr5[1]=2);
Inc(arr6[1]);assert(arr6[1]=2);
Inc(arr7[1]);assert(arr7[1]=2);
Inc(arr8[1]);assert(arr8[1]=2);
Inc(arr9[1]);assert(arr9[1]='b');
Dec(arr1[1]);assert(arr1[1]=1);
Dec(arr2[1]);assert(arr2[1]=1);
Dec(arr3[1]);assert(arr3[1]=1);
Dec(arr4[1]);assert(arr4[1]=1);
Dec(arr5[1]);assert(arr5[1]=1);
Dec(arr6[1]);assert(arr6[1]=1);
Dec(arr7[1]);assert(arr7[1]=1);
Dec(arr8[1]);assert(arr8[1]=1);
Dec(arr9[1]);assert(arr9[1]='a');
assert(succ(arr1[1])=2);
assert(succ(arr2[1])=2);
assert(succ(arr3[1])=2);
assert(succ(arr4[1])=2);
assert(succ(arr5[1])=2);
assert(succ(arr6[1])=2);
assert(succ(arr7[1])=2);
assert(succ(arr8[1])=2);
assert(succ(arr9[1])='b');
arr9[1] := 'b';
assert(pred(arr1[1])=0);
assert(pred(arr2[1])=0);
assert(pred(arr3[1])=0);
assert(pred(arr4[1])=0);
assert(pred(arr5[1])=0);
assert(pred(arr6[1])=0);
assert(pred(arr7[1])=0);
assert(pred(arr8[1])=0);
assert(pred(arr9[1])='a');
arr1[1] := 1; arr2[1] := 1; arr3[1] := 1; arr4[1] := 1; arr5[1] := 1; arr6[1] := 1;
arr7[1] := 1; arr8[1] := 1; arr9[1] := 'a';
Inc(arr1[1],2);assert(arr1[1]=3);
Inc(arr2[1],2);assert(arr2[1]=3);
Inc(arr3[1],2);assert(arr3[1]=3);
Inc(arr4[1],2);assert(arr4[1]=3);
Inc(arr5[1],2);assert(arr5[1]=3);
Inc(arr6[1],2);assert(arr6[1]=3);
Inc(arr7[1],2);assert(arr7[1]=3);
Inc(arr8[1],2);assert(arr8[1]=3);
Inc(arr9[1],2);assert(arr9[1]='c');
Dec(arr1[1],2);assert(arr1[1]=1);
Dec(arr2[1],2);assert(arr2[1]=1);
Dec(arr3[1],2);assert(arr3[1]=1);
Dec(arr4[1],2);assert(arr4[1]=1);
Dec(arr5[1],2);assert(arr5[1]=1);
Dec(arr6[1],2);assert(arr6[1]=1);
Dec(arr7[1],2);assert(arr7[1]=1);
Dec(arr8[1],2);assert(arr8[1]=1);
Dec(arr9[1],2);assert(arr9[1]='a');
end;
begin
a := 1; b := 1; sm := 1; sh := 1; w := 1; lw := 1; li := 1; ui := 1; c := 'a'; f := false;
Inc(a);assert(a=2);
Inc(b);assert(b=2);
Inc(sm);assert(sm=2);
Inc(sh);assert(sh=2);
Inc(w);assert(w=2);
Inc(lw);assert(lw=2);
Inc(li);assert(li=2);
Inc(ui);assert(ui=2);
Inc(c);assert(c='b');
//Inc(f);assert(f=true);
Dec(a);assert(a=1);
Dec(b);assert(b=1);
Dec(sm);assert(sm=1);
Dec(sh);assert(sh=1);
Dec(w);assert(w=1);
Dec(lw);assert(lw=1);
Dec(li);assert(li=1);
Dec(ui);assert(ui=1);
Dec(c); assert(c='a');
//Dec(f);assert(f=false);
assert(Succ(a)=2);
assert(Succ(b)=2);
assert(Succ(sm)=2);
assert(Succ(sh)=2);
assert(Succ(w)=2);
assert(Succ(lw)=2);
assert(Succ(li)=2);
assert(Succ(ui)=2);
assert(Succ(c)='b');
assert(Pred(a)=0);
assert(Pred(b)=0);
assert(Pred(sm)=0);
assert(Pred(sh)=0);
assert(Pred(w)=0);
assert(Pred(lw)=0);
assert(Pred(li)=0);
assert(Pred(ui)=0);
Inc(c);
assert(Pred(c)='a');
c := 'a';
Inc(a,2);assert(a=3);
Inc(b,2);assert(b=3);
Inc(sm,2);assert(sm=3);
Inc(sh,2);assert(sh=3);
Inc(w,2);assert(w=3);
Inc(lw,2);assert(lw=3);
Inc(li,2);assert(li=3);
Inc(ui,2);assert(ui=3);
Inc(c,2);assert(c='c');
Dec(a,2);assert(a=1);
Dec(b,2);assert(b=1);
Dec(sm,2);assert(sm=1);
Dec(sh,2);assert(sh=1);
Dec(w,2);assert(w=1);
Dec(lw,2);assert(lw=1);
Dec(li,2);assert(li=1);
Dec(ui,2);assert(ui=1);
Dec(c,2); assert(c='a');
arr1[1] := 1; arr2[1] := 1; arr3[1] := 1; arr4[1] := 1; arr5[1] := 1; arr6[1] := 1;
arr7[1] := 1; arr8[1] := 1; arr9[1] := 'a';
Inc(arr1[1]);assert(arr1[1]=2);
Inc(arr2[1]);assert(arr2[1]=2);
Inc(arr3[1]);assert(arr3[1]=2);
Inc(arr4[1]);assert(arr4[1]=2);
Inc(arr5[1]);assert(arr5[1]=2);
Inc(arr6[1]);assert(arr6[1]=2);
Inc(arr7[1]);assert(arr7[1]=2);
Inc(arr8[1]);assert(arr8[1]=2);
Inc(arr9[1]);assert(arr9[1]='b');
Dec(arr1[1]);assert(arr1[1]=1);
Dec(arr2[1]);assert(arr2[1]=1);
Dec(arr3[1]);assert(arr3[1]=1);
Dec(arr4[1]);assert(arr4[1]=1);
Dec(arr5[1]);assert(arr5[1]=1);
Dec(arr6[1]);assert(arr6[1]=1);
Dec(arr7[1]);assert(arr7[1]=1);
Dec(arr8[1]);assert(arr8[1]=1);
Dec(arr9[1]);assert(arr9[1]='a');
assert(succ(arr1[1])=2);
assert(succ(arr2[1])=2);
assert(succ(arr3[1])=2);
assert(succ(arr4[1])=2);
assert(succ(arr5[1])=2);
assert(succ(arr6[1])=2);
assert(succ(arr7[1])=2);
assert(succ(arr8[1])=2);
assert(succ(arr9[1])='b');
arr9[1] := 'b';
assert(pred(arr1[1])=0);
assert(pred(arr2[1])=0);
assert(pred(arr3[1])=0);
assert(pred(arr4[1])=0);
assert(pred(arr5[1])=0);
assert(pred(arr6[1])=0);
assert(pred(arr7[1])=0);
assert(pred(arr8[1])=0);
assert(pred(arr9[1])='a');
arr1[1] := 1; arr2[1] := 1; arr3[1] := 1; arr4[1] := 1; arr5[1] := 1; arr6[1] := 1;
arr7[1] := 1; arr8[1] := 1; arr9[1] := 'a';
Inc(arr1[1],2);assert(arr1[1]=3);
Inc(arr2[1],2);assert(arr2[1]=3);
Inc(arr3[1],2);assert(arr3[1]=3);
Inc(arr4[1],2);assert(arr4[1]=3);
Inc(arr5[1],2);assert(arr5[1]=3);
Inc(arr6[1],2);assert(arr6[1]=3);
Inc(arr7[1],2);assert(arr7[1]=3);
Inc(arr8[1],2);assert(arr8[1]=3);
Inc(arr9[1],2);assert(arr9[1]='c');
Dec(arr1[1],2);assert(arr1[1]=1);
Dec(arr2[1],2);assert(arr2[1]=1);
Dec(arr3[1],2);assert(arr3[1]=1);
Dec(arr4[1],2);assert(arr4[1]=1);
Dec(arr5[1],2);assert(arr5[1]=1);
Dec(arr6[1],2);assert(arr6[1]=1);
Dec(arr7[1],2);assert(arr7[1]=1);
Dec(arr8[1],2);assert(arr8[1]=1);
Dec(arr9[1],2);assert(arr9[1]='a');
Nested;
end;
end.