tenum.pp 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. program tenum;
  2. {$mode delphi}
  3. uses
  4. uenum;
  5. const
  6. cenum = mea;
  7. type
  8. tenumclass = class
  9. e: myenum;
  10. constructor create;
  11. end;
  12. constructor tenumclass.create;
  13. begin
  14. if e<>mea then
  15. raise JLException.create('error create');
  16. end;
  17. function func: myenum;
  18. begin
  19. result:=cenum;
  20. end;
  21. var
  22. a: myenum;
  23. b1,b2: myenumjumps;
  24. l: longint;
  25. arr: array[myenum] of byte;
  26. c: tenumclass;
  27. earr: array[1..4] of myenum;
  28. dearr: array of myenum;
  29. begin
  30. c:=tenumclass.create;
  31. if earr[1]<>mea then
  32. raise JLException.create('error 0');
  33. setlength(dearr,1);
  34. if dearr[0]<>mea then
  35. raise JLException.create('error 0a');
  36. a:=cenum;
  37. inc(a);
  38. if ord(a)<>1 then
  39. raise JLException.create('error 1');
  40. a:=succ(a);
  41. if a<>mec then
  42. raise JLException.create('error 2');
  43. arr[a]:=123;
  44. if arr[mec]<>123 then
  45. raise JLException.create('error 2a');
  46. l:=0;
  47. for a:=func to mec do
  48. inc(l,ord(a));
  49. if l<>3 then
  50. raise JLException.create('error 2b');
  51. if JLObject(mea).toString<>'mea' then
  52. raise JLException.create('expected mea, got '+unicodestring(JLObject(mea).toString));
  53. a:=mec;
  54. case a of
  55. mea..meb:
  56. raise JLException.create('error 2c');
  57. mec:
  58. ;
  59. else
  60. raise JLException.create('error 2d');
  61. end;
  62. b1:=meja;
  63. b2:=mejb;
  64. if b1<=b2 then
  65. raise JLException.create('error 3');
  66. b2:=mejc;
  67. if b1>=b2 then
  68. raise JLException.create('error 4');
  69. l:=-5;
  70. b2:=myenumjumps(l);
  71. if b2<>mejb then
  72. raise JLException.create('error 5');
  73. end.