Janilabo

TIAUnique2

Dec 12th, 2012
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.16 KB | None | 0 0
  1. procedure TIAUnique2(var TIA: TIntArray);
  2. var
  3.   h, i2, i, d: Integer;
  4. begin
  5.   h := High(TIA);    
  6.   if (h > 0) then    
  7.   for i := (h - d) downto 1 do
  8.     for i2 := (i - 1) downto 0 do
  9.       if (TIA[i] = TIA[i2]) then
  10.       begin
  11.         Delete(TIA, i, 1);
  12.         Inc(d);
  13.         Break;  
  14.       end;  
  15. end;
  16.  
  17. function RandomRangeEx(aFrom, aTo, amount: Integer; duplicates: Boolean): TIntArray;
  18. begin
  19.   Result := RandomTIAEx(amount, (aTo - aFrom), duplicates);
  20.   OffsetTIA(Result, aFrom);
  21. end;
  22.  
  23. var
  24.   TIA1, TIA2: TIntArray;
  25.   i, f, s: Integer;
  26.  
  27. begin
  28.   ClearDebug;
  29.   for i := 0 to 999 do
  30.   begin
  31.     TIA1 := RandomRangeEx(0, 85, 50, True);
  32.     TIA2 := CopyTIA(TIA1);
  33.     TIAUnique2(TIA2);        
  34.     case TIAEquals(TIA1, TIA2) of
  35.       True:
  36.       begin
  37.         WriteLn('FAIL: ' + TIAToStr(TIA1) + ' VS. ' + TIAToStr(TIA2));
  38.         Inc(f);
  39.       end;  
  40.       False:
  41.       begin
  42.         WriteLn('SUCCESS: ' + TIAToStr(TIA1) + ' VS. ' + TIAToStr(TIA2));
  43.         Inc(s);
  44.       end;
  45.     end;
  46.     Status('Success ' + IntToStr(s) + ' - ' + IntToStr(f) + ' Fail.');              
  47.     SetLength(TIA1, 0);
  48.     SetLength(TIA2, 0);
  49.   end;  
  50. end.
Advertisement
Add Comment
Please, Sign In to add comment