mirror of
https://github.com/qpdf/qpdf.git
synced 2024-12-22 19:08:59 +00:00
cb769c62e5
This comment expands all tabs using an 8-character tab-width. You should ignore this commit when using git blame or use git blame -w. In the early days, I used to use tabs where possible for indentation, since emacs did this automatically. In recent years, I have switched to only using spaces, which means qpdf source code has been a mixture of spaces and tabs. I have avoided cleaning this up because of not wanting gratuitous whitespaces change to cloud the output of git blame, but I changed my mind after discussing with users who view qpdf source code in editors/IDEs that have other tab widths by default and in light of the fact that I am planning to start applying automatic code formatting soon.
128 lines
3.5 KiB
Perl
128 lines
3.5 KiB
Perl
#!/usr/bin/env perl
|
|
require 5.008;
|
|
BEGIN { $^W = 1; }
|
|
use strict;
|
|
use File::Copy;
|
|
use Digest::MD5;
|
|
|
|
chdir("predictors") or die "chdir testdir failed: $!\n";
|
|
|
|
require TestDriver;
|
|
|
|
my $td = new TestDriver('predictors');
|
|
|
|
cleanup();
|
|
|
|
$td->runtest("decode columns = 4",
|
|
{$td->COMMAND => "predictors png decode in1 4 1 8"},
|
|
{$td->STRING => "done\n",
|
|
$td->EXIT_STATUS => 0},
|
|
$td->NORMALIZE_NEWLINES);
|
|
|
|
$td->runtest("check output",
|
|
{$td->FILE => "out"},
|
|
{$td->FILE => "out1"});
|
|
|
|
$td->runtest("decode columns = 5",
|
|
{$td->COMMAND => "predictors png decode in2 5 1 8"},
|
|
{$td->STRING => "done\n",
|
|
$td->EXIT_STATUS => 0},
|
|
$td->NORMALIZE_NEWLINES);
|
|
|
|
$td->runtest("check output",
|
|
{$td->FILE => "out"},
|
|
{$td->FILE => "out2"});
|
|
|
|
$td->runtest("encode columns = 4",
|
|
{$td->COMMAND => "predictors png encode out1 4 1 8"},
|
|
{$td->STRING => "done\n",
|
|
$td->EXIT_STATUS => 0},
|
|
$td->NORMALIZE_NEWLINES);
|
|
|
|
$td->runtest("check output",
|
|
{$td->FILE => "out"},
|
|
{$td->FILE => "in1"});
|
|
|
|
$td->runtest("encode columns = 5",
|
|
{$td->COMMAND => "predictors png encode out2 5 1 8"},
|
|
{$td->STRING => "done\n",
|
|
$td->EXIT_STATUS => 0},
|
|
$td->NORMALIZE_NEWLINES);
|
|
|
|
$td->runtest("check output",
|
|
{$td->FILE => "out"},
|
|
{$td->FILE => "in2"});
|
|
|
|
my @other_png = (
|
|
'01--32-3-16',
|
|
'02--32-1-8',
|
|
'03--32-3-8',
|
|
'04--32-1-8',
|
|
'05--32-3-8',
|
|
'06--32-1-8',
|
|
'07--32-3-8',
|
|
'08--32-1-8',
|
|
'09--32-3-8',
|
|
'10--32-1-8',
|
|
'11--32-3-8',
|
|
'12--32-1-4',
|
|
);
|
|
|
|
foreach my $i (@other_png)
|
|
{
|
|
$i =~ m/^.*?--(\d+)-(\d+)-(\d+)$/ or die;
|
|
my $columns = $1;
|
|
my $samples_per_pixel = $2;
|
|
my $bits_per_sample = $3;
|
|
$td->runtest("decode $i",
|
|
{$td->COMMAND => "predictors png decode $i.data" .
|
|
" $columns $samples_per_pixel $bits_per_sample"},
|
|
{$td->STRING => "done\n",
|
|
$td->EXIT_STATUS => 0},
|
|
$td->NORMALIZE_NEWLINES);
|
|
$td->runtest("check output for $i",
|
|
{$td->FILE => "out"},
|
|
{$td->FILE => "$i.decoded"});
|
|
}
|
|
|
|
my @tiff = (
|
|
'01--16-1-8',
|
|
'02--8-2-4',
|
|
'03--4-1-16',
|
|
);
|
|
|
|
foreach my $i (@tiff)
|
|
{
|
|
$i =~ m/^.*?--(\d+)-(\d+)-(\d+)$/ or die;
|
|
my $columns = $1;
|
|
my $samples_per_pixel = $2;
|
|
my $bits_per_sample = $3;
|
|
$td->runtest("decode tiff $i",
|
|
{$td->COMMAND => "predictors tiff decode tiff-$i.data" .
|
|
" $columns $samples_per_pixel $bits_per_sample"},
|
|
{$td->STRING => "done\n",
|
|
$td->EXIT_STATUS => 0},
|
|
$td->NORMALIZE_NEWLINES);
|
|
$td->runtest("check output for tiff-$i",
|
|
{$td->FILE => "out"},
|
|
{$td->FILE => "tiff-$i.decoded"});
|
|
$td->runtest("encode tiff $i",
|
|
{$td->COMMAND => "predictors tiff encode tiff-$i.decoded" .
|
|
" $columns $samples_per_pixel $bits_per_sample"},
|
|
{$td->STRING => "done\n",
|
|
$td->EXIT_STATUS => 0},
|
|
$td->NORMALIZE_NEWLINES);
|
|
$td->runtest("check output for tiff-$i",
|
|
{$td->FILE => "out"},
|
|
{$td->FILE => "tiff-$i.data"});
|
|
}
|
|
|
|
cleanup();
|
|
|
|
$td->report(8 + (2 * scalar(@other_png)) + (4 * scalar(@tiff)));
|
|
|
|
sub cleanup
|
|
{
|
|
unlink "out";
|
|
}
|