@@ -4,20 +4,20 @@ | |||
<PathDelim Value="\"/> | |||
<Version Value="10"/> | |||
<BuildModes Active="Default"/> | |||
<Units Count="65"> | |||
<Units Count="66"> | |||
<Unit0> | |||
<Filename Value="tests.lpr"/> | |||
<IsPartOfProject Value="True"/> | |||
<EditorIndex Value="-1"/> | |||
<CursorPos X="54" Y="12"/> | |||
<UsageCount Value="78"/> | |||
<UsageCount Value="79"/> | |||
</Unit0> | |||
<Unit1> | |||
<Filename Value="..\uutlGenerics.pas"/> | |||
<IsPartOfProject Value="True"/> | |||
<TopLine Value="1620"/> | |||
<CursorPos X="16" Y="1635"/> | |||
<UsageCount Value="78"/> | |||
<TopLine Value="173"/> | |||
<CursorPos X="30" Y="188"/> | |||
<UsageCount Value="79"/> | |||
<Loaded Value="True"/> | |||
</Unit1> | |||
<Unit2> | |||
@@ -25,7 +25,7 @@ | |||
<IsPartOfProject Value="True"/> | |||
<EditorIndex Value="-1"/> | |||
<CursorPos X="11" Y="13"/> | |||
<UsageCount Value="78"/> | |||
<UsageCount Value="79"/> | |||
</Unit2> | |||
<Unit3> | |||
<Filename Value="..\uutlCommon.pas"/> | |||
@@ -33,14 +33,16 @@ | |||
<EditorIndex Value="-1"/> | |||
<TopLine Value="206"/> | |||
<CursorPos X="10" Y="225"/> | |||
<UsageCount Value="78"/> | |||
<UsageCount Value="79"/> | |||
</Unit3> | |||
<Unit4> | |||
<Filename Value="..\uutlListBase.pas"/> | |||
<IsPartOfProject Value="True"/> | |||
<EditorIndex Value="-1"/> | |||
<CursorPos X="26" Y="24"/> | |||
<UsageCount Value="78"/> | |||
<EditorIndex Value="1"/> | |||
<TopLine Value="79"/> | |||
<CursorPos X="8" Y="100"/> | |||
<UsageCount Value="79"/> | |||
<Loaded Value="True"/> | |||
</Unit4> | |||
<Unit5> | |||
<Filename Value="uutlListTest.pas"/> | |||
@@ -49,7 +51,7 @@ | |||
<WindowIndex Value="1"/> | |||
<TopLine Value="357"/> | |||
<CursorPos X="7" Y="376"/> | |||
<UsageCount Value="78"/> | |||
<UsageCount Value="79"/> | |||
</Unit5> | |||
<Unit6> | |||
<Filename Value="uutlQueueTests.pas"/> | |||
@@ -57,7 +59,7 @@ | |||
<EditorIndex Value="-1"/> | |||
<TopLine Value="250"/> | |||
<CursorPos X="49" Y="260"/> | |||
<UsageCount Value="78"/> | |||
<UsageCount Value="79"/> | |||
</Unit6> | |||
<Unit7> | |||
<Filename Value="uutlStackTests.pas"/> | |||
@@ -65,21 +67,21 @@ | |||
<EditorIndex Value="-1"/> | |||
<TopLine Value="246"/> | |||
<CursorPos X="24" Y="263"/> | |||
<UsageCount Value="78"/> | |||
<UsageCount Value="79"/> | |||
</Unit7> | |||
<Unit8> | |||
<Filename Value="uTestHelper.pas"/> | |||
<IsPartOfProject Value="True"/> | |||
<EditorIndex Value="-1"/> | |||
<CursorPos X="3" Y="12"/> | |||
<UsageCount Value="78"/> | |||
<UsageCount Value="79"/> | |||
</Unit8> | |||
<Unit9> | |||
<Filename Value="..\uutlComparer.pas"/> | |||
<IsPartOfProject Value="True"/> | |||
<EditorIndex Value="-1"/> | |||
<CursorPos X="90" Y="6"/> | |||
<UsageCount Value="68"/> | |||
<UsageCount Value="69"/> | |||
</Unit9> | |||
<Unit10> | |||
<Filename Value="..\uutlAlgorithm.pas"/> | |||
@@ -87,22 +89,22 @@ | |||
<EditorIndex Value="-1"/> | |||
<TopLine Value="138"/> | |||
<CursorPos Y="153"/> | |||
<UsageCount Value="78"/> | |||
<UsageCount Value="79"/> | |||
</Unit10> | |||
<Unit11> | |||
<Filename Value="uutlHashSetTests.pas"/> | |||
<IsPartOfProject Value="True"/> | |||
<EditorIndex Value="-1"/> | |||
<CursorPos X="32" Y="13"/> | |||
<UsageCount Value="78"/> | |||
<UsageCount Value="79"/> | |||
</Unit11> | |||
<Unit12> | |||
<Filename Value="uutlAlgorithmTests.pas"/> | |||
<IsPartOfProject Value="True"/> | |||
<EditorIndex Value="6"/> | |||
<EditorIndex Value="8"/> | |||
<TopLine Value="72"/> | |||
<CursorPos X="43" Y="87"/> | |||
<UsageCount Value="77"/> | |||
<UsageCount Value="78"/> | |||
<Loaded Value="True"/> | |||
</Unit12> | |||
<Unit13> | |||
@@ -111,24 +113,26 @@ | |||
<EditorIndex Value="-1"/> | |||
<TopLine Value="206"/> | |||
<CursorPos X="66" Y="221"/> | |||
<UsageCount Value="76"/> | |||
<UsageCount Value="77"/> | |||
</Unit13> | |||
<Unit14> | |||
<Filename Value="..\uutlEnumerator.pas"/> | |||
<IsPartOfProject Value="True"/> | |||
<EditorIndex Value="5"/> | |||
<TopLine Value="128"/> | |||
<CursorPos X="15" Y="135"/> | |||
<UsageCount Value="75"/> | |||
<EditorIndex Value="6"/> | |||
<TopLine Value="324"/> | |||
<CursorPos X="42" Y="340"/> | |||
<UsageCount Value="76"/> | |||
<Loaded Value="True"/> | |||
</Unit14> | |||
<Unit15> | |||
<Filename Value="uutlEnumeratorTests.pas"/> | |||
<IsPartOfProject Value="True"/> | |||
<EditorIndex Value="-1"/> | |||
<TopLine Value="49"/> | |||
<CursorPos X="8" Y="66"/> | |||
<UsageCount Value="75"/> | |||
<IsVisibleTab Value="True"/> | |||
<EditorIndex Value="7"/> | |||
<TopLine Value="617"/> | |||
<CursorPos X="74" Y="634"/> | |||
<UsageCount Value="76"/> | |||
<Loaded Value="True"/> | |||
</Unit15> | |||
<Unit16> | |||
<Filename Value="..\uutlFilter.pas"/> | |||
@@ -136,41 +140,40 @@ | |||
<EditorIndex Value="-1"/> | |||
<TopLine Value="17"/> | |||
<CursorPos X="13" Y="159"/> | |||
<UsageCount Value="71"/> | |||
<UsageCount Value="72"/> | |||
</Unit16> | |||
<Unit17> | |||
<Filename Value="..\uutlInterfaces.pas"/> | |||
<IsPartOfProject Value="True"/> | |||
<EditorIndex Value="4"/> | |||
<TopLine Value="60"/> | |||
<CursorPos X="51" Y="77"/> | |||
<UsageCount Value="71"/> | |||
<EditorIndex Value="5"/> | |||
<TopLine Value="31"/> | |||
<CursorPos X="70" Y="47"/> | |||
<UsageCount Value="72"/> | |||
<Loaded Value="True"/> | |||
</Unit17> | |||
<Unit18> | |||
<Filename Value="..\uutlLinq.pas"/> | |||
<IsPartOfProject Value="True"/> | |||
<EditorIndex Value="2"/> | |||
<EditorIndex Value="3"/> | |||
<TopLine Value="391"/> | |||
<CursorPos X="31" Y="417"/> | |||
<UsageCount Value="62"/> | |||
<UsageCount Value="63"/> | |||
<Loaded Value="True"/> | |||
</Unit18> | |||
<Unit19> | |||
<Filename Value="uutlLinqTests.pas"/> | |||
<IsPartOfProject Value="True"/> | |||
<IsVisibleTab Value="True"/> | |||
<EditorIndex Value="3"/> | |||
<TopLine Value="632"/> | |||
<CursorPos X="30" Y="648"/> | |||
<UsageCount Value="62"/> | |||
<EditorIndex Value="4"/> | |||
<TopLine Value="622"/> | |||
<CursorPos X="23" Y="650"/> | |||
<UsageCount Value="63"/> | |||
<Loaded Value="True"/> | |||
</Unit19> | |||
<Unit20> | |||
<Filename Value="..\uutlTypes.pas"/> | |||
<IsPartOfProject Value="True"/> | |||
<EditorIndex Value="-1"/> | |||
<UsageCount Value="62"/> | |||
<UsageCount Value="63"/> | |||
</Unit20> | |||
<Unit21> | |||
<Filename Value="..\uutlSyncObjs.pas"/> | |||
@@ -178,7 +181,7 @@ | |||
<EditorIndex Value="-1"/> | |||
<TopLine Value="241"/> | |||
<CursorPos X="20" Y="263"/> | |||
<UsageCount Value="56"/> | |||
<UsageCount Value="57"/> | |||
</Unit21> | |||
<Unit22> | |||
<Filename Value="..\uutlLogger.pas"/> | |||
@@ -186,7 +189,7 @@ | |||
<EditorIndex Value="-1"/> | |||
<TopLine Value="419"/> | |||
<CursorPos X="55" Y="434"/> | |||
<UsageCount Value="54"/> | |||
<UsageCount Value="55"/> | |||
</Unit22> | |||
<Unit23> | |||
<Filename Value="..\uutlXmlHelper.pas"/> | |||
@@ -194,7 +197,7 @@ | |||
<EditorIndex Value="-1"/> | |||
<TopLine Value="188"/> | |||
<CursorPos X="26" Y="203"/> | |||
<UsageCount Value="55"/> | |||
<UsageCount Value="56"/> | |||
</Unit23> | |||
<Unit24> | |||
<Filename Value="..\uutlStreamHelper.pas"/> | |||
@@ -202,7 +205,7 @@ | |||
<EditorIndex Value="-1"/> | |||
<TopLine Value="216"/> | |||
<CursorPos X="10" Y="241"/> | |||
<UsageCount Value="54"/> | |||
<UsageCount Value="55"/> | |||
</Unit24> | |||
<Unit25> | |||
<Filename Value="..\uutlCompression.pas"/> | |||
@@ -211,7 +214,7 @@ | |||
<WindowIndex Value="-1"/> | |||
<TopLine Value="-1"/> | |||
<CursorPos X="-1" Y="-1"/> | |||
<UsageCount Value="54"/> | |||
<UsageCount Value="55"/> | |||
</Unit25> | |||
<Unit26> | |||
<Filename Value="..\uutlEmbeddedProfiler.pas"/> | |||
@@ -220,7 +223,7 @@ | |||
<WindowIndex Value="-1"/> | |||
<TopLine Value="-1"/> | |||
<CursorPos X="-1" Y="-1"/> | |||
<UsageCount Value="54"/> | |||
<UsageCount Value="55"/> | |||
</Unit26> | |||
<Unit27> | |||
<Filename Value="..\uutlKeyCodes.pas"/> | |||
@@ -229,7 +232,7 @@ | |||
<WindowIndex Value="-1"/> | |||
<TopLine Value="-1"/> | |||
<CursorPos X="-1" Y="-1"/> | |||
<UsageCount Value="54"/> | |||
<UsageCount Value="55"/> | |||
</Unit27> | |||
<Unit28> | |||
<Filename Value="..\uutlMCF.pas"/> | |||
@@ -238,7 +241,7 @@ | |||
<WindowIndex Value="-1"/> | |||
<TopLine Value="-1"/> | |||
<CursorPos X="-1" Y="-1"/> | |||
<UsageCount Value="54"/> | |||
<UsageCount Value="55"/> | |||
</Unit28> | |||
<Unit29> | |||
<Filename Value="..\uutlSScanf.pas"/> | |||
@@ -247,7 +250,7 @@ | |||
<WindowIndex Value="-1"/> | |||
<TopLine Value="-1"/> | |||
<CursorPos X="-1" Y="-1"/> | |||
<UsageCount Value="54"/> | |||
<UsageCount Value="55"/> | |||
</Unit29> | |||
<Unit30> | |||
<Filename Value="..\uutlThreads.pas"/> | |||
@@ -256,14 +259,14 @@ | |||
<WindowIndex Value="-1"/> | |||
<TopLine Value="-1"/> | |||
<CursorPos X="-1" Y="-1"/> | |||
<UsageCount Value="54"/> | |||
<UsageCount Value="55"/> | |||
</Unit30> | |||
<Unit31> | |||
<Filename Value="..\uutlEvent.pas"/> | |||
<IsPartOfProject Value="True"/> | |||
<EditorIndex Value="-1"/> | |||
<CursorPos X="11" Y="35"/> | |||
<UsageCount Value="53"/> | |||
<UsageCount Value="54"/> | |||
</Unit31> | |||
<Unit32> | |||
<Filename Value="..\uutlEventManager.pas"/> | |||
@@ -271,7 +274,7 @@ | |||
<EditorIndex Value="-1"/> | |||
<TopLine Value="246"/> | |||
<CursorPos X="39" Y="264"/> | |||
<UsageCount Value="53"/> | |||
<UsageCount Value="54"/> | |||
</Unit32> | |||
<Unit33> | |||
<Filename Value="..\uutlObservable.pas"/> | |||
@@ -279,7 +282,7 @@ | |||
<EditorIndex Value="-1"/> | |||
<TopLine Value="556"/> | |||
<CursorPos X="45" Y="572"/> | |||
<UsageCount Value="53"/> | |||
<UsageCount Value="54"/> | |||
</Unit33> | |||
<Unit34> | |||
<Filename Value="uutlObservableListTests.pas"/> | |||
@@ -288,7 +291,7 @@ | |||
<WindowIndex Value="1"/> | |||
<TopLine Value="49"/> | |||
<CursorPos Y="65"/> | |||
<UsageCount Value="45"/> | |||
<UsageCount Value="46"/> | |||
</Unit34> | |||
<Unit35> | |||
<Filename Value="uutlObservableHashSetTests.pas"/> | |||
@@ -297,22 +300,22 @@ | |||
<WindowIndex Value="-1"/> | |||
<TopLine Value="129"/> | |||
<CursorPos Y="146"/> | |||
<UsageCount Value="25"/> | |||
<UsageCount Value="26"/> | |||
</Unit35> | |||
<Unit36> | |||
<Filename Value="uutlObservableMapTests.pas"/> | |||
<IsPartOfProject Value="True"/> | |||
<EditorIndex Value="-1"/> | |||
<CursorPos X="3" Y="13"/> | |||
<UsageCount Value="24"/> | |||
<UsageCount Value="25"/> | |||
</Unit36> | |||
<Unit37> | |||
<Filename Value="uutlSetHelperTests.pas"/> | |||
<IsPartOfProject Value="True"/> | |||
<EditorIndex Value="1"/> | |||
<EditorIndex Value="2"/> | |||
<TopLine Value="44"/> | |||
<CursorPos X="64" Y="54"/> | |||
<UsageCount Value="21"/> | |||
<UsageCount Value="22"/> | |||
<Loaded Value="True"/> | |||
</Unit37> | |||
<Unit38> | |||
@@ -507,6 +510,13 @@ | |||
<CursorPos X="12" Y="463"/> | |||
<UsageCount Value="11"/> | |||
</Unit64> | |||
<Unit65> | |||
<Filename Value="C:\Zusatzprogramme\Lazarus\components_extra\fptest\src\FPCUnitCompatibleInterface.inc"/> | |||
<EditorIndex Value="-1"/> | |||
<TopLine Value="53"/> | |||
<CursorPos X="104" Y="75"/> | |||
<UsageCount Value="10"/> | |||
</Unit65> | |||
</Units> | |||
<OtherDefines Count="3"> | |||
<Define0 Value="UTL_ADVANCED_ENUMERATORS"/> | |||
@@ -515,123 +525,124 @@ | |||
</OtherDefines> | |||
<JumpHistory Count="30" HistoryIndex="29"> | |||
<Position1> | |||
<Filename Value="uutlSetHelperTests.pas"/> | |||
<Caret Line="57" TopLine="44"/> | |||
<Filename Value="..\uutlGenerics.pas"/> | |||
<Caret Line="561" Column="7" TopLine="554"/> | |||
</Position1> | |||
<Position2> | |||
<Filename Value="..\uutlGenerics.pas"/> | |||
<Caret Line="1673" TopLine="1665"/> | |||
<Caret Line="545" Column="16" TopLine="531"/> | |||
</Position2> | |||
<Position3> | |||
<Filename Value="..\uutlGenerics.pas"/> | |||
<Caret Line="1685" TopLine="1665"/> | |||
<Caret Line="540" Column="13" TopLine="524"/> | |||
</Position3> | |||
<Position4> | |||
<Filename Value="uutlSetHelperTests.pas"/> | |||
<Caret Line="53" Column="36" TopLine="44"/> | |||
<Filename Value="..\uutlGenerics.pas"/> | |||
<Caret Line="31" Column="17" TopLine="15"/> | |||
</Position4> | |||
<Position5> | |||
<Filename Value="..\uutlGenerics.pas"/> | |||
<Caret Line="1674" TopLine="1665"/> | |||
<Caret Line="109" Column="5" TopLine="90"/> | |||
</Position5> | |||
<Position6> | |||
<Filename Value="..\uutlGenerics.pas"/> | |||
<Caret Line="1686" TopLine="1665"/> | |||
<Caret Line="748" Column="16" TopLine="745"/> | |||
</Position6> | |||
<Position7> | |||
<Filename Value="..\uutlGenerics.pas"/> | |||
<Caret Line="1688" TopLine="1665"/> | |||
<Caret Line="105" Column="17" TopLine="89"/> | |||
</Position7> | |||
<Position8> | |||
<Filename Value="..\uutlGenerics.pas"/> | |||
<Caret Line="1690" TopLine="1666"/> | |||
<Filename Value="uutlEnumeratorTests.pas"/> | |||
<Caret Line="55" Column="65" TopLine="35"/> | |||
</Position8> | |||
<Position9> | |||
<Filename Value="uutlSetHelperTests.pas"/> | |||
<Caret Line="64" Column="95" TopLine="43"/> | |||
<Filename Value="..\uutlListBase.pas"/> | |||
<Caret Line="34" Column="14" TopLine="10"/> | |||
</Position9> | |||
<Position10> | |||
<Filename Value="..\uutlInterfaces.pas"/> | |||
<Caret Line="65" Column="47" TopLine="24"/> | |||
<Filename Value="..\uutlListBase.pas"/> | |||
<Caret Line="97" Column="54" TopLine="86"/> | |||
</Position10> | |||
<Position11> | |||
<Filename Value="..\uutlGenerics.pas"/> | |||
<Caret Line="1692" TopLine="1668"/> | |||
<Filename Value="..\uutlListBase.pas"/> | |||
<Caret Line="182" Column="40" TopLine="164"/> | |||
</Position11> | |||
<Position12> | |||
<Filename Value="..\uutlGenerics.pas"/> | |||
<Caret Line="61" Column="47" TopLine="50"/> | |||
<Caret Line="109" Column="49" TopLine="95"/> | |||
</Position12> | |||
<Position13> | |||
<Filename Value="..\uutlEnumerator.pas"/> | |||
<Caret Line="135" Column="15" TopLine="128"/> | |||
<Filename Value="..\uutlGenerics.pas"/> | |||
<Caret Line="22" Column="36" TopLine="14"/> | |||
</Position13> | |||
<Position14> | |||
<Filename Value="..\uutlGenerics.pas"/> | |||
<Caret Line="1656" TopLine="1642"/> | |||
<Filename Value="uutlEnumeratorTests.pas"/> | |||
<Caret Line="60" Column="41" TopLine="37"/> | |||
</Position14> | |||
<Position15> | |||
<Filename Value="..\uutlGenerics.pas"/> | |||
<Caret Line="1646" Column="14" TopLine="1640"/> | |||
<Filename Value="uutlEnumeratorTests.pas"/> | |||
<Caret Line="64" Column="13" TopLine="37"/> | |||
</Position15> | |||
<Position16> | |||
<Filename Value="..\uutlGenerics.pas"/> | |||
<Caret Line="1635" Column="16" TopLine="1620"/> | |||
<Filename Value="uutlEnumeratorTests.pas"/> | |||
<Caret Line="77" TopLine="73"/> | |||
</Position16> | |||
<Position17> | |||
<Filename Value="..\uutlLinq.pas"/> | |||
<Caret Line="120" Column="30" TopLine="107"/> | |||
<Filename Value="uutlEnumeratorTests.pas"/> | |||
<Caret Line="69" Column="34" TopLine="48"/> | |||
</Position17> | |||
<Position18> | |||
<Filename Value="..\uutlLinq.pas"/> | |||
<Caret Line="68" Column="20" TopLine="52"/> | |||
<Filename Value="uutlEnumeratorTests.pas"/> | |||
<Caret Line="543" Column="26" TopLine="522"/> | |||
</Position18> | |||
<Position19> | |||
<Filename Value="..\uutlLinq.pas"/> | |||
<Caret Line="283" Column="26" TopLine="259"/> | |||
<Filename Value="uutlEnumeratorTests.pas"/> | |||
<Caret Line="544" Column="42" TopLine="522"/> | |||
</Position19> | |||
<Position20> | |||
<Filename Value="uutlLinqTests.pas"/> | |||
<Caret Line="399" Column="29" TopLine="383"/> | |||
<Filename Value="uutlEnumeratorTests.pas"/> | |||
<Caret Line="538" Column="23" TopLine="520"/> | |||
</Position20> | |||
<Position21> | |||
<Filename Value="..\uutlLinq.pas"/> | |||
<Caret Line="283" Column="26" TopLine="259"/> | |||
<Filename Value="..\uutlListBase.pas"/> | |||
<Caret Line="33" Column="5" TopLine="15"/> | |||
</Position21> | |||
<Position22> | |||
<Filename Value="..\uutlLinq.pas"/> | |||
<Filename Value="..\uutlListBase.pas"/> | |||
<Caret Line="100" Column="8" TopLine="79"/> | |||
</Position22> | |||
<Position23> | |||
<Filename Value="..\uutlLinq.pas"/> | |||
<Caret Line="70" Column="51" TopLine="53"/> | |||
<Filename Value="..\uutlGenerics.pas"/> | |||
<Caret Line="557" Column="8" TopLine="536"/> | |||
</Position23> | |||
<Position24> | |||
<Filename Value="..\uutlLinq.pas"/> | |||
<Caret Line="125" Column="29" TopLine="98"/> | |||
<Filename Value="..\uutlGenerics.pas"/> | |||
<Caret Line="753" Column="8" TopLine="732"/> | |||
</Position24> | |||
<Position25> | |||
<Filename Value="..\uutlLinq.pas"/> | |||
<Caret Line="143" Column="33" TopLine="113"/> | |||
<Filename Value="uutlEnumeratorTests.pas"/> | |||
<Caret Line="82" Column="18" TopLine="57"/> | |||
</Position25> | |||
<Position26> | |||
<Filename Value="..\uutlLinq.pas"/> | |||
<Caret Line="276" Column="49" TopLine="249"/> | |||
<Filename Value="uutlEnumeratorTests.pas"/> | |||
<Caret Line="97" TopLine="97"/> | |||
</Position26> | |||
<Position27> | |||
<Filename Value="..\uutlLinq.pas"/> | |||
<Caret Line="374" Column="27" TopLine="347"/> | |||
<Filename Value="uutlEnumeratorTests.pas"/> | |||
<Caret Line="90" Column="27" TopLine="67"/> | |||
</Position27> | |||
<Position28> | |||
<Filename Value="..\uutlLinq.pas"/> | |||
<Caret Line="383" Column="27" TopLine="355"/> | |||
<Filename Value="uutlEnumeratorTests.pas"/> | |||
<Caret Line="96" Column="21" TopLine="70"/> | |||
</Position28> | |||
<Position29> | |||
<Filename Value="..\uutlLinq.pas"/> | |||
<Caret Line="408" Column="31" TopLine="381"/> | |||
<Filename Value="uutlEnumeratorTests.pas"/> | |||
<Caret Line="110" TopLine="107"/> | |||
</Position29> | |||
<Position30> | |||
<Filename Value="..\uutlLinq.pas"/> | |||
<Caret Line="417" Column="31" TopLine="391"/> | |||
<Filename Value="uutlEnumeratorTests.pas"/> | |||
<Caret Line="640" Column="4" TopLine="616"/> | |||
</Position30> | |||
</JumpHistory> | |||
</ProjectSession> | |||
@@ -9,7 +9,7 @@ interface | |||
uses | |||
Classes, SysUtils, TestFramework, | |||
uutlEnumerator, uutlInterfaces; | |||
uutlEnumerator, uutlInterfaces, uutlGenerics; | |||
type | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
@@ -50,12 +50,51 @@ type | |||
{$ENDIF} | |||
end; | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
TutlArrayEnumeratorTests = class(TutlEnumeratorTests) | |||
protected | |||
procedure Generate(const aData: array of Integer); override; | |||
public | |||
procedure SetUp; override; | |||
end; | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
TutlQueueEnumeratorTests = class(TutlEnumeratorTests) | |||
private type | |||
TIntQueue = specialize TutlQueue<Integer>; | |||
private | |||
fQueue: TIntQueue; | |||
protected | |||
procedure Generate(const aData: array of Integer); override; | |||
public | |||
procedure SetUp; override; | |||
procedure TearDown; override; | |||
end; | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
TutlStackEnumeratorTests = class(TutlEnumeratorTests) | |||
private type | |||
TIntStack = specialize TutlStack<Integer>; | |||
private | |||
fStack: TIntStack; | |||
protected | |||
procedure Generate(const aData: array of Integer); override; | |||
public | |||
procedure SetUp; override; | |||
procedure TearDown; override; | |||
end; | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
TutlListEnumeratorTests = class(TutlEnumeratorTests) | |||
private type | |||
TIntList = specialize TutlSimpleList<Integer>; | |||
private | |||
fList: TIntList; | |||
protected | |||
procedure Generate(const aData: array of Integer); override; | |||
public | |||
procedure SetUp; override; | |||
procedure TearDown; override; | |||
end; | |||
implementation | |||
@@ -517,8 +556,95 @@ begin | |||
fEnumerator := TIntArrayEnumerator.Create; | |||
end; | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
//TutlQueueEnumeratorTests////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
procedure TutlQueueEnumeratorTests.Generate(const aData: array of Integer); | |||
var | |||
i: Integer; | |||
begin | |||
fQueue.Clear; | |||
for i in aData do | |||
fQueue.Enqueue(i); | |||
end; | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
procedure TutlQueueEnumeratorTests.SetUp; | |||
begin | |||
inherited SetUp; | |||
fQueue := TIntQueue.Create(true); | |||
fEnumerator := fQueue.GetUtlEnumerator; | |||
end; | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
procedure TutlQueueEnumeratorTests.TearDown; | |||
begin | |||
FreeAndNil(fQueue); | |||
fEnumerator := nil; | |||
inherited TearDown; | |||
end; | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
//TutlStackEnumeratorTests////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
procedure TutlStackEnumeratorTests.Generate(const aData: array of Integer); | |||
var | |||
i: Integer; | |||
begin | |||
fStack.Clear; | |||
for i in aData do | |||
fStack.Push(i); | |||
end; | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
procedure TutlStackEnumeratorTests.SetUp; | |||
begin | |||
inherited SetUp; | |||
fStack := TIntStack.Create(true); | |||
fEnumerator := fStack.GetUtlEnumerator; | |||
end; | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
procedure TutlStackEnumeratorTests.TearDown; | |||
begin | |||
fEnumerator := nil; | |||
FreeAndNil(fStack); | |||
inherited TearDown; | |||
end; | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
//TutlListEnumeratorTests/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
procedure TutlListEnumeratorTests.Generate(const aData: array of Integer); | |||
var | |||
i: Integer; | |||
begin | |||
fList.Clear; | |||
for i in aData do | |||
fList.Add(i); | |||
end; | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
procedure TutlListEnumeratorTests.SetUp; | |||
begin | |||
inherited SetUp; | |||
fList := TIntList.Create(true); | |||
fEnumerator := fList.GetUtlEnumerator; | |||
end; | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
procedure TutlListEnumeratorTests.TearDown; | |||
begin | |||
fEnumerator := nil; | |||
FreeAndNil(fList); | |||
inherited TearDown; | |||
end; | |||
initialization | |||
RegisterTest(TutlArrayEnumeratorTests.Suite); | |||
RegisterTest(TutlQueueEnumeratorTests.Suite); | |||
RegisterTest(TutlStackEnumeratorTests.Suite); | |||
RegisterTest(TutlListEnumeratorTests.Suite); | |||
end. | |||
@@ -89,16 +89,16 @@ type | |||
strict private | |||
fMemory: PT; | |||
fReverse: Boolean; | |||
fReversed: Boolean; | |||
fCurrent: Integer; | |||
fFirst: Integer; | |||
fLast: Integer; | |||
protected | |||
property Memory: PT read fMemory write fMemory; | |||
property Reverse: Boolean read fReverse write fReverse; | |||
property First: Integer read fFirst write fFirst; | |||
property Last: Integer read fLast write fLast; | |||
property Memory: PT read fMemory write fMemory; | |||
property Reversed: Boolean read fReversed write fReversed; | |||
property First: Integer read fFirst write fFirst; | |||
property Last: Integer read fLast write fLast; | |||
protected { TutlEnumerator } | |||
function InternalMoveNext: Boolean; override; | |||
@@ -120,7 +120,7 @@ type | |||
const aCount: Integer); overload; | |||
constructor Create( | |||
const aMemory: PT; | |||
const aReverse: Boolean; | |||
const aReversed: Boolean; | |||
const aFirst: Integer; | |||
const aLast: Integer); overload; | |||
end; | |||
@@ -145,7 +145,7 @@ type | |||
constructor Create; overload; | |||
constructor Create(const aData: TArray); overload; | |||
constructor Create(const aData: TArray; const aReverse: Boolean); overload; | |||
constructor Create(const aData: TArray; const aReversed: Boolean); overload; | |||
end; | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
@@ -537,7 +537,7 @@ end; | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
function TutlMemoryEnumerator.InternalMoveNext: Boolean; | |||
begin | |||
if fReverse | |||
if fReversed | |||
then dec(fCurrent) | |||
else inc(fCurrent); | |||
result := (fFirst <= fCurrent) and (fCurrent <= fLast); | |||
@@ -546,7 +546,7 @@ end; | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
procedure TutlMemoryEnumerator.InternalReset; | |||
begin | |||
if fReverse | |||
if fReversed | |||
then fCurrent := fLast + 1 | |||
else fCurrent := fFirst - 1; | |||
end; | |||
@@ -581,7 +581,7 @@ var | |||
begin | |||
Reset; | |||
SetLength(result, fLast - fFirst + 1); | |||
if fReverse then begin | |||
if fReversed then begin | |||
for i := fFirst to fLast do | |||
result[i-fFirst] := fMemory[i]; | |||
end else | |||
@@ -592,20 +592,20 @@ end; | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
constructor TutlMemoryEnumerator.Create(const aMemory: PT; const aCount: Integer); | |||
begin | |||
Create(aMemory, false, 0, aCount - 1) | |||
Create(aMemory, false, 0, aCount - 1); | |||
end; | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
constructor TutlMemoryEnumerator.Create( | |||
const aMemory: PT; | |||
const aReverse: Boolean; | |||
const aReversed: Boolean; | |||
const aFirst: Integer; | |||
const aLast: Integer); | |||
begin | |||
fMemory := aMemory; | |||
fReverse := aReverse; | |||
fFirst := aFirst; | |||
fLast := aLast; | |||
fMemory := aMemory; | |||
fReversed := aReversed; | |||
fFirst := aFirst; | |||
fLast := aLast; | |||
inherited Create; | |||
end; | |||
@@ -633,10 +633,10 @@ begin | |||
end; | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
constructor TutlArrayEnumerator.Create(const aData: TArray; const aReverse: Boolean); | |||
constructor TutlArrayEnumerator.Create(const aData: TArray; const aReversed: Boolean); | |||
begin | |||
fData := aData; | |||
inherited Create(@fData[0], aReverse, low(fData), high(fData)); | |||
inherited Create(@fData[0], aReversed, low(fData), high(fData)); | |||
end; | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
@@ -645,8 +645,8 @@ end; | |||
{$IFDEF UTL_ENUMERATORS} | |||
procedure TutlReverseEnumerator.InternalReset; | |||
begin | |||
Data := fEnumerator.ToArray; | |||
Reverse := true; | |||
Data := fEnumerator.ToArray; | |||
Reversed := true; | |||
inherited InternalReset; | |||
end; | |||
@@ -24,17 +24,23 @@ type | |||
, specialize IutlEnumerator<T>) | |||
strict private | |||
fOwner: TutlQueue; | |||
fReversed: Boolean; | |||
fCurrent: Integer; | |||
protected { TutlEnumerator } | |||
function InternalMoveNext: Boolean; override; | |||
procedure InternalReset; override; | |||
{$IFDEF UTL_ENUMERATORS} | |||
public { IutlEnumerator } | |||
function Reverse: IutlEnumerator; override; | |||
{$ENDIF} | |||
public { IEnumerator } | |||
function GetCurrent: T; override; | |||
public | |||
constructor Create(const aOwner: TutlQueue); | |||
constructor Create(const aOwner: TutlQueue; const aReversed: Boolean); | |||
end; | |||
public type | |||
@@ -95,11 +101,16 @@ type | |||
private | |||
fOwner: TutlStack; | |||
public { IEnumerator } | |||
protected { IEnumerator } | |||
procedure InternalReset; override; | |||
{$IFDEF UTL_ENUMERATORS} | |||
public { IutlEnumerator } | |||
function Reverse: IutlEnumerator; override; | |||
{$ENDIF} | |||
public | |||
constructor Create(const aOwner: TutlStack); reintroduce; | |||
constructor Create(const aOwner: TutlStack; const aReversed: Boolean); reintroduce; | |||
end; | |||
public type | |||
@@ -523,15 +534,27 @@ implementation | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
function TutlQueue.TEnumerator.InternalMoveNext: Boolean; | |||
begin | |||
inc(fCurrent); | |||
result := (fCurrent < fOwner.Count); | |||
if fReversed | |||
then dec(fCurrent) | |||
else inc(fCurrent); | |||
result := (0 <= fCurrent) and (fCurrent < fOwner.Count); | |||
end; | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
procedure TutlQueue.TEnumerator.InternalReset; | |||
begin | |||
fCurrent := -1; | |||
if fReversed | |||
then fCurrent := fOwner.Count | |||
else fCurrent := -1; | |||
end; | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
{$IFDEF UTL_ENUMERATORS} | |||
function TutlQueue.TEnumerator.Reverse: IutlEnumerator; | |||
begin | |||
result := TEnumerator.Create(fOwner, not fReversed); | |||
end; | |||
{$ENDIF} | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
function TutlQueue.TEnumerator.GetCurrent: T; | |||
@@ -540,11 +563,12 @@ begin | |||
end; | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
constructor TutlQueue.TEnumerator.Create(const aOwner: TutlQueue); | |||
constructor TutlQueue.TEnumerator.Create(const aOwner: TutlQueue; const aReversed: Boolean); | |||
begin | |||
if not Assigned(aOwner) then | |||
raise EArgumentNilException.Create('aOwner'); | |||
fOwner := aOwner; | |||
fOwner := aOwner; | |||
fReversed := aReversed; | |||
inherited Create; | |||
end; | |||
@@ -621,14 +645,14 @@ end; | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
function TutlQueue.GetEnumerator: IEnumerator; | |||
begin | |||
result := TEnumerator.Create(self); | |||
result := TEnumerator.Create(self, false); | |||
result.Reset; | |||
end; | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
function TutlQueue.GetUtlEnumerator: IutlEnumerator; | |||
begin | |||
result := TEnumerator.Create(self); | |||
result := TEnumerator.Create(self, false); | |||
result.Reset; | |||
end; | |||
@@ -721,12 +745,20 @@ begin | |||
end; | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
constructor TutlStack.TEnumerator.Create(const aOwner: TutlStack); | |||
{$IFDEF UTL_ENUMERATORS} | |||
function TutlStack.TEnumerator.Reverse: IutlEnumerator; | |||
begin | |||
result := TEnumerator.Create(fOwner, not Reversed); | |||
end; | |||
{$ENDIF} | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
constructor TutlStack.TEnumerator.Create(const aOwner: TutlStack; const aReversed: Boolean); | |||
begin | |||
if not Assigned(aOwner) then | |||
raise EArgumentNilException.Create('aOwner'); | |||
fOwner := aOwner; | |||
inherited Create(nil, 0); | |||
inherited Create(nil, aReversed, 0, -1); | |||
end; | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
@@ -762,13 +794,13 @@ end; | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
function TutlStack.GetEnumerator: IEnumerator; | |||
begin | |||
result := TEnumerator.Create(self); | |||
result := TEnumerator.Create(self, false); | |||
end; | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
function TutlStack.GetUtlEnumerator: IutlEnumerator; | |||
begin | |||
result := TEnumerator.Create(self); | |||
result := TEnumerator.Create(self, false); | |||
end; | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
@@ -27,11 +27,16 @@ type | |||
private | |||
fOwner: TutlListBase; | |||
public { IEnumerator } | |||
protected { IEnumerator } | |||
procedure InternalReset; override; | |||
{$IFDEF UTL_ENUMERATORS} | |||
public { IutlEnumerator } | |||
function Reverse: IutlEnumerator; override; | |||
{$ENDIF} | |||
public | |||
constructor Create(const aOwner: TutlListBase); reintroduce; | |||
constructor Create(const aOwner: TutlListBase; const aReversed: Boolean); reintroduce; | |||
end; | |||
strict private | |||
@@ -87,12 +92,20 @@ begin | |||
end; | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
constructor TutlListBase.TEnumerator.Create(const aOwner: TutlListBase); | |||
{$IFDEF UTL_ENUMERATORS} | |||
function TutlListBase.TEnumerator.Reverse: IutlEnumerator; | |||
begin | |||
result := TEnumerator.Create(fOwner, not Reversed); | |||
end; | |||
{$ENDIF} | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
constructor TutlListBase.TEnumerator.Create(const aOwner: TutlListBase; const aReversed: Boolean); | |||
begin | |||
if not Assigned(aOwner) then | |||
raise EArgumentNilException.Create('aOwner'); | |||
fOwner := aOwner; | |||
inherited Create(nil, 0); | |||
inherited Create(nil, aReversed, 0, -1); | |||
end; | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
@@ -166,13 +179,13 @@ end; | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
function TutlListBase.GetEnumerator: IEnumerator; | |||
begin | |||
result := TEnumerator.Create(self); | |||
result := TEnumerator.Create(self, false); | |||
end; | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
function TutlListBase.GetUtlEnumerator: specialize IutlEnumerator<T>; | |||
begin | |||
result := TEnumerator.Create(self); | |||
result := TEnumerator.Create(self, false); | |||
end; | |||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||