home *** CD-ROM | disk | FTP | other *** search
- program test_suite;
- uses crt,strings;
- var s1,s2,s3,scale,lstr:string;
- c1,c2,c3:char; i,j,k:integer; w:word; h:xstr;
- begin
- clrscr;
- writeln('This program should print ONLY THIS line.');
- lstr:=xrange(#1,#255);
- if not abbrev('delete','del',3) then writeln('ab1');
- if abbrev('delete','del ',3) then writeln('ab2');
- if abbrev('delete','delete ',3) then writeln('ab3');
- if not abbrev('delete','delete',3) then writeln('ab4');
- if not abbrev('','',0) then writeln('ab5');
- if abbrev('',' ',0) then writeln('ab5.1');
- if not abbrev(lstr,copy(lstr,1,254),253) then writeln('ab6');
- if abbrev(lstr,substr(lstr,1,254)+' ',254) then writeln('ab7');
-
- if center('ABC',5,' ')<>' ABC ' then writeln('ct1');
- if center('ABC',4,' ')<>'ABC ' then writeln('ct2');
- if center('ABC',2,' ')<>'AB' then writeln('ct3');
- if center('ABC',255,' ')<>left('',126,' ')+'ABC'+left('',126,' ') then
- writeln('ct4');
- if center('',3,'-')<>'---' then writeln('ct5');
- if center('ABC',0,'-')<>'' then writeln('ct6');
- if center(lstr,255,'-')<>lstr then writeln('ct7');
-
- if compare('abcdef','abcxxx')<>4 then writeln('cm1');
- if compare('abcdef','')<>1 then writeln('cm2');
- if compare('','abcdef')<>1 then writeln('cm3');
- if compare('abcdef','abcdef')<>0 then writeln('cm4');
- if compare('','')<>0 then writeln('cm5');
- if compare(lstr,lstr)<>0 then writeln('cm6');
- if compare(lstr,copy(lstr,1,254)+' ')<>255 then writeln('cm7');
-
- if copies('x',4)<>'xxxx' then writeln('cp1');
- if copies('',255)<>'' then writeln('cp2');
- if copies('xxxx',0)<>'' then writeln('cp3');
- if copies('ab',3)<>'ababab' then writeln('cp4');
- if copies(' ',255)<>left('',255,' ') then writeln('cp5');
- if copies('abcd',64)<>copies('abcd',63) then writeln('cp6');
-
- if d2x(0)<>'0000' then writeln('dx1');
- if d2x(256)<>'0100' then writeln('dx2');
- if d2x(16)<>'0010' then writeln('dx3');
- if d2x(word(-1))<>'FFFF' then writeln('dx4');
-
- if delstr(lstr,100,5)<>xrange(#1,#99)+xrange(#105,#255) then writeln('ds1');
- if delstr(lstr,250,5)<>xrange(#1,#249)+#255 then writeln('ds2');
- if delstr('abcde',1,2)<>'cde' then writeln('ds3');
- if delstr('abcde',6,20)<>'abcde' then writeln('ds4');
- if delstr('abcde',2,0)<>'abcde' then writeln('ds5');
- if delstr('abcde',0,1)<>'bcde' then writeln('ds6');
-
- if delword('',2,255)<>'' then writeln('dw1');
- if delword('one two three four five',2,3)<>'one five' then writeln('dw2');
- if delword('one',1,0)<>'one' then writeln('dw3');
- if delword('one two',2,2)<>'one ' then writeln('dw4');
- if delword(' one ',1,1)<>' ' then writeln('dw5');
- if delword(lstr,1,2)<>'' then writeln('dw6');
- if delword(lstr,2,1)<>xrange(#1,#32) then writeln('dw7');
-
- if firstpos('','hello',0)<>0 then writeln('fp1');
- if firstpos('one','',1)<>0 then writeln('fp2');
- if firstpos('one','one two',2)<>0 then writeln('fp3');
- if firstpos('one','one two',1)<>1 then writeln('fp4');
- if firstpos('two ','one two',1)<>0 then writeln('fp5');
- if firstpos('two','one two',3)<>5 then writeln('fp6');
- if firstpos(xrange(#250,#255),lstr,1)<>250 then writeln('fp7');
- if firstpos(#255,lstr,1)<>255 then writeln('fp8');
-
- if instr('xx','',5,'a')<>'aaaaxx' then writeln('is1');
- if instr('','abcde',2,' ')<>'abcde' then writeln('is2');
- if instr('123',lstr,253,' ')<>substr(lstr,1,252)+'123' then writeln('is3');
- if instr('abcd','123',0,' ')<>'abcd123' then writeln('is4');
- if instr('1',lstr,255,' ')<>substr(lstr,1,254)+'1' then writeln('is5');
- if instr('',lstr,255,' ')<>lstr then writeln('is6');
-
- if justify('',10)<>left('',10,' ') then writeln('jf1');
- if justify('one',10)<>'one ' then writeln('jf2');
- if justify(copies('12345',51),255)<>copies('12345',51) then writeln('jf3');
- if justify(copies('123 ',51),253)<>copies('123 ',50)+'123' then
- writeln('jf4');
- if justify('a b',80)<>'a'+left('',78,' ')+'b' then writeln('jf5');
-
- if lastpos('','the quick brown fox etc.',0)<>0 then writeln('lp1');
- if lastpos('t','the fox etc.',0)<>10 then writeln('lp2');
- if lastpos('t','the fox etc.',9)<>1 then writeln('lp3');
- if lastpos('th','the fox etc.',2)<>1 then writeln('lp4');
- if lastpos('th','the fox etc.',1)<>0 then writeln('lp5');
- if lastpos(#254+#255,lstr,0)<>254 then writeln('lp6');
- if lastpos(#254+#255,lstr,254)<>0 then writeln('lp6.1');
- if lastpos('the','',1)<>0 then writeln('lp7');
- if lastpos(lstr,lstr,0)<>1 then writeln('lp8');
-
- if left('',1,' ')<>' ' then writeln('lf1');
- if left('',0,' ')<>'' then writeln('lf2');
- if left('x',255,' ')<>'x'+left('',254,' ') then writeln('lf3');
- if left('xx',0,' ')<>'' then writeln('lf4');
- if left(lstr,255,' ')<>lstr then writeln('lf5');
- if left('hello',10,'x')<>'helloxxxxx' then writeln('lf6');
-
- if lowercase('AbCdEf123')<>'abcdef123' then writeln('lc1');
- if lowercase('')<>'' then writeln('lc2');
- if lowercase('A')<>'a' then writeln('lc3');
- if lowercase(lstr)<>ovrstr(xrange('a','z'),lstr,65,' ') then writeln('lc4');
-
- if ovrstr('','abcdef',1,' ')<>'abcdef' then writeln('ol1');
- if ovrstr('','',1,' ')<>'' then writeln('ol2');
- if ovrstr(lstr,lstr,5,' ')<>xrange(#1,#4)+xrange(#1,#251) then writeln('ol3');
- if ovrstr('x',lstr,255,' ')<>substr(lstr,1,254)+'x' then writeln('ol4');
- if ovrstr('hello','',5,'x')<>'xxxxhello' then writeln('ol5');
- if ovrstr('hello',' ',5,'x')<>' xxxhello' then writeln('ol6');
-
- if pos2word('',1)<>0 then writeln('pw1');
- if pos2word('x',1)<>1 then writeln('pw2');
- if pos2word(copies('1234 ',51),255)<>0 then writeln('pw3');
- if pos2word(copies('1234 ',51),254)<>51 then writeln('pw4');
- if pos2word(copies('1234 ',51),250)<>51 then writeln('pw5');
- if pos2word(copies('1234 ',51),249)<>50 then writeln('pw6');
- if pos2word('123',4)<>0 then writeln('pw7');
-
- if reverse('x')<>'x' then writeln('rv1');
- if reverse('')<>'' then writeln('rv2');
- if reverse('ab')<>'ba' then writeln('rv3');
- if reverse('abc')<>'cba' then writeln('rv4');
- if reverse(xrange(#1,#255))<>xrange(#255,#1) then writeln('rv5');
-
- if right('',1,' ')<>' ' then writeln('rt1');
- if right('',0,' ')<>'' then writeln('rt2');
- if right('x',255,' ')<>right('',254,' ')+'x' then writeln('rt3');
- if right('xx',0,' ')<>'' then writeln('rt4');
- if right(lstr,255,' ')<>lstr then writeln('rt5');
- if right(lstr,254,' ')<>xrange(#2,#255) then writeln('rt5.1');
- if right('hello',10,'x')<>'xxxxxhello' then writeln('rt6');
-
- if scanmem(#20,@lstr,255)<>20 then writeln('sm1');
- if scanmem(#254+#255,@lstr,256)<>254 then writeln('sm2');
- if scanmem(#254+#255,@lstr,255)<>$FFFF then writeln('sm3');
- if scanmem(#255+#1,@lstr,2)<>0 then writeln('sm4');
- if scanmem(#255+#1,@lstr,1)<>$FFFF then writeln('sm5');
- if scanmem(lstr,ptr(dseg,0),$FFFF)=$FFFF then writeln('sm6');
-
- if space(copies('123 ',51),2)<>copies('123 ',50)+'123' then writeln('sp1');
- if space(copies('1234 ',51),0)<>copies('1234',51) then writeln('sp2');
- if space(' abcd ',50)<>'abcd' then writeln('sp3');
- if space(lstr,2)<>substr(lstr,1,31) then writeln('sp4');
- if space(' ',1)<>'' then writeln('sp5');
- if space('',1)<>'' then writeln('sp5.1');
- if space(copies('1234 ',51),2)<>copies('1234 ',41)+'1234' then writeln('sp6');
- if space(copies('1234 ',51),0)<>copies('1234',51) then writeln('sp7');
- if space('a b',253)<>'a'+left('',253,' ')+'b' then writeln('sp8');
- if space('a b',254)<>'a' then writeln('sp9');
- if space(' a',1)<>'a' then writeln('sp10');
-
- if strip('--hello----','l','-')<>'hello----' then writeln('st1');
- if strip('--hello----','t','-')<>'--hello' then writeln('st2');
- if strip('--h----','b','-')<>'h' then writeln('st3');
- if strip('------','l','-')<>'' then writeln('st4');
- if strip('------','t','-')<>'' then writeln('st5');
- if strip('------','b','-')<>'' then writeln('st6');
- if strip('','b','-')<>'' then writeln('st7');
- if strip('---h---','l','-')<>'h---' then writeln('st8');
-
- if substr(lstr,1,0)<>'' then writeln('ss1');
- if substr(lstr,1,255)<>lstr then writeln('ss2');
- if substr('',1,20)<>'' then writeln('ss3');
- if substr(lstr,255,5)<>#255 then writeln('ss4');
- if substr(lstr,1,1)<>#1 then writeln('ss5');
-
- if subword(lstr,1,1)<>xrange(#1,#31) then writeln('sw1');
- if subword(' one two three',1,2)<>'one two' then writeln('sw2');
- if subword(lstr,2,5)<>xrange(#33,#255) then writeln('sw3');
- if subword(' one two three ',4,1)<>'' then writeln('sw4');
- if subword(' one two three ',2,2)<>'two three' then writeln('sw5');
- if subword(' ',1,1)<>'' then writeln('sw6');
- if subword(' a one two three ',1,1)<>'a' then writeln('sw7');
-
- if translate(lstr,lstr,reverse(lstr))<>reverse(lstr) then writeln('tr1');
- if translate(lstr,'','')<>lstr then writeln('tr2');
- if translate('',lstr,reverse(lstr))<>'' then writeln('tr3');
- if translate('a','abc','bca')<>'b' then writeln('tr4');
- if translate(lstr,lstr,lstr)<>lstr then writeln('tr5');
-
- if uppercase('AbCdEf123')<>'ABCDEF123' then writeln('uc1');
- if uppercase('')<>'' then writeln('uc2');
- if uppercase('a')<>'A' then writeln('uc3');
- if uppercase(lstr)<>ovrstr(xrange('A','Z'),lstr,97,' ') then writeln('uc4');
-
- if verify('a',lstr,'m',1)<>1 then writeln('vr1');
- if verify(lstr,'a','m',1)<>97 then writeln('vr2');
- if verify(lstr,ovrstr(' ',lstr,100,' '),'n',1)<>100 then writeln('vr3');
- if verify('a',lstr,'m',1)<>1 then writeln('vr4');
- if verify('',lstr,'m',1)<>0 then writeln('vr5');
- if verify(lstr,'','m',1)<>0 then writeln('vr6');
- if verify(lstr,lstr,'n',1)<>0 then writeln('vr7');
- if verify(lstr,ovrstr(' ',lstr,255,' '),'n',255)<>255 then writeln('vr7.1');
- if verify('abcdef','zyxwvuc','m',4)<>0 then writeln('vr8');
- if verify('abcdef','czyxwvu','m',3)<>3 then writeln('vr9');
- if verify('abcdef',lstr,'n',1)<>0 then writeln('vr10');
- if verify('abc1def','abcdef','n',5)<>0 then writeln('vr11');
- if verify('abc1def','abcdef','n',4)<>4 then writeln('vr12');
-
- if werd('',1)<>'' then writeln('wd1');
- if werd('a b c',1)<>'a' then writeln('wd2');
- if werd('a b c',3)<>'c' then writeln('wd3');
- if werd(lstr,2)<>substr(lstr,33,223) then writeln('wd4');
- if werd(lstr,3)<>'' then writeln('wd5');
- if werd(lstr,1)<>substr(lstr,1,31) then writeln('wd6');
- if werd(ovrstr(' ',lstr,254,' '),3)<>#255 then writeln('wd7');
- if werd('one two three four five six',6)<>'six' then writeln('wd8');
-
- if word2pos('',1)<>0 then writeln('wp1');
- if word2pos(lstr,2)<>33 then writeln('wp2');
- if word2pos(ovrstr(' ',lstr,254,' '),3)<>255 then writeln('wp3');
- if word2pos('one two three four five six',3)<>9 then writeln('wp4');
- if word2pos('one two three four five six',1)<>1 then writeln('wp5');
- if word2pos('one two three four five six',7)<>0 then writeln('wp6');
-
- if words(ovrstr(' ',lstr,254,' '))<>3 then writeln('wds1');
- if words(lstr)<>2 then writeln('wds2');
- if words(' ')<>0 then writeln('wds3');
- if words('')<>0 then writeln('wds4');
- if words('one two three four five six')<>6 then writeln('wds5');
- if words(left('',255,' '))<>0 then writeln('wds6');
- if words(left('',255,'x'))<>1 then writeln('wds7');
-
- if x2d('ff')<>255 then writeln('xd1');
- if x2d('0')<>0 then writeln('xd2');
- if x2d('10')<>16 then writeln('xd3');
- if x2d('100')<>256 then writeln('xd4');
- if x2d('111')<>273 then writeln('xd5');
- if x2d('1000')<>4096 then writeln('xd6');
- if x2d('0001')<>1 then writeln('xd7');
-
- if xrange(#1,#1)<>#1 then writeln('xr1');
- if xrange(#0,#255)<>xrange(#0,#254) then writeln('xr2');
- if xrange(#255,#1)<>reverse(xrange(#1,#255)) then writeln('xr3');
- if xrange(#2,#1)<>#2+#1 then writeln('xr4');
-
- end.