program testreg1; uses regexpr; var r : tregexprengine; index,len : longint; procedure do_error(i : longint); begin writeln('error near ',i,' index: ',index,' len: ',len); halt(1); end; begin writeln('*** Testing unit regexpr ***'); { basic tests } r:=GenerateRegExprEngine('[A-Z]',[]); if not(RegExprPos(r,'234578923457823659GHJK38',index,len)) or (index<>18) or (len<>1) then do_error(1000); DestroyregExprEngine(r); r:=GenerateRegExprEngine('[A-Z]*',[]); if not(RegExprPos(r,'234578923457823659ARTZU38',index,len)) or { is this result correct ??? } (index<>0) or (len<>0) then do_error(1002); DestroyregExprEngine(r); r:=GenerateRegExprEngine('[A-Z]+',[]); if not(RegExprPos(r,'234578923457823659ARTZU38',index,len)) or (index<>18) or (len<>5) then do_error(1003); DestroyregExprEngine(r); r:=GenerateRegExprEngine('[A-Z][A-Z]*',[]); if not(RegExprPos(r,'234578923457823659ARTZU38',index,len)) or (index<>18) or (len<>5) then do_error(1004); DestroyregExprEngine(r); r:=GenerateRegExprEngine('[A-Z][A-Z]?',[]); if not(RegExprPos(r,'234578923457823659ARTZU38',index,len)) or (index<>18) or (len<>2) then do_error(1005); DestroyregExprEngine(r); r:=GenerateRegExprEngine('[^\d]+',[]); if not(RegExprPos(r,'234578923457823659ARTZU38',index,len)) or (index<>18) or (len<>5) then do_error(1006); DestroyregExprEngine(r); { test chaining } r:=GenerateRegExprEngine('[A-Z][A-Z]?[A-Z]',[]); if not(RegExprPos(r,'234578923457823659ARTZU38',index,len)) or (index<>18) or (len<>3) then do_error(1007); DestroyregExprEngine(r); r:=GenerateRegExprEngine('[A-Z][A-Z]*[0-9]',[]); if not(RegExprPos(r,'234578923457823659ARTZU38',index,len)) or (index<>18) or (len<>6) then do_error(1008); DestroyregExprEngine(r); r:=GenerateRegExprEngine('[A-Z]+[0-9]',[]); if not(RegExprPos(r,'234578923457823659ARTZU38',index,len)) or (index<>18) or (len<>6) then do_error(1009); DestroyregExprEngine(r); { case insensitive: } r:=GenerateRegExprEngine('[A-Z]',[ref_caseinsensitive]); if not(RegExprPos(r,'234578923457823659a38',index,len)) or (index<>18) or (len<>1) then do_error(1100); DestroyregExprEngine(r); { case insensitive: } r:=GenerateRegExprEngine('[a-z]',[ref_caseinsensitive]); if not(RegExprPos(r,'234578923457823659A38',index,len)) or (index<>18) or (len<>1) then do_error(1101); DestroyregExprEngine(r); { with parenthsis } r:=GenerateRegExprEngine('(foo)1234',[]); if not(RegExprPos(r,'1234 foo1234XXXX',index,len)) or (index<>7) or (len<>7) then do_error(1200); DestroyregExprEngine(r); r:=GenerateRegExprEngine('(((foo)))1234',[]); if not(RegExprPos(r,'1234 foo1234XXXX',index,len)) or (index<>7) or (len<>7) then do_error(1201); DestroyregExprEngine(r); r:=GenerateRegExprEngine('(foo)(1234)',[]); if not(RegExprPos(r,'1234 foo1234XXXX',index,len)) or (index<>7) or (len<>7) then do_error(1202); DestroyregExprEngine(r); { test real backtracking } r:=GenerateRegExprEngine('nofoo|foo',[]); if not(RegExprPos(r,'1234 foo1234XXXX',index,len)) or (index<>7) or (len<>3) then do_error(1300); DestroyregExprEngine(r); { r:=GenerateRegExprEngine('(nofoo|foo)1234',[]); if not(RegExprPos(r,'1234 nofoo1234XXXX',index,len)) or (index<>8) or (len<>9) then do_error(1008); DestroyregExprEngine(r); r:=GenerateRegExprEngine('(nofoo|foo|anotherfoo)1234',[]); if not(RegExprPos(r,'1234 nofoo1234XXXX',index,len)) or (index<>8) or (len<>9) then do_error(1009); DestroyregExprEngine(r); r:=GenerateRegExprEngine('nofoo1234|foo1234',[]); if (r.data=nil) or not(RegExprPos(r,'1234 foo1234XXXX',index,len)) or (index<>7) or (len<>7) then do_error(1010); DestroyregExprEngine(r); } writeln('*** Testing unit regexpr was successful ***'); end. { $Log: testreg1.pp,v $ Revision 1.3 2002/09/11 20:07:17 michael + Fixed log }