在我们的软件中,我们有一个GZIP (RFC 1952)压缩/解压缩接口,该接口目前由boost::iostreams驱动。由于由于链接原因,我们可能需要更改底层库,所以我想为GZIP压缩和解压缩添加更多的测试,即精确的字节/字节比较。
是否有官方或广泛使用的GZIP测试载体?
发布于 2015-05-10 15:23:14
正如注释中所指出的,您不能以任何固定的期望测试压缩机的输出。使用相同的输入数据,压缩机可以产生广泛的可能结果。最简单的例子是选择不同的压缩级别,将速度与大小进行权衡。压缩机唯一需要保证的是,当它的结果被解压时,你会得到压缩机的输入。
因此,有两种测试是有意义的。第一个是往返测试,在这里您测试压缩,然后解压缩,并验证您得到的是您的投入。@sehe的答案为为压缩机提供各种输入数据的语料库提供了良好的来源。您还应该生成来自应用程序的自己的测试数据。
第二种是测试各种无效输入的解压缩器,以确保它运行良好,即它返回一个错误而不是崩溃。对于后者,您可以查看infcover.c,它包括带有各种错误的紧缩测试序列。
发布于 2015-05-10 13:55:27
在通用无损数据压缩领域,研究人员使用了三个著名的数据集.第一个是Calgary语料库,1989年由Bell等人提出。选择语料库中的文件来掩盖计算机处理中使用的典型数据类型。这个语料库是相当古老的,它包含了一些已经过时的数据类型,但是这个语料库仍然是许多作者使用的一个很好的基准。后来提出的语料库,坎特伯雷语料库和大型坎特伯雷语料库,包含类似大小的文件,不足5MB。
历史语料库包括
我发现最有希望的一页是:
Credit:最后一个链接提供了我用作介绍的文本。您可以阅读更多关于“旧”语料库各自的缺点的文章。
https://stackoverflow.com/questions/30150972
复制相似问题