37 lines
637 B
ObjectPascal
37 lines
637 B
ObjectPascal
|
|
unit enum2u;
|
|||
|
|
|
|||
|
|
procedure Test;
|
|||
|
|
type Digits = (one, two, three, four);
|
|||
|
|
var dig : Digits;
|
|||
|
|
begin
|
|||
|
|
dig := two;
|
|||
|
|
Inc(dig); assert(dig=three);
|
|||
|
|
Dec(dig); assert(dig=two);
|
|||
|
|
assert(Succ(dig)=three);
|
|||
|
|
assert(Pred(dig)=one);
|
|||
|
|
assert(Ord(dig)=1);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure Test2;
|
|||
|
|
type Digits = (one, two, three, four);
|
|||
|
|
var dig : Digits;
|
|||
|
|
procedure Nested;
|
|||
|
|
begin
|
|||
|
|
dig := two;
|
|||
|
|
Inc(dig); assert(dig=three);
|
|||
|
|
Dec(dig); assert(dig=two);
|
|||
|
|
assert(Succ(dig)=three);
|
|||
|
|
assert(Pred(dig)=one);
|
|||
|
|
assert(Ord(dig)=1);
|
|||
|
|
end;
|
|||
|
|
begin
|
|||
|
|
dig := two;
|
|||
|
|
Inc(dig); assert(dig=three);
|
|||
|
|
Dec(dig); assert(dig=two);
|
|||
|
|
assert(Succ(dig)=three);
|
|||
|
|
assert(Pred(dig)=one);
|
|||
|
|
assert(Ord(dig)=1);
|
|||
|
|
Nested;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
end.
|