12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612 |
- unit utcExprParsNodes;
- {$mode objfpc}
- {$h+}
- interface
- uses
- Classes, SysUtils, punit, fpexprpars;
- procedure RegisterTests(aTop : PSuite);
- procedure AssertEquals(Msg: String; AResultType: TResultType; ANode: TFPExprNode); overload;
- procedure AssertEquals(Msg: String; AExpected, AActual: TResultType); overload;
- procedure AssertNodeType(Msg: String; AClass: TClass; ANode: TFPExprNode);
- implementation
- Type
- TMyDestroyNode = Class(TFPConstExpression)
- Public
- Destructor Destroy; override;
- end;
- Var
- FCheckNode : TFPExprNode;
- FDestroyCalled : Integer;
-
- function SuiteSetup: TTestString;
- begin
- Result := '';
- FCheckNode := Nil;
- FDestroyCalled:=0;
- end;
- function SuiteTearDown: TTestString;
- begin
- Result := '';
- end;
- procedure DoCheck;
- begin
- FCheckNode.Check;
- end;
- procedure AssertNodeType(Msg: String; AClass: TClass; ANode: TFPExprNode);
- begin
- AssertNotNull(Msg+': Not null',ANode);
- AssertEquals(Msg+': Class OK',AClass,ANode.ClassType);
- end;
- procedure AssertEquals(Msg: String; AResultType: TResultType; ANode: TFPExprNode); overload;
- begin
- AssertNotNull(Msg+': Node not null',ANode);
- AssertEquals(Msg,AResultType,Anode.NodeType);
- end;
- procedure AssertEquals(Msg: String; AExpected, AActual: TResultType); overload;
- begin
- AssertEquals(Msg,ResultTypeName(AExpected),ResultTypeName(AActual));
- end;
- function CreateIntNode(AInteger: Integer): TFPExprNode;
- begin
- Result:=TFPConstExpression.CreateInteger(AInteger);
- end;
- function CreateFloatNode(AFloat: TExprFloat): TFPExprNode;
- begin
- Result:=TFPConstExpression.CreateFloat(AFloat);
- end;
- function CreateStringNode(Astring: String): TFPExprNode;
- begin
- Result:=TFPConstExpression.CreateString(AString);
- end;
- function CreateDateTimeNode(ADateTime: TDateTime): TFPExprNode;
- begin
- Result:=TFPConstExpression.CreateDateTime(ADateTime);
- end;
- procedure AssertNodeOK(FN: TFPExprNode);
- Var
- B : Boolean;
- Msg : String;
- begin
- AssertNotNull('Node to test OK',FN);
- B:=False;
- try
- FN.Check;
- B:=True;
- except
- On E : Exception do
- Msg:=E.Message;
- end;
- If Not B then
- Fail(Format('Node %s not OK: %s',[FN.ClassName,Msg]));
- end;
- procedure AssertNodeNotOK(const MSg : String; FN: TFPExprNode);
- begin
- FCheckNode:=FN;
- AssertException(Msg,EExprParser,@DoCheck);
- end;
- function CreateBoolNode(ABoolean: Boolean): TFPExprNode;
- begin
- Result:=TFPConstExpression.CreateBoolean(ABoolean);
- end;
- destructor TMyDestroyNode.Destroy;
- begin
- Inc(FDestroyCalled);
- inherited Destroy;
- end;
- Function TestDestroyNode_TestDestroy : TTestString;
- Var
- FN : TMyDestroyNode;
- begin
- Result:='';
- FDestroyCalled := 0;
- AssertEquals('Destroy not called yet',0,FDestroyCalled);
- FN:=TMyDestroyNode.CreateInteger(1);
- FN.Free;
- AssertEquals('Destroy called',1,FDestroyCalled)
- end;
- Function TestConstExprNode_TestCreateInteger : TTestString;
- var
- FN : TFPConstExpression;
- begin
- Result:='';
- FN:=TFPConstExpression.CreateInteger(1);
- try
- AssertEquals('Correct type',rtInteger,FN.NodeType);
- AssertEquals('Correct result',1,FN.ConstValue.ResInteger);
- AssertEquals('Correct result',1,FN.NodeValue.ResInteger);
- AssertEquals('AsString ok','1',FN.AsString);
- finally
- FN.Free;
- end;
- end;
- Function TestConstExprNode_TestCreateFloat : TTestString;
- Var
- FN : TFPConstExpression;
- F : Double;
- C : Integer;
- begin
- Result:='';
- FN:=TFPConstExpression.CreateFloat(2.34);
- try
- AssertEquals('Correct type',rtFloat,FN.NodeType);
- AssertEquals('Correct result',2.34,FN.ConstValue.ResFloat);
- AssertEquals('Correct result',2.34,FN.NodeValue.ResFloat);
- Val(FN.AsString,F,C);
- AssertEquals('Correct conversion',0,C);
- AssertEquals('AsString ok',2.34,F,0.001);
- finally
- FN.Free;
- end;
- end;
- Function TestConstExprNode_TestCreateBoolean : TTestString;
- var
- FN : TFPConstExpression;
- begin
- Result:='';
- FN:=TFPConstExpression.CreateBoolean(True);
- try
- AssertEquals('Correct type',rtBoolean,FN.NodeType);
- AssertEquals('Correct result',True,FN.ConstValue.ResBoolean);
- AssertEquals('Correct result',True,FN.NodeValue.ResBoolean);
- AssertEquals('AsString ok','True',FN.AsString);
- finally
- FN.Free;
- end;
- FN:=TFPConstExpression.CreateBoolean(False);
- try
- AssertEquals('AsString ok','False',FN.AsString);
- finally
- FN.Free;
- end;
- end;
- Function TestConstExprNode_TestCreateDateTime : TTestString;
- Var
- FN : TFPConstExpression;
- D : TDateTime;
- S : String;
- begin
- Result:='';
- D:=Now;
- FN:=TFPConstExpression.CreateDateTime(D);
- try
- AssertEquals('Correct type',rtDateTime,FN.NodeType);
- AssertEquals('Correct result',D,FN.ConstValue.ResDateTime);
- AssertEquals('Correct result',D,FN.NodeValue.ResDateTime);
- S:=''''+FormatDateTime('cccc',D)+'''';
- AssertEquals('AsString ok',S,FN.AsString);
- finally
- FN.Free;
- end;
- end;
- Function TestConstExprNode_TestCreateString : TTestString;
- Var
- FN : TFPConstExpression;
- S : String;
- begin
- Result:='';
- S:='Ohlala';
- FN:=TFPConstExpression.CreateString(S);
- try
- AssertEquals('Correct type',rtString,FN.NodeType);
- AssertEquals('Correct result',S,FN.ConstValue.ResString);
- AssertEquals('Correct result',S,FN.NodeValue.ResString);
- AssertEquals('AsString ok',''''+S+'''',FN.AsString);
- finally
- FN.Free;
- end;
- end;
- Function TestNegateExprNode_TestCreateInteger : TTestString;
- var
- FN : TFPNegateOperation;
- begin
- Result:='';
- FN:=TFPNegateOperation.Create(CreateIntNode(23));
- try
- AssertEquals('Negate has correct type',rtInteger,FN.NodeType);
- AssertEquals('Negate has correct result',-23,FN.NodeValue.Resinteger);
- AssertEquals('Negate has correct string','-23',FN.AsString);
- AssertNodeOK(FN);
- finally
- FN.Free;
- end;
- end;
- Function TestNegateExprNode_TestCreateFloat : TTestString;
- var
- FN : TFPNegateOperation;
- S : String;
- begin
- Result:='';
- FN:=TFPNegateOperation.Create(CreateFloatNode(1.23));
- try
- AssertEquals('Negate has correct type',rtFloat,FN.NodeType);
- AssertEquals('Negate has correct result',-1.23,FN.NodeValue.ResFloat);
- Str(TExprFloat(-1.23),S);
- AssertEquals('Negate has correct string',S,FN.AsString);
- AssertNodeOK(FN);
- finally
- FN.Free;
- end;
- end;
- Function TestNegateExprNode_TestCreateOther1 : TTestString;
- var
- FN : TFPNegateOperation;
- begin
- Result:='';
- FN:=TFPNegateOperation.Create(TFPConstExpression.CreateString('1.23'));
- try
- AssertNodeNotOK('Negate does not accept string',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestNegateExprNode_TestCreateOther2 : TTestString;
- var
- FN : TFPNegateOperation;
- begin
- Result:='';
- FN:=TFPNegateOperation.Create(TFPConstExpression.CreateBoolean(True));
- try
- AssertNodeNotOK('Negate does not accept boolean',FN)
- finally
- FN.Free;
- end;
- end;
- Function TestNegateExprNode_TestDestroy : TTestString;
- var
- FN : TFPNegateOperation;
- begin
- Result:='';
- FDestroyCalled := 0;
- FN:=TFPNegateOperation.Create(TMyDestroyNode.CreateInteger(1));
- FN.Free;
- AssertEquals('Operand Destroy called',1,FDestroyCalled)
- end;
- Function TestBinaryAndNode_TestCreateInteger : TTestString;
- var
- FN : TFPBinaryAndOperation;
- begin
- Result:='';
- FN:=TFPBinaryAndOperation.Create(CreateIntNode(3),CreateIntNode(2));
- try
- AssertNodeOK(FN);
- AssertEquals('Correct node type',rtInteger,FN.NodeType);
- AssertEquals('Correct result',2,FN.NodeValue.ResInteger);
- finally
- FN.Free;
- end;
- end;
- Function TestBinaryAndNode_TestCreateBoolean : TTestString;
- var
- FN : TFPBinaryAndOperation;
- begin
- Result:='';
- FN:=TFPBinaryAndOperation.Create(CreateBoolNode(True),CreateBoolNode(True));
- try
- AssertNodeOK(FN);
- AssertEquals('Correct node type',rtBoolean,FN.NodeType);
- AssertEquals('Correct result',True,FN.NodeValue.ResBoolean);
- finally
- FN.Free;
- end;
- end;
- Function TestBinaryAndNode_TestCreateBooleanInteger : TTestString;
- var
- FN : TFPBinaryAndOperation;
- begin
- Result:='';
- FN:=TFPBinaryAndOperation.Create(CreateBoolNode(True),CreateIntNode(0));
- try
- AssertNodeNotOK('Different node types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestBinaryAndNode_TestCreateString : TTestString;
- var
- FN : TFPBinaryAndOperation;
- begin
- Result:='';
- FN:=TFPBinaryAndOperation.Create(CreateStringNode('True'),CreateStringNode('True'));
- try
- AssertNodeNotOK('String node type',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestBinaryAndNode_TestCreateFloat : TTestString;
- var
- FN : TFPBinaryAndOperation;
- begin
- Result:='';
- FN:=TFPBinaryAndOperation.Create(CreateFloatNode(1.23),CreateFloatNode(1.23));
- try
- AssertNodeNotOK('float node type',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestBinaryAndNode_TestCreateDateTime : TTestString;
- var
- FN : TFPBinaryAndOperation;
- begin
- Result:='';
- FN:=TFPBinaryAndOperation.Create(CreateDateTimeNode(Now),CreateDateTimeNode(Now));
- try
- AssertNodeNotOK('DateTime node type',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestBinaryAndNode_TestDestroy : TTestString;
- var
- FN : TFPBinaryAndOperation;
- begin
- Result:='';
- FDestroyCalled := 0;
- FN:=TFPBinaryAndOperation.Create(TMyDestroyNode.CreateInteger(1),TMyDestroyNode.CreateInteger(1));
- FN.Free;
- AssertEquals('Destroy called for left and right nodes',2,FDestroyCalled)
- end;
- Function TestNotNode_TestCreateInteger : TTestString;
- var
- FN : TFPNotNode;
- begin
- Result:='';
- FN:=TFPNotNode.Create(CreateIntNode(3));
- try
- AssertNodeOK(FN);
- AssertEquals('Correct node type',rtInteger,FN.NodeType);
- AssertEquals('Correct result',Not(Int64(3)),FN.NodeValue.ResInteger);
- finally
- FN.Free;
- end;
- end;
- Function TestNotNode_TestCreateBoolean : TTestString;
- var
- FN : TFPNotNode;
- begin
- Result:='';
- FN:=TFPNotNode.Create(CreateBoolNode(True));
- try
- AssertNodeOK(FN);
- AssertEquals('Correct node type',rtBoolean,FN.NodeType);
- AssertEquals('Correct result',False,FN.NodeValue.ResBoolean);
- finally
- FN.Free;
- end;
- end;
- Function TestNotNode_TestCreateString : TTestString;
- var
- FN : TFPNotNode;
- begin
- Result:='';
- FN:=TFPNotNode.Create(CreateStringNode('True'));
- try
- AssertNodeNotOK('String node type',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestNotNode_TestCreateFloat : TTestString;
- var
- FN : TFPNotNode;
- begin
- Result:='';
- FN:=TFPNotNode.Create(CreateFloatNode(1.23));
- try
- AssertNodeNotOK('String node type',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestNotNode_TestCreateDateTime : TTestString;
- var
- FN : TFPNotNode;
- begin
- Result:='';
- FN:=TFPNotNode.Create(CreateDateTimeNode(Now));
- try
- AssertNodeNotOK('String node type',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestNotNode_TestDestroy : TTestString;
- var
- FN : TFPNotNode;
- begin
- Result:='';
- FDestroyCalled := 0;
- FN:=TFPNotNode.Create(TMyDestroyNode.CreateInteger(1));
- FN.Free;
- AssertEquals('Destroy called for operand',1,FDestroyCalled)
- end;
- Function TestBinaryOrNode_TestCreateInteger : TTestString;
- var
- FN : TFPBinaryOrOperation;
- begin
- Result:='';
- FN:=TFPBinaryOrOperation.Create(CreateIntNode(1),CreateIntNode(2));
- try
- AssertNodeOK(FN);
- AssertEquals('Correct node type',rtInteger,FN.NodeType);
- AssertEquals('Correct result',3,FN.NodeValue.ResInteger);
- finally
- FN.Free;
- end;
- end;
- Function TestBinaryOrNode_TestCreateBoolean : TTestString;
- var
- FN : TFPBinaryOrOperation;
- begin
- Result:='';
- FN:=TFPBinaryOrOperation.Create(CreateBoolNode(True),CreateBoolNode(False));
- try
- AssertNodeOK(FN);
- AssertEquals('Correct node type',rtBoolean,FN.NodeType);
- AssertEquals('Correct result',True,FN.NodeValue.ResBoolean);
- finally
- FN.Free;
- end;
- end;
- Function TestBinaryOrNode_TestCreateBooleanInteger : TTestString;
- var
- FN : TFPBinaryOrOperation;
- begin
- Result:='';
- FN:=TFPBinaryOrOperation.Create(CreateBoolNode(True),CreateIntNode(0));
- try
- AssertNodeNotOK('Different node types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestBinaryOrNode_TestCreateString : TTestString;
- var
- FN : TFPBinaryOrOperation;
- begin
- Result:='';
- FN:=TFPBinaryOrOperation.Create(CreateStringNode('True'),CreateStringNode('True'));
- try
- AssertNodeNotOK('String node type',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestBinaryOrNode_TestCreateFloat : TTestString;
- var
- FN : TFPBinaryOrOperation;
- begin
- Result:='';
- FN:=TFPBinaryOrOperation.Create(CreateFloatNode(1.23),CreateFloatNode(1.23));
- try
- AssertNodeNotOK('float node type',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestBinaryOrNode_TestCreateDateTime : TTestString;
- var
- FN : TFPBinaryOrOperation;
- begin
- Result:='';
- FN:=TFPBinaryOrOperation.Create(CreateDateTimeNode(Now),CreateDateTimeNode(Now));
- try
- AssertNodeNotOK('DateTime node type',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestBinaryOrNode_TestDestroy : TTestString;
- var
- FN : TFPBinaryOrOperation;
- begin
- Result:='';
- FDestroyCalled := 0;
- FN:=TFPBinaryOrOperation.Create(TMyDestroyNode.CreateInteger(1),TMyDestroyNode.CreateInteger(1));
- FN.Free;
- AssertEquals('Destroy called for left and right nodes',2,FDestroyCalled)
- end;
- Function TestBinaryXorNode_TestCreateInteger : TTestString;
- var
- FN : TFPBinaryXorOperation;
- begin
- Result:='';
- FN:=TFPBinaryXorOperation.Create(CreateIntNode(1),CreateIntNode(2));
- try
- AssertNodeOK(FN);
- AssertEquals('Correct node type',rtInteger,FN.NodeType);
- AssertEquals('Correct result',3,FN.NodeValue.ResInteger);
- finally
- FN.Free;
- end;
- end;
- Function TestBinaryXorNode_TestCreateBoolean : TTestString;
- var
- FN : TFPBinaryXorOperation;
- begin
- Result:='';
- FN:=TFPBinaryXorOperation.Create(CreateBoolNode(True),CreateBoolNode(True));
- try
- AssertNodeOK(FN);
- AssertEquals('Correct node type',rtBoolean,FN.NodeType);
- AssertEquals('Correct result',False,FN.NodeValue.ResBoolean);
- finally
- FN.Free;
- end;
- end;
- Function TestBinaryXorNode_TestCreateBooleanInteger : TTestString;
- var
- FN : TFPBinaryXorOperation;
- begin
- Result:='';
- FN:=TFPBinaryXorOperation.Create(CreateBoolNode(True),CreateIntNode(0));
- try
- AssertNodeNotOK('Different node types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestBinaryXorNode_TestCreateString : TTestString;
- var
- FN : TFPBinaryXorOperation;
- begin
- Result:='';
- FN:=TFPBinaryXorOperation.Create(CreateStringNode('True'),CreateStringNode('True'));
- try
- AssertNodeNotOK('String node type',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestBinaryXorNode_TestCreateFloat : TTestString;
- var
- FN : TFPBinaryXorOperation;
- begin
- Result:='';
- FN:=TFPBinaryXorOperation.Create(CreateFloatNode(1.23),CreateFloatNode(1.23));
- try
- AssertNodeNotOK('float node type',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestBinaryXorNode_TestCreateDateTime : TTestString;
- var
- FN : TFPBinaryXorOperation;
- begin
- Result:='';
- FN:=TFPBinaryXorOperation.Create(CreateDateTimeNode(Now),CreateDateTimeNode(Now));
- try
- AssertNodeNotOK('DateTime node type',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestBinaryXorNode_TestDestroy : TTestString;
- var
- FN : TFPBinaryXorOperation;
- begin
- Result:='';
- FDestroyCalled := 0;
- FN:=TFPBinaryXorOperation.Create(TMyDestroyNode.CreateInteger(1),TMyDestroyNode.CreateInteger(1));
- FN.Free;
- AssertEquals('Destroy called for left and right nodes',2,FDestroyCalled)
- end;
- procedure TestEqualNode(B: TFPBooleanResultOperation; AResult: Boolean);
- begin
- AssertEquals(Format('Test %s(%s,%s) result',[B.ClassName,B.Left.AsString,B.Right.AsString]),AResult,B.NodeValue.resBoolean);
- end;
- Function TestEqualNode_TestCreateIntegerEqual : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPEqualOperation.Create(CreateIntNode(1),CreateIntNode(1));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,True);
- finally
- FN.Free;
- end;
- end;
- Function TestEqualNode_TestCreateIntegerUnEqual : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPEqualOperation.Create(CreateIntNode(2),CreateIntNode(1));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,False);
- finally
- FN.Free;
- end;
- end;
- Function TestEqualNode_TestCreateFloatEqual : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPEqualOperation.Create(CreateFloatNode(1.23),CreateFloatNode(1.23));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,True);
- finally
- FN.Free;
- end;
- end;
- Function TestEqualNode_TestCreateFloatUnEqual : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPEqualOperation.Create(CreateFloatNode(1.23),CreateFloatNode(1.34));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,False);
- finally
- FN.Free;
- end;
- end;
- Function TestEqualNode_TestCreateStringEqual : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPEqualOperation.Create(CreateStringNode('now'),CreateStringNode('now'));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,True);
- finally
- FN.Free;
- end;
- end;
- Function TestEqualNode_TestCreateStringUnEqual : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPEqualOperation.Create(CreateStringNode('now'),CreateStringNode('then'));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,False);
- finally
- FN.Free;
- end;
- end;
- Function TestEqualNode_TestCreateBooleanEqual : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPEqualOperation.Create(CreateBoolNode(True),CreateBoolNode(True));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,True);
- finally
- FN.Free;
- end;
- end;
- Function TestEqualNode_TestCreateBooleanUnEqual : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPEqualOperation.Create(CreateBoolNode(False),CreateBoolNode(True));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,False);
- finally
- FN.Free;
- end;
- end;
- Function TestEqualNode_TestCreateDateTimeEqual : TTestString;
- Var
- FN : TFPBooleanResultOperation;
- D : TDateTime;
- begin
- Result:='';
- D:=Now;
- FN:=TFPEqualOperation.Create(CreateDateTimeNode(D),CreateDateTimeNode(D));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,True);
- finally
- FN.Free;
- end;
- end;
- Function TestEqualNode_TestCreateDateTimeUnEqual : TTestString;
- Var
- FN : TFPBooleanResultOperation;
- D : TDateTime;
- begin
- Result:='';
- D:=Now;
- FN:=TFPEqualOperation.Create(CreateDateTimeNode(D),CreateDateTimeNode(D-1));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,False);
- finally
- FN.Free;
- end;
- end;
- Function TestEqualNode_TestDestroy : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FDestroyCalled := 0;
- FN:=TFPEqualOperation.Create(TMyDestroyNode.CreateInteger(1),TMyDestroyNode.CreateInteger(1));
- FN.Free;
- AssertEquals('Destroy called for left and right nodes',2,FDestroyCalled)
- end;
- Function TestEqualNode_TestWrongTypes1 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPEqualOperation.Create(CreateIntNode(3),CreateStringNode('1.23'));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestEqualNode_TestWrongTypes2 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPEqualOperation.Create(CreateDateTimeNode(3),CreateStringNode('1.23'));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestEqualNode_TestWrongTypes3 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPEqualOperation.Create(CreateFloatNode(1.3),CreateStringNode('1.23'));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestEqualNode_TestWrongTypes4 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPEqualOperation.Create(CreateBoolNode(False),CreateStringNode('1.23'));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestEqualNode_TestWrongTypes5 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPEqualOperation.Create(CreateFloatNode(1),CreateIntNode(1));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestEqualNode_TestAsString : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPEqualOperation.Create(CreateIntNode(1),CreateIntNode(2));
- try
- AssertEquals('Asstring works ok','1 = 2',FN.AsString);
- finally
- FN.Free;
- end;
- end;
- Function TestUnEqualNode_TestCreateIntegerEqual : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPUnEqualOperation.Create(CreateIntNode(1),CreateIntNode(1));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,False);
- finally
- FN.Free;
- end;
- end;
- Function TestUnEqualNode_TestCreateIntegerUnEqual : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPUnEqualOperation.Create(CreateIntNode(2),CreateIntNode(1));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,True);
- finally
- FN.Free;
- end;
- end;
- Function TestUnEqualNode_TestCreateFloatEqual : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPUnEqualOperation.Create(CreateFloatNode(1.23),CreateFloatNode(1.23));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,False);
- finally
- FN.Free;
- end;
- end;
- Function TestUnEqualNode_TestCreateFloatUnEqual : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPUnEqualOperation.Create(CreateFloatNode(1.23),CreateFloatNode(1.34));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,True);
- finally
- FN.Free;
- end;
- end;
- Function TestUnEqualNode_TestCreateStringEqual : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPUnEqualOperation.Create(CreateStringNode('now'),CreateStringNode('now'));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,False);
- finally
- FN.Free;
- end;
- end;
- Function TestUnEqualNode_TestCreateStringUnEqual : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPUnEqualOperation.Create(CreateStringNode('now'),CreateStringNode('then'));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,True);
- finally
- FN.Free;
- end;
- end;
- Function TestUnEqualNode_TestCreateBooleanEqual : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPUnEqualOperation.Create(CreateBoolNode(True),CreateBoolNode(True));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,False);
- finally
- FN.Free;
- end;
- end;
- Function TestUnEqualNode_TestCreateBooleanUnEqual : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPUnEqualOperation.Create(CreateBoolNode(False),CreateBoolNode(True));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,True);
- finally
- FN.Free;
- end;
- end;
- Function TestUnEqualNode_TestCreateDateTimeEqual : TTestString;
- Var
- FN : TFPBooleanResultOperation;
- D : TDateTime;
- begin
- Result:='';
- D:=Now;
- FN:=TFPUnEqualOperation.Create(CreateDateTimeNode(D),CreateDateTimeNode(D));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,False);
- finally
- FN.Free;
- end;
- end;
- Function TestUnEqualNode_TestCreateDateTimeUnEqual : TTestString;
- Var
- FN : TFPBooleanResultOperation;
- D : TDateTime;
- begin
- Result:='';
- D:=Now;
- FN:=TFPUnEqualOperation.Create(CreateDateTimeNode(D),CreateDateTimeNode(D-1));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,True);
- finally
- FN.Free;
- end;
- end;
- Function TestUnEqualNode_TestDestroy : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FDestroyCalled := 0;
- FN:=TFPUnEqualOperation.Create(TMyDestroyNode.CreateInteger(1),TMyDestroyNode.CreateInteger(1));
- FN.Free;
- AssertEquals('Destroy called for left and right nodes',2,FDestroyCalled)
- end;
- Function TestUnEqualNode_TestWrongTypes1 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPUnEqualOperation.Create(CreateIntNode(3),CreateStringNode('1.23'));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestUnEqualNode_TestWrongTypes2 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPUnEqualOperation.Create(CreateDateTimeNode(3),CreateStringNode('1.23'));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestUnEqualNode_TestWrongTypes3 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPUnEqualOperation.Create(CreateFloatNode(1.3),CreateStringNode('1.23'));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestUnEqualNode_TestWrongTypes4 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPUnEqualOperation.Create(CreateBoolNode(False),CreateStringNode('1.23'));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestUnEqualNode_TestWrongTypes5 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPUnEqualOperation.Create(CreateFloatNode(1),CreateIntNode(1));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestUnEqualNode_TestAsString : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPUnEqualOperation.Create(CreateIntNode(1),CreateIntNode(2));
- try
- AssertEquals('Asstring works ok','1 <> 2',FN.AsString);
- finally
- FN.Free;
- end;
- end;
- Function TestLessThanNode_TestCreateDateTimeSmaller : TTestString;
- Var
- FN : TFPBooleanResultOperation;
- D : TDateTime;
- begin
- Result:='';
- D:=Now;
- FN:=TFPLessThanOperation.Create(CreateDateTimeNode(D),CreateDateTimeNode(D+1));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,True);
- finally
- FN.Free;
- end;
- end;
- Function TestLessThanNode_TestCreateDateTimeLarger : TTestString;
- Var
- FN : TFPBooleanResultOperation;
- D : TDateTime;
- begin
- Result:='';
- D:=Now;
- FN:=TFPLessThanOperation.Create(CreateDateTimeNode(D),CreateDateTimeNode(D-1));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,False);
- finally
- FN.Free;
- end;
- end;
- Function TestLessThanNode_TestCreateStringEqual : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPLessThanOperation.Create(CreateStringNode('now'),CreateStringNode('now'));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,False);
- finally
- FN.Free;
- end;
- end;
- Function TestLessThanNode_TestCreateStringSmaller : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPLessThanOperation.Create(CreateStringNode('now'),CreateStringNode('then'));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,True);
- finally
- FN.Free;
- end;
- end;
- Function TestLessThanNode_TestCreateStringLarger : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPLessThanOperation.Create(CreateStringNode('then'),CreateStringNode('now'));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,False);
- finally
- FN.Free;
- end;
- end;
- Function TestLessThanNode_TestWrongTypes1 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPLessThanOperation.Create(CreateIntNode(3),CreateStringNode('1.23'));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestLessThanNode_TestWrongTypes2 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPLessThanOperation.Create(CreateDateTimeNode(3),CreateStringNode('1.23'));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestLessThanNode_TestWrongTypes3 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPLessThanOperation.Create(CreateFloatNode(1.3),CreateStringNode('1.23'));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestLessThanNode_TestWrongTypes4 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPLessThanOperation.Create(CreateBoolNode(False),CreateStringNode('1.23'));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestLessThanNode_TestWrongTypes5 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPLessThanOperation.Create(CreateFloatNode(1.23),CreateIntNode(1));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestLessThanNode_TestNoBoolean1 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPLessThanOperation.Create(CreateBoolNode(False),CreateIntNode(1));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestLessThanNode_TestNoBoolean2 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPLessThanOperation.Create(CreateIntNode(1),CreateBoolNode(False));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestLessThanNode_TestNoBoolean3 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPLessThanOperation.Create(CreateBoolNode(False),CreateBoolNode(False));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestLessThanNode_TestAsString : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPLessThanOperation.Create(CreateIntNode(1),CreateIntNode(2));
- try
- AssertEquals('Asstring works ok','1 < 2',FN.AsString);
- finally
- FN.Free;
- end;
- end;
- Function TestLessThanEqualNode_TestCreateDateTimeSmaller : TTestString;
- Var
- FN : TFPBooleanResultOperation;
- D : TDateTime;
- begin
- Result:='';
- D:=Now;
- FN:=TFPLessThanEqualOperation.Create(CreateDateTimeNode(D),CreateDateTimeNode(D+1));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,True);
- finally
- FN.Free;
- end;
- end;
- Function TestLessThanEqualNode_TestCreateDateTimeLarger : TTestString;
- Var
- FN : TFPBooleanResultOperation;
- D : TDateTime;
- begin
- Result:='';
- D:=Now;
- FN:=TFPLessThanEqualOperation.Create(CreateDateTimeNode(D),CreateDateTimeNode(D-1));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,False);
- finally
- FN.Free;
- end;
- end;
- Function TestLessThanEqualNode_TestCreateStringEqual : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPLessThanEqualOperation.Create(CreateStringNode('now'),CreateStringNode('now'));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,True);
- finally
- FN.Free;
- end;
- end;
- Function TestLessThanEqualNode_TestCreateStringSmaller : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPLessThanEqualOperation.Create(CreateStringNode('now'),CreateStringNode('then'));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,True);
- finally
- FN.Free;
- end;
- end;
- Function TestLessThanEqualNode_TestCreateStringLarger : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPLessThanEqualOperation.Create(CreateStringNode('then'),CreateStringNode('now'));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,False);
- finally
- FN.Free;
- end;
- end;
- Function TestLessThanEqualNode_TestWrongTypes1 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPLessThanEqualOperation.Create(CreateIntNode(3),CreateStringNode('1.23'));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestLessThanEqualNode_TestWrongTypes2 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPLessThanEqualOperation.Create(CreateDateTimeNode(3),CreateStringNode('1.23'));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestLessThanEqualNode_TestWrongTypes3 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPLessThanEqualOperation.Create(CreateFloatNode(1.3),CreateStringNode('1.23'));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestLessThanEqualNode_TestWrongTypes4 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPLessThanEqualOperation.Create(CreateBoolNode(False),CreateStringNode('1.23'));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestLessThanEqualNode_TestWrongTypes5 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPLessThanEqualOperation.Create(CreateFloatNode(1.23),CreateIntNode(1));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestLessThanEqualNode_TestNoBoolean1 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPLessThanEqualOperation.Create(CreateBoolNode(False),CreateIntNode(1));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestLessThanEqualNode_TestNoBoolean2 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPLessThanEqualOperation.Create(CreateIntNode(1),CreateBoolNode(False));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestLessThanEqualNode_TestNoBoolean3 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPLessThanEqualOperation.Create(CreateBoolNode(False),CreateBoolNode(False));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestLessThanEqualNode_TestAsString : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPLessThanEqualOperation.Create(CreateIntNode(1),CreateIntNode(2));
- try
- AssertEquals('Asstring works ok','1 <= 2',FN.AsString);
- finally
- FN.Free;
- end;
- end;
- Function TestLargerThanNode_TestCreateDateTimeSmaller : TTestString;
- Var
- FN : TFPBooleanResultOperation;
- D : TDateTime;
- begin
- Result:='';
- D:=Now;
- FN:=TFPGreaterThanOperation.Create(CreateDateTimeNode(D),CreateDateTimeNode(D+1));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,False);
- finally
- FN.Free;
- end;
- end;
- Function TestLargerThanNode_TestCreateDateTimeLarger : TTestString;
- Var
- FN : TFPBooleanResultOperation;
- D : TDateTime;
- begin
- Result:='';
- D:=Now;
- FN:=TFPGreaterThanOperation.Create(CreateDateTimeNode(D),CreateDateTimeNode(D-1));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,True);
- finally
- FN.Free;
- end;
- end;
- Function TestLargerThanNode_TestCreateStringEqual : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPGreaterThanOperation.Create(CreateStringNode('now'),CreateStringNode('now'));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,False);
- finally
- FN.Free;
- end;
- end;
- Function TestLargerThanNode_TestCreateStringSmaller : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPGreaterThanOperation.Create(CreateStringNode('now'),CreateStringNode('then'));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,False);
- finally
- FN.Free;
- end;
- end;
- Function TestLargerThanNode_TestCreateStringLarger : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPGreaterThanOperation.Create(CreateStringNode('then'),CreateStringNode('now'));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,True);
- finally
- FN.Free;
- end;
- end;
- Function TestLargerThanNode_TestWrongTypes1 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPGreaterThanOperation.Create(CreateIntNode(3),CreateStringNode('1.23'));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestLargerThanNode_TestWrongTypes2 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPGreaterThanOperation.Create(CreateDateTimeNode(3),CreateStringNode('1.23'));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestLargerThanNode_TestWrongTypes3 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPGreaterThanOperation.Create(CreateFloatNode(1.3),CreateStringNode('1.23'));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestLargerThanNode_TestWrongTypes4 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPGreaterThanOperation.Create(CreateBoolNode(False),CreateStringNode('1.23'));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestLargerThanNode_TestWrongTypes5 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPGreaterThanOperation.Create(CreateFloatNode(1.23),CreateIntNode(1));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestLargerThanNode_TestNoBoolean1 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPGreaterThanOperation.Create(CreateBoolNode(False),CreateIntNode(1));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestLargerThanNode_TestNoBoolean2 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPGreaterThanOperation.Create(CreateIntNode(1),CreateBoolNode(False));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestLargerThanNode_TestNoBoolean3 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPGreaterThanOperation.Create(CreateBoolNode(False),CreateBoolNode(False));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestLargerThanNode_TestAsString : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPGreaterThanOperation.Create(CreateIntNode(1),CreateIntNode(2));
- try
- AssertEquals('Asstring works ok','1 > 2',FN.AsString);
- finally
- FN.Free;
- end;
- end;
- Function TestLargerThanEqualNode_TestCreateDateTimeSmaller : TTestString;
- Var
- FN : TFPBooleanResultOperation;
- D : TDateTime;
- begin
- Result:='';
- D:=Now;
- FN:=TFPGreaterThanEqualOperation.Create(CreateDateTimeNode(D),CreateDateTimeNode(D+1));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,False);
- finally
- FN.Free;
- end;
- end;
- Function TestLargerThanEqualNode_TestCreateDateTimeLarger : TTestString;
- Var
- FN : TFPBooleanResultOperation;
- D : TDateTime;
- begin
- Result:='';
- D:=Now;
- FN:=TFPGreaterThanEqualOperation.Create(CreateDateTimeNode(D),CreateDateTimeNode(D-1));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,True);
- finally
- FN.Free;
- end;
- end;
- Function TestLargerThanEqualNode_TestCreateStringEqual : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPGreaterThanEqualOperation.Create(CreateStringNode('now'),CreateStringNode('now'));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,True);
- finally
- FN.Free;
- end;
- end;
- Function TestLargerThanEqualNode_TestCreateStringSmaller : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPGreaterThanEqualOperation.Create(CreateStringNode('now'),CreateStringNode('then'));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,False);
- finally
- FN.Free;
- end;
- end;
- Function TestLargerThanEqualNode_TestCreateStringLarger : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPGreaterThanEqualOperation.Create(CreateStringNode('then'),CreateStringNode('now'));
- try
- AssertNodeOk(FN);
- AssertEquals('Boolean result',rtBoolean,FN.NodeType);
- TestEqualNode(FN,True);
- finally
- FN.Free;
- end;
- end;
- Function TestLargerThanEqualNode_TestWrongTypes1 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPGreaterThanEqualOperation.Create(CreateIntNode(3),CreateStringNode('1.23'));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestLargerThanEqualNode_TestWrongTypes2 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPGreaterThanEqualOperation.Create(CreateDateTimeNode(3),CreateStringNode('1.23'));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestLargerThanEqualNode_TestWrongTypes3 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPGreaterThanEqualOperation.Create(CreateFloatNode(1.3),CreateStringNode('1.23'));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestLargerThanEqualNode_TestWrongTypes4 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPGreaterThanEqualOperation.Create(CreateBoolNode(False),CreateStringNode('1.23'));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestLargerThanEqualNode_TestWrongTypes5 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPGreaterThanEqualOperation.Create(CreateFloatNode(1.23),CreateIntNode(1));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestLargerThanEqualNode_TestNoBoolean1 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPGreaterThanEqualOperation.Create(CreateBoolNode(False),CreateIntNode(1));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestLargerThanEqualNode_TestNoBoolean2 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPGreaterThanEqualOperation.Create(CreateIntNode(1),CreateBoolNode(False));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestLargerThanEqualNode_TestNoBoolean3 : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPGreaterThanEqualOperation.Create(CreateBoolNode(False),CreateBoolNode(False));
- try
- AssertNodeNotOk('Wrong Types',FN);
- finally
- FN.Free;
- end;
- end;
- Function TestLargerThanEqualNode_TestAsString : TTestString;
- var
- FN : TFPBooleanResultOperation;
- begin
- Result:='';
- FN:=TFPGreaterThanEqualOperation.Create(CreateIntNode(1),CreateIntNode(2));
- try
- AssertEquals('Asstring works ok','1 >= 2',FN.AsString);
- finally
- FN.Free;
- end;
- end;
- Function TTestAddNode_TestCreateInteger : TTestString;
- var
- FN : TFPAddOperation;
- begin
- Result:='';
- FN:=TFPAddOperation.Create(CreateIntNode(1),CreateIntNode(2));
- try
- AssertEquals('Add has correct type',rtInteger,FN.NodeType);
- AssertEquals('Add has correct result',3,FN.NodeValue.ResInteger);
- finally
- FN.Free;
- end;
- end;
- Function TTestAddNode_TestCreateFloat : TTestString;
- var
- FN : TFPAddOperation;
- begin
- Result:='';
- FN:=TFPAddOperation.Create(CreateFloatNode(1.23),CreateFloatNode(4.56));
- try
- AssertEquals('Add has correct type',rtFloat,FN.NodeType);
- AssertEquals('Add has correct result',5.79,FN.NodeValue.ResFloat, 1e-9);
- finally
- FN.Free;
- end;
- end;
- Function TTestAddNode_TestCreateDateTime : TTestString;
- var
- FN : TFPAddOperation;
- D,T : TDateTime;
- begin
- Result:='';
- D:=Date;
- T:=Time;
- FN:=TFPAddOperation.Create(CreateDateTimeNode(D),CreateDateTimeNode(T));
- try
- AssertEquals('Add has correct type',rtDateTime,FN.NodeType);
- AssertEquals('Add has correct result',D+T,FN.NodeValue.ResDateTime);
- finally
- FN.Free;
- end;
- end;
- Function TTestAddNode_TestCreateString : TTestString;
- var
- FN : TFPAddOperation;
- begin
- Result:='';
- FN:=TFPAddOperation.Create(CreateStringNode('alo'),CreateStringNode('ha'));
- try
- AssertEquals('Add has correct type',rtString,FN.NodeType);
- AssertEquals('Add has correct result','aloha',FN.NodeValue.ResString);
- finally
- FN.Free;
- end;
- end;
- Function TTestAddNode_TestCreateBoolean : TTestString;
- var
- FN : TFPAddOperation;
- begin
- Result:='';
- FN:=TFPAddOperation.Create(CreateBoolNode(True),CreateBoolNode(False));
- try
- AssertNodeNotOK('No boolean addition',FN);
- finally
- FN.Free;
- end;
- end;
- Function TTestAddNode_TestDestroy : TTestString;
- var
- FN : TFPAddOperation;
- begin
- Result:='';
- FDestroyCalled := 0;
- FN:=TFPAddOperation.Create(TMyDestroyNode.CreateInteger(1),TMyDestroyNode.CreateInteger(1));
- FN.Free;
- AssertEquals('Destroy called for left and right nodes',2,FDestroyCalled);
- end;
- Function TTestAddNode_TestAsString : TTestString;
- var
- FN : TFPAddOperation;
- begin
- Result:='';
- FN:=TFPAddOperation.Create(CreateIntNode(1),CreateIntNode(2));
- try
- AssertEquals('Asstring works ok','1 + 2',FN.AsString);
- finally
- FN.Free;
- end;
- end;
- Function TTestSubtractNode_TestCreateInteger : TTestString;
- var
- FN : TFPSubtractOperation;
- begin
- Result:='';
- FN:=TFPSubtractOperation.Create(CreateIntNode(4),CreateIntNode(1));
- try
- AssertEquals('Subtract has correct type',rtInteger,FN.NodeType);
- AssertEquals('Subtract has correct result',3,FN.NodeValue.ResInteger);
- finally
- FN.Free;
- end;
- end;
- Function TTestSubtractNode_TestCreateFloat : TTestString;
- var
- FN : TFPSubtractOperation;
- begin
- Result:='';
- FN:=TFPSubtractOperation.Create(CreateFloatNode(4.56),CreateFloatNode(1.23));
- try
- AssertEquals('Subtract has correct type',rtFloat,FN.NodeType);
- AssertEquals('Subtract has correct result',3.33,FN.NodeValue.ResFloat, 1e-9);
- finally
- FN.Free;
- end;
- end;
- Function TTestSubtractNode_TestCreateDateTime : TTestString;
- var
- FN : TFPSubtractOperation;
- D,T : TDateTime;
- begin
- Result:='';
- D:=Date;
- T:=Time;
- FN:=TFPSubtractOperation.Create(CreateDateTimeNode(D+T),CreateDateTimeNode(T));
- try
- AssertEquals('Subtract has correct type',rtDateTime,FN.NodeType);
- AssertEquals('Subtract has correct result',D,FN.NodeValue.ResDateTime);
- finally
- FN.Free;
- end;
- end;
- Function TTestSubtractNode_TestCreateString : TTestString;
- var
- FN : TFPSubtractOperation;
- begin
- Result:='';
- FN:=TFPSubtractOperation.Create(CreateStringNode('alo'),CreateStringNode('ha'));
- try
- AssertNodeNotOK('No string Subtract',FN);
- finally
- FN.Free;
- end;
- end;
- Function TTestSubtractNode_TestCreateBoolean : TTestString;
- var
- FN : TFPSubtractOperation;
- begin
- Result:='';
- FN:=TFPSubtractOperation.Create(CreateBoolNode(True),CreateBoolNode(False));
- try
- AssertNodeNotOK('No boolean Subtract',FN);
- finally
- FN.Free;
- end;
- end;
- Function TTestSubtractNode_TestDestroy : TTestString;
- var
- FN : TFPSubtractOperation;
- begin
- Result:='';
- FDestroyCalled := 0;
- FN:=TFPSubtractOperation.Create(TMyDestroyNode.CreateInteger(1),TMyDestroyNode.CreateInteger(1));
- FN.Free;
- AssertEquals('Destroy called for left and right nodes',2,FDestroyCalled);
- end;
- Function TTestSubtractNode_TestAsString : TTestString;
- var
- FN : TFPSubtractOperation;
- begin
- Result:='';
- FN:=TFPSubtractOperation.Create(CreateIntNode(1),CreateIntNode(2));
- try
- AssertEquals('Asstring works ok','1 - 2',FN.AsString);
- finally
- FN.Free;
- end;
- end;
- Function TTestMultiplyNode_TestCreateInteger : TTestString;
- var
- FN : TFPMultiplyOperation;
- begin
- Result:='';
- FN:=TFPMultiplyOperation.Create(CreateIntNode(4),CreateIntNode(2));
- try
- AssertEquals('multiply has correct type',rtInteger,FN.NodeType);
- AssertEquals('multiply has correct result',8,FN.NodeValue.ResInteger);
- finally
- FN.Free;
- end;
- end;
- Function TTestMultiplyNode_TestCreateFloat : TTestString;
- var
- FN : TFPMultiplyOperation;
- begin
- Result:='';
- FN:=TFPMultiplyOperation.Create(CreateFloatNode(2.0),CreateFloatNode(1.23));
- try
- AssertEquals('multiply has correct type',rtFloat,FN.NodeType);
- AssertEquals('multiply has correct result',2.46,FN.NodeValue.ResFloat, 1e-9);
- finally
- FN.Free;
- end;
- end;
- Function TTestMultiplyNode_TestCreateDateTime : TTestString;
- var
- FN : TFPMultiplyOperation;
- D,T : TDateTime;
- begin
- Result:='';
- D:=Date;
- T:=Time;
- FN:=TFPMultiplyOperation.Create(CreateDateTimeNode(D+T),CreateDateTimeNode(T));
- try
- AssertNodeNotOK('No datetime multiply',FN);
- finally
- FN.Free;
- end;
- end;
- Function TTestMultiplyNode_TestCreateString : TTestString;
- var
- FN : TFPMultiplyOperation;
- begin
- Result:='';
- FN:=TFPMultiplyOperation.Create(CreateStringNode('alo'),CreateStringNode('ha'));
- try
- AssertNodeNotOK('No string multiply',FN);
- finally
- FN.Free;
- end;
- end;
- Function TTestMultiplyNode_TestCreateBoolean : TTestString;
- var
- FN : TFPMultiplyOperation;
- begin
- Result:='';
- FN:=TFPMultiplyOperation.Create(CreateBoolNode(True),CreateBoolNode(False));
- try
- AssertNodeNotOK('No boolean multiply',FN);
- finally
- FN.Free;
- end;
- end;
- Function TTestMultiplyNode_TestDestroy : TTestString;
- var
- FN : TFPMultiplyOperation;
- begin
- Result:='';
- FDestroyCalled := 0;
- FN:=TFPMultiplyOperation.Create(TMyDestroyNode.CreateInteger(1),TMyDestroyNode.CreateInteger(1));
- FN.Free;
- AssertEquals('Destroy called for left and right nodes',2,FDestroyCalled);
- end;
- Function TTestMultiplyNode_TestAsString : TTestString;
- var
- FN : TFPMultiplyOperation;
- begin
- Result:='';
- FN:=TFPMultiplyOperation.Create(CreateIntNode(1),CreateIntNode(2));
- try
- AssertEquals('Asstring works ok','1 * 2',FN.AsString);
- finally
- FN.Free;
- end;
- end;
- Function TTestPowerNode_TestCreateInteger : TTestString;
- var
- FN : TFPPowerOperation;
- begin
- Result:='';
- FN:=TFPPowerOperation.Create(CreateIntNode(4),CreateIntNode(2));
- try
- AssertEquals('Power has correct type',rtfloat,FN.NodeType);
- AssertEquals('Power has correct result',16.0,FN.NodeValue.ResFloat, 1e-9);
- finally
- FN.Free;
- end;
- end;
- Function TTestPowerNode_TestCreateFloat : TTestString;
- var
- FN : TFPPowerOperation;
- begin
- Result:='';
- FN:=TFPPowerOperation.Create(CreateFloatNode(2.0),CreateFloatNode(3.0));
- try
- AssertEquals('Power has correct type',rtFloat,FN.NodeType);
- AssertEquals('Power has correct result',8.0,FN.NodeValue.ResFloat, 1e-9);
- finally
- FN.Free;
- end;
- end;
- Function TTestPowerNode_TestCreateDateTime : TTestString;
- var
- FN : TFPPowerOperation;
- D,T : TDateTime;
- begin
- Result:='';
- D:=Date;
- T:=Time;
- FN:=TFPPowerOperation.Create(CreateDateTimeNode(D+T),CreateDateTimeNode(T));
- try
- AssertNodeNotOK('No datetime Power',FN);
- finally
- FN.Free;
- end;
- end;
- Function TTestPowerNode_TestCreateString : TTestString;
- var
- FN : TFPPowerOperation;
- begin
- Result:='';
- FN:=TFPPowerOperation.Create(CreateStringNode('alo'),CreateStringNode('ha'));
- try
- AssertNodeNotOK('No string Power',FN);
- finally
- FN.Free;
- end;
- end;
- Function TTestPowerNode_TestCreateBoolean : TTestString;
- var
- FN : TFPPowerOperation;
- begin
- Result:='';
- FN:=TFPPowerOperation.Create(CreateBoolNode(True),CreateBoolNode(False));
- try
- AssertNodeNotOK('No boolean Power',FN);
- finally
- FN.Free;
- end;
- end;
- Function TTestPowerNode_TestDestroy : TTestString;
- var
- FN : TFPPowerOperation;
- begin
- Result:='';
- FDestroyCalled := 0;
- FN:=TFPPowerOperation.Create(TMyDestroyNode.CreateInteger(1),TMyDestroyNode.CreateInteger(1));
- FN.Free;
- AssertEquals('Destroy called for left and right nodes',2,FDestroyCalled);
- end;
- Function TTestPowerNode_TestAsString : TTestString;
- var
- FN : TFPPowerOperation;
- begin
- Result:='';
- FN:=TFPPowerOperation.Create(CreateIntNode(1),CreateIntNode(2));
- try
- AssertEquals('Asstring works ok','1^2',FN.AsString);
- finally
- FN.Free;
- end;
- end;
- Function TTestDivideNode_TestCreateInteger : TTestString;
- var
- FN : TFPDivideOperation;
- begin
- Result:='';
- FN:=TFPDivideOperation.Create(CreateIntNode(4),CreateIntNode(2));
- try
- AssertEquals('Divide has correct type',rtfloat,FN.NodeType);
- AssertEquals('Divide has correct result',2.0,FN.NodeValue.ResFloat, 1e-9);
- finally
- FN.Free;
- end;
- end;
- Function TTestDivideNode_TestCreateFloat : TTestString;
- var
- FN : TFPDivideOperation;
- begin
- Result:='';
- FN:=TFPDivideOperation.Create(CreateFloatNode(9.0),CreateFloatNode(3.0));
- try
- AssertEquals('Divide has correct type',rtFloat,FN.NodeType);
- AssertEquals('Divide has correct result',3.0,FN.NodeValue.ResFloat, 1e-9);
- finally
- FN.Free;
- end;
- end;
- Function TTestDivideNode_TestCreateDateTime : TTestString;
- var
- FN : TFPDivideOperation;
- D,T : TDateTime;
- begin
- Result:='';
- D:=Date;
- T:=Time;
- FN:=TFPDivideOperation.Create(CreateDateTimeNode(D+T),CreateDateTimeNode(T));
- try
- AssertNodeNotOK('No datetime division',FN);
- finally
- FN.Free;
- end;
- end;
- Function TTestDivideNode_TestCreateString : TTestString;
- var
- FN : TFPDivideOperation;
- begin
- Result:='';
- FN:=TFPDivideOperation.Create(CreateStringNode('alo'),CreateStringNode('ha'));
- try
- AssertNodeNotOK('No string division',FN);
- finally
- FN.Free;
- end;
- end;
- Function TTestDivideNode_TestCreateBoolean : TTestString;
- var
- FN : TFPDivideOperation;
- begin
- Result:='';
- FN:=TFPDivideOperation.Create(CreateBoolNode(True),CreateBoolNode(False));
- try
- AssertNodeNotOK('No boolean division',FN);
- finally
- FN.Free;
- end;
- end;
- Function TTestDivideNode_TestDestroy : TTestString;
- var
- FN : TFPDivideOperation;
- begin
- Result:='';
- FDestroyCalled := 0;
- FN:=TFPDivideOperation.Create(TMyDestroyNode.CreateInteger(1),TMyDestroyNode.CreateInteger(1));
- FN.Free;
- AssertEquals('Destroy called for left and right nodes',2,FDestroyCalled);
- end;
- Function TTestDivideNode_TestAsString : TTestString;
- var
- FN : TFPDivideOperation;
- begin
- Result:='';
- FN:=TFPDivideOperation.Create(CreateIntNode(1),CreateIntNode(2));
- try
- AssertEquals('Asstring works ok','1 / 2',FN.AsString);
- finally
- FN.Free;
- end;
- end;
- procedure RegisterTests(aTop: PSuite);
- var
- lParentSuite,lSuite : PSuite;
- begin
- lParentSuite:=AddSuite('TExprParsNodes', @SuiteSetup, @SuiteTearDown, aTop);
- AddTest('TestDestroyNode', @TestDestroyNode_TestDestroy, 'TExprParsNodes');
- lSuite:=AddSuite('TestConstExprNode', @SuiteSetup, @SuiteTearDown,lParentSuite,True);
- AddTest('TestConstCreateInteger', @TestConstExprNode_TestCreateInteger, lSuite);
- AddTest('TestConstCreateFloat', @TestConstExprNode_TestCreateFloat, lSuite);
- AddTest('TestConstCreateBoolean', @TestConstExprNode_TestCreateBoolean, lSuite);
- AddTest('TestConstCreateDateTime', @TestConstExprNode_TestCreateDateTime, lSuite);
- AddTest('TestConstCreateString', @TestConstExprNode_TestCreateString, lSuite);
- lSuite:=AddSuite('TestNegateExprNode', @SuiteSetup, @SuiteTearDown,lParentSuite,True);
- AddTest('TestNegateCreateInteger', @TestNegateExprNode_TestCreateInteger, lSuite);
- AddTest('TestNegateCreateFloat', @TestNegateExprNode_TestCreateFloat, lSuite);
- AddTest('TestNegateCreateOther1', @TestNegateExprNode_TestCreateOther1, lSuite);
- AddTest('TestNegateCreateOther2', @TestNegateExprNode_TestCreateOther2, lSuite);
- AddTest('TestNegateDestroy', @TestNegateExprNode_TestDestroy, lSuite);
- lSuite:=AddSuite('TestBinaryAndNode', @SuiteSetup, @SuiteTearDown,lParentSuite,True);
- AddTest('TestBinaryAndCreateInteger', @TestBinaryAndNode_TestCreateInteger, lSuite);
- AddTest('TestBinaryAndCreateBoolean', @TestBinaryAndNode_TestCreateBoolean, lSuite);
- AddTest('TestBinaryAndCreateBooleanInteger', @TestBinaryAndNode_TestCreateBooleanInteger, lSuite);
- AddTest('TestBinaryAndCreateString', @TestBinaryAndNode_TestCreateString, lSuite);
- AddTest('TestBinaryAndCreateFloat', @TestBinaryAndNode_TestCreateFloat, lSuite);
- AddTest('TestBinaryAndCreateDateTime', @TestBinaryAndNode_TestCreateDateTime, lSuite);
- AddTest('TestBinaryAndDestroy', @TestBinaryAndNode_TestDestroy, lSuite);
- lSuite:=AddSuite('TestNotNode', @SuiteSetup, @SuiteTearDown,lParentSuite,True);
- AddTest('TestNotCreateInteger', @TestNotNode_TestCreateInteger, lSuite);
- AddTest('TestNotCreateBoolean', @TestNotNode_TestCreateBoolean, lSuite);
- AddTest('TestNotCreateString', @TestNotNode_TestCreateString, lSuite);
- AddTest('TestNotCreateFloat', @TestNotNode_TestCreateFloat, lSuite);
- AddTest('TestNotCreateDateTime', @TestNotNode_TestCreateDateTime, lSuite);
- AddTest('TestNotDestroy', @TestNotNode_TestDestroy, lSuite);
- lSuite:=AddSuite('TestBinaryOrNode', @SuiteSetup, @SuiteTearDown,lParentSuite,True);
- AddTest('TestBinaryOrCreateInteger', @TestBinaryOrNode_TestCreateInteger, lSuite);
- AddTest('TestBinaryOrCreateBoolean', @TestBinaryOrNode_TestCreateBoolean, lSuite);
- AddTest('TestBinaryOrCreateBooleanInteger', @TestBinaryOrNode_TestCreateBooleanInteger, lSuite);
- AddTest('TestBinaryOrCreateString', @TestBinaryOrNode_TestCreateString, lSuite);
- AddTest('TestBinaryOrCreateFloat', @TestBinaryOrNode_TestCreateFloat, lSuite);
- AddTest('TestBinaryOrCreateDateTime', @TestBinaryOrNode_TestCreateDateTime, lSuite);
- AddTest('TestBinaryOrDestroy', @TestBinaryOrNode_TestDestroy, lSuite);
- AddTest('TestBinaryXorCreateInteger', @TestBinaryXorNode_TestCreateInteger, lSuite);
- AddTest('TestBinaryXorCreateBoolean', @TestBinaryXorNode_TestCreateBoolean, lSuite);
- AddTest('TestBinaryXorCreateBooleanInteger', @TestBinaryXorNode_TestCreateBooleanInteger, lSuite);
- AddTest('TestBinaryXorCreateString', @TestBinaryXorNode_TestCreateString, lSuite);
- AddTest('TestBinaryXorCreateFloat', @TestBinaryXorNode_TestCreateFloat, lSuite);
- AddTest('TestBinaryXorCreateDateTime', @TestBinaryXorNode_TestCreateDateTime, lSuite);
- AddTest('TestBinaryXorDestroy', @TestBinaryXorNode_TestDestroy, lSuite);
- lSuite:=AddSuite('TestEqualNode', @SuiteSetup, @SuiteTearDown,lParentSuite,True);
- AddTest('TestEqualCreateIntegerEqual', @TestEqualNode_TestCreateIntegerEqual, lSuite);
- AddTest('TestEqualCreateIntegerUnEqual', @TestEqualNode_TestCreateIntegerUnEqual, lSuite);
- AddTest('TestEqualCreateFloatEqual', @TestEqualNode_TestCreateFloatEqual, lSuite);
- AddTest('TestEqualCreateFloatUnEqual', @TestEqualNode_TestCreateFloatUnEqual, lSuite);
- AddTest('TestEqualCreateStringEqual', @TestEqualNode_TestCreateStringEqual, lSuite);
- AddTest('TestEqualCreateStringUnEqual', @TestEqualNode_TestCreateStringUnEqual, lSuite);
- AddTest('TestEqualCreateBooleanEqual', @TestEqualNode_TestCreateBooleanEqual, lSuite);
- AddTest('TestEqualCreateBooleanUnEqual', @TestEqualNode_TestCreateBooleanUnEqual, lSuite);
- AddTest('TestEqualCreateDateTimeEqual', @TestEqualNode_TestCreateDateTimeEqual, lSuite);
- AddTest('TestEqualCreateDateTimeUnEqual', @TestEqualNode_TestCreateDateTimeUnEqual, lSuite);
- AddTest('TestEqualDestroy', @TestEqualNode_TestDestroy, lSuite);
- AddTest('TestEqualWrongTypes1', @TestEqualNode_TestWrongTypes1, lSuite);
- AddTest('TestEqualWrongTypes2', @TestEqualNode_TestWrongTypes2, lSuite);
- AddTest('TestEqualWrongTypes3', @TestEqualNode_TestWrongTypes3, lSuite);
- AddTest('TestEqualWrongTypes4', @TestEqualNode_TestWrongTypes4, lSuite);
- AddTest('TestEqualWrongTypes5', @TestEqualNode_TestWrongTypes5, lSuite);
- AddTest('TestEqualAsString', @TestEqualNode_TestAsString, lSuite);
- lSuite:=AddSuite('TestUnEqualNode', @SuiteSetup, @SuiteTearDown,lParentSuite,True);
- AddTest('TestUnEqualCreateIntegerEqual', @TestUnEqualNode_TestCreateIntegerEqual, lSuite);
- AddTest('TestUnEqualCreateIntegerUnEqual', @TestUnEqualNode_TestCreateIntegerUnEqual, lSuite);
- AddTest('TestUnEqualCreateFloatEqual', @TestUnEqualNode_TestCreateFloatEqual, lSuite);
- AddTest('TestUnEqualCreateFloatUnEqual', @TestUnEqualNode_TestCreateFloatUnEqual, lSuite);
- AddTest('TestUnEqualCreateStringEqual', @TestUnEqualNode_TestCreateStringEqual, lSuite);
- AddTest('TestUnEqualCreateStringUnEqual', @TestUnEqualNode_TestCreateStringUnEqual, lSuite);
- AddTest('TestUnEqualCreateBooleanEqual', @TestUnEqualNode_TestCreateBooleanEqual, lSuite);
- AddTest('TestUnEqualCreateBooleanUnEqual', @TestUnEqualNode_TestCreateBooleanUnEqual, lSuite);
- AddTest('TestUnEqualCreateDateTimeEqual', @TestUnEqualNode_TestCreateDateTimeEqual, lSuite);
- AddTest('TestUnEqualCreateDateTimeUnEqual', @TestUnEqualNode_TestCreateDateTimeUnEqual, lSuite);
- AddTest('TestUnEqualDestroy', @TestUnEqualNode_TestDestroy, lSuite);
- AddTest('TestUnEqualWrongTypes1', @TestUnEqualNode_TestWrongTypes1, lSuite);
- AddTest('TestUnEqualWrongTypes2', @TestUnEqualNode_TestWrongTypes2, lSuite);
- AddTest('TestUnEqualWrongTypes3', @TestUnEqualNode_TestWrongTypes3, lSuite);
- AddTest('TestUnEqualWrongTypes4', @TestUnEqualNode_TestWrongTypes4, lSuite);
- AddTest('TestUnEqualWrongTypes5', @TestUnEqualNode_TestWrongTypes5, lSuite);
- AddTest('TestUnEqualAsString', @TestUnEqualNode_TestAsString, lSuite);
- lSuite:=AddSuite('TestLessThanNode', @SuiteSetup, @SuiteTearDown,lParentSuite,True);
- AddTest('TestLessThanCreateDateTimeSmaller',@TestLessThanNode_TestCreateDateTimeSmaller, lSuite);
- AddTest('TestLessThanCreateDateTimeLarger',@TestLessThanNode_TestCreateDateTimeLarger, lSuite);
- AddTest('TestLessThanCreateStringEqual',@TestLessThanNode_TestCreateStringEqual, lSuite);
- AddTest('TestLessThanCreateStringSmaller',@TestLessThanNode_TestCreateStringSmaller, lSuite);
- AddTest('TestLessThanCreateStringLarger',@TestLessThanNode_TestCreateStringLarger, lSuite);
- AddTest('TestLessThanWrongTypes1',@TestLessThanNode_TestWrongTypes1, lSuite);
- AddTest('TestLessThanWrongTypes2',@TestLessThanNode_TestWrongTypes2, lSuite);
- AddTest('TestLessThanWrongTypes3',@TestLessThanNode_TestWrongTypes3, lSuite);
- AddTest('TestLessThanWrongTypes4',@TestLessThanNode_TestWrongTypes4, lSuite);
- AddTest('TestLessThanWrongTypes5',@TestLessThanNode_TestWrongTypes5, lSuite);
- AddTest('TestLessThanNoBoolean1',@TestLessThanNode_TestNoBoolean1, lSuite);
- AddTest('TestLessThanNoBoolean2',@TestLessThanNode_TestNoBoolean2, lSuite);
- AddTest('TestLessThanNoBoolean3',@TestLessThanNode_TestNoBoolean3, lSuite);
- AddTest('TestLessThanAsString',@TestLessThanNode_TestAsString, lSuite);
- lSuite:=AddSuite('TestLessThanEqualNode', @SuiteSetup, @SuiteTearDown,lParentSuite,True);
- AddTest('TestLessThanEqualCreateDateTimeSmaller',@TestLessThanEqualNode_TestCreateDateTimeSmaller, lSuite);
- AddTest('TestLessThanEqualCreateDateTimeLarger',@TestLessThanEqualNode_TestCreateDateTimeLarger, lSuite);
- AddTest('TestLessThanEqualCreateStringEqual',@TestLessThanEqualNode_TestCreateStringEqual, lSuite);
- AddTest('TestLessThanEqualCreateStringSmaller',@TestLessThanEqualNode_TestCreateStringSmaller, lSuite);
- AddTest('TestLessThanEqualCreateStringLarger',@TestLessThanEqualNode_TestCreateStringLarger, lSuite);
- AddTest('TestLessThanEqualWrongTypes1',@TestLessThanEqualNode_TestWrongTypes1, lSuite);
- AddTest('TestLessThanEqualWrongTypes2',@TestLessThanEqualNode_TestWrongTypes2, lSuite);
- AddTest('TestLessThanEqualWrongTypes3',@TestLessThanEqualNode_TestWrongTypes3, lSuite);
- AddTest('TestLessThanEqualWrongTypes4',@TestLessThanEqualNode_TestWrongTypes4, lSuite);
- AddTest('TestLessThanEqualWrongTypes5',@TestLessThanEqualNode_TestWrongTypes5, lSuite);
- AddTest('TestLessThanEqualNoBoolean1',@TestLessThanEqualNode_TestNoBoolean1, lSuite);
- AddTest('TestLessThanEqualNoBoolean2',@TestLessThanEqualNode_TestNoBoolean2, lSuite);
- AddTest('TestLessThanEqualNoBoolean3',@TestLessThanEqualNode_TestNoBoolean3, lSuite);
- AddTest('TestLessThanEqualAsString',@TestLessThanEqualNode_TestAsString, lSuite);
- lSuite:=AddSuite('TestLargerThanNode', @SuiteSetup, @SuiteTearDown,lParentSuite,True);
- AddTest('TestLargerThanCreateDateTimeSmaller',@TestLargerThanNode_TestCreateDateTimeSmaller, lSuite);
- AddTest('TestLargerThanCreateDateTimeLarger',@TestLargerThanNode_TestCreateDateTimeLarger, lSuite);
- AddTest('TestLargerThanCreateStringEqual',@TestLargerThanNode_TestCreateStringEqual, lSuite);
- AddTest('TestLargerThanCreateStringSmaller',@TestLargerThanNode_TestCreateStringSmaller, lSuite);
- AddTest('TestLargerThanCreateStringLarger',@TestLargerThanNode_TestCreateStringLarger, lSuite);
- AddTest('TestLargerThanWrongTypes1',@TestLargerThanNode_TestWrongTypes1, lSuite);
- AddTest('TestLargerThanWrongTypes2',@TestLargerThanNode_TestWrongTypes2, lSuite);
- AddTest('TestLargerThanWrongTypes3',@TestLargerThanNode_TestWrongTypes3, lSuite);
- AddTest('TestLargerThanWrongTypes4',@TestLargerThanNode_TestWrongTypes4, lSuite);
- AddTest('TestLargerThanWrongTypes5',@TestLargerThanNode_TestWrongTypes5, lSuite);
- AddTest('TestLargerThanNoBoolean1',@TestLargerThanNode_TestNoBoolean1, lSuite);
- AddTest('TestLargerThanNoBoolean2',@TestLargerThanNode_TestNoBoolean2, lSuite);
- AddTest('TestLargerThanNoBoolean3',@TestLargerThanNode_TestNoBoolean3, lSuite);
- AddTest('TestLargerThanAsString',@TestLargerThanNode_TestAsString, lSuite);
- lSuite:=AddSuite('TestLargerThanEqualNode', @SuiteSetup, @SuiteTearDown,lParentSuite,True);
- AddTest('TestLargerThanEqualCreateDateTimeSmaller',@TestLargerThanEqualNode_TestCreateDateTimeSmaller, lSuite);
- AddTest('TestLargerThanEqualCreateDateTimeLarger',@TestLargerThanEqualNode_TestCreateDateTimeLarger, lSuite);
- AddTest('TestLargerThanEqualCreateStringEqual',@TestLargerThanEqualNode_TestCreateStringEqual, lSuite);
- AddTest('TestLargerThanEqualCreateStringSmaller',@TestLargerThanEqualNode_TestCreateStringSmaller, lSuite);
- AddTest('TestLargerThanEqualCreateStringLarger',@TestLargerThanEqualNode_TestCreateStringLarger, lSuite);
- AddTest('TestLargerThanEqualWrongTypes1',@TestLargerThanEqualNode_TestWrongTypes1, lSuite);
- AddTest('TestLargerThanEqualWrongTypes2',@TestLargerThanEqualNode_TestWrongTypes2, lSuite);
- AddTest('TestLargerThanEqualWrongTypes3',@TestLargerThanEqualNode_TestWrongTypes3, lSuite);
- AddTest('TestLargerThanEqualWrongTypes4',@TestLargerThanEqualNode_TestWrongTypes4, lSuite);
- AddTest('TestLargerThanEqualWrongTypes5',@TestLargerThanEqualNode_TestWrongTypes5, lSuite);
- AddTest('TestLargerThanEqualNoBoolean1',@TestLargerThanEqualNode_TestNoBoolean1, lSuite);
- AddTest('TestLargerThanEqualNoBoolean2',@TestLargerThanEqualNode_TestNoBoolean2, lSuite);
- AddTest('TestLargerThanEqualNoBoolean3',@TestLargerThanEqualNode_TestNoBoolean3, lSuite);
- AddTest('TestLargerThanEqualAsString',@TestLargerThanEqualNode_TestAsString, lSuite);
- lSuite:=AddSuite('TTestAddNode', @SuiteSetup, @SuiteTearDown,lParentSuite,True);
- AddTest('TestAddNode_CreateInteger', @TTestAddNode_TestCreateInteger, lSuite);
- AddTest('TestAddNode_CreateFloat', @TTestAddNode_TestCreateFloat, lSuite);
- AddTest('TestAddNode_CreateDateTime', @TTestAddNode_TestCreateDateTime, lSuite);
- AddTest('TestAddNode_CreateString', @TTestAddNode_TestCreateString, lSuite);
- AddTest('TestAddNode_CreateBoolean', @TTestAddNode_TestCreateBoolean, lSuite);
- AddTest('TestAddNode_Destroy', @TTestAddNode_TestDestroy, lSuite);
- AddTest('TestAddNode_AsString', @TTestAddNode_TestAsString, lSuite);
- lSuite:=AddSuite('TTestSubtractNode', @SuiteSetup, @SuiteTearDown,lParentSuite,True);
- AddTest('TestSubtractNode_CreateInteger', @TTestSubtractNode_TestCreateInteger, lSuite);
- AddTest('TestSubtractNode_CreateFloat', @TTestSubtractNode_TestCreateFloat, lSuite);
- AddTest('TestSubtractNode_CreateDateTime', @TTestSubtractNode_TestCreateDateTime, lSuite);
- AddTest('TestSubtractNode_CreateString', @TTestSubtractNode_TestCreateString, lSuite);
- AddTest('TestSubtractNode_CreateBoolean', @TTestSubtractNode_TestCreateBoolean, lSuite);
- AddTest('TestSubtractNode_Destroy', @TTestSubtractNode_TestDestroy, lSuite);
- AddTest('TestSubtractNode_AsString', @TTestSubtractNode_TestAsString, lSuite);
- lSuite:=AddSuite('TTestMultiplyNode', @SuiteSetup, @SuiteTearDown,lParentSuite,True);
- AddTest('TestMultiplyNode_CreateInteger', @TTestMultiplyNode_TestCreateInteger, lSuite);
- AddTest('TestMultiplyNode_CreateFloat', @TTestMultiplyNode_TestCreateFloat, lSuite);
- AddTest('TestMultiplyNode_CreateDateTime', @TTestMultiplyNode_TestCreateDateTime, lSuite);
- AddTest('TestMultiplyNode_CreateString', @TTestMultiplyNode_TestCreateString, lSuite);
- AddTest('TestMultiplyNode_CreateBoolean', @TTestMultiplyNode_TestCreateBoolean, lSuite);
- AddTest('TestMultiplyNode_Destroy', @TTestMultiplyNode_TestDestroy, lSuite);
- AddTest('TestMultiplyNode_AsString', @TTestMultiplyNode_TestAsString, lSuite);
- lSuite:=AddSuite('TTestPowerNode', @SuiteSetup, @SuiteTearDown,lParentSuite,True);
- AddTest('TestPowerNode_CreateInteger', @TTestPowerNode_TestCreateInteger, lSuite);
- AddTest('TestPowerNode_CreateFloat', @TTestPowerNode_TestCreateFloat, lSuite);
- AddTest('TestPowerNode_CreateDateTime', @TTestPowerNode_TestCreateDateTime, lSuite);
- AddTest('TestPowerNode_CreateString', @TTestPowerNode_TestCreateString, lSuite);
- AddTest('TestPowerNode_CreateBoolean', @TTestPowerNode_TestCreateBoolean, lSuite);
- AddTest('TestPowerNode_Destroy', @TTestPowerNode_TestDestroy, lSuite);
- AddTest('TestPowerNode_AsString', @TTestPowerNode_TestAsString, lSuite);
- lSuite:=AddSuite('TTestDivideNode', @SuiteSetup, @SuiteTearDown,lParentSuite,True);
- AddTest('TestDivideNode_CreateInteger', @TTestDivideNode_TestCreateInteger, lSuite);
- AddTest('TestDivideNode_CreateFloat', @TTestDivideNode_TestCreateFloat, lSuite);
- AddTest('TestDivideNode_CreateDateTime', @TTestDivideNode_TestCreateDateTime, lSuite);
- AddTest('TestDivideNode_CreateString', @TTestDivideNode_TestCreateString, lSuite);
- AddTest('TestDivideNode_CreateBoolean', @TTestDivideNode_TestCreateBoolean, lSuite);
- AddTest('TestDivideNode_Destroy', @TTestDivideNode_TestDestroy, lSuite);
- AddTest('TestDivideNode_AsString', @TTestDivideNode_TestAsString, lSuite);
- end;
- end.
|