fpc/packages/fcl-base/tests/utclzw.pas
2022-11-23 16:48:43 +01:00

64 lines
982 B
ObjectPascal

unit utclzw;
{$mode ObjFPC}{$H+}
interface
uses
Classes, SysUtils, fpcunit, testregistry, lzwstream;
Type
{ TTestLZW }
TTestLZW = CLass(TTestCase)
Published
Procedure TestFileC;
end;
implementation
{ TTestLZW }
{$i filec.inc}
{$i filed.inc}
procedure TTestLZW.TestFileC;
Var
Z : TLZWDecompressionStream;
C,D : TBytesStream;
B : TBytes;
I,R : Integer;
begin
D:=Nil;
Z:=Nil;
C:=TBytesStream.Create([]);
try
C.WriteBuffer(filec,sizeof(filec));
C.Position:=0;
D:=TBytesStream.Create;
D.WriteBuffer(filed,sizeof(filed));
D.Position:=0;
Z:=TLZWDecompressionStream.Create(C,[zoTIFFCodes]);
Z.SourceOwner:=False;
SetLength(B,D.Size);
R:=Z.Read(B[0],D.Size);
AssertEquals('Correct length read',D.Size,R);
For I:=0 to Length(B)-1 do
AssertEquals('Byte '+IntToStr(I),PByte(D.Memory)[i],B[i]);
finally
C.Free;
D.Free;
Z.Free;
end;
end;
initialization
RegisterTest(TTestLZW);
end.