unit uutlSetHelperTests; {$mode objfpc}{$H+} interface uses Classes, SysUtils, TestFramework; type //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// TutlSetHelperTests = class(TTestCase) published procedure proc_ToString; procedure proc_TryToSet; procedure proc_Compare; end; implementation uses uutlGenerics; type TSetHelperTestEnum = ( teTest0 = 0, teTest1 = 1, teTest2 = 2, teTest3 = 3, teTest4 = 4, teTest5 = 5, teTest8 = 8, teTest9 = 9 ); TSetHelperTestSet = set of TSetHelperTestEnum; TSetHelperTestSetH = specialize TutlSetHelper; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //TutlSetHelperTests//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// procedure TutlSetHelperTests.proc_ToString; var str: String; begin str := TSetHelperTestSetH.ToString([teTest0, teTest1, teTest2, teTest3, teTest4, teTest8]); AssertEquals('teTest0, teTest1, teTest2, teTest3, teTest4, teTest8', str); str := TSetHelperTestSetH.ToString([teTest0, teTest1, teTest2, teTest3, teTest4, teTest8], '_'); AssertEquals('teTest0_teTest1_teTest2_teTest3_teTest4_teTest8', str); end; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// procedure TutlSetHelperTests.proc_TryToSet; var s: TSetHelperTestSet; begin AssertTrue(TSetHelperTestSetH.TryToSet('teTest0, teTest1, teTest2, teTest3, teTest8, teTest9', s)); AssertTrue([teTest0, teTest1, teTest2, teTest3, teTest8, teTest9] = s); AssertTrue(TSetHelperTestSetH.TryToSet('teTest0_asd_teTest1_asd_teTest2_asd_teTest3_asd_teTest8_asd_teTest9', '_asd_', s)); AssertTrue([teTest0, teTest1, teTest2, teTest3, teTest8, teTest9] = s); end; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// procedure TutlSetHelperTests.proc_Compare; begin AssertEquals( 0, TSetHelperTestSetH.Compare([teTest0, teTest1, teTest2], [teTest0, teTest1, teTest2])); AssertEquals(-1, TSetHelperTestSetH.Compare([ teTest1, teTest2], [teTest0, teTest1, teTest2])); AssertEquals( 1, TSetHelperTestSetH.Compare([teTest0, teTest1, teTest2], [teTest0, teTest2])); end; initialization RegisterTest(TutlSetHelperTests.Suite); end.