123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- program crctest;
- {$mode objfpc}
- {$h+}
- uses
- sysutils,
- crc;
- const
- testseq1: string = 'MNIIQGNLVGTGLKIGIVVGRFNDFITSKLLSGAEDALLRHGVDTNDIDVAWVPGAFEIPFAAKKMAETKKYDAIITLGTVIRGATTSYDYVCNEAAKGIAQAANTTGVPVIFGIVTTENIEQAIERAGTKAGNKGVDCAVSAIEMANLNRSFE';
- testseq2: string = 'MNIIQGNLVGTGLKIGIVVGRFNDFITSKLLSGAEDALLRHGVDTNDIDVAWVPGAFEIPFAAKKMAETKKYDAIITLGDVIRGATTHYDYVCNEAAKGIAQAANTTGVPVIFGIVTTENIEQAIERAGTKAGNKGVDCAVSAIEMANLNRSFE';
- test1_crc128: u128 = (lo:14444300186948028230; hi:0);
- test2_crc128: u128 = (lo:3310614217963326015; hi:0);
- test1_crc64: qword = 14444300186948028230;
- test2_crc64: qword = 3310614217963326015;
- test1_crc32: longword = 3405150022;
- test2_crc32: longword = 1264209917;
- function IntToStr128(v: u128): string;
- begin
- result := 'todo';
- end;
- procedure perform_crc32(const name, testcase: string; result: longword);
- var
- crc: longword;
- begin
- crc := crc32(0,nil,0);
- crc := crc32(crc,@testcase[1],length(testcase));
- write(name,'(size=',length(testcase),'): ');
- if crc=result then
- writeln('passed')
- else
- writeln('failed (got=',crc,',expected=',result,')');
- end;
- procedure perform_crc64(const name, testcase: string; result: qword);
- var
- crc: qword;
- begin
- crc := crc64(0,nil,0);
- crc := crc64(crc,@testcase[1],length(testcase));
- write(name,'(size=',length(testcase),'): ');
- if crc=result then
- writeln('passed')
- else
- writeln('failed (got=',crc,',expected=',result,')');
- end;
- procedure perform_crc128(const name, testcase: string; result: u128);
- var
- crc: u128;
- begin
- crc := crc128(0,nil,0);
- crc := crc128(crc,@testcase[1],length(testcase));
- write(name,'(size=',length(testcase),'): ');
- if crc=result then
- writeln('passed')
- else
- writeln('failed (got=',IntToStr128(crc),',expected=',IntToStr128(result),')');
- end;
- begin
- perform_crc32('crc32', testseq1, test1_crc32);
- perform_crc32('crc32', testseq2, test2_crc32);
- perform_crc64('crc64', testseq1, test1_crc64);
- perform_crc64('crc64', testseq2, test2_crc64);
- perform_crc128('crc128', testseq1, test1_crc128);
- perform_crc128('crc128', testseq2, test2_crc128);
- end.
|