utclzw.pas 982 B

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