test1.pp 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. uses
  2. dpmiexcp,regexpr;
  3. var
  4. r : tregexprengine;
  5. b : array[0..100] of char;
  6. index,len : longint;
  7. procedure do_error(i : longint);
  8. begin
  9. writeln('error near ',i,' index: ',index,' len: ',len);
  10. halt(1);
  11. end;
  12. begin
  13. writeln('*** Testing unit regexpr ***');
  14. r:=GenerateRegExprEngine('[A-Z]',[]);
  15. if not(RegExprPos(r,'234578923457823659A38',index,len)) or
  16. (index<>18) or (len<>1) then
  17. do_error(1000);
  18. DestroyregExprEngine(r);
  19. r:=GenerateRegExprEngine('[A-Z]*',[]);
  20. if not(RegExprPos(r,'234578923457823659ARTZU38',index,len)) or
  21. { is this result correct ??? }
  22. (index<>0) or (len<>0) then
  23. do_error(1002);
  24. DestroyregExprEngine(r);
  25. r:=GenerateRegExprEngine('[A-Z]+',[]);
  26. if not(RegExprPos(r,'234578923457823659ARTZU38',index,len)) or
  27. (index<>18) or (len<>5) then
  28. do_error(1003);
  29. DestroyregExprEngine(r);
  30. r:=GenerateRegExprEngine('[A-Z][A-Z]*',[]);
  31. if not(RegExprPos(r,'234578923457823659ARTZU38',index,len)) or
  32. (index<>18) or (len<>5) then
  33. do_error(1004);
  34. DestroyregExprEngine(r);
  35. r:=GenerateRegExprEngine('[A-Z][A-Z]?',[]);
  36. if not(RegExprPos(r,'234578923457823659ARTZU38',index,len)) or
  37. (index<>18) or (len<>2) then
  38. do_error(1005);
  39. DestroyregExprEngine(r);
  40. r:=GenerateRegExprEngine('^\d+',[]);
  41. if not(RegExprPos(r,'234578923457823659ARTZU38',index,len)) or
  42. (index<>18) or (len<>5) then
  43. do_error(1006);
  44. DestroyregExprEngine(r);
  45. {
  46. r:=GenerateRegExprEngine('(nofoo|foo)1234',[]);
  47. if not(RegExprPos(r,'1234 foo1234XXXX',index,len)) or
  48. (index<>8) or (len<>7) then
  49. do_error(1007);
  50. DestroyregExprEngine(r);
  51. r:=GenerateRegExprEngine('(nofoo|foo)1234',[]);
  52. if not(RegExprPos(r,'1234 nofoo1234XXXX',index,len)) or
  53. (index<>8) or (len<>9) then
  54. do_error(1008);
  55. DestroyregExprEngine(r);
  56. }
  57. { case insensitive: }
  58. r:=GenerateRegExprEngine('[A-Z]',[ref_caseinsensitive]);
  59. if not(RegExprPos(r,'234578923457823659a38',index,len)) or
  60. (index<>18) or (len<>1) then
  61. do_error(1009);
  62. DestroyregExprEngine(r);
  63. { case insensitive: }
  64. r:=GenerateRegExprEngine('[a-z]',[ref_caseinsensitive]);
  65. if not(RegExprPos(r,'234578923457823659A38',index,len)) or
  66. (index<>18) or (len<>1) then
  67. do_error(1010);
  68. DestroyregExprEngine(r);
  69. writeln('*** Testing unit regexpr was successful ***');
  70. end.