utclzw.pas 982 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. unit utcLZW;
  2. {$mode ObjFPC}{$H+}
  3. interface
  4. uses
  5. Classes, SysUtils, punit, lzwstream;
  6. Procedure RegisterTests;
  7. implementation
  8. { TTestLZW }
  9. {$i filec.inc}
  10. {$i filed.inc}
  11. function TestFileC : TTestString;
  12. Var
  13. Z : TLZWDecompressionStream;
  14. C,D : TBytesStream;
  15. B : TBytes;
  16. I,R : Integer;
  17. begin
  18. result:='';
  19. D:=Nil;
  20. Z:=Nil;
  21. C:=TBytesStream.Create([]);
  22. try
  23. C.WriteBuffer(filec,sizeof(filec));
  24. C.Position:=0;
  25. D:=TBytesStream.Create;
  26. D.WriteBuffer(filed,sizeof(filed));
  27. D.Position:=0;
  28. Z:=TLZWDecompressionStream.Create(C,[zoTIFFCodes]);
  29. Z.SourceOwner:=False;
  30. SetLength(B,D.Size);
  31. R:=Z.Read(B[0],D.Size);
  32. AssertEquals('Correct length read',D.Size,R);
  33. For I:=0 to Length(B)-1 do
  34. AssertEquals('Byte '+IntToStr(I),PByte(D.Memory)[i],B[i]);
  35. finally
  36. C.Free;
  37. D.Free;
  38. Z.Free;
  39. end;
  40. end;
  41. procedure RegisterTests;
  42. begin
  43. AddSuite('TTestLZW');
  44. AddTest('TestFileC', @TestFileC, 'TTestLZW');
  45. end;
  46. end.