@@ -78,9 +78,9 @@ procedure Test_MultiLine1;
7878
7979 Assert(Length(Lines) = 5 );
8080 Assert(Lines[0 ] = ' Select an Option' );
81- Assert(Lines[1 ] = ' Id like to access my bank account, please.' );
82- Assert(Lines[2 ] = ' Id like to check my PIN settings.' );
83- Assert(Lines[3 ] = ' Id like to collect items.' );
81+ Assert(Lines[1 ] = ' I '' d like to access my bank account, please.' );
82+ Assert(Lines[2 ] = ' I '' d like to check my PIN settings.' );
83+ Assert(Lines[3 ] = ' I '' d like to collect items.' );
8484 Assert(Lines[4 ] = ' What is this place?' );
8585end ;
8686
@@ -104,6 +104,96 @@ procedure Test_MultiLine2;
104104 Assert(Lines[1 ] = ' restore(4)' );
105105end ;
106106
107+ procedure Test_MultiLine3 ;
108+ const
109+ Filter1: TOCRFilter = (
110+ FilterType: EOCRFilterType.COLOR;
111+ AnyColorFilter: ();
112+ ColorRule: (Colors: ((Color: $009933 ; Tolerance: 0 )); Invert: False);
113+ ThresholdRule: ();
114+ ShadowRule: ();
115+ MinCharacterMatch: #0 ;
116+ );
117+ Filter2: TOCRFilter = (
118+ FilterType: EOCRFilterType.COLOR;
119+ AnyColorFilter: ();
120+ ColorRule: (Colors: ((Color: $00CC33; Tolerance: 0 )); Invert: False);
121+ ThresholdRule: ();
122+ ShadowRule: ();
123+ MinCharacterMatch: #0 ;
124+ );
125+ var
126+ Lines: TStringArray;
127+ I: Integer;
128+ begin
129+ Lines := SimpleOCR.RecognizeLines(LoadMatrix(' images/multiline3.png' ), Filter1, FONT_PLAIN_11);
130+ for I := 0 to High(Lines) do
131+ Lines[I] := StringReplace(Lines[I], ' I' , ' l' , [rfReplaceAll]);
132+
133+ Assert(Length(Lines) = 5 );
134+ Assert(Lines[0 ] = ' Leather Boots:' );
135+ Assert(Lines[1 ] = ' Adamant Kiteshield:' );
136+ Assert(Lines[2 ] = ' Adamant Helm:' );
137+ Assert(Lines[3 ] = ' Emerald:' );
138+ Assert(Lines[4 ] = ' Rune Longsword:' );
139+
140+ Lines := SimpleOCR.RecognizeLines(LoadMatrix(' images/multiline3.png' ), Filter2, FONT_PLAIN_11);
141+
142+ Assert(Length(Lines) = 6 );
143+ Assert(Lines[0 ] = ' 0' );
144+ Assert(Lines[1 ] = ' 5' );
145+ Assert(Lines[2 ] = ' 1' );
146+ Assert(Lines[3 ] = ' 30' );
147+ Assert(Lines[4 ] = ' 15' );
148+ Assert(Lines[5 ] = ' 8' );
149+ end ;
150+
151+ procedure Test_MultiLine4 ;
152+ const
153+ Filter: TOCRFilter = (
154+ FilterType: EOCRFilterType.COLOR;
155+ AnyColorFilter: ();
156+ ColorRule: (Colors: ((Color: $000000 ; Tolerance: 0 )); Invert: False);
157+ ThresholdRule: ();
158+ ShadowRule: ();
159+ MinCharacterMatch: #0 ;
160+ );
161+ var
162+ Lines: TStringArray;
163+ begin
164+ Lines := SimpleOCR.RecognizeLines(LoadMatrix(' images/multiline4.png' ), Filter, FONT_PLAIN_12);
165+
166+ Assert(Length(Lines) = 3 );
167+ Assert(Lines[0 ] = ' Fishing XP: 20' );
168+ Assert(Lines[1 ] = ' Next level at: 83' );
169+ Assert(Lines[2 ] = ' Remaining XP: 63' );
170+ end ;
171+
172+ procedure Test_MultiLine5 ;
173+ const
174+ Filter: TOCRFilter = (
175+ FilterType: EOCRFilterType.COLOR;
176+ AnyColorFilter: ();
177+ ColorRule: (Colors: ((Color: 3099981 ; Tolerance: 0 )); Invert: False);
178+ ThresholdRule: ();
179+ ShadowRule: ();
180+ MinCharacterMatch: #0 ;
181+ );
182+ var
183+ Lines: TStringArray;
184+ begin
185+ Lines := SimpleOCR.RecognizeLines(LoadMatrix(' images/multiline5.png' ), Filter, FONT_PLAIN_12);
186+
187+ Assert(Length(Lines) = 7 );
188+ Assert(Lines[0 ] = ' Ahrim' );
189+ Assert(Lines[1 ] = ' Dharok' );
190+ Assert(Lines[2 ] = ' Guthan' );
191+ Assert(Lines[3 ] = ' Karil' );
192+ Assert(Lines[4 ] = ' Torag' );
193+ Assert(Lines[5 ] = ' Verac' );
194+ Assert(Lines[6 ] = ' Rewards potential: 0%' );
195+ end ;
196+
107197procedure Test_UpText1 ;
108198const
109199 Filter: TOCRFilter = (
@@ -231,14 +321,14 @@ procedure Test_Locate2;
231321 Fail, Pass: Integer;
232322 StartTime: UInt64;
233323
234- function Test (Proc: TProcedure; Name : String): Boolean ;
324+ procedure Test (Proc: TProcedure; Name : String);
235325begin
236- Result := True;
237-
238326 try
239327 WriteLn(' Testing: ' + Name );
240328 Proc();
241329 WriteLn(' Passed' );
330+
331+ Inc(Pass);
242332 except
243333 on E: Exception do
244334 begin
@@ -247,7 +337,7 @@ function Test(Proc: TProcedure; Name: String): Boolean;
247337 else
248338 WriteLn(' Failed: ' , E.Message);
249339
250- Result := False ;
340+ Inc(Fail) ;
251341 end ;
252342 end ;
253343end ;
@@ -272,6 +362,9 @@ function Test(Proc: TProcedure; Name: String): Boolean;
272362 Test(@Test_Threshold2, ' Threshold2' );
273363 Test(@Test_MultiLine1, ' MultiLine1' );
274364 Test(@Test_MultiLine2, ' MultiLine2' );
365+ Test(@Test_MultiLine3, ' MultiLine3' );
366+ Test(@Test_MultiLine4, ' MultiLine4' );
367+ Test(@Test_MultiLine5, ' MultiLine5' );
275368 Test(@Test_UpText1, ' UpText1' );
276369 Test(@Test_UpText2, ' UpText2' );
277370 Test(@Test_Shadow, ' Shadow' );
@@ -288,6 +381,6 @@ function Test(Proc: TProcedure; Name: String): Boolean;
288381 if (Fail > 0 ) then
289382 ExitCode := 1 ;
290383
291- ReadLn;
384+ // ReadLn;
292385end .
293386
0 commit comments