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; 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'); Test; Test2; end.